Almost eight years ago, Dave Thomas, one of the founding fathers of agile software development, famously declared, “Agile is dead.” But don’t be misled—agility is far from obsolete. The tech world has evolved, but the need for agility remains ever-present. Thomas proposed a PID controller as a basic model for agile behavior, yet both iterative development and DevOps have merely paved the way for lean process improvement, often overshadowing the original disruptive spirit of continual experimentation. I propose we reclaim agility by returning to simple principles, because simplicity is powerful, and continuous experimentation is essential.
The Core of Agile Principles
The agile movement was built on four fundamental principles:
1. Focus on the product, not the documentation.
2. Improve relationships, not contracts, when conflicts arise.
3. Prioritize individual interactions over arguing about procedures.
4. Adapt to changing situations rather than declaring reality according to plan.
From my perspective, we’ve done well with the first two principles, but we’ve struggled with the last two. This isn’t surprising. Disruptive approaches often get absorbed by prevailing paradigms, and as we entered an era of financial optimization, linear process optimization took precedence. However, with markets and contexts changing ever more drastically, it’s time to return to the systemic approach that agility offers. In short, we need to prioritize reinventing over optimizing agility.
The Calorie Counting Conundrum
Consider the analogy of counting calories for weight loss. It’s a messy, effort-intensive process. Despite the abundance of calorie-counting apps, the accuracy of these numbers is questionable. Much like agile processes, the documentation often becomes guesswork, filled out after the fact and tailored to fit both software requirements and our conscience. This is akin to standard estimates for “standard tasks” in agile development, where small errors accumulate, leading to large discrepancies.
Counting calories works best for those with the discipline to meticulously record every detail. Similarly, companies focused on financial optimization often end up sidelining creative agile individuals in favor of those adept at streamlining numbers. The result? A process-heavy environment that stifles creativity, leading to cycles of seeking out and losing creativity.
New Principles to Reclaim Agility
While the original principles remain valid, they no longer address today’s primary challenges. We now possess enough systemic knowledge to tackle the central issue of agility at a more general level. Here are five new principles to reclaim agility from the clutches of linear optimization:
1. Stop Losing Agility
Focus on delivering, but don’t sacrifice agility for the sake of reporting and control frameworks. Measure what truly matters, such as your critical success factors, but avoid becoming a deliveraholic. Balance is key. Stop engaging in activities that diminish your agility. Agility is as much about what you refrain from doing as it is about what you actively pursue. If you don’t close old doors, you can’t achieve focus.
2. A Feature is an Experiment
Each User Story begins with a hypothesis. The code is merely a tool to test that hypothesis, and development isn’t complete until the hypothesis is confirmed. The result isn’t optional; it’s essential. As in martial arts, you need to stress-test your claims to improve.
3. Maximize the Number of True Learning Cycles
Agility is about learning fast. Keeping experiments small maximizes learning cycles and allows for early course corrections. However, a true learning cycle includes observing user interactions with the shipped product. We often fall short by declaring user stories finished prematurely, without real user feedback.
4. Plan for Change, Not Perfection
Prioritize reinventing over optimizing agility. Overly optimized organizations risk extinction if their environments change radically. John Roberts’ concept of maintaining “organizational slack” is crucial—like hyper-lean companies, super-thin models aren’t sustainable in the long run.
5. Maintain Simplicity and Focus
When altering your approach, ask yourself: Does this simplify things? Does it cut out distractions? Does it maximize time for pressing issues and experimentation? Simplicity fosters better experimentation and reduces unnecessary distractions.
In an ideal world, each team finds its own simple guiding principles. If followed correctly, these principles will lead to significant progress without the need for micro-management. A good agile coach will help teams discover and adhere to these principles.
Scaling with Principles
For scaling agility, add these two principles:
6. Don’t Scale if You Can Decouple
Conway’s Law shows that team architecture and software architecture are intertwined. Independent teams are more agile. Support independence with appropriate architecture.
7. Build Teams of Teams
Regardless of your organizational structure, apply these principles consistently. Representation and the number of scaled circles or teams may vary, but the principles remain the foundation.
Conclusion
Reclaiming agility requires us to return to simple principles that align with human nature. By prioritizing experimentation, maintaining focus, and planning for change, we can navigate the complexities of modern development. Agility isn’t just a methodology; it’s a mindset that thrives on simplicity and continuous learning. Let’s embrace these principles to create environments that foster innovation and adaptability, working with human nature, not against it.
Comments
Commenting is closed for this article.