Is Scrum an incomplete methodology? Or: Does Agile Need UML?

Asked

Viewed 176 times

2

Scrum and Agile are very popular, but what do they offer in benefits? In the case of Scrum I see continuous improvement (retrospective), proximity to the stakeholders (the action of product Owner), iterative development (sprints), prioritization of requirements (Planning poker and backlog) and rapid response to changes (frequent deliveries, Daily Meetings and the very backlog). Also the self-sufficient team.

But for a software development this is incomplete.

Where are the use cases? Scrum has the user Stories, but they need refinement.

Where is the domain modeling?

Where is the architecture?

Where is the design (design)?

They are activities related to software development that cannot be left aside otherwise neither the right thing (analysis) nor the right thing (design) is done. Without this, the "ades" of the project (such as maintenance and functional and non-functional requirements) suffer.

Implementation and design ad hoc anyone can do.

I see people worrying a lot about Agile and little about these things.

Where should these disciplines come from? What is the purpose of complementing Scrum today? The staff cares about this?

2 answers

2

Scrum is not a methodology for software development but a framework that was born with the intention of being applied in product development project management.

According to Scrum.org (free translation)

Scrum is a framework for developing, delivering and sustaining complex products. This definition consists of the functions, events, Scrum artifacts and the rules that unite them.

Scrum is not a process, technique or a definitive method. Instead, it is a framework within which you can employ various processes or techniques. Scrum makes clear the relative effectiveness of your product management practices and work techniques, so you can ontinuously improve your product, team and work environment.

Here You Can Download a Portuguese Version of Scrum Guide.

It is possible to watch this video classroom that describes what Scrum is and its values, pillars, events, roles and artifacts.

Why then confuse Scrum with Agile Software Development methodologies? Simple, first why people simply do not seek to study the concepts (irony), but mainly, precisely because it delivers rules and tools that match the concepts and guidelines of agile methodologies and processes, and therefore is used in conjunction with, for example: XP or RUP, people confuse you.

Also why methodologies like RUP, in principle, do not define all tools for project management but im artifacts and phases of a software development process - Have I ever told you that software development is complex? Look at Scrum supporting you here

When you say:

In the case of Scrum I see continuous improvement (retrospective Meetings), proximity to stakeholders (the action of the product Owner), iterative development (sprints), prioritization of requirements (Planning poker and backlog) and rapid response to changes (frequent deliveries, Daily Meetings and the backlog itself). Also the self-sufficient team.

You are just citing the possibility to incorporate these team management tools into the process. So when you say

But for a software development this is incomplete.

is correct, and therefore an agile methodology is mixed with Scrum.

Where are the use cases? Scrum has the user Tories, but they need refinement.

From experience I understand that every methodology and process must be adapted to the context (team, culture, company, project complexity etc). When I speak in adaptation I can cite the possibility that a user story can be written as a use case, without demerit. Or that an epic story is a complex use case that explodes into iteration requirement documents that solve parts of the use case. In my understanding: user history is "what", use case and its rules is the "how" to describe them. We can expand that to many other artifacts.

Where is the domain modeling? Where is the design (design)?

In the Scrum? I think I can already understand that does not mention this, each complex product (airplane engine, for example) has its specificities and should use the appropriate process tools (domain modeling when Scrum applied to software development)

Where is the architecture?

I’m just punctuating, even in the context of the above answer, if I were developing a complex product as a smart suit that offers safety and fire resistance, I could definitely apply Crum, to manage staff and deliveries across multiple interactions, but Raw doesn’t know what deliveries are, in this case perhaps: studies of scientific literature, prototype of tissues, analysis of results, evaluation of damages, functional prototypes of the product, tests in real situations.

In the case of software: study of architecture, prototype of safety components, data modeling for each module, etc.

Already in the two points where

Implementation and ad hoc design anyone makes.

I see people worrying a lot about Agile and little about these things.

I agree mainly because I have seen much of what I mentioned above, lack of depth in knowledge. I have seen and still see many, mainly beginners, use the "Agile" jargon as an excuse for not having documentation, not doing analysis, not worrying about quality, not defining process. So these people take Scrum, which you don’t describe, as you yourself said, processes and tools for software development, and apply it in an empty way.

Already, engineers and software architects more experienced and "studied", apply according to their contexts, tools and agile processes necessary for software development, together with the tools and precepts Scrum (some precepts may even be related to the precepts of the agile manifesto).

Finally,

Where should these disciplines come from? What is the purpose of complementing Scrum today? The staff cares about this?

and yet

Agile needs UML?

