A Matter of When, Not If

May 24, 2022

Prologue

You are enjoying a brisk December evening by the fireplace. The tea in your cup warms your hands and fills your nose with fragrant aroma. Then you realize that Christmas is in a week.

The Stories in our Heads

Are you anxious? Maybe you don’t have time to get presents shipped in time. Maybe you didn’t budget enough money for the extra expense.

Or are you calm, maybe smiling or excited? You know the gifts are wrapped in the closet, away from the kids’ prying eyes. Or maybe your trip home is booked and work gave you extra travel time off.

Your perspective, the story in your head, will depend on how you look at the problem.

Professional Example

For instance, I help define and manage software products. My clients will inevitably want to know when their product will be done. (The concept of “done”, and how various people define it, is its own topic that we might revisit later.)

My answer tends to be in the form, “We are 80% confident in delivering your X features you defined by this date.” Some clients then look at me funny and say, “I just wanted the date. Why the extra “percent this” and “features that”?”

Answering “Why?”

The story in my client’s head was different than the story in my head. This is a perfect opportunity to dive into our differences. For them to understand our experience with building software products, but also for us to understand their expectations, fears, and history. It builds a stronger relationship, as we prefer to partner with our clients, rather than just work for them.

I love quotes that are simple, yet deep. The following quotes illustrate the story in my head.

The only constant in life is change.

– Heraclitus, Greek philosopher

Change can come from a variety of directions:

  • What if another product comes to disrupt the market in the middle of our delivery?
  • What if the client has a reorganization or shift in organizational priority?
  • What if an assumption we made was drastically wrong?

These icebergs can sink our ship if we aren’t prepared.

Everything fails, all the time.

– Werner Vogels, Amazon CTO

When building anything, from an intricate craft project to an elaborate software system, you have to deal with failure.

  • What if our production site is overwhelmed and needs further resources to get it back on track?
  • What if something changes? (see above)
  • What if a key stakeholder/developer gets sick?

We usually talk about the “best case scenario” or “happy path” because they tell the best or most interesting story. But, as they say, the devil is in the details. And the most devilish details occur when you get off the beaten path. Now the questions shift from “what happens if…?” to “what happens when…?”. It is our lack of realizing, or lack of wanting to realize, that causes us to fail.

Act, Don’t React

The first step in solving any problem is recognizing there is one.

– Will McAvoy, The Newsroom

Now that we know change happens and we will fail, we have to know how to act when it happens. Have the expectation and plan for when something goes sideways. If you don’t have a plan, then you end up reacting, which typically causes more problems.

Give a forecast for our work, not a hard estimate

A news anchor reporting the path of a hurricane uses a cone that gets bigger over the days. The path is updated with live data hour-by-hour, constantly changing to make sure people can be informed appropriately and evacuate safely. A software project can provide a forecast of the work to do and the expected completion date that can be updated over time.

Organize work into small, deliverable chunks

Use the INVEST method to define these chunks. Deliver early and often. Just as there are many storm watchers providing lots of data points, smaller chunks worked to completion allow us to report more granular progress.

Embrace the change

When the client needs to move in a new direction, reprioritize the scope. When a risk materializes, adjust the scope to replace or augment the gap or failure. When a failure occurs, follow your plan, because you were ready.

Iterate and report

Keep a pulse of the project. As change occurs, re-forecast and report. A lot of people forget that last part of reporting, intentionally or not. If you know a change is coming, make the appropriate parties aware.

Epilogue

Christmas happens every December 25th, yet some people are “surprised” by it every year. Budget money/vacation/gifts throughout the year and it won’t be a burden at the end of the year. Don’t let something you know is going to happen surprise you when (not if) it happens.