Principles of Agile Software Development — Explained

Naveen Kumar Singh
Agilemania
Published in
5 min readMar 29, 2021

Hello, and welcome to the Agile tutorial series. This article will discuss the 12 agile principles, which get followed in agile project management. But before reading this article, I recommend reading my previous article on the four values of the agile manifesto.

Agile values set the base, and it helps in understanding principles. Now, let’s deep dive into the 12 principles of agile project management.

1st principle, our highest priority is to satisfy the customer through early and continuous delivery of valuable software. It takes a lot of time and effort to build a product, but what makes a customer happy is valuable working software at the end of the day. What if the team delivers only documents at the end of every phase, like requirement documentation at the end of the requirement phase and design documentation at the end design phase? These documents are valuable but not in the absence of working software. That is why the principle emphasizes on early and continuous delivery of the software.

2nd principle, welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Empiricism is the core for agility, and the empirical process control has three legs — transparency, inspection, and adaptation. Customers understand their needs better after seeing the project team’s increment, and customers may demand new changes after seeing it. The team should always be ready to address the changes, even if it comes very late during the increment review.

3rd principle, deliver working software frequently from a couple of weeks to a couple of months with a preference to the shorter timescale. This principle emphasizes the frequent delivery of products as it helps the development process be agile to mitigate the risks. The smaller release enables faster feedback from the customer. Hence, you can bring changes to the product before it’s too late.

4th principle, business people and developers must work together daily throughout the project. This principle helps keep the business aspect and the technical aspect of the product on the same page. Business people understand the need for getting the right product developed, and developers know how to develop it right. Poor collaboration leads to either a lot of rework towards the end or higher technical debt or both.

5th principle, build projects around motivated individuals. It is difficult for unmotivated people to get self-organized and self-managed. As Daniel Pink wrote in his book “Drive: The Surprising Truth About What Motivates Us,” motivation requires autonomy, mastery, and purpose. Agility demands autonomy and clear purpose because, without those, there won’t be any motivation. Developers gain mastery while working in a cross-functional team as there is a lot to learn from each other. When people are motivated to do their work, they produce results, which can never get produced by people who get forced to get the job done.

6th principle, the most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Most of the communication in a project is about the project process or project content. It is crucial for the project’s success that the development team understands the correct information. Written communication is prone to ambiguity. Simultaneously, the face-to-face conversation provides the ground for prompt, clarification, and quicker communication. The use of video conferencing tools enables face-to-face conversation while working remotely. As a result, product development becomes faster and precise.

7th principle, working software is the primary measure of progress. We know that working software is most valuable for the customer. Measuring through phase completion doesn’t provide clear status as there is nothing to see or feel. In the past, we have seen that up to 90% completion means nothing because most challenges come towards the end while integrating product pieces. Software is not done unless it is successfully tested and delivered. It gets done when tested and accepted by the end-user.

8th principle, agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. We often make simple mistakes by not understanding the importance of sustainable pace. The mistake is burning ourselves out in completing all the work that the team has forecasted for the iteration. It is good to enable predictability but having flexibility is equally important in complex work. Unsustainable pace leads to poor quality and also lowers morale.

9th principle, continuous attention to technical excellence and good design enhances agility. Maintaining simplicity is not easy, especially when development teams keep adding new features and functionalities in every iteration. Paying continuous attention to refactoring and reducing technical debt helps maintainable and readable code and scalable design.

10th principle. Simplicity, the art of maximizing the amount of work not done is essential. More features don’t mean a good product. More features may make a product more complex. Complex codes are difficult to test, maintain, and develop. Simplicity doesn’t also not having fewer features, but it about having useful features. As per the Standish Group survey of “custom application development,” 50% of features are “hardly ever” used, 30% infrequently used, and 20% are often used. The project team may like to consider these data while developing software to have better ROI.

11th principle, the best architecture requirements and designs emerge from self-organizing teams. A self-organizing team does not depend on or wait for others to decide design and architecture. Instead, these teams pick up their work and take care of the associated responsibilities, including architecture and design. In Agile, we don’t believe other plans, other manage, other develops, and other tests. Agile promotes collective ownership rather than individual ownership that was common in the waterfall approach.

12th principle, at regular intervals, the team reflects on how to become more effective. Development team tunes and adjusts its behavior through frequent retrospectives. When a team reflects on how to become more effective and adapt its behavior accordingly at regular intervals, it brings continuous improvement in itself and increases its productivity.

So these were the 12 principles of agile. We hope this article helped you in enhancing your knowledge about agile principles. Don’t forget to subscribe to my page for continuous learning.

--

--

Naveen Kumar Singh
Agilemania

Agile Coach and Professional Scrum Trainer (PST) @Agilemania, Servant leader @Agile 30 and Developer @GitHub, Ranting @LinkedIn & an Artist @YouTube