tawara's blog

雑記。個人の見解です。

実装にバグがあったときの気持ち

リリースを前にしてバグが見つかったという報告をもらった。とてもくやしい。お腹が痛くなるほどくやしかった。

今回実装したのは、すべてのユーザーに対して利用できる既存の機能を特定のユーザーに制限する機能を追加で実装した。 当初予見していた修正範囲を越えていくようなチケットだった。モデル、ビュー、テーブル追加、コントローラーにメソッド生やす、バッチ処理、などといろんな機能に実装範囲は広がっていった。ただし、それぞれに追加する機能はそこまで複雑なものではなく、既存の処理を参考にすればわりとすんなりといける見込みだった。

なぜこんなにもくやしかったのかを分析してみたい。

  • 見つかったバグがわりとすぐに見つかるものがあった

弊社は実際にリリースする前にPMやQAが最終的なテストを行うイベントがある。そこで「ちょっとさわっただけ」でバグが発見されたと伝えられた。 ほんとうにちょっとさわれば気づく箇所だった。ボタンを押してモーダルが開かない、というようなレベルだ。どうしてそこを確認しなかったのか。

根底には自分が実装した箇所だけテストをすればいいという横着な態度があったのだろう。まだ入って2ヶ月に過ぎない自分はもっと泥臭く実装しなくてはいけなかった。 とはいえ、すべての機能を網羅したローカルテストなど原理的には難しい。だから自動テストなるものがあるのだ。したがって自分の範囲だけテストするのは一つの方法かもしれない。しかし入社して2ヶ月の自分は、既存の機能を知っているわけではない。もっと既存の機能を知る、という目的のもとにローカルテストをすべきだったことに多いに反省している。 そのような姿勢を欠いて、仕事に向き合っていた自分に猛烈に腹を立てているのだ。

  • 迷惑をかけたくない人に迷惑がかかる

開発が予定より遅れてしまい、スクラムチームのQAエンジニアの方が確認できるステージングにデプロイするのが遅れた。影響範囲が広くなった修正箇所を確認する時間を削ってしまったことに責任を感じる。レビューをしてもらった上司たちにも恥をかかせてしまったことになる。もちろん組織なので、自分ひとりに責任が降りかかるわけではないけれど。もっとPRを細かくする等の方策を取ればあるいはさらに早い段階でバグに気づけたはずだ。

  • ヒロイズムに酔っている自分にも腹が立つ

なぜこんなにも悔しがっているのかといえば、完璧に仕事をこなすことができなかったからだ。完璧に遂行する自信に満ちていたのだ。自信だけが満ちていた、というのが正確だろう。膨らんだチケットをなんとか苦労して終わらせた、という自己像が傷つけられて怒っているのだ。未熟だと思う。やはりまだ自分にはスキルが欠けていて、それを補うには時間がかかる、そのことに真摯に向き合う、という態度をこそとるべきなのだろうと思う。と、ここまで言葉にしたことでようやく平静さが取り戻せた。文章にしなければ3つ目を見過ごして、自我を肥大化させたままになっていたかもしれない。

結局のところ、自分の能力を実際以上だと思いこんでいたのだろう。いまの実力だとバグが出るのだ。そのためにQA、PMなどの力を借りて仕事を前に進めるしかない。 力を借りると言っても最後にケツを持つのは自分だ。その覚悟がまだ持てていない。まだ入社2ヶ月くらいだし、、、そんな当事者性・責任感のなさを自分に感じる瞬間がある。既存の仕様はそこまで理解してなくてもいいや、という心の声も聞いたことがある。

対策として何ができるのだろうか?

  • チケットに関しては自分がいちばんと言えるくらいに機能を把握する
  • 既存の仕様については積極的に知識を取りに行く
  • 修正する機能の周辺の疑問はほぼつぶす

個人的にできることはこのあたりな気がする。ブラウザテストを導入する、などの対策は自分の役割を越えてしまう。

歪んだ自己像もあるかもしれないけれど、自分の仕事はきちんとやる、という気構えを少しは持っていたと思って明日もがんばろう。

(了)