According to an independent study by DeltaMatrix involving over 8,000 projects, Agile teams are 25% more productive than their industry peers. Agile approach allows eating an elephant one bite at a time by helping developers quickly react to changes in their projects. That’s why the Agile transformation is what most modern companies care about.
The success of this approach is rooted in the following 12 principles:
- Customer satisfaction
- Frequent and quick delivery
- Face-to-face conversations
- Sustainable development
- Attention to tech side and design
- Regular adjustments
“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
This is the first of 12 agile principles stating whatever your business delivers should be usable. You don’t have to strive for perfection from the first iteration, but it’s a must to make customers satisfied with the final product. Remember, it’s important to have early feedback from customers and keep getting it continuously throughout the project. There are several reasons for that:
- Regular deliveries allow the customer to evaluate the work and give you valuable feedback.
- Constant contact with the customer lets you quickly deliver improved work, which is crucial for customer satisfaction throughout the whole development process.
“Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”
What business wants the least is to waste money on the product that is no longer relevant by the time of its final release. That is why one of the principles of Agile welcomes changes during the development process. Timely changes provide customers with a competitive advantage because it helps keep pace with the current trends.
Frequent and quick delivery
“Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”
This is one of the Agile and lean principles that ensure not only the quality of the product but also the acceptance of the end-product by the stakeholders. Oldschool linear development methods didn’t allow to sync up with current reality. By the time the whole product was delivered, the stakeholders were less involved in the given system. The developers could only rely on the initial requirements and had no idea if those requirements were still up to date. Frequent and quick delivery helps with:
- Ease of deployment on the intended system. By the time you roll out the final version of the end-product, deployment has been done a lot of times.
- Quick evaluation of usability. End-users are already used to the look and feel of the software and will not be surprised when presented with the final system.
- Alignment with changing environment, for example, business and technological requirements.
“Business people and developers must work together daily throughout the project.”
Very often, business people are not involved in the development process. Instead, analysts become intermediaries between business and development. According to this Agile development principle, customers should interact with the development team directly and daily. Extra steps in communication lead to lost information. Close cooperation allows eliminating misunderstandings early on.
“Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”
The 5th Agile principle fosters the importance of support, motivation, and trust between all members of the project. This way you get:
- Cost-effective project execution. It is not enough for each team member to have technical knowledge. They should also be motivated to help each other and the customer. Enthusiastic team players welcome cross-functionality and are ready to do more than their usual responsibilities.
- Self-organized teams. Motivation is maximized when team members are allowed to organize and control themselves. Such development team members get to choose their own tasks, and the end result is of the best quality.
“The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
The Agile Manifesto was written in 2001. Since then, a lot has changed, particularly the means of communication. Cloud, mobile technologies, and social media allow employees to communicate regularly and receive updates on the project wherever they are geographically. So, if a distributed team works effectively without having to work face-to-face daily, this principle can be omitted.
“Working software is the primary measure of progress.”
Traditional project managers may have a hard time figuring out how to measure progress in Agile projects. They think it is impossible to control a project, with an unclear outcome that is based upon a work backlog and the duration of a sprint.
According to this Agile principle, the only way to measure progress is to measure the amount of work to-be-done. For every sprint, the team should agree on a certain backlog of work to be delivered. When you estimate the amount of work to-be-done on a daily basis, you will get a good overview of the progress.
“Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.”
According to Pareto’s law or 80/20 rule, typically, 80% of your results may actually come from only 20% of your efforts. In Agile development, it means that a team should focus on the important 20% of effort that bring the majority of the results. Developing certain features or making them perfect means going the extra mile and may not be worthwhile. So it’s crucial to understand what your app is really about. Your task is to take the software to the market quickly with all the important features without over-engineering them.
Attention to tech side & design
“Continuous attention to technical excellence and good design enhances agility.”
The 9th principle is a good reminder that good design and technical excellence should go hand in hand.
- Good design reduces unpredictability. It prevents errors since you can get it right the first time, and allows work to be shared easily between team members.
- Technical excellence reduces over-engineering mentioned earlier. It also builds confidence in the people you work with: when people see you do well, they trust you.
“Simplicity–the art of maximizing the amount of work not done–is essential.”
What does it mean to keep it simple? You need to automate manual work, remove procedures that are no longer relevant, and use existing libraries instead of inventing your own. It all saves time and money daily.
“The best architectures, requirements, and designs emerge from self-organizing teams.”
This principle is a combination of previous Agile values. Teams produce quality software without too much control from above. It helps individuals to be motivated and promotes regular and effective communication between everyone involved in a project. An Agile team means developers take on responsibilities beyond just writing code. They self-organize all aspects of software development, including gathering requirements and writing quality software. This leads to better results.
“At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”
You can’t know for sure what you want until you use the software. That’s why requirements will emerge and evolve during the whole development cycle. Teams working according to the 12 principles of Agile take it for granted. At regular intervals, self-organizing teams take the time to look at their work and adjust accordingly. They can timely identify issues and take action to improve the process.
On a final note
Do the 12 Agile principles still matter? — Of course, they do. Some principles have become less up-to-date due to the evolution of communication means. However, the benefits of Agile development are still obvious. Excellent team coordination, timely waste removal, and reduced time to market create a win-win situation for clients and providers.