Agile has been used for more than 20 years already. The disciplines and practices introduced with the Agile Manifesto, published in 2001, have been widely implemented with much success and some shortcomings. As expected, these disciplines and practices have also evolved based on the collective experience of developers in the field. In efforts to make agile easier to implement, artifacts and restrictions that don’t contribute to quality have been eliminated. In addition, these changes have also served to make agile implementation more robust and more resistant to common failures, as well as more pleasant to use.
We start by sharing some new terminology recently introduced by Joshua Kerievsky, CEO of Industrial Logic, and discuss how these terms would change the emphasis from the original agile terms.
The modern agile world as described by Kerievsky consists of four overlapping disciplines that include a dozen overlapping principles/practices. These disciplines are Make Users Awesome, Make Safety a Prerequisite, Experiment & Learn Rapidly, and Deliver Value Continuously.
Agile Disciplines:
Make Users Awesome
Make users awesome replaces “Customer collaboration over contract negotiation”. Kathy Sierra’s book, Badass: Making Users Awesome, is a good source. The focus should be on helping users to become as successful and as effective as possible while doing the tasks that your product supports. This is a shift in focus away from just making the product itself awesome (or clever or sexy). I like to use the sentence “Honor the users and the tasks they must do.” To focus on users and their needs, Kerievsky recommends Jeff Patton’s User Story Mapping: Discover the Whole Story, Build the Right Product.
Make Safety a Prerequisite
Make Safety a Prerequisite replaces “Individuals and interactions over processes and tools”. Kerievsky says it well: “People don’t function well when they live in fear. If someone is fired or penalized for a mistake, everyone becomes afraid of a similar fate and productivity plummets. When safety is present, users trust your software, developers are unafraid to change code and people feel safe to fail and learn from mistakes.” Safety is a prerequisite, not a priority, which means that it must be present even before the team begins to establish priorities. It applies to everyone in the product community: users, developers, funders, buyers and sellers.
Experiment & Learn Rapidly
Experiment and Learn Rapidly replaces “Responding to change over following a plan”. The first solution we arrive at is rarely the best solution. We need to experiment to learn not only which solutions don’t work well but also which solution is best among several. Much like when writing a blog, the version we end up with is usually different and much better than the one we started with. Experimentation never leads to failure; instead, right up until it succeeds, it adds data points to our body of knowledge of how not to proceed. For those who adhere to the get-it-right-the-first-time school, which is good for some projects but not generally software development, I recommend Peter Sims’ Little Bets: How Breakthrough Ideas Emerge from Small Discoveries. Another book recommended by Kerievsky is Experimentation Matters: Unlocking the Potential of New Technologies for Innovation by Stefan H. Thomke.
Deliver Value Continuously
Delivering Value Continuously replaces “Working software over comprehensive documentation.” It is high time for agile to fully embrace the contribution of Lean to fully round out the agile toolkit, since Lean has informally been embraced by agile practitioners for a long time. Hats off, once more, to Mary and Tom Poppendieck’s classic, Implementing Lean Software Development: From Concept to Cash. Lean has its hands on the agile project from the beginning through to delivery to the customer and technology now supports this discipline better than ever with continuous builds to continuous deployments. However, delivering on this promise requires careful planning of both the development environment and the delivery processes to make them optimized for safe and frequent releases to production.
In part two of this blog, I will introduce the revised list of 12 principles and practices that support these four disciplines. While the disciplines described here provide high level goals of agile development, the principles and practices fill our toolbox with a set of guidelines for everyday agile development..
References
- Patton, Jeff, User Story Mapping: Discover the Whole Story, Build the Right Product
- Poppendieck, Mary and Tom, Implementing Lean Software Development: From Concept to Cash
- Sierra, Kathy, Badass: Making Users Awesome
- Sims, Peter, Little Bets: How Breakthrough Ideas Emerge from Small Discoveries
- Thomke, Stefan H., Experimentation Matters: Unlocking the Potential of New Technologies for Innovation