A development methodology, as opposed to a model, is a set of methods for managing software development. It consists of a set of practical rules and development techniques. In simpler terms, a methodology refers to a detailed set of rules, practices, and principles employed to put a specific model into action. Models are needed to understand the development process. Methodologies need to be put into practice to make the development process as efficient and consistent as possible.
Agile
Agile is a work approach where larger tasks are divided into smaller segments, worked upon incrementally, and feedback is received throughout the process. It's like building a LEGO castle step by step instead of all at once. A set of values and principles to be followed in software development:
People and interaction are more important than processes and tools.
A working product is more important than extensive documentation.
Working with the customer is more important than negotiating contract terms.
Being open to change is more important than sticking to the original plan.
So, without denying the importance of what's on the right, we still value what's on the left more. Agile is both a methodology and an ideology that adheres to the values and rules described above.
Scrum
Scrum is a project management methodology based on the principles of time management. It is an implementation of agile methodology in which incremental changes are delivered in a timely manner. Its main feature is the involvement of all participants in the process, and each participant has a specific role. The point is that not only the team works on the solution of the task, but everyone who is interested in the solution of the task.
Scrum team
Let's look at the main terms used in the methodology:
Product Owner is the person who has a direct interest in a quality end product; they understand how this product should look and work. This is the person who works on the customer/client side. They don't work in a team, but they work with a team and are the person who prioritizes tasks.
Scrum Master is the person who makes sure that all Scrum principles are followed.
Scrum Team is the team that accepts all Scrum principles and is willing to work with them.
Scrum lifecycle
A sprint is a period of time (usually 2-4 weeks) taken to complete a specific list of tasks from a backlog. It is a list of all tasks. You can say that it is a diary of general use. There are 2 types of backlogs: Product Backlog and Sprint Backlog. Tasks in the Sprint Backlog are taken from the Product Backlog. The increment is the result of a completed sprint, i.e. the version of the product that was worked on during the Sprint.
The processes of a sprint consist of several stages.
Sprint planning. The sprint planning involves the Product Owner, Scrum Master and the team. The Product Owner prioritizes the tasks they want to see completed by the end of the sprint. The team estimates how much of what they would like to see completed. If it becomes clear during the sprint that the team will not be able to complete the tasks planned for the sprint, the Scrum Master, Product Owner and the team will meet and figure out how to reduce the scope of the work and still meet the sprint goal.
Stopping a sprint is done in exceptional situations. A sprint can be stopped before the allotted days are up. A sprint can be stopped by the team if they realize that they cannot achieve the sprint goal within the allotted time or by the Product Owner if it is no longer necessary to achieve the sprint goal. After the sprint has been stopped, a meeting is held with the team to discuss the reasons for stopping the sprint. A new sprint is then started.
Here are some examples of reasons for stopping a sprint:
Critical bugs are found and cannot be fixed in the current sprint timeframe.
The test environment has crashed and needs to be reconfigured.
A daily stand-up or daily Scrum meeting is held every morning at the start of the day by the Scrum Master. The duration of this meeting is strictly limited and should not exceed 15 minutes. The purpose of the meeting is to share information. It is not intended to solve problems in the project; any issues that require special discussion should be taken out of the meeting.
Retro and Demo. Retrospective (Retro) is a team meeting to review the quality of existing processes, people relationships, and tools used. The team identifies what went well, what didn't go well, and potential opportunities for improvement. They create an improvement plan for the future. Demo (or Review) shows the results achieved by the team and their evaluation by the customer. The demo also includes the Product Owner and people from the business telling what they did and how cool it was.
Kanban
Kanban is a methodology for improving development processes and is part of the Agile philosophy. Working with this methodology starts with visualization to make the processes visible to the team. A special board with columns is used for this purpose.
Kanban is characterized by a limit on the number of tasks that can be in progress at the same time, in order to understand where the bottleneck is and where work needs to be optimised.
Differences between Kanban and Scrum:
Kanban | Scrum |
|---|---|
|
|
Conclusion
The choice of Agile, Scrum, or Kanban depends on what the team needs, what projects they are working on, and what format they prefer to work in. Both Scrum and Kanban are ways of working based on Agile ideas. Whichever is used on a project, the main goals are to work together, to be able to make changes, and to make sure they are useful to the customer.