多くの現場では、 「速く書けるエンジニア」が高く評価されます。

短期間で動くものを作れる。 仕様変更にもすぐに対応できる。 多少バグが残っていても、とりあえず形にできる。

こうした姿は、 一見するととても頼もしく見えます。

実際、 プロジェクトの初期段階や、 期限が迫った場面では、 速さが価値を持つこともあります。

ただし本書では、 速さが絶対的な価値であるとは考えていません。


なぜ「速さ」は評価されやすいのか

速さが評価される理由は、 とてもシンプルです。

速さは、目に見えるからです。

  • 何日で終わったか
  • 何機能実装できたか
  • どれだけ早くリリースできたか

これらは数値として観測できます。

一方で、 設計の良し悪しは、 すぐには見えません。

設計の差が表に出るのは、

  • 仕様変更が入ったとき
  • メンバーが入れ替わったとき
  • 数か月、数年が経過したとき

です。つまり、

  • 速さは「今すぐ評価できる価値」
  • 設計は「後から効いてくる価値」

だと言えます。


「まず動くものを作る」は間違いなのか

ここで、一つはっきりさせておきたいことがあります。

本書は、 「まず動くものを作る」 こと自体を 否定しているわけではありません。

要件が曖昧な段階で、 いきなり完成形の設計を書くことは、 シニアエンジニアであっても難しいと思います。

まず動くものを作ることで、

  • 他の実装と比較できる
  • 問題の輪郭が見える
  • 本当に難しい部分が浮かび上がる

ということは、確かにあります。

この段階のコードは、 思考のラフスケッチ です。

問題は、そのラフスケッチを 完成した設計 だと誤認してしまうことにあります。


速く書かれたコードが抱える問題

速く書かれたコードは、 多くの場合、次のような特徴を持ちます。

  • 一ヶ所修正すると、影響が爆発的に発生する
  • 一つの部品が複数の責任を負っている
  • 影響確認が人の注意力に委ねられている
  • 変更時に、どこを直せばよいかわからない

これらは、 「書いた人が賢いから私にはわからない」 「書いた人がわかるなら私にもわかるはず」 という問題ではありません。

暗黙の前提が、コードの外にある可能性があります。

結果として、 その人がいなくなると壊れるコード が生まれます。


速さが生む「負債」は、あとからやってくる

速さを優先して書かれたコードは、 最初は軽く、扱いやすく見えます。

しかし時間が経つにつれて、

  • 小さな修正に時間がかかる
  • 触ってはいけない場所が増える
  • 誰も全体を把握できなくなる

といった状態に変わっていきます。

これは、 過去に支払わなかった設計のコストを、 後からまとめて支払っている状態です。

速さは、 時間を節約しているように見えて、 未来の時間を前借りしている ことがあります。


設計は「速さ」と対立するものではない

設計は、 速さの対極にあるものではありません。

良い設計がされたコードは、

  • 変更の影響範囲が小さく
  • 安心して触ることができ
  • 結果として作業が速くなります

ただしそれは、 最初の一瞬の速さ ではなく、 長く続く速さ です。

この違いは、 短期的な評価指標では測れません。

だからこそ、 設計の価値は見落とされやすいのだと思います。


この章のまとめ

速さには、たしかに価値があります。

しかしその速さが、

  • 構造によって支えられているのか
  • 人の頑張りによって成り立っているのか

を見極める必要があります。

本書が扱う設計は、 後者を前者に変えるためのものです。

次の章では、 速さの裏側で起きている 「判断の散在」 について、 もう少し具体的に見ていきます。