What is the Difference between Agile, Kanban and Scrum in less than 5 minutes?
First let us remember that the Agile Movement was born in 2001 in the field of Software Development, at a time when complex and highly ineffective methods and management philosophies were being used to try to deliver software projects. They were collectively called heavy processes, because of the large number of steps they required to get anything done, the Rational Unified Process or RUP is one of them.
Agile represents a response to these failing methods and philosophies, and a promise of increased success for developers, managers and customers on each of their software projects. Agile also is a set of values and principles to achieve organizations that are able to quickly respond and adapt to change, leapfrogging or beating their competitors. Jim Highsmith key organizer of the Agile Manifesto expresses it this way: “The future of our Information Age economy belongs to the Agile, those companies who have the capacity to create change, and maybe even a little chaos, for their competitors… in a world of constant change, traditional, rigorous project management and software development methods are insufficient for success.”
To understand the difference between Agile, Kanban and Scrum we must first understand the scope, and the historic context they belong to. The easiest way to do this is to observe the Pyramid of Agile diagram above.
You will notice that in the diagram Agile itself is made out of two core components on the top:
- A set of values that make Agility possible. Four in total: Communication, Working Software, Collaboration and Responding to Change.
- Principles that support those values. In total they are 12. Together they provide specific guidance on ways to achieve the 4 Values. For example regarding Communication we can identify 3 principles: Face to Face communication is encouraged, Business and Developers are expected to work together during a project and Self-Organizing Teams are recommended.
- Methods are detailed Lightweight Processes, Theory and Tools to make Agility possible. That means methods embrace the values, follow the principles but achieve them through different, but similar ways. As you see on the diagram Scrum is just one of these Methods to achieve Agility. Kanban is also another method, as is XP, and several others. One example will make this clear, again regarding Communication: XP stresses that people work in Pairs, and that the team shares the same physical space. Kanban however emphasizes the objective of Continuos Flow which implies that all people in a project fully communicate, but it does not mandate how to do it.
Being Agile means following a set of values and principles that make your Software Organization or Company to embrace and respond to change. How you actually get there depends on the methods you choose, or design yourself.
Regarding Kanban and Scrum both aim to achieve agility in software development. The differences come from the origin of both, the organizational reach they are designed to achieve and the detail level of their processes.
Scrum is custom made for achieving Agility for IT and especially for Software Development. It is quite opinionated and prescriptive in the ways it advices how to achieve this. So it has a variety of processes, rules, roles and theory to guide its practitioners. Many see Scrum as too much effort and complexity to achieve Agility, others however like it and enjoy it’s benefits.
Kanban has at least three influences over it’s history, the Agile Movement is just one of them, another is the Lean Movement and the last is the Theory of Constraints. Those last two elements of Kanban’s heritage make it suitable to address not just Software Development but also Agility at an Organizational wide scale. Another key characteristic of Kanban is it’s initial simplicity: just 5 characteristics summarize the whole method, however once you start you discover that it’s reach is deep and that is able to transform not just IT, but a whole enterprise.
Kanban also encourages its practitioners to take the best ideas from other fields to apply it to achieving Agility and Lean. In our own approach we combine Software Development best practices, and the best ideas from XP and Crystal to deliver solutions. We call this approach Agile Kanban to emphasize it’s focus on the IT world, and on business agility.
If you would like to find out more about Kanban in particular, we recommend you read about Open Kanban, and Kanban Ace. Open Kanban is the first Agile and Lean method that is fully open source. Kanban Ace extends Open Kanban to address the needs of IT, Software Development and business.