What are the 12 agile principles?
In addition to the 4 core values of agile as outlined in the Agile Manifesto, its authors also penned 12 agile principles. These principles serve to help fine-tune the idea of agile development, they act as clauses and make sure the 4 core values are never taken out of context or pushed to the extreme.
The 12 agile principles
These 12 principles are taken verbatim from the agile manifesto.
1. “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
This is less of a guideline, and more a proof-of-concept result that comes from good use of agile methods.
2. “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”
Times change, so too does technology and client demands. If a product needs to be changed at the end of the development cycle, its likely because the initial product no longer suits its intended audience.
Better to change what’s being produced and have a useful final product than to continue making a product that no longer has a use.
3. “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”
Delivering new iterations of software at regular intervals, regardless of how much – or how little – progress has been made helps give customers a realistic development time-frame.
Customers can make small adjustments thought the development cycle to ensure they are satisfied with the final product.
4. “Business people and developers must work together daily throughout the project.”
If one looks at agile development frameworks today, a common trend among them is the prioritization of communication through all levels of the development team. Gone are the strict hierarchies of yesteryear.
New agile development incorporates customers, clients, stakeholders and developers in the development cycle – often in the same room at the same time.
5. “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”
It’s no secret that good work conditions make for happier employees and smoother development.
There’s no need for micro-management when a project is placed in the right hands. Instead, the emphasis is on self-organising teams.
6. “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
Contemporary agile management frameworks, such as Scrum, prioritize daily team meetings and inter-personal communication. This ensures that nothing is lost in translation and any questions a team might have can be discussed in an open forum.
Agile meetings involve all parties involved in development, including end-users, customer and developers.
7. “Working software is the primary measure of progress.”
This is fairly self-explanatory, but at the time, authors of the Agile Manifesto wanted the software development industry to move away from excessive documentation as a sign of progress to more meaningful indicators of success.
8. “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.”
This is arguably the most important agile principle. The various agile methods we use today all employ various techniques to ensure that development is sustainable. For example, Kanban eliminates bottlenecks by limiting the number of tasks carried out simultaneously.
Agile methods ensure smoother development by preventing teams from over-committing and focusing on improved time-boxed iterations throughout development.
9. “Continuous attention to technical excellence and good design enhances agility.”
This can be achieved by smaller, frequent iterations of a product and a commitment to sound engineering practices.
Good design emerges from constant communication between developers, customers and end-users.
10. “Simplicity – the art of maximizing the amount of work not done – is essential.”
This might seem counterintuitive, but it simply means that any bloated processes that have no tangible benefit should be cut from development. It also means focusing on eliminating over-elaborate designs or architectures.
Adopting the KISS (Keep It Simple Stupid!) principle can be useful.
11. “The best architectures, requirements, and designs emerge from self-organizing teams.”
Self-organizing teams effectively function as meritocracies. A self-organizing team is better suited to understanding the collective problem-solving capacity of the individuals it is composed of and can assigned duties to those best-suited for the task, maximizing its effectiveness.
12. “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.”
This is another principle that contemporary agile frameworks have really taken to heart. This idea is best illustrated by Scrum’s emphasis on improved time-boxed iterations. For development to proceed smoothly, it is necessary for a team to reflect on its past performance and remove obstacles that might impede future development.
Agile allows the team to continuously improve its development processes throughout an agile project.
Throughout the years, new agile methods have been developed under many different names: Six-Sigma, Scrum etc. Regardless of what they choose to call themselves however, the underlying principles and values behind these methodologies have remained much less the same. That’s because the values of Agile are very much human values.
Agile aims to improve work environments and work culture. It makes everyone’s jobs easier. Customer satisfaction and smoother development are simply natural by-products of a happier, less stressful workplace.