The 12 Agile Manifesto Principles Simply Explained

The 12 Agile Manifesto Principles Simply Explained

Why were Agile Methodologies developed?

Agile methodologies were developed as a solution to the challenges of the traditional waterfall model of software development and the traditional project and team management principles. They started as software development approaches but later evolved into methods of managing teams and projects. In general, the shift in agile methodologies entails giving more weight to individuals and interactions over processes and tools, emphasis on working software over comprehensive documentation, focus on customer collaboration over contract negotiation and valuing responsiveness to change rather than the following of a plan.

Business Analysts, Project managers and Software developers ought to familiarize themselves with Agile methodologies because they are becoming popular, especially in mid-sized and small organizations. Even PRINCE2 methods are being enhanced to accommodate Agile methodologies.

In 2001, 17 software developers met in Utah and developed The Agile manifesto, which has twelve core principles. From these core principles, several Agile methodologies have emerged and they include Scrum, unified process, dynamic systems development method (DSDM), crystal clear, extreme programming (aka "XP"), adaptive software development and feature-driven development. And new flavours continue to emerge.

From Beck, Kent et al. (2001), below are the twelve core principles of the Agile Manifesto:

1. Customer satisfaction through early and continuous delivery of useful software

Customer satisfaction is obtained through early delivery of products to customer for testing and feedback, through continuous delivery to let customer know the progress and through delivery of values to the customers by fulfilling the top priority requirements first. The output of each iteration is working code that can be used to evaluate and respond to changing and evolving user requirements.

2. Welcome changing requirements, even late in development

This places emphasis on responsiveness to change as opposed to tight alignment to approved plans. The change control process is simplified and no formal documentation and approval required. This is harness change for the customer’s competitive advantage because it allow fast response to latest changes in external environment to enhance competitive advantage to emerging opportunities.

 3. Frequently Delivered Software(weeks rather than months)

This provides immediate values to the customers by delivering working features. Each iteration or Sprint should lead 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 structured with the fixed delivery timeframe to focus on delivery of value.

4. Close, daily cooperation between business people and developers

Agile development principles include keeping requirements and documentation lightweight, and acknowledging that change is a normal and acceptable reality in software development. This makes close collaboration particularly important to clarify requirements just-in-time and to keep all team members ‘on the same page’ throughout the development.

5. Projects are built around motivated individuals, who should be trusted

Projects are built around motivated individuals who are given the environment and support they need, and trusted to get the job done. Team members choose the jobs they are most interested in through self-organization and not through external management influence. Micromanagement and top-down approach to management are shunned.

6. Face-to-face conversation is the best form of communication

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.

7. Collocation and pair programming

This principle is practiced via colocation and pair programming. Collocation involves collocating a number of teams in the same open area and pair programming, which entails two programmers sharing a single workstation (one screen, keyboard and mouse). The programmer at the keyboard is usually called the "driver", the other, also actively involved in the programming task but focusing more on overall direction is the "navigator"; it is expected that the programmers swap roles every few minutes or so.  

This leads to increase in code quality because "programming out loud" leads to clearer articulation of the complexities and hidden details in coding tasks, reducing the risk of error or going down blind alleys. It also yields better diffusion of knowledge among the team. Other benefits include better transfer of skills, large reduction in coordination efforts, and improved resiliency of a pair to interruptions.

8. Sustainable development, able to maintain a constant pace

Agile methodologies seek work-life balance among the team members and promote happiness by avoiding burnout or exhaustion. Through close collaboration and by being alert and creative, these methodologies avoid long nights and weekends, during which people try to undo the errors of unresponsive planning. The sponsors, developers, and users are able to maintain a constant pace indefinitely.

9. Excellence through Reflection

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. These retrospective meetings ensure that the lessons learned during the project are put back into the next iteration.

10. Simplicity—the art of maximizing the amount of work not done—is essential

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 primary importance, why not seek to deliver the important 80% of your product in just 20% of the time?

Focus on what are essential to create value to the project and customer not on distractors that do not add values like components, process, etc.

11. Self-organizing teams

The team is utterly self-managing under the Scrum methodology. It has autonomy and responsibility to meet the goals of the sprint and is responsible for determining how it will accomplish the work to be completed. The basic principle is that the team knows best how to carry out the work, not the project manager or human resources department.

12. Regular adaptation to changing circumstance

This is in contrast to capturing all known requirements and baseline the scope so that any other changes are subject to change control. Agile Development holds that that requirements emerge and evolve, and that however much analysis and design you do, this will always be the case because you cannot really know for sure what you want until you see and use the software. And in the time you would have spent analyzing and reviewing requirements and designing a solution, external conditions could also have changed.

Very helpful, thank you.

UMESH BICHUKALE

Assistant Vice President at Citi India | Ex (LnT, Harman)

4y

Nice explanation. 

Like
Reply
Ben Purton

Cyber Security Analyst at Hewlett Packard Enterprise

4y
Balamurugan Balakrishnan

Agile Coach @ Infosys Consulting | SAFe Transformation, Dev Ops

4y

Nice explanation of principles.

Like
Reply
Ramanath Suryaprakash

Vice President, Partner Ecosystems and Alliances at Infosys

4y

Agile Narrative explained in simple English very well

Like
Reply

To view or add a comment, sign in

Insights from the community

Others also viewed

Explore topics