2023-05-22

無職転生プログラマが誤解していたこ

無職が転生してプログラマになったんですよ。運よく雇ってくれる会社が見つかった。

それまで一人でしかプログラムを書いたことがなかったから、コードレビューをしてもらえるということにとても期待していたし、それで安心して仕事ができると思っていた。

しかし、コードレビューは俺が期待していたものとは違うらしいと気づくまで、ものすごく時間がかかった。そんな話。

無職転生してプログラマになって、もちろん新規開発にアサインされるわけがなく既存コード保守仕事となった。そのコードはなかなか大規模なもので、その全てを把握するなんて到底無理なものだった。

うん、ここですでに結論が出てるんだけど、当時の俺はそれに気がつかなった。

んで、割れ窓を直していくのが仕事なんだけど、俺がデグレが起こるようなことをしようとしていたら先輩が気づいて止めてくれる。それがコードレビューをしてもらえるってことだと思っていたわけだ。

でも、全然そうじゃなかった。

先輩がしてくれるコードレビューは追加されるコード品質を見るというもので、デグレ可能性に気づいてくれるなんてものじゃなかった。

そりゃそうだ。コードの全貌を把握している人間はいないのだから

だけど俺はそれに気づかず、何度かデグレによるバグを出した。

その辺りでようやくうっすら気づいてきた。コードレビューデグレが起きないようにしてくれるものじゃないって。コードにより引き起こされるバグ責任レビュアーじゃなくて俺にあるんだって

レビュアーもこのコードの全貌を把握していない以上、当然の帰結だった。

それはとても怖いことだったけど、でももう乗ってしまった馬車だ。俺は俺なりに仕事をするしかなかった。

そうして仕事をしているうちに、そこそこデカ不具合を出した。

不具合の原因は、影響範囲がそこそこ広い割れ窓の修正手段をとってしまたことだった。そのそこそこ広い影響範囲の中に、作られたのが昔すぎてドキュメントも残っていないのに今だにユーザーが使っている機能があって、そこがデグレた。しかもそのデグレによって出た損失は、回復不可能ものだった。

もちろん、レビュアーがそれに気づく事はなかった。

そこで俺のメンタル限界を迎えて、会社を辞めた。

本当に俺はどうしたらこの結末を回避できたのだろうか。

辞めてから結構時間が経った今でもわからない。

増田にいるつよつよプログラマ諸氏に、俺はどうするべきだったのかアドバイスして欲しい。

  • デグレって何?

  • 個人の努力であらゆる不具合を防止できると思うのがそもそもの誤解 銀行だって暗号化プログラムだってしょっちゅう不具合出してる 不具合はあるものとして受容するしかない

    • とすると、不具合を出してもメンタル折れない程度にはメンタル強いのがプログラマの適性なんかな?

  • そのコードはなかなか大規模なもので、その全てを把握するなんて到底無理なものだった。 いやいや、理解しろや。保守担当が理解せんで誰が理解するねん。 レビュアーに責任なしっ...

    • 確かに保守担当だった俺が把握してなかったらというのはあるが、俺よりもずっと長い間件のコードに関わってたはずのレビュアーも全貌を把握し切れていなかったと思われる時点でち...

      • IEEEがコードレビューに関する論文を出していて、それを読む限りではコードレビューはバグの検出にはそれほど効果がないとのことでした。 (品質の維持/向上やレビュー者間へのシス...

  • 新人がデグレさせるのを止めるのもコードレビューの役目だぞ。 筆者のプロジェクトの詳しい状況は知らんが、恐らくドキュメントどころかテストコードすらまともに書かれていないん...

    • いや、単体テストはそこそこ書かれてたし、バグ修正の際はリグレッションテストもちゃんと書いてた。 だから全てのテストも通ったからヨシ!的な流れでテストに含まれていなかった...

  • 本当の問題はコードレビューじゃないな。 diffを読んでも影響範囲が分からなくて、デグレがあるのかないのか判断できないようなコードベース そこに新人を無策で投入して、不安...

    • ただ、レビュアーがバグチェックをしてるとしても、実装者としての責任を持つ気持ちはあったほうがいいと思う。責任を自信と言い換えてもいいけど、自分が手を動かした仕事に責...

  • デグレって初めて聞いたわ 最近使われてる言葉?

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん