The 12 Agile Principles, which were developed at the same time as the Agile Manifesto, provide a little bit more detail from the Agile founders relating to vision and implementation of the Agile project management methodology.
In the 12 Principles, the founders expand on the four points in the Manifesto and provide a more detailed working explanation.
The Agile principles serve as the foundation under the Agile project management methodology and support the numerous Agile frameworks which serve as the day to day roles, processes and procedures of Agile. Frameworks include Scrum, Extreme Programming, etc.
Hence, the level of agility of a process is often cross-referenced to the 12 principles.
Here are the 12 Agile 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.
The 12 Agile principles are the cornerstone of Agile project management, and they provide the foundation for the method. Let’s start with the first principle.
#1 – Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
The defining feature of Agile project management is the delivery of finished, working product continuously in short iterations, instead of in one block planned completely up front. This does not mean that the schedule and budget must be fluid. Rather, some of the 20 – 30% of the project budget devoted to front end planning is eliminated, and the same project can be performed cheaper.
#2 – Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
The inherent ability of the agile method to “turn the ship” quickly allows the project to make fast changes even at the very end. This allows the customer to receive the product they desire without expensive project changes.
#3 – Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
The weeks-long timeframe is just enough to afford a product owner the ability to assess and adjust their preferences to the product and make requests for adjustments that can be accommodated in future iterations.
#4 – Business people and developers must work together daily throughout the project.
When a large amount of time elapses between product development and stakeholder review and input, the project inevitably drifts toward stakeholder dissatisfaction. Agile project management demands that the business side and the development side of the project communicate daily.
#5 – Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Most projects tend to “pigeonhole” their members into responsibilities that fit into a job description or well defined box. In most projects, one or two individuals provide the primary support network to ensure the project’s timely and successful completion. These individuals need to be empowered regardless of what “box” they have been placed into.
#6 – The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
There is no substitute for face to face conversation. Agile project management must seek to eliminate bureaucratic, email and written communication that tends to drag out project decision making wherever possible.
#7 – Working software is the primary measure of progress.
Unlike traditional project management, where progress is measured by hours worked or amount invoiced (or amount of completed work not in the hands of the customer), Agile’s primary method of progress is working, shippable product in the hands of the customer.
#8 – Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Agile project management requires that project work continue at a constant pace that does not slow down and speed up.
#9 – Continuous attention to technical excellence and good design enhances agility.
Agile projects pay very close attention to detail. This allows faster pivoting to adjust to project changes when past work is complete and high quality.
#10 – Simplicity – the art of maximizing the amount of work not done – is essential.
Because of the iterative nature of the Agile process, the minimum viable project scope is produced and any additional features requested are accommodated in future iterations. This creates the maximum efficiency without wasted planning effort.
#11 – The best architectures, requirements, and designs emerge from self-organizing teams.
When a self organizing team with a servant leader (Scrum master, etc.) is used as a project management team, the result is faster, higher quality products than using a top-down project management style.
#12 – At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
To promote the maximum ability to accommodate project changes, the project team holds retrospective meetings to critique their own processes and procedures, making adjustments as necessary to improve project team efficiency for the next iteration.
Software Development Methods
The 12 Agile Principles support many different software development methods that collectively fall under the agile umbrella. These include:
- Scrum
- Extreme programming (XP)
- Rapid Application Development (RAD)
- Dynamic Systems Development Method (DSDM)
- Crystal Clear
- Feature Driven Development (FDD)
The software development methods are considered agile if they align with the 12 agile principles.
Non-Software Projects
Projects in other industries can be agile if they meet the criteria outlined by the 12 principles.
For example, a construction project could be considered agile if it performs the following actions.
- Delivers finished, working, and tested products in short increments to satisfy agile principles #1 and #3. This could mean holding a final inspection for the excavation, foundation, and finished building instead of only one final inspection at the end.
- Hold daily (or similar, high-frequency) meetings between project staff and the product owner.
- Holds retrospective meetings to scrutinize their practices and processes after delivering a product increment (principle #12).
The vision of Agile was bold and transformational from the very beginning, and the 12 principles are the rock that holds the methodology together.
Leave a Reply