エンジニアという仕事にミスはつきものである。
あってはならないことだけど、自分が障害の原因を作り込んでしまったり、データベースに対するオペレーションをミスってデータが消えてしまったり、そういうミスをしたことがないエンジニアはたぶんいないだろう。
個人の書いたコードや、オペレーションが起因で発生したエラーは、当然個人の責任になってしまうのだが、それを過度に責めるのはよくない。 ミスが続いて、萎縮してしまうことにより、柔軟な発想が失われたり、さらなるミスを誘発してしまうからだ。
ミスがつきものの職業であるからこそ、ミスに寛容になろうとすることで、品質を向上できることがある。
ミスを個人のせいにしないという状況は、責任を分散できる体制を作ることで実現できる。
コードは必ず第三者がレビューする、危険な操作は必ずペアで実施する、などだ。
こうすることで、個人ではなく、チームにフォーカスすることができ、万が一ミスがあってもそれはチーム全体で共有される。 チームでミスが共有されれば、「個人の努力」などの曖昧なものではなく、具体的な回避策が検討されやすくなる。
そうした結果、チームの成果物全体の品質も向上する。
ミスがおきて、個人を責める気持ちになったとしたら、それはそうなってしまっているチームの体制に問題があるということだと思うので改善していこう。