In 2001, the Agile Manifesto surfaced. It wanted to change the software development process. The manifesto has four central topics, but not many people know that there are also 12 Agile Principles. These offer more real examples of how agile software development should take place. Many years later, almost every organization will say they “do agile” but many only provide edge service to the values and principles of the Agile Manifesto. The world of software development has also changed drastically. It’s interesting to revisit the agile principles, see what they mean, and assess whether they still matter.
The 12 principles articulated in the Agile Manifesto are:
- Customer satisfaction through early and continuous software delivery – Customer satisfaction is obtained through early delivery of products to customer for testing and feedback, through continuous delivery to let customer know the progression and through delivery of values to the customers by fulfilling the top priority requirements first. The output of each reiteration is working code that can be used to evaluate and respond to.
- Accommodate changing requirements throughout the development process – The ability to avoid make late when a requirement or feature request changes.
- Frequent delivery of working software – Scrum accommodates this principle this provides immediate values to the customers by delivering working features. Each iteration or Sprint should lead the way to a release of a product. The teams make sure that each feature is fully developed, tested, styled, and accepted by the product owner before counting it as delivered. The project team activities can be better designed with the fixed delivery timeframe to focus on delivery of value.
- Collaboration between the business stakeholders and developers throughout the project – Better decisions are made when the business and technical team are aligned.
- Support, trust, and motivate the people involved – Motivated teams are more likely to deliver their best work than unhappy teams.
- Enable face-to-face interactions – Obtain direct feedback by going to the source of problem or confusion and use oral communication at the workplace for the benefit of osmotic communication. Virtual team conversations are facilitated via video conferencing.
- Working software is the primary measure of progress – The most important measure for business should be working software. As a happy customer is a result of working software, as an alternative of focusing in unnecessary QA, sales and productivity metrics we should measure on value, listening to customer satisfaction, as this is what defined to be working software. This also tells how well the progress of the team.
- Agile processes to support a consistent development speed – Teams establish a repeatable and maintainable speed at which they can deliver working software, and they repeat it with each release.
- Attention to technical detail and design enhances agility – The right skills and good design make sure the team can maintain the speed, constantly develop the product, and sustain change.
- Simplicity – The Pareto principle or the 80/20 rule is applied. It means that typically 80% of your results may actually come from only 20% of your efforts! The idea is to focus on the important 20% of effort that gets the majority of the results. If you have control over the scope, and if speed-to-market is of main importance, why not pursue to deliver the important 80% of your product in just 20% of the time? Focus on what are crucial to create value to the project and customer not on distracters that do not add values like components, process, etc.
- Self-organizing teams encourage great architectures, designs, and requirements– Skilled and motivated team members, who have decision-making power, take ownership; communicate regularly with other team members, and split ideas that deliver quality products.
- Regular reflections on how to become more effective – Apply the improvement process activities like the retrospective and other activities more often. Self-organize team tune to it and do the sanity check regularly. As project situation and realities keep changing, it’s not only process improvement but the team need to adjust its behavior to any change circumstance. Assuming that sprint scope keep on changing, it could be frustrating, but the team needs to understand that those changes are directly coming from customers, it affect heavily on the value proposition and revenue stream.
The Agile Manifesto’s purpose
Proponents of Agile methodologies say the four values defined in the Agile Manifesto promote a software development process that focuses on quality by creating products that meet consumers’ needs and expectations. The 12 principles are intended to create and support a work environment that is focused on the customer, that aligns to business objectives, and that can respond and axis quickly as user needs and market forces change.
The purpose of Agile is to align development with business needs, and the success of Agile is apparent. Agile projects are customer focused and support customer guidance and participation. As a result, Agile has grown to be an extensive view of software development throughout the software industry and an industry all by itself.