設計もレビューも通っている。
技術的にも間違っていない。
それでも、失敗するプロジェクトがあります。
コードは正しく、テストもある。
なのに、誰も幸せにならない。
技術が正しいことと、成功することは違う
エンジニアは、正しさを積み上げる仕事をします。
- 正しい設計
- 正しい実装
- 正しいレビュー
しかし、現実のプロジェクトでは
正しさだけでは足りないことがあります。
人間の都合は仕様に書かれない
- 誰がメンテナンスするのか
- どれくらいの頻度で触られるのか
- どこまで理解される前提なのか
こうした前提は、コードにも設計書にも残りません。
それが抜け落ちた瞬間、
技術的に正しいものは、扱いづらいものになります。
正解を作るより、続く形を作る
一番強いシステムは、
一番賢い設計ではなく、一番続く設計です。
- 少し雑でも直せる
- 誰でも触れる
- 壊れても立て直せる
この条件を満たすことの方が、
技術的な美しさより重要になる場面があります。
まとめ
技術は正しくても、失敗は起きます。
それは技術が悪いのではなく、
技術だけを見てしまった結果です。
続くかどうか。
それを考えることも、技術者の仕事だと感じています。