The more I study project management, agile, and work in this industry, the more convinced I am that failing fast is the only way to make healthy progress. We delude ourselves when we create detailed project plans with 1-2 year horizons and try to lock everything down with quantitative analysis, or anecdotal experience, or optimistic chutzpah. I am beginning to think that large batch and long-term planning like this is 100% doomed to failure.
As Helmuth von Moltke said, “No battle plan survives contact with the enemy.” In this case, the enemy is reality, and the plan is our attempt to combat the chaos inherent in our world.
We cannot plan well enough to completely avoid failure. Changes in technology will disrupt us, people will leave our teams, or new requirements will be uncovered. So what do we do when faced with an inescapable likelihood of failure?
We need to accept this reality and develop a culture that can cope with failure. Even better, we need to welcome failure as a learning experience, and develop a resiliency that enables us to bounce back from failure quickly. We need to document our failures in lessons learned and continually improve.
When your 6-month implementation is suddenly discovered in month 4 to be over-budget and only 20% complete, we need to accept the situation in front of us and think of ways to prevent it from happening again. Agile is full of tips for this:
- Be brave, honest, and transparent regarding our work, how it’s going, and what we need
- Ensure frequent, consistent feedback cycles
- Develop and measure outcomes, not outputs
- Develop long-term goals, not long-term project plans. Have a clear vision and mission, and focus on inspiring your team instead of indoctrinating them
- Create short-term batches of work, but leave the actual planning and execution to the team delivering that work
If failure is guaranteed at some step along the way, we need to provide ample opportunities to get those failures out of the way so we can learn from them. If you ever study the rate of velocity in new agile development teams, you’ll see that the rate at which they complete stories goes up over time. This is because they become better at estimating and at working together, and they begin to improve. We learn, but we can only improve through reflection, so as managers we ought to provide frequent opportunities for that.
We can’t create a plan that will be 100% successful. But we can create a plan that takes in failure, learns from it, improves, and results in an overall positive outcome. The alternative is to keep creating the long-term plans that are guaranteed to fall short of our expectations. The goal is never to fail, but to leverage our failures and become resilient. We need to learn faster. We need to do better.