Besides Lean and Six Sigma, there are many other methods of organising or improving processes. Agile Software Development is one of these, and is a highly popular, upcoming IT method. It is a collective term that denotes various software development methods, which include e.g. Scrum, Kanban and Lean software development.
The term ‘agile’ originated in 2001 when the Agile Manifesto was compiled during a gathering of software developers. This statement contains four points that these developers considered important in the world of software development:
- People and interaction are more important than processes and tools.
- Working software is more important than documentation.
- Managing change is more important than following a plan.
This was followed by 12 principles to which agile software development must conform:
- Customer satisfaction through fast and consistent supply of operational software.
- Late changes to the specifications of the customer are actually welcome.
- Software that performs well supplied within a period of a few weeks.
- Close cooperation on a daily basis between developers and the people who are familiar with the business.
- Projects carried out by motivated and reliable people.
- Ideal communication is verbal communication.
- Supply of working software is a yardstick for progress.
- Development can always continue.
- Constant attention paid to technical quality and good design.
- The less that has to be done, the better.
- Self-organisation of teams.
- Adapting to circumstances is a must.
This manifesto was a response to traditional project management – also called the waterfall method – in which the emphasis is on planned process steps and a lot of documentation. When it comes to agile software development, it is more important to be able to anticipate (unexpected) changes throughout the entire process. Supplying a functioning sub-product gives the customer the option of changing his specifications and gives the development team the time to implement improvements. The goal is to eventually supply an end product that fully conforms to the specifications of the customer, and that matches the alternating circumstances within the company or the technical developments that have taken place.
Agile development methods are characterised by the short period – generally 1-4 weeks – in which software is developed. These periods are called iterations and can be considered subprojects that deliver something operational at the end of the period. Prototypes are tested and assessed, after which improvements can be implemented. In this way, the development team knows whether it is heading in the right direction and a new iteration can be started without any risk.
Not only the product is assessed, so is the development process. The goal here is to strive toward continuous improvement, a characteristic adopted from the Lean method.
In contrast to the waterfall method, in which documentation is important, the emphasis in agile software development is on personal contact. Agile development teams always work at a single location to encourage communication.
As a final agile characteristic, a sub-product that actually functions is produced after each iteration. It must be possible to immediately incorporate such a product into existing software to test whether everything works as it should.
Would you like to know more about agile development methods? Read our blog about Scrum and Lean Management here, in which we compare the two methods to one another.