エンジニア立ち居振舞い:重箱の隅をつつかない

お題「エンジニア立ち居振舞い」

自分は重箱の隅をつつかないというのを意識してる。

重箱の隅をつつく問題はコードレビューの現場でよく聞く。レビューの場で所詮「書き方レベル」の指摘が横行してしまうというやつ。

誰しも綺麗なコードを追求したい気持ちはあると思うし、自分もそうなんだけど、あまり良くないなと思ってやらない事にしてる。理由は3つ。

  • 時間の無駄
  • 指摘される側の精神衛生上よくない
  • そもそも意味ない

細かい指摘でも修正してマージするまでには結構時間がかかる。コードを直し、手元でビルド・動作確認し、pushしてCIを回し、「修正しました」と報告し、LGTMが付いてやっとマージできる。このプロセスが日に何度も発生すると確実に時間を食ってしまうし、Nitsな内容を何度も何度も受けると精神的にも疲弊してしまう。それで生産性が下がってしまえばもっと大きな問題になる。

こうした指摘をしたくなる時、「コードの統一性がなくなる」とか「可読性が失われる」といった気持ちが心の中にある。確かに統一感のある記法や名前付けだと読みやすいけど、それをチーム開発で維持し続けるのはとても難しい。いくら今のメンバーで維持していても、開発メンバーが入れ替われば書き方レベルの統一性は失われる可能性が高いし。それに、自分が過去に見てきたコードで辛かったのは書き方なんかじゃなく、もっと根本的な設計だったり、技術選定の失敗といったより大きな問題だった。些細なコードの書き方にこだわって時間を使うより、こうした大きな問題の改善に力を注ぐのがよっぽど良い。

もちろん手を抜く事が正しいと言いたいわけじゃない。けど自分もチームメンバーも限られた時間の中で成果を出さないといけないし、全てを完璧にはこなせない。こうしたレビューの現場に限らず、細かすぎるところは目をつぶってより成果につながるところに注力しよう、というのが最近思っているところ。

・・・とはいえ自分もすごく細かいところが気になってしまう性格で、指摘したい気持ちをぐっとこらえる事もある。そういう時は指摘せず、後日自分がそのコードを触る時があればしれっと直す程度に留めてる。些細なところは将来何かのついでに直せばいいや、くらい気楽に考えるのも悪くないんじゃないかな。