Agile, Scrum and Kanban, - these are the most common terms you will keep hearing in today's software development world. It is easy to get them mixed up or refer to them in the wrong context. So, what do they mean and which one to choose for a project? All these queries and many others will be discussed in this post. Hang On!
In the project management world, agile is a set of principles and values. So, does this mean agile is a methodology or a framework that we can follow for managing a project. No, absolutely not. Because methodology and framework are different. Methodology refers to a more detailed approach in which complete guidance is provided on how work should be done. On the other hand, a framework is something that is deliberately left incomplete so we can fill the gaps or adapt it as we see fit for the project that uses SCRUM, Crystal, etc.
2001 is when the manifesto for agile software development emerged. It is released by the agile alliance, a group of 17 individuals who practiced SCRUM, XP, DSDM, ASD, Crystal, Feature-Driven Development, and Pragmatic programming. They are looking for a lightweight alternative to the documentation-driven heavyweight software development processes.
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
Now, you know what the term agile means. To summarize, it is simply a set of principles and values that govern how the software development process should convene.
As evident from the history of the agile screenshot shared above, the Scrum framework has been around since 1986. And, yes Scrum is a framework, not a methodology.
Scrum is developed by Ken Schwaber and Jeff Sutherland to help organizations to deliver complex projects of the highest possible value. For this, they have documented a guide called the scrum guide.
According to this guide, scrum is defined as:
A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.
There is a misconception that scrum is only for software development. That is false, I think it can be applied to accomplish any complex task, industry, and even personal goals. I know that doesn't sound right but scrum is not a process, technique, or definitive method that insists on where it can be applied. It is a framework that consists of scrum roles, events, artifacts, and rules. And, its main focus is the continuous improvement of product, team, and working environment.
The scrum team consists of the product owner, the development team, and a scrum master. A product owner is the one who is responsible for the product backlog, which is the single source of all the requirements needed to make the product. This role will be performed by a single person and their goal will be to maximize the value of the product delivered by the development team.
The development team consists of professionals who are self-organized and self-managed to do the work of delivering a potentially releasable increment at the end of each sprint. The individual team members will have specialized skills and cross-functional so the team can do the work assigned to them within a sprint.
A scrum master is an individual who is responsible for promoting and supporting the team that the Scrum framework as defined in the Scrum guide is followed. They act as servant-leader for the team by helping those within the team to understand the scrum rules and values and those outside the team on how their interactions are affecting the team.
Each role has its own part to play for a sprint (timeline to deliver a potentially releasable increment which is usually 2-4 weeks). They abide by the scrum rules and values so they can maximize the value of the sprint delivery.
Kanban pronounced as 'Kahn-Bahn' is a Japanese term meaning visual signal or card. Taiichi Ohno, an engineer from Toyota inspired by the supermarket's inventory restocking techniques has developed a scheduling system for just-in-time manufacturing. To reduce waste and improve efficiency, he came up with a visual card method to trigger actions throughout the production process.
This approach is later refined and evolved to what we know as the Kanban method of today. It consists of a visual board where the team should know exactly where they are to move to the desired destination. It allows for a pull system where items are pulled as per the team capacity. So, any project with tasks that can follow the pattern of "To Do", "Doing" and "Done" can be implemented using the Kanban.
Along with project progress visualization, this approach enables work-in-process limits. This reduces the time taken to move across the different lanes in the kanban board. Focusing on the continuous flow of work enables continuous improvement by measuring metrics around the flow.
Which one to choose?
I see the scrum framework works well for projects that have fixed priorities for the sprint timeline because changes during the sprint in scrum are not recommended. On the contrary, Kanban relies on more the just-in-time production system so projects with changing priorities will benefit from it. In fact, scope modifications and continuous improvement to the way things are done are welcome before the completion of the project.
I have also seen organizations where Kanban is first introduced to ease the team into the scrum culture before restricting the project processes to the scrum rules. It makes change management easier. Again, there is no fixed rule that says you should follow one in a particular situation. It all depends on the project manager to determine which one works well for the team.
What do you think of scrum and kanban, which one do you use for your projects and why? Let me know your thoughts in the comments.
Thank you for Reading - Let's Connect!
Enjoy my blog? For more such awesome blog articles - follow, subscribe and let's connect.