Blameless programming

Blameless programming

Blaming spidermans

Everyone makes mistakes

It’s true. Even robots can make a mistake. So if you think differently please leave a comment below why not - it’ll be interesting.

So, if we agreed that it’s true, then why we’re getting angry when someone did it? Often boss or management is raging because of that. They looking for a guilty person, blaming them. It’s stressful, isn’t it? After that, all company knows about developer mistakes - how this developer feel, what he think? That they’re laughing at him? Maybe that he’ll be fired soon? What he should do at this point?

The blaming effects

Let’s think about the effects of blaming people (especially developers) in the projects and the whole company. As we already established such a situation is stressful, but maybe blaming motivates people to work better? They’re getting ourselves together then? I’m pretty sure that many managers or bosses are thinking in that way. Don’t get me wrong - I’m far from telling that nothing happened when everything is on fire… But let step into the blamed person’s shoes. How they think and feel? They’ll do their best in the future? Look for innovations and enhancements of a product?

It depends

One person can manage with blaming better than others and that’s totally normal. In the beginning, he can be motivated a little, maybe even will come with a new idea. But It’s not the solution and it also depends on the relationship with management and how they’re blaming. But when such situations are constant then motivation falls, people are starting to “cover their asses”, being defensive.

Laziness

On the other hand, they can become lazy, aren’t they? Then, how to keep devs productive without blaming them?

Responsibility is the key!

Stop treating them like workers and start treating them as partners. Believe me, a manager’s/boss approach can change everything. Developers are willing that! But maybe we should reword it.

SOFTWARE ENGINEER’S and PROFESSIONALS are willing that. They want the responsibility. Isn’t it crazy? But this kind of people are makers. That’s natural that involving them in business things automatically makes them more productive - they want to do something better - grow their child.

Who works better?

So, what do you think? Who would work better?

Developer treated like a small gear inside machine who can be blamed that he’s spinning too slow or too fast?

Or maybe a developer who feels that he’s part of this machine, or even he’s building this machine?

I think that this second one would work better.

But it’s in fire! Help!

Okay, but we still don’t know how to manage accidents.

For that I prepared several steps you can follow:

  1. Localize and fix the bug! As fast as possible. Even by incurring technical debt.
  2. After hotfix, create cold fix. Safely and calmely pay off the debt.
  3. Run post mortem thread on dedicated chat channel for post mortems.
  4. Discuss with the team WHY something broke down. ( Maybe it’s management’s fault? Deadline too early. Maybe some misunderstanding of some business aspects? Ask and show that you’re not going to blame anyone )
  5. Let’s imagine that you back in time and which step would be helpful to avoid mistakes?
  6. Specify call to action and conclusions.
  7. You can copy it somewhere else after the above.

You can ask. What would I get by that?

  1. People see that you want solve the problem instead of blaming anyone.
  2. People trust you.
  3. They even confess to their guilts.
  4. You create a comfortable zone where everyone can learn by getting and giving feedback.

Summary

So we’re going to the end. I hope that these arguments convinced you to stop blaming people. Think about profits to your team and about the impact of your words. Also hope that article was thought-provoking for you. We all need to work on this area. Make the first step to becoming a better developer, manager, team member, or just… human. Good luck!