10 lessons of TV-mini-series "Chernobyl" for the Software Engineer
Currently, the tv-show "Chernobyl" is very popular. With 9.4 ratings in IMDB, 2 Golden Globes, several Emmys and lots of other awards this series is still in the center of numerous discussions on how authentic and correct it described the real story.
Of course, "Chernobyl" is an art-work in the first place and not a documentary, so, in my opinion, it can contain lots of mistakes and inaccuracies, as lots of other real-story inspired movies do. But I believe, many Software Engineers can learn some lessons from this show, regardless of how accurate and correct the authors interpreted the real story.
So here are the 10 lessons for the Software Engineer:
1) Measurements are important. Without corresponding metrics and tools to measure you are blind and deaf, so after one error pretty likely the other error will be done.
2) If something seems to be impossible, it is still possible. What we can't describe and understand is still possible to happen.
3) The second opinion is always important, regardless of the position of the person who expresses it.
4) Transparency is essential, because the more you try to hide something, the worst consequences it may cause in the very end.
5) Mistakes can always happen, so it is important to be ready to deal with them.
6) The obvious solution is not always the best one. It is good to have plan B and plan C.
7) It's important to know the steps to reproduce the problem in order to avoid it in the future.
8) Production is not a proper place for experiments. All experiments should be performed only in a proper safe environment.
9) Security is important and it should not be compromised for performance or for financial reasons.
10) The consequences of an error may be worse than it is expected. Whatever amount of money is saved due to experiments in production or ignoring of security policies, the crash in production may easily cost many more, not only regarding finance but also the reputation.
Of course, the results of a mistake in software in most cases won't be so dramatic. But still, it is important to remember that your estimation of consequences may be wrong and take all measures to avoid them.