Is it an execution? Or an evolution?

This Weekly Inspection is brought to you by Charles Darwin.

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:

  • It’s simply a matter of taking the right steps
  • We know what those steps are
  • We know how long those steps will take
  • We know that taking these steps is the right idea.

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:

  • We have a solid understanding of the problem we want the software to solve, and an understanding of the solution that becomes clearer every day.
  • We’ve discovered a few things during this project that have given us more insight into where we should focus.
  • We have options. We’re not locked in to delivering what we specified at the beginning of the project.

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.

3 Comments
  • Toni Eftink
    Posted at 09:00h, 04 May Reply

    Hmm, well I haven’t had the opportunity to learn agile yet, so let me preface my answer with that. But I would say that during every execution we should be open to evolution; but there does have to execution in order to complete tasks. Now if those tasks change or evolve midway through to serve up a better solution or get to a better end product then that’s great, so I guess my answer is that we need both. : )

    • John Krewson
      Posted at 15:31h, 30 May Reply

      Hi Toni. I’m curious: now that you’ve been through the bootcamp, what do you think about this now?

  • Toni Eftink
    Posted at 16:13h, 22 June Reply

    Hey John, I definitely understand this concept better after the training… because yeah we don’t know all of the steps to take when beginning if we’re going to build the best solution to a big problem. We will discover it along the way!

Post A Comment