September 21, 2020

There Must be an Uninstall Option

One of the (main) reasons why organizations choose for an Agile approach is to become faster. Some big companies I’ve helped in the last years know they have to adapt faster, but are reluctant because of their risk aversion. Banks, Petrochemistry and Grid Operators tend not to like risky experiments and coaches who say “fail fast” aren’t welcomed with open arms, mostly.

But in a ever faster changing world, especially in this time of the COVID-19 pandemic, companies have to embrace empiricism to stay in the game. And empiricism is based on putting a step in the unknown to see if it is effective. So how can you do this in a ‘safe’ way?

 

"If a decision is reversible, the biggest risk is moving too slow.

If a decision is irreversible, the biggest risk is moving too fast."

Quote by James Clear

 

If you can reverse your step in the unknown, it’s less scary to take that step. If it has far-reaching consequences which are hard (or even impossible) to reverse, you better think twice. The trick is thus focussing on a reliable rollback scenario.

 

A very powerful way to establish this kind of thinking, and keeping the ownership and empowerment in your teams, is adding a line in their Definition of Done. This could be:

  • There must be an uninstall option; or
  • A rollback scenario must be in place; or
  • It has to have an on/off toggle; or
  • A backup has to be available.

 

In this way you could secure taking necessary exciting steps. A normal and common practise in adventurous activities like sailing (safety equipment) or mountaineering (safety lines).

The best side effect of this is that you probably stay faster over a longer period of time too. Stuff that’s actually not being used anymore could safely been shut down. Nobody wants an old anchor dragging behind him.

 

Stay safe!

 

PS: Some people may say that you can’t dictate teams what to put in their Definition of Done, it would be owned by the Development Team. The Scrum Guide is however clear in this: “If "Done" for an increment is not a convention of the development organization, the Development Team of the Scrum Team must define a definition of "Done" appropriate for the product.”. There is nothing wrong to make reversibility a convention of the development organization.