The agile manifesto is basically a document consisting of values and principles that are expressed in Agile. It was created in early 2001. It simply consists of 4 values and 12 key principles. This manifesto helps the development team to work more efficiently and provides a clear and measurable structure that promotes team collaboration, iterative development, etc. It is specially designed to improve development methodologies.
The 4 Agile Values
- Individuals and Interactions over Processes and Tools: It focuses on giving more attention and importance to communication with clients.
- Working Software over Comprehensive Documentation: It focuses on the completion of the project and making sure that the project is completing the final deliverables.
- Customer Collaboration over Contract Negotiation: It focuses on involving customers in all phases of the project so that the final product doesn’t lack any requirement that the client needs. It is done to ensure 100% customer satisfaction.
- Responding to Change over Following a Plan: It focuses on changes and motivates the team to adopt the change quickly so that higher quality products can be delivered. Therefore, agile works in short sprints so that changes can be utilized for good.
The 12 Agile Principles
- Customer Satisfaction: First priority is to fulfill customer demands to ensure 100% customer satisfaction.
- Welcome Change: Changes are important for improvement therefore even late in the development process, changes can be introduced and addressed throughout the development period.
- Deliver Frequently: Products have to be delivered as soon as possible therefore focus on a shorter timescale.
- Work Together: Both business stakeholders and team members work together through the development process for better collaboration.
- Motivated Team: For delivering high-quality products, team members are motivated and encouraged. Team members are given the environment and support they need to perform effectively.
- Face-to-Face: Agile emphasizes Face-to-face communication which is the most effective and efficient way of conveying information. It helps the team to communicate simple and complex information in an effective way.
- Working Software: Delivering working software to the customer is the major concern of Agile. Working software or product is the primary measure of progress towards the final product.
- Constant Pace: Agile promotes sustainable development. All teams, sponsors, developers, and users that are involved in the agile process should maintain a constant speed to deliver working software in a short timescale.
- Good Design: Focuses on good design and technical details to improve quality and agility (quick and graceful).
- Simplicity: Team focuses on tasks and features that are essential and reduces the amount of work and time spent on complex features and tasks that are not essential. It is done to keep things simple.
- Self-Organization: Agile team should be cross-functional and self-organized. It should not depend on the manager to assign work, instead should find their own work and manage the responsibilities and timelines. Such teams not only help to deliver good quality software but also provide the best designs, requirements, and architectures.
- Reflect and Adjust: To improve the effectiveness of a team, the team reflects on how to become more effective and assess their working style at regular intervals. This is done so that one can learn from their mistakes and take some steps to improve their performance in the next iterations.