Agile has revolutionised software development. Today, agile principles underpin all agile development practices and methods. Applied correctly, the 12 agile principles help overcome many of the problems experienced on traditional projects such as late delivery and quality problems.
Agile is based on 4 key values and 12 key principles. While the agile values provide project managers and developers with a very general overview of what it means to be ‘agile,’ and help guide the agile process, the 12 agile principles give examples of how agile should be implemented.
The 12 agile principles underpin every successful agile project and can inspire even non-agile teams. They form a core part of any agile project management course.
1. Early and continuous delivery of valuable software
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
When developing a product, speed and precision is key. Should development take too long, there is an increasing risk that the final product will no longer satisfy rapidly changing market demands and consumer needs.
Traditional methods may often develop a product in a vacuum, following a strict development plan with no deviation which results in delivering a final product that is already obsolete.
Agile aims to deliver a functioning product in the very first development iteration. It will be a long way from being finished; but it just has to give the customer enough of an idea so that developers can receive valuable feedback. In doing so, agile projects can tailor the product as it is being developed to deliver something that satisfies customers’ needs.
Agile takes large tasks and breaks them up into smaller, more manageable chunks. The interactive nature of agile not only improves project development but also service delivery.
2. Embrace change
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Project development is becoming increasingly unpredictable. Markets are becoming more complex and the number of diverse products available to consumers grows every day. It’s nearly impossible to predict what the final requirements of a project will be and as such, development projects are an increasingly risky.
Most businesses don’t like risk, but what is even less desirable is wasting time and resources developing a product that’s no longer relevant by the time it’s finally completed. By welcoming change and actively seeking to make improvements through consumer feedback, businesses can gain a competitive edge - their products will satisfy the immediate needs of consumers and their products will be guaranteed to provide business value.
People change, times change, markets change. Trying to fight it is pointless. Traditional project management usually sees change as a problem to be solved, but agile embraces change and uses it to the customer’s advantage.
3. Frequent delivery
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
This principle may closely mirror the first, but while the first states that products should be delivered early, this principle goes a little more into detail as to why products should be delivered continuously.
Smaller, more frequent releases mean less chance of error. Frequent releases give consumers more opportunity to provide feedback which, in turn, aids developers in correcting errors that might otherwise have derailed a project. If developers only receive feedback every few months, any errors made early in development may have since become much more difficult and costly to fix.
Many businesses apply this principle so that they deliver new iterations of software or products every few days. This just goes to show the importance of frequent delivery, which is arguably one of the most defining agile principles.
Business people and developers must work together daily throughout the project.
In traditional management, the work business owners and stakeholders is usually kept distinct from the work of developers. Analysist are put in place to ‘translate’ business needs into development plans and project managers simply help mediate the demands of owners in a way that doesn’t negatively affect product development.
Agile requires that stakeholders, customers and developers work in unison (often in the same room) to achieve project goals. This reduces the risk inherent to project development, by helping improve communication and cooperation. In addition, the more closely management is involved with development, the easier it is for them to understand the challenges faced by developers and the ramifications of changes made to development.
5. Autonomy and motivation
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Excessive meddling by management rarely benefits project development. Managers have to trust their development teams to get the work done without constant micro-management. Given the correct agile training, tools and resources, developers should otherwise be given total autonomy to complete tasks in whichever way they see fit.
Too often, business owners forget that their employees are professionals who take pride in their work (this is especially true in any creative role). If you build your projects around people who aren't motivated to succeed, they're very likely to fail. That’s not the fault of developers, it’s the fault of management.
Owners and managers need to create an environment that rewards success, fosters healthy working relationships and helps improve employees’ work/life balance. Give developers the tools and motivation to succeed and you’ll be rewarded with easier project development and better returns on investment.
6. Better communication
The most efficient and effective method of information to and within a development is face-to-face conversation.
Technology provides businesses a hundred different ways to communicate with employees, but none will ever be as good as face-to-face communication. 2020 has drastically changed the way we work, with more employees working remotely than ever before, businesses are becoming reliant on communication tools such as Skype and Microsoft Teams. While these might be just good enough, the changes of error do increase when teams lack fact-to-face communication. Information gets lost in translation, emails and memos get buried in inboxes etc.
7. Working software
Working software is the primary measure of progress.
Replace ‘software’ with ‘products’ and you’ll find a fairly self-explanatory principles applicable to every project every developed. This principle came about in response to excessive documentation and procedures in the IT industry that slowed development.
In other industries, this principle might be summarized as such: “A working product is more valuable than a checklist.” Requirements analysis documents, models and mock-ups may be useful, but they aren’t very useful if you can’t convert this information into a working product.
Project managers and business owners alike need to focus on minimizing paperwork and maximizing productivity. Unfinished products are inventory and inventory is an expense that provides no value.
8. Stable work environments
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Agile promotes the idea of sustainable development. In short, this means that with the correct implementation of agile methods, there should never be the need for developers to work ridiculous hours just to meet deadlines.
Agile requires stakeholders, customers and developers to act as one coherent team. When everyone involved feeds information into an agile framework, it becomes very easy to create accurate forecasts, budgets and timelines.
Customers tell developers what they need, stakeholders understand how changes may affect development and teams can make informed decisions as to how progress is to be made. No one is left out of the loop and no one is taken by surprise by unexpected developments.
This helps reduce stress and avoids employee ‘burn out.’
9. Quality assurance
Continuous attention to technical excellence and good design enhances agility.
Many businesses prioritize speed or quantity over quality. In some cases, this makes a lot of sense. Sometimes customers don’t care as much for quality so whether or not a product works.
But, if development teams neglect quality for too long, their ability to adapt the product to suit current consumer demands diminishes and it becomes less agile.
Simplicity—the art of maximizing the amount of work not done—is essential.
This principle is like number 7: working software. But while the focus of that principle was about removing unnecessary documentation, this principle focuses more on processes.
This principle can be achieved in several ways. Firstly, you can remove bloated processes that do not contribute to the overall quality or progress of a project. Secondly, you can rely on automation to complete repetitive or time-consuming tasks. Or thirdly, you might use pre-existing assets from past projects rather than creating ones from scratch each time you begin something new.
This principle should be an ongoing effort. Agile teams need to recognize that there is always room for improvement. Technology provides us more varied, easier ways of doing things. Project management research helps managers and business continuously improve their practices to suit modern trends etc.
Being agile requires businesses hold weekly or even daily meetings. A large part of these should be dedicated towards finding new and better ways of accomplishing tasks.
11. Self-organizing teams
The best architectures, requirements, and designs emerge from self-organizing teams.
This principle is similar to number 5: autonomy and motivation. The difference here lies in the comparison between agile teams and traditional development teams. Traditional methods often compartmentalize their development teams. For example, ‘Team A’ completes one task, then passes it on to ‘Team B’ who layers their contribution on top of this etc.
Agile teams however, are comprised of multiple individuals, who share a wide variety of skills in several disciplines. Furthermore, agile development teams often include stakeholders, managers and consumers as core team-members. This allows them to work independently as a unit without the need to look to others for assistance.
This not only minimizes the need for upper management to micro-manage development but also ensures that processes such as quality assurance and adaptation are an inherent part of agile development and thus occur naturally and autonomously.
12. Reflection and adjustment
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
This final principle is almost a proof-of-concept principle that indicates whether or not agile methodologies have been adequately incorporated into business strategy. Reflection on past success or failures and responsibly changing approaches to compensate is what makes agile so successful.
Doing so requires communication, feedback, an understanding of agile methods and an environment that encourages both innovation and learning from mistakes.
No team acts perfectly but a mature, informed and responsible team can improve itself by taking both pro-active and reactive measures to improve development.
Why agile principles matter
Although the 12 agile principles were developed almost 2 decades ago, they are still relevant and will likely remain relevant for a long time to come.
That is because the key agile principles are anthropocentric. That is to say, they are based on human values and helps improve the quality of life in the workspace. Agile aims to improve the well-being of workers just as much as it aims to deliver high-quality products.
Better, smoother, more efficient development means happier, less stressed workers and more satisfied customers.
Below is our beautifully illustrated infographic detailing the agile principles. Perfect for anyone working on agile projects!
Download and print your free poster here. Put it on the wall in your workplace to help your team learn the 12 agile principles.
Feel free to use either of these graphics on your website, but please link back to this page so others can enjoy our free resources.