Agile principles, Agile Manifesto principles, 12 agile principles, the twelve principles behind the Agile Manifesto
The 12 Agile Principles behind the Agile Manifesto
- 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 Manifesto Principles
1 – Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
Customer satisfaction is achieved by delivering value faster, continuous delivery of working software and rapid feedback loops. Delivering early and continuously software that provides some business value is the measure of success.
2 – Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage
Responding to change is crucial for customer satisfaction and changing requirements may come even late in the process. While Waterfall had a strict change control process and rigid contract renegotiation, the only constant in Agile is change, which means reprioritizing what is realistic to be delivered.
3 – Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale
Working software that can be released, used and for which frequent feedback can be provided is delivered on a shorter time-scale, while constantly aligning work with business goals.
4 – Business people and developers must work together daily throughout the project
Developers, the team and the stakeholders or the customers are encouraged to collaborate on a daily basis, to get questions answered and to be aligned. Agile teams are composed of business and technical roles working together to build useful products.
5 – Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done
By having the team motivated and trusting them to collaborate, inspect and adapt, the need for micro-managing or status reports decreases and the team increases its self-management and self-organized characteristics. Management act as servant-leaders, motivating and supporting the team on this journey.
6 – The most efficient and effective method of conveying information to and within a development team is face-to-face conversation
Instead of writing comprehensive documentation upfront and delivering it to individuals in an impersonal way, as tickets, messages etc. this agile principle encourages face to face communication and discussion to better understand the information exchanged in the agile team.
7 – Working software is the primary measure of progress
The most important way to measure progress is working software, with shippable increments of value delivered early and often and with less focus on other metrics.
8 – Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely
Sustainable development means that instead of working in phases and cascading pressure and deadlines from each development phase to the next one, this agile principle promotes focusing on what the team can handle as load based on their estimates, capacity and current context. Sustainable development is focusing on the key features that need to be developed by the team at a sustainable pace in order to stay productive for a long period and avoid stress and burnout.
9 – Continuous attention to technical excellence and good design enhances agility
Technical excellence should come from the beginning of the project and continue to be a focus indefinitely, because it is more sustainable to build on solid grounds later, to reduce the anticipated technical debt and bug ratio and to add small increments of working software over and over. Agile teams follow good architecture and design principles, they use many development techniques like test-driven development, test automation, pair programming etc. in order to maintain technical excellence.
10 – Simplicity – the art of maximizing the amount of work not done – is essential
In agile, the focus is on building just the right thing, the minimum that gives value to the user and having a meaning for everything that is being worked on by the team. Agile teams keep things simple and stay focused on what the customer needs, therefore they meet the requirements in the simplest manner.
11 – The best architectures, requirements, and designs emerge from self-organizing teams
The agile team is self-organizing, meaning that the right people with the right skillsets for the current project to be successful are working together in the team without significant help from the outside. Team members are skilled and motivated to do the job on their own and they are figuring out the optimal way to do it.
12 – At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly
The agile team is continually reflecting at regular intervals on what went well and what can be improved in their ways of working and incorporate the changes in the process, thus making itself more successful every few weeks.
The twelve Principles of Agile Software Development
The twelve principles of Agile software development are a logical extension of the four agile values described in the Agile Manifesto and are listed on the original website https://agilemanifesto.org/principles.html