As promised, in this blog I will focus on the four methods of Agile Software Development. They are as follows; XP (Extreme Programming), Scrum, Lean and Kanban.
XP (Extreme Programming) is successful because it stresses customer satisfaction. Instead of delivering everything you could possibly want on some date far in the future this process delivers the software to you need as you need it. XP encourages team work where all managers, customers and suppliers are all equal, working in a highly productive environment. The following flow chart shows how Extreme Programming rules work together to achieve a result as effectively and efficiently as possible.
Of all the agile methodologies, Scrum is unique because it introduced the idea of “empirical process control.” That is, Scrum uses the real-world progress of a project — not a best guess or uninformed forecast — to plan and schedule releases. Like XP, scrum also has a team-based approach however instead of it all being a joint effort everyone has clear defined roles and responsibilities. Scrum has three fundamental roles; 1. Product role, 2. ScrumMaster and 3. TeamMember.
Lean software development is an iterative methodology.owes much of its principles and practices to the Lean Enterprise movement, and the practices of companies like Toyota. It focuses the team on delivering value to the customer, and on the efficiency and the mechanisms that deliver value. The main principles of Lean include:
- Eliminating waste
- Amplifying learning
- Deciding as late as possible
- Delivering as fast as possible
- Empowering the team
- Building integrity
- Seeing the whole
Kanban is an agile methodology for managing the creation of products with an emphasis on continual delivery while not overburdening the development team. Like Scrum, Kanban is a process designed to help teams work together more effectively. There are three basic principles of Kanban and they are as follows
- Visualise what you do today: seeing all the items in context of each other can be very informative
- Limit the amount of work in progress: this helps balance the flow-based approach so teams don’t start and commit to too much work at once
- Enhance flow: when something is finished, the next highest thing from the backlog is pulled into play
Lean and Kanban are probably less common methods of Agile Software Development (ASD) than XP and Scrum. However, all methods are equally as important as each other and have their own advantages and disadvantages.