The 12 Agile Manifesto Principles – Agile Software Development Principles


12 Agile Manifesto Principles explained in detail 

There are 12 principles behind Agile Manifesto values, let us go through these 12 Agile Manifesto principles and understand them one by one in detail. 

It is important to understand these 12 principles of Agile Software Development.

If you are planning to do ISTQB Agile tester exam and move to an Agile tester role, then having a good understanding of 12 Agile Manifesto principles is very important.

Satisfy customer through early and continuous delivery of software.

Customer satisfaction is the key in Agile Software Development.

In order to satisfy customer it is very important to get early feedback by delivering a working software early in the development lifecyle.

The software is build incrementally and regular feedback is obtained by customers by doing a software demonstration (AKA, showcase) after end of each sprint (2-4 weeks time boxed development cycle)

Welcome changing requirements, even late in development.

As changes are inevitable in software development process, Agile software development welcomes requirement changes during development.

Due to delivery of working software within few weeks cycles and continuous customer collaboration, the changes if required are welcomed and implemented in the next release cycle.

Frequent delivery of software

Agile development methodology “Scrum” follows the 2-4 weeks development cycle and delivers a working code after these cycles.

Due to frequent delivery of software in Scrum, it becomes very easy for stakeholders to have a quick look at working software and provide feedback.

Agile development advocates frequent delivery of software which could be few weeks to few months, preferable weeks.

Daily collaboration among business people and development team

Agile development advocates daily interaction and collaboration within the whole team.

The development team should be having daily conversation with business stakeholders to get feedback and details around any unclear requirements.

Build project around motivated individuals, provide support and trust team

It is the team members of development teams who deliver the actual software for customer and end users.

Agile teams should be built with skilled and motivated team members.

Once the team is formed they should be given decision-making power in order to come up with the best possible solutions.

Motivated individuals take ownership, communicate regularly with other team members, and share ideas that deliver quality products.

Face to face conversation and collaboration

Colocation is another principle of Agile Manifesto, when teams are colocated, face to face communication becomes very easy.

Collaboration within each team member on a regular basis is easily possible only if all the members are colocated at one place.

Working software is the primary measure of progress.

Delivering the working software is the primary measure of progress in Agile software development.

In SCRUM, the showcase is done at the end of every sprint (time boxed 2-4 weeks development cycle) to demonstrate the working software.

Agile processes promote sustainable development and team should be able to maintain a constant pace

Agile development promotes the sustainable development pace and teams deliver working software with this pace in each iteration.

Attention to technical excellence and good design enhances agility

As the Agile development comprise of motivated individuals, they come up with best skills and right solutions which can accomodate any changes if required.

This ensures that team can maintain the pace and sustain changes if required.

Simplicity – the art of maximizing the amount 
of work not done–is essential

Agile processes also advocate simplicity to any delivery. Develop just enough to get the job done in a simple way.

Agile team should be focusing on essential things which create value to the customer and not on distractors like unnecessary lengthy documentation, processes etc.

Self-organizing teams produce great products

Agile software development teams should be built by hiring skilled and motivated team members.

These team members should have decision-making power, take ownership, communicate regularly with other team members of the team.

Self motivated individuals collaborate and share ideas with other team members which in turn deliver good designs and quality products.

Retrospectives conducted regularly to analyse how to become more effective

Agile teams gather at regular intervals to brainstorm about improvements required to enhance the future delivery and quality.

They discuss about what worked well in past and what didn’t worked very well. They the action items are addressed to improve future deliverables.