As part of the Agile Manifesto and in addition to the four agile values, agile practitioners follow 12 guiding principles. These values and principles are important in gaining the correct understanding of agile project management.
The agile guiding principles areas
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software or project.
The goal is to satisfy the customer by the continuous delivery of valuable software. Valuable software refers to software that is valued by the customer. The term “value” is a very important word and it represents the main focus of the agile framework.
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
This guiding principle demonstrates the agile framework’s flexibility and adaptability when dealing with change. Traditional project management is generally managed around a change management process and is sometimes viewed as being costly and enabling scope creep (i.e., small changes in a plan or project that necessitate other changes which lead to still more changes, etc.). The logic behind the acceptance of change is based on several factors
- Changes are considered to be the norm on agile projects.
- Flexibility and adaptability enable and support a customer’s competitive advantage by welcoming changes that add value at any time.
- Accepting change is faster than approving or denying changes.
Remember that agility is all about speed! Once again, readers need to understand that only those changes that “add value” are candidates for inclusion into the product. The agile team must fully understand that they should limit change discussions and actions to value- added propositions only.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
Early feedback is decidedly much better than proceeding on a project and getting feedback late. What is worse is that the project could end up heading in the wrong direction. Not only is going down the wrong path quite costly, it is also a great waste of time and effort. An iteration on agile projects should be between two weeks to one month, again with the preference always being the shorter time frame. Why do we want a shorter time frame? There are a couple of reasons
- Short delivery cycles result in regular feedback from the project stakeholders.
- Frequent delivery of working software is beneficial in that requirements can be quickly added or modified. Here again, speed is very relevant.
- How do frequent small changes increase the amount of value-added for the customer? Small and frequent changes can minimize the likelihood that the customer will have the need to create a large number of change requests.
- The goal of the agile project is to deliver value throughout the project. Accepting changes is one practice that supports the goal of consistently adding value to the product.
Business people and developers must work together daily throughout the project.
In order to deliver a project quickly, face- to- face interactions is the fastest way to communicate on agile projects. E- mails, phone calls, and documentation are considered to be less efficient and slower methods of communication. Daily face- to- face interactions between customers and developers enable a faster rate of transferring knowledge.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Motivated and talented people make a big impact on an agile project. The successful delivery of the product depends on empowered team members. Agile methods are based on self- directed and self- organized teams who can be trusted to get the job done. There is no micromanagement on agile projects.
The most efficient and effective method of conveying information to and within a development team is face- to- face conversation.
Such conversations are the fastest way to communicate on agile projects. The flow of communication is more effective and efficient for face to face in comparison with other methods. Inquiries and inconsistencies can be addressed very quickly.
Working software is the primary measure of progress. Progress on the agile project is determined by how well the software works.
This is a results-based focus that cannot be easily disputed. Working software shows the customer results that can be approved and accepted. It also shows progress made toward the end goal of product delivery. When the software works, only then can it be approved by the customer as being completed.
Agile processes promote sustainable development.
The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Agile methods support the project team’s need to have a life outside of work. This means that the expectation for the team is to maintain a sustainable pace based on a typical 40-hour workweek. Long work-days are not looked upon favorably on agile projects.
Continuous attention to technical excellence and good design enhances agility.
In order to deliver high value to the end client, it is often necessary for the development team to make changes to the design. This means that the design must be relatively easy to maintain. Technical excellence and a good design make for ease in understanding and making changes to the design. This in turn supports the ability to respond to change very quickly.
Simplicity—the art of maximizing the amount of work not done—is essential.
The author believes that this guiding principle is the trickiest one to understand. At face value, the principle talks about work not done. The question then becomes: “Why is there a concern about work not done?” From the agile perspective, work not done is more reliable because there is nothing that could go wrong with it. The development team does not code work that is not done so it’s perfect because it has not been touched. It is believed that over 60% of software features are included in a product but are rarely if ever used.
The best architectures, requirements, and designs emerge from self-organizing teams.
According to agile methods, when people are given the chance to self- manage themselves, they produce better work. This includes the best architectures, requirements, and designs. The best work is developed by those who are the originators of the work. Why is this so? Self- managing teams with the ability to make their own decisions take pride in ownership of their work.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
This guiding principle is simply about lessons learned and when they occur on the agile project. Agile methods support the idea that it is best not to wait until the end of a project to address lessons learned. Lessons learned need to be captured and addressed during the project. For example, in the case of Scrum, lessons learned should be addressed at the end of each Sprint (iteration).
The Agile Manifesto is based on the following principles:
Principle | Description |
Satisfaction and Delivery | Customer satisfaction through early and continuous working software. |
Welcoming Change | Welcome changing requirements, even at later stages of development. |
Deliver Frequently | Deliver working software frequently (weekly rather than monthly). |
Communication is the Key | Ensure close association of developers with business people on daily basis. |
Environment and Trust | Build projects around motivated individuals. Give them necessary support and trust them. |
Face-to-face Communication | Encourage face-to-face conversation to ensure efficient and effective communication. |
Software as Measure of Progress | Working software is the primary measure of progress. |
Sustainable Development | Promote sustainable development with the ability to maintain a constant pace throughout the development. |
Attention to Details | Continuous attention to technical excellence and good design. |
The Power of Less | Simplicity is essential. |
Self-organizing Teams | Regular attention of the team on becoming effective in changing circumstances. |