The following is Part 2 of the previous post regarding agile’s 12 guiding principles, and why they are important for agile project management. For Part 1, << click here >>.
7- Working software is the primary measure of progress.
Since we can’t use what isn’t finished, there should be no reason to consider it as “done” until it really is complete. In other project methodologies, specifically waterfall, we measure progress as an overall percentage and consider that percentage as a measure of completion. Working software is the only measure from which we are considering progress since what does not work, has no way of receiving ROI. It’s like giving someone credit for climbing a mountain at 90%, but they never reached the peak. Further to this principle, it also confirms that if something doesn’t work, why would you consider it complete in any way, when there is no real guarantee that it will ever work.
8- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
This principle calls out to respecting the human aspect of agile team work. To maintain and motivate an agile working team we need to consider balancing the cost of development to the cost of human quality of life. It therefore promotes a work-life balance as being the main consideration to sustainability of the long-term “constant pace.” We’ve all heard of burnouts and the detrimental effects they cause to sustainability. When considering sustainability, it’s not just about what can be profitable over time, but also considering people-conscious limits. Some companies don’t set limits or are afraid of telling their customers that they have limits on how long developers will do the work. They see it as a competitive advantage to have developers work long hours during the week or over the weekend. While it may seem advantageous in the short-run, it is not sustainable in the long run, as it will cause the team to burnout, get sick, or leave.
9- Continuous attention to technical excellence and good design enhances agility.
While it may be tempting to develop code, or product just once and give it a thumbs-up, it may not necessarily mean that it is optimal. This principle covers the need to always look into best practices before, during, and after the code or product has been developed. Even when reaching completion, there’s room to improve and update as necessary, and the iterative process or attempt to gain workflow automation in agile, allows for this to happen if and when needed. In software we can refactor the code so that it runs smoothly, however it doesn’t imply that the original code should have been done to the standard of “just enough” to get by. While developing an element of code or product, you need to design it with intent of how it will provide value for the end-user, since poor quality in the end will cause higher costs and time wasted throughout the product life cycle.
10- Simplicity (the art of maximizing the amount of work not done) is essential.
When developing products, we tend to get bogged down by how many features the end product will have. Knowing which features will be needed as a minimum viable product can be tougher than it seems. However this principle also looks at “amount of work not done.” It promotes the concept of working smarter not harder, since working harder doesn’t mean there will be any efficiency built into the agile solution. Being able to prioritize features is the key element to maximizing simplicity, as most customers fall for the illusion that a product with many features is a product with built-in value. However, what gets lost in that perception is that there is no value if 70% of the features won’t even be used by the end-user once it’s released. Being able to prioritize is certainly a hard-to-acquire skill and activity, but it is one of the essential pieces to building simplicity.
11- The best architectures, requirements, and designs emerge from self-organizing teams.
This principle leads straight to the agile team roles, and their ability to be “self-organizing.” This drives the idea that the best can come out of a team that is highly motivated, and has a high level of buy-in. When the architectures, requirements and designs come from the team closest to the product, you will likely get a better result than if they were imposed on the team from an external or top-down approach. It therefore leads to more a pull type approach from the team rather than a push type approach from upper management. The dynamics and results from a self-organizing team allows for the team to take ownership and pride in the product they will produce.
12- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Continuous improvement is something that resonates throughout an agile project. This agile project management principle calls out to the necessity of improving constantly and frequently with the mention of “regular intervals.” This of course implies that there is an iterative aspect to the tuning of becoming more effective, however it is not limited to just one period of time. The use of agile retrospective events is certainly the highlight of reflecting over ways to improve what happened in the previous sprint, but this principle also doesn’t limit it to just that. We could almost say that this principle should be carried on a daily basis, and with the agile team looking to find ways to “tune” themselves regularly. When looking at it from a waterfall vs agile perspective, we must consider that most waterfall projects only do this once in the project management life cycle and likely at the very end, when it’s already too late to do anything about it. Regular intervals for tuning and adjusting behavior makes it more pertinent and effective since it will be addressed throughout multiple sprints and it will allow a chance for the improved adjustment to be implemented.
[Source for Agile Manifesto Principles: Manifesto for Agile Software Development]
[Image courtesy of Stuart Miles at FreeDigitalPhotos.net]
This work is licensed under a Creative Commons Attribution 4.0 International License.