Become useless rather than a hero

This is the 10th post from my sincere dev manifesto series.

I will never be essential. Whether you say bus factor or lottery factor, nevermind. These numbers are the number of people your team can loose before meeting a disaster. You don’t want to have a value of 1. I won’t be responsible for a value of 1. 1 is very frequent, and is the necessary hero of your team. If she leaves, you’re lost. Managers love heroes, because heroes always save the day. But they condemn tomorrow.

Necessary heroes are bottleneck. They are a source of stress for themselves and their environment. They decrease everybody’s engagement. And yet, I have a secret: everyone does fine when they leave. It might hurt for a while, and then you find ways. But still, we don’t want this period of pain. “If it hurts do it more often”, right? So find ways more often: every single day.

We must share our practices and know-how, but also our comprehension of the domain, the environment, and our creature.

When I code, I want anybody to understand the code, and be able to modify it in a quick and reliable way.

When I manage, I want people to climb up the delegation scale, so that they can take more and more decisions closer to where the information is.

When I coach, I want people to be able to continue progressing on their own when I leave.

When I design, I want people to talk to each other without my intermediation, to take more and more decisions at small, and then bigger and bigger scales, and guarantee smooth evolutions of our creature.

We need everyone to take more and more decisions, with the right level of alignment in mind. So we need to:

  • Communicate goals, contraints, values, on and on and on, so that everyone knows and understands them.
  • Help people verify they are taking decisions that respect alignment constraints
  • Help people put in place an environment where a mistake is not a big deal.
  • Trust people to put the machine back on track when the result of the decision was wrong.
  • Encourage everyone to not do the work they know how to do. The people doing the work should be the ones that don’t know the work by heart, with the help of people who know. In medicine they have a 3-step process to learn gestures:
    1. Observe
    2. Do
    3. Teach
  • Have poka yoke all around. Errors should be hard to do, if not impossible.
  • Of course, pair, mob, discuss, BBL, lean coffee, run kaizen workshops in safe-to-fail environments, dojo.

You want to be hero? Grow a team of heroes.

In medicine they have a defined practice to learn simple gestures and practices, something like observe-do-show. We need such ingrained practices in teams. The difference with medicine is that mistakes don’t hurt people, so we don’t need to observe most of gestures. We can do it together instead, undo, redo, backup, restore. For example, a rule I love is “if you know how to do it, you can’t do it”. When you know how to do something, you must find someone to teach, you being the shadow, until enough people know. Lean has this skills training matrix. Pick whatever practice you want, but deliberately spread knowledge out of experts’ heads.

I commit to making sure nobody sees the difference when I’m not here.


One comment

  1. Pingback: Sincere developer manifesto | AAAgile

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s