In this article, we are going to discuss about the three most popular agile project methodologies. They are Scrum, Kanban and XP. Later in this article, we will compare and outline the differences between these three.
- Scrum breaks down the big organization into small teams which are capable of self-organization.
- These self-organizing teams further break the tasks into small and manageable items of work.
- These small manageable items (collection of tasks) are handled in time-boxed iterations know as sprints.
- The team in the Scrum methodology has three distinct roles – the Product Owner, the Scrum Master and the Development team members.
- There are four kinds of meetings in Scrum. They are the Sprint Planning Meeting, the Daily Stand Up, the Sprint Review and the Sprint Retrospective.
- Kanban has a workflow visibility at any point of time.
- In Kanban, the work is broken down into smaller tasks or discrete items and written on a card. These cards are attached to a board.
- The board has different columns and as the task on the cards progresses, they are updated accordingly at each stage (e.g., ready, in-progress, resolved, ready-for-review, closed, etc.) as shown below.
- Kanban methodology limits the number of times that could be in progress at any one time.
- It believes in optimization of the cycle time i.e. the total time it takes to complete an item (or task on the card) by continuous tracking and filling the grey areas in the process.
- It results in an efficient and predictable operation of the project by improving the process and eliminating the waste that corrupts the process.
- It stands for eXtreme
- A framework that is primarily focused on the quality of delivered software with prescribed engineering solution towards the end.
- Any team member that contributes to the project is a part of XP team.
- Development cycles are very short which are capable of accommodating the frequent changes from the customer.
- Customer in XP is generally on-site with the XP team.
- XP approach works towards a continuously improving, high quality product which is highly responsive in terms of customer requirement changes.
- It may practice any or collection of the core practices which include the Test Driven Development (TDD), Customer Testing (CT), Continuous Integration (CI), Small Releases and Pair Programming (SRPP), etc.
Difference between Scrum and Kanban
- Scrum has defined roles in the team and formal structure of meetings. Therefore it is more prescriptive than Kanban.
- Scrum has an iterative approach of handling a big task into the smaller number of units. Kanban doesn’t prescribe iterations, however they can be incorporated if needed.
- Kanban is suitable for teams where team members are co-located and working on a backlog of tasks items. It enables visualization of individual task unlike Scrum. E.g. Kanban is recommended methodology for the production support team, etc.
- Kanban has the task cards that fit onto a board and follow the workflow for each of the card on the board to track the current progress of the project. However, Scrum is limited to the sprint to track the project progress.
- Kanban methodology is the best suitable project methodology for the team with limited number of resources or task force i.e. where the input from every team member is needed on each task item. This is not the case with the Scrum methodology as it has defined team member roles and mandatory timely meetings.
- Scrum limits the number of the task items present in a sprint which is determined by the estimation of the size of each story or epic as agreed by the team in the sprint planning meeting. However in Kanban, there is ‘cycle time’ e. the total time it takes to complete an item (or task on the card) by continuous tracking and optimization of the lead times that are the shortest and the most predictable.
- Kanban aims at improvement in terms of the cycle time of the task by continuous optimization and filling the gray areas in the process. However, the Scrum team aims to improve its work output over successive sprints after learning about the gap in the last completed sprint. This makes the scrum more scalable as compared to the Kanban agile methodology.
Difference between Scrum and XP:
- In Scrum project methodology, the team decides itself on how the work should be done. However in XP, it comes with the standard set of practices and the work practice is based on these core standards.
- Scrum methodology is mostly concerned about productivity. However, XP methodology is concerned all about engineering.
- XP methodology uses the core practices which include the Test Driven Development (TDD), Customer Testing (CT), Continuous Integration (CI), Small Releases and Pair Programming (SRPP), etc. which improves the end product quality and speeds up the release process as it reduces the need to revisit the work due to technical issues.
- Iterations in XP are shorter than that of Scrum methodology.
- XP is more capable of accommodation the frequent changes as compared to the Scrum methodology.
- XP team picks up the task on the priority basis; this is not always true with the Scrum. Therefore, the XP team can postpone the current iteration if it happens that they receive a new iteration which is of the higher priority than the current iteration.
- XP has the customer that acts as the role of the product owner as in Scrum.
- Both XP and Scrum has the daily standup meetings and other meetings as desired per project needs.
After discussing all the three agile methodologies, it can be concluded that all of these three methodologies has their pros and cons and are adopted as per the project needs. E.g., production support project should adopt Kanban, development project can adopt Scrum if sprint are best suited or if iterations are very short due to frequent requirement changes then XP methodology is the best suitable project methodology.