Agile Software Development consists of software development methods. These development methods are realised through the partnership of collaborative teams. The four main methodologies of Agile Software Development are:
- XP (Extreme Programming)
This post will focus on the Kanban methodology. Kanban is a recently developed method for developing software products. It underpins Toyota’s JIT (Just in Time) production system which was developed by Taiichi Onho in Japan in the mid 1900s. In 2004 David Anderson encouraged a more direct application of lean thinking and Theory of Constraints to software development. This then developed into a new theory which David called a “Kanban system for software development”. It is now most commonly referred to as just “Kanban”.
The core ideas of Kanban are:
- Workflow is Visualized
- The work is split into fragments. Each item is written on a card and put on the wall.
- Named columns are used to illustrate where each item is in the workflow.
- WIP (work in progress) is Limited – Explicit limits are assigned to restrict how many items may be in progress at each workflow state.
- The lead time is measured – Lead time means the average time to complete one item. It is sometimes referred to as “cycle time”. optimize The process is optimized to make lead time as small and predictable as possible.
This is a direct implementation of a lean pull scheduling system. Here’s an example of a simple Kanban board, with WIP limits in red.