Saturday, February 23, 2019

Kanban vs Scrum vs Agile: A Detailed Comparison to Find Differences


The Detailed Comparison of Kanban vs Scrum vs Agile
Do you want to complete your projects efficiently, in time? Are you stuck in a complex project? Circling around in a fast paced and ever changing environment? Did someone tell you to follow an agile methodology to end all these hiccups?
When it comes to an agile methodology, different people have different sets of opinions. Some say, Kanban; some say, Scrum. There you go! Another confusion.
Well, this post is to eliminate the confusion.
Comparison of Kanban Scrum and Agile

What is Kanban?

  • To start, Kanban means ‘Visual Signal’ in Japanese. Kanban process is all about visualizing what you are doing today.
  • Kanban process is nothing but a Board, named as the “Kanban Board” which not only plays a significant role in displaying the workflow but also helps to optimize the flow of task between different teams.
  • Now, there are companies which follow physical boards and there are ones which follow the virtual boards. The latter comes in handy in terms of availability and accessibility in terms of locations.
  • Kanban boards basically have three segments; To Do, In Progress and Done.
What is Kanban
  • However, depending on the project, team size, workflow Kanban board can be mapped accordingly. The board can have modified segments such as; to do, In Progress, Code review, In Testing, Deliverable etc.
  • Every work item on the board is a Kanban Card. The only aim of using a Card [Physical/Virtual] is to make the team able enough to track the work visually.
  • Cards give a brief idea on the particular work item, responsibility, estimated completion, and the current status of the work item.
  • This enables the team to foresee the challenges, faster capture of Blockers, increases the traceability, reducing of the dependencies.
  • In this process, the team is only involved in the work item that is in progress. Only when the work item is moved to DONE state, they pick the next work item from the Backlog/to do list.
  • The most important work items are kept at the top of the ‘to-do’ list by the product owner. There can be reshuffling done to the priority if needed.
  • There are no fixed length iterations followed in Kanban. It is all based on the cycle times. Cycle time is the time that is needed to move a work item from To Do state through ‘done’ state.
  • Kanban also gives importance on overlapping skill sets. When a resource has multiple skill sets, she/he doesn’t have to work on a specific skill set all the time. She/he can contribute to the work item in multiple dimensions. For e.g. a developer does not have to stick to development always. In cases of requirement, he can switch to Testing which would ultimately reduce the dependencies and hence the cycle time.

What is Scrum?

what is scrum framework
  • Like Kanban, Scrum is another framework for implementing Agile. Scrum is unique in having characters such as; defined iteration durations, role based tracking/approach etc.
  • Scrum follows a set of fixed length iterations in which the product is developed. Each of these iterations are called as Sprint. Typically, each sprint is fixed somewhere within 2 weeks to 1 month.
  • The start of each Sprint happens with a Sprint Planning meeting which finalizes the backlog/work items planned for that sprint. An estimation of the Sprint is also declared/justified in this phase.
    • Selection of Product Backlog for the specific Sprint is done in this phase.
    • Communicate to all the involved people about the scope and completion targets.
    • Backlog items can also be split when needed.
    • Priorities can be modified on the backlog items in this phase and a call is taken based on it.
  • Each Sprint goes on with Daily stand-Up meetings/Daily Scrum meetings
    • Each team member joins this meeting
    • This does not exceed 15 minutes.
    • What has been done since the last meeting, What is to be done before the next Scrum meeting is discussed during these meetings
    • Blockers, Bottlenecks, dependencies if any are brought to the notice in these meetings.
  • Each Sprint is concluded with the Retrospective meeting
    • Completed work items are showcased/ Demo is given on the work items
    • Two things are analyzed: Success points in the Sprint and the improvement area for the next Sprint.
  • Once the Sprint is over, the same steps repeat for the remaining Backlog items.
  • Scrum is basically operated based on the roles. Three roles to be precise; The Product Owner, Scrum master, and the Development team
    • The Product Owner: They are the ones who know about the Product. List of Backlogs is put together by them. They study the real business and make sure the product deliverables are best suited to address the business needs.
    • The Scrum Master: They are the hounds who live on the delivery flow, sprint planning, reviews, Daily meetings etc.
    • The Development team: They work towards delivering a shippable product at the end of the Sprint. This team does the work such as; analyzing, designing, developing, testing, documenting etc.
Now that we know what Kanban and Scrum individually, we can proceed to the comparison/versus question.

Kanban Vs Scrum

As we have seen in the above descriptions, both of them share the same [mostly same] ideology. But the way the things are done in both of these processes is very different.
ScrumKanban
The iterations/Sprints are fixed in duration. That normally varies from 2 weeks to 1 month.This does not work on the duration. This is measured in terms of Cycle times.
Team basically estimates or plans each sprint based on the Backlog sheet.This is tracked in terms of the Workflow/Work item/Kanban card
This process floats on the basis of three roles;
The Product Owner
The scrum master 
And the Development
This doesn’t work on the basis of roles.
No changes are allowed once the Sprint has startedThis is flexible here. Changes are allowed at any moment
As Sprint is done in batches, the total work is done/achieved in batches/SprintsWork is done based on the movement of single threaded work item flows
Some companies/teams choose Scrum where others chose Kanban. Sometimes, both are combined together which is hailed as Scrumban. The best of the both are chosen in Scrumban.
For e.g. Fixed lengths Sprint cycles and roles from Scrum with the focus on work in progress limits and cycle time from Kanban. All I am saying is, both are robust in their own way and can also be tweaked/combined together if needed. It is all up to the team/company/requirement.
Now, how about Scrum vs Agile?

What is the difference between Scrum and Agile?

Wondering about the differences between Scrum vs Agile or Agile vs Scrum is like seeking for the differences between the words “Red” and “Color”. Red is a  type of color and use of it depends on the specific taste and comfort level of their users. The same could be said about Scrum vs Agile.
Scrum is a type of agile methodology. It is essentially an agile process framework. In fact, Scrum and Kanban in software development terms are both specific flavors or types of an agile software methodology.
While we can compare Scrum vs Kanban or Kanban vs Scrum  (just like we can compare the colors “Red” and “Blue”) as we’d be comparing two agile methodologies, however comparing Scrum vs Agile would be like comparing the words “Red” and “Color”.
Scrum is just one of the many iterative and incremental agile software development method. You can find here a very detailed description of the process.

Conclusion

There is a significant difference between Kanban and Scrum agile methodologies. Hope we are able to explain the difference in simple words.
About the author: Subhasis has over 8 years of corporate experience working for Fortune 500 IT companies in the field of Software Quality Assurance, Software Development and Testing experience. He currently heads the QA team of a top-tier IT company and loves to write about his experiences on Software Testing Tricks and here on Software Testing Help.
 
 

No comments: