One of the first things we get caught up in when transitioning to an Agile environment is vocabulary. We don’t estimate anymore, we’re sizing now. We’re not writing requirements anymore, we’re crafting user stories. Good bye project post-mortems, hello retrospectives.
There’s good reason for most of this. Our words bring with them a lot of baggage, and more often than not, there’s an entire philosophy behind one word. Matt Badgley does a great job of drawing out the importance of using words appropriately in his blog. Using the wrong word, or using the word wrong, can have a significant impact on a team’s ability to deliver.
Consider the word “execution”. When we talk about executing projects, we’re suggesting that:
The problem is, none of those statements are true. Software development isn’t simply a matter of planning out the steps and completing tasks. The best software is discovered over time through experimentation. When you catch yourself wanting to communicate (or think) in terms of execution, try replacing that word with “evolution”. When your customers and stakeholders ask you about project execution, respond with a description of the evolution.
Software evolves. This means:
Software delivery failure is typically not a failure of execution. It’s usually a failure to adapt to changing circumstances.
What do you think? Is “evolution” a better framing device than “execution” for managing software delivery?
Do you have an idea for the Weekly Inspection? Please send it to me @johnkrewson.