Skip to content
On this page

🤐

バグが出たことを責めてはいけない

前提

前提はチームでのアプリケーション開発。

「バグとは」みたいなちゃんとした定義は横においとく。リリース後に意図しなかった挙動で困った人がいる、くらいのものをここではバグとよぶ。

反省はすべき

まず、開発チームとしてバグが出たことを反省すべきだし、バグったコードを書いた本人も反省すべきだし、バグを指摘できなかったレビュワーも反省すべきだし、QAで見抜けなかった人も反省すべき。

ただ、そのそれぞれを責めてはいけない、と思ってる。

もちろんお客様は責めていい。金払ってクソみたいなバグ掴まされたらそりゃキレて当然。とはいえ優しくしてくれると嬉しいです🥰

バグはでる

全員がバグがないように頑張ってる状況下においても何らかのバグは発生する。

事前に気づけた可能性は常にあるし、気づけたら直せてただろうし、そういう意味では「手抜きだった」と言われても一定仕方ないことにも思える。

ただこれは投下する工数とのトレードオフな側面が大きくて、一品物作り続けるなかで人が考慮しきれない部分を一定の工数で完全にカバーし続けるのは難しすぎる。

サンプルテストしかできない

そもそも完全な網羅性をもったテストというのが現代の計算リソースでは不可能なのでバグを洗い出すというのが難しい。

さらにテストの結果生まれたバグを修整した後にまた全機能を完全にテストし直す、を無限に繰り返せる体力はどの企業にもない。無限の資金と無限のリソースが必要になってくる。

ある程度のサンプルテストにはなるし、ある程度の諦めのもとに、ありとあらゆる製品は世に出てきてると思う。ソフトウェアだけでなくハードウェアもしかり。

責めてはいけない理由

なのでバグを出した本人も見抜けなかった周囲も、出すつもりもないバグが出てしまったというだけなのでそこに悪意はない。

悪意はなくても罪は罰されるべきだとも考えられるが、まずそもそも罪は組織にしかなくて個人にはない。金は組織に払われてるので。

で、各個人を責めるとなると各個人は「バグを出さないこと」が重要視されるようになる。

そうすると最も簡単にその目標に到達するには「コードを出来るだけ書かない」になってくる。だって書けば書くほどバグの発生率は高くなるし、影響範囲も広くなるし、テスト範囲も広くなるし、まぁ大変だから。

「たくさん開発してほしい」という組織が開発チームに求める動きと逆の行動を取る方が合理的になってくる。

なので個人を責めてはいけないです。

個人を責めるのではなくで、フローを修整すべきだし、それでリリースして良しと判断した組織の判断を責めるべき。

なので、各個人は責められないけど、偉い人や顧客窓口のCSや営業が責められることになります。

反省も謝罪もすべき

最初に書いたように、反省はしましょう。防げなかったバグなんてあんまないし。あんまね。たまにある。

で、開発チームのせいで社内の別の人がお客様から責められることになるので、開発チームは社内に向けて謝罪を精いっぱいしましょう。怒られたい人なんていないんだし。

リリースに至った経緯、暫定対応、恒久対応みたいなあの整理は日常的に行って、社内にむけて反省を伝えて改善して、同じ問題が発生しないようにフローを設計し直しましょう。

少なくとも一度発生したバグはテスト書けば防げる簡単な問題になるので、テストくらいは最低限書いて再発防止はしましょう。

それで社内の携わった人が納得するかまでは分からんですけど、真摯に対応し続けるなかではじめて相互理解とか相互の信頼とかが生まれると思うので。

まとめ

個人を責めてはいけないけど、めっちゃ反省はして、常に改善し続けるよう心がけましょう。

という自分に向けての整理でした。