How did agile get started?
Agile got started in 2001. In this year there was a meeting of people in software development coming from different backgrounds. They all felt that change was needed. Software development was often late in delivery and seldom within budget. This is because projects need to be able to adapt quicker to new technologies and changing needs from customers.
They decided on 12 principles and 4 values. These landed in the Agile Manifesto. You can find the manifesto on www.agilemanifesto.org. The four values are mentioned below. As you can see it involves quite a lot of change. In past software development approaches a lot of emphasis was placed on processes, contracts and documentation. It is not that that is bad, but it has been the case that a lot of project spent too much time on these things to still be able to deliver on time.
When agile says working software over comprehensive documentation, they do not mean that you should not document a thing. They do mean that when priorities are set, working software is more urgent than comprehensive documentation. They also mean that more documentation is not always better. The documentation does not need to be comprehensive as long as it provides you with the information you need to keep developing the software.
The other values should be read the same way. You need processes and tools, but when a choice needs to be made you should trust people and interactions over processes and tools.
The 12 principles
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Agile in combination with scrum and lean six sigma
As you can see from the principles and the values. Agile tells you how to do your work and how to make choices if needed. It does not tell you the who, what and when of software development.
For this what, who and when software development uses scrum. Scrum gives you processes, time-frames and roles with which you can deliver software.
Scrum does not have a lot of tools. For this they use lean and six sigma in software development. The most common tools are kaizen (DMAIC), kanban, kata and value stream mapping.
Scrum is about 1 team of 9-15 people delivering a product. In corporate environments there are usually more team’s working on the same product. For this SAFe has been created. Below you can find an infographic with the definitions of each of these approaches.
In future blogs I will delve into scrum, SAFe and six sigma. For now I hope you enjoyed this introduction!