締め切り - 悪いコードに良い理由はない
2017年6月3日投稿 • 2019年3月31日更新
アンクル・ボブのクリーンコードからの一コマ。
コンピュータプログラムは、物事を機能させるだけでなく、それを修正しやすくするようにあるべきです(バグを修正したり、ロジックを変更したり、新機能を追加したりするため)。良いコードと違って悪いコードは逆に全てを難しくします。「会社を潰したのは悪いコードだった」とロバート・C・マーティンは彼の本「クリーンコード」で言っています。
ソフトウェアプログラムに悪いコードを書く主な理由は「締め切り」です。「私が上司の言うことを聞かなければ首になる」といった考えです。おそらく実際にはそんなことはありません。ほとんどのマネージャーは、彼らがそう振舞わなかったとしても、真実を知りたがっています。ほとんどのマネージャーは、スケジュールについて神経質になっている時でさえ、良いコードを望んでいます。彼らはスケジュールと要件を情熱的に守るかもしれませんが、それが彼らの仕事です。それと同じくらい情熱をもってコードの守りを固めるのがあなたの仕事です。
この考えを具体化するために、あなたが医者で手術の準備での万全の手洗いが時間がかかりすぎるからやめろと患者に要求されたらどうでしょうか。明らかに患者がボスだとしても、医者は絶対に従うべきではありません。なぜなら、医者は患者よりも病気や感染の危険についてよく知っているからです。患者の要求に従うことは、非倫理的ですし(犯罪にさえなり得ます)。
同様のたとえで言えば、プログラマーが支雑を作るリスクを理解できないマネージャーの意向に従うことは非職業的です。そして何よりも、支雑を作ることで締め切りを守ることはありません。事実、支雑はあなたを即座に遅くし、締め切りを守れないようにしてしまいます。締め切りを守る唯一の方法 - 素早く行動する唯一の方法 - は、常にできる限りコードをクリーンに保つことです。
全てを総括すると、締め切りを守るために悪いコードを書く衝動を抑えてください。締め切りは常にそこにあります!締め切りを守るために悪いコードを書くのではなく、締め切りを逃しても良いコードを書くことを優先してください。明示的かつ意図的にクリーンなコードを書く練習をしましょう。やがて、練習によってクリーンなコードの書き方が自在になり、締め切りを守るかそれ以前に終わらせることができるようになるでしょう。
ハッピーコーディング!!
こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/jolas/deadlinesbad-reason-for-bad-code