Agile, Scrum and Kanban, three buzzwords have become very popular in most of the industries recently. Mostly for software engineers these are daily routine now. Still those who find these as alien words, let me give you a brief intro about these three.
The seeds of a new world view were already sown in the 1990’s, and resulted in 2001 in the formal naming of ‘Agile’. A new paradigm for the software industry was born; a paradigm that thrives upon heuristics and creativity.
A shift from the traditional process, Agile has curved a way to new horizon.
Agile Manifesto : The Agile Manifesto, also called the Manifesto for Agile Software Development, is a formal proclamation of four key values and 12 principles to guide an iterative and people-centric approach to software development.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Agile is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once.
Scrum is an agile software development model based on multiple small teams working in an intensive and interdependent manner. The term is named for the scrum (or scrummage) formation in rugby, which is used to restart the game after an event that causes play to stop, such as an infringement.
Scrum employs real-time decision-making processes based on actual events and information. This requires well-trained and specialized teams capable of self-management, communication and decision-making. The teams in the organization work together while constantly focusing on their common interests.
Scrum is a full flagged agile framework. There are different phases and events act in collaboration to result a quality delivery.
What is the difference between Agile and Scrum:
Asking this question reminds me about the answer of difference between water and ice. Scrum is a state/shaping of Agile process.
Scrum and Kanban in software development are both specific shaping of an agile software methodology.
Kanban is used in inventory process control system. Kanban was developed by Taiichi Ohno, an industrial engineer at Toyota, as a system to improve and maintain a high level of production. Kanban is one method to achieve JIT (Just In Time).
Agile software development teams today are able to leverage these same JIT principles by matching the amount of work in progress (WIP) to the team’s capacity. This gives teams more flexible planning options, faster output, clearer focus, and transparency throughout the development cycle.
For every column (state) on your Kanban board you should define a “Work In Progress”-Limit (WIP Limit). The WIP limit tells you how much work items are allowed to be in a certain state at any given point in time. If a state reaches its pre-defined WIP limit, no new work can enter that state. The whole team has to help clear the filled up state first. Work items trapped in a state will build highly visible clusters on the Kanban board. It’s a good approach to handle production support.
Why Agile? What’s wrong with Waterfall?
Expectations have not limit. Change is part of our daily life. Something very new today is old tomorrow. Everyone is adapting the change to sustain in this volatile environment. We look for flexibility instead of any fixed state. Agile brings change and creativity. Waterfall sticks to a fix state. It doesn’t have iterative nature to accept change.
– S Bhattacharjee,
Certified Scrum Master (CSM),