UML specifically is a language, how, how much and when to use is at the team’s discretion. Using UML with Agile methodologies? No problem. Write all UML diagrams for each use case of the whole system? No, this is bureaucracy, it is neither analysis nor planning nor fits the agile precepts. But can I use all the UML and Scrum diagrams? Yes, as long as you do Daily Meetings, in sprints and register at backlogs, is using Scrum, but is not being agile ;-).

  • Thanks Ademir. I have a reply which is based on my little experience with Scrum in development projects, if you want to comment with some clarification there as well. Come on. Framework to manage complex projects says well what Scrum is, I know the benefits, but here is Stackoverflow and the Scrum application that matters in this case is for software development. Scrum is popular in the industry and do not know of it being combined with XP or RUP, on the contrary, there is for example the Agileup and in Surveys Agile Scrum and XP are listed as exclusionary concepts.

  • Your link is broken. So, from experience, as I mentioned in the answer, for me adaptability is what counts, within the context of applying methodologies and processes. I have seen often work well in teams a mixture of good practices and tools of more than one methodology, without labeling. I agree that the interest here is software, I thought I was able to clarify in my reply, briefly, q Scrum does not exist only software and teams apply it erroneously to circumvent software processes.

  • (...) In this sense I ask why we talk a lot about Agile but we don’t talk about domain modeling for example (we talk a little because of the DDD). I’m not charging Scrum for that part, he doesn’t even have it. I also see no relationship between use cases and user Tories, they seem to me mutually exclusive, the level of detail is distinct. P.S.: the link is: https://answall.com/a/4191/357

  • But we can use Scrum combined with a software methodology or process. The Agileup p example states q "The approach applies agile techniques, including Test Driven Development (TDD), Agile Model Driven Development (AMDD), Agile Change Management and Database Refactoring to improve your productivity.". Can’t apply Agileup using user scenarios, backlog, Daily Meeting to manage team and communication? Or, apply refactoring, pair Programming, tdd and logically design and documentation simplification with the tools of Scrum?

  • (...) I believe that we think in a similar way, maybe only my answer was very literal trying to explain the pq Scrum does not cite the necessary tools and stages in the software development process, based strictly on their questions. But I do not disagree in any hypothesis on the need to apply techniques and strategies that improve the quality of software projects, such as DDD. I will there yes in your reply try to add with some contribution

  • As you said using Tories are "what" and use cases are "like", one thing is not another. When I speak UML I do not speak in excess, the authors usually emphasize its punctual usefulness. And I’m actually talking about object-oriented analysis and design with UML. But I will study more, is that I have not participated in projects involving these concepts.

  • "Cannot apply (...)?" It is possible, you are right. I do not blame the question for being misinterpreted, I wavered in the definitions and you are absolutely right to correct me. The whole point of the question though was to know what the staff applies to those parts that don’t belong to Scrum, that’s what I wanted to know.

  • I did not find the question poorly formulated, no, is that management and application of methodologies is not something simple, in the sense that the number of variants that impact be very high, team, experience, market context, business rules, business culture.

  • There’s no example worth setting then?

Show 4 more comments

2

It’s a fairly common mistake to confuse Scrum with a software development process when in fact it’s a framework with which you can use multiple processes or different techniques to develop, deliver and maintain complex products.

According to the Scrum Guide written by its creators, the definition of Scrum is:

A framework within which people can address and solve complex and adaptive problems, while productively and creatively delivering products with the highest possible value.

In short, Scrum employs an iterative and incremental approach to improve predictability and risk control, but it does not define which processes, techniques, tools or technologies should be used.

What happens is that some processes, techniques and tools have become popular to the point where people think they are part of Scrum, such as: User Stories, Quandro Kanban and Planning Poker.

Scrum is composed of papers, events, artifacts and rules. The rules intrude roles, events, and artifacts, managing the relationships and interactions between them. The roles defined by Scrum are: The Product Owner, The Development Team and The Scrum Master. The events are: Sprint, Sprint Planning, Daily Meeting, Sprint Review and Sprint Retrospective. The artifacts are: Product Backlog, Sprint Backlog, Increment.

Thus, to implement Scrum, it is up to the development team to define together with the product stakeholders a development process according to their needs. That’s why you won’t find definitive answers on how to survey requirements, domain modeling, architecture, and design on Scrum.

For more information, I recommend reading the Scrum Guide.

  • 1

    Thank you for your reply. I was wrong to include User Stories and Planning Poker in Scrum, so +1, but the focus of the question is what Scrum lacks when applied to software development to have a development process and method.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.