Upgrade to Pro — share decks privately, control downloads, hide ads and more …

動くコードでは不十分

Avatar for shinaps shinaps
March 10, 2026
17

 動くコードでは不十分

Avatar for shinaps

shinaps

March 10, 2026
Tweet

Transcript

  1. 目次 戦略的プログラミン グ 将来の変更コストを下げ るための「投資の思考姿 勢」と両者の対比 どの程度の投資が必 要か 10〜20%の継続投資、 技術的負債の回収期間、

    AI時代における設計の価 値 設計と組織 荒れたコードベースが新 メンバーの認知負荷・採 用・定着に与える影響 戦術的プログラミン グ 小さな妥協の蓄積が生む 複雑さの悪循環と「タク ティカル・トルネード」 の問題 2 / 20
  2. 戦略的プログラミング 特徴 マインドセットの転換 ただ動くものを作るのではなく、
 優れた設計を生み出すことを目指す システム全体の構造を長期的に改善して、
 将来の変更を容易にする 「今動くか」ではなく
 「この先も変更しやすいか」で判断する 戦術的プログラミングが「とりあえず動かす」ことに

    フォーカスするのに対して、戦略的プログラミングは 「動いた後も変更しやすい状態を保つ」ことにフォー カスする 動くコードは良い設計の結果として手に入るもの であって、設計を犠牲にして手に入れるものではない 9 / 20
  3. 投資の回収 戦術的プログラミング(負債) 戦略的プログラミング(投資) 短期: 速く進んでいるように見える 数ヶ月後: 小さな妥協が積み重なり、 コードの理解や変更に時間がかかるようになる 長期: 技術的負債が膨らみ開発速度は低下し続ける

    財政的負債と違い、完全に返済されないことが多い 短期 10〜20%遅く見える 数ヶ月後 設計への投資が効き始め、戦術的アプローチより 10〜20%以上速く開発できるようになる 長期 差は広がり続ける。著者の経験では、 6〜18ヶ月程度で投資を回収できる 13 / 20
  4. 開発現場で陥りやすい罠 よくある判断 設計に10〜20%の時間を使う余裕はないと感 じてしまう 設計にはほとんど手間をかけず、問題が出ても 整理に時間を割かない 「成功すればエンジニアを追加採用して整理で きる」と正当化する 著者の指摘 設計を後回しにするほど、開発はどんどん遅く

    なっていく スピードを優先しても、最初のリリースが必ずし も早くなるとは限らない コードの品質が低いと、採用競争力も下がる 人が来ない → 品質が下がる → さらに人が離れ る、という負の循環に陥る 品質を犠牲にするのではなく、作る機能の範囲を絞るべき 17 / 20
  5. 荒れたコードベースが新メンバーにもたらすもの オンボーディングの現実 新メンバーはプロジェクト固有の
 マインドセットを持たない状態で参加する 負債の溜まったコードベースに対して
 一から向き合うことになる 入社前の期待値と実際のコードベースに
 大きなギャップが生じる 自分のコードが何に影響するか把握する
 認知負荷が極めて高い

    新卒にとっての断崖 研修では真っさらな状態から始められるため
 認知負荷が低い 本番プロダクトに入った瞬間、
 設計が敗北したコードベースと直面 開発への無力感 
 → モチベーション喪失 
 → 離職 後から入った人の仕事が技術的負債の解消ばかりになると 開発の楽しさが失われ、人が定着しない 18 / 20
  6. まとめ 本章から 戦術的プログラミングは小さな複雑さを蓄積 させ、やがて開発速度そのものを低下させる 戦略的プログラミングは設計に継続的に投資 することで、長期的な生産性を高める 設計は「後で考えるもの」ではなく、毎日の 仕事の中に組み込むべきもの 修正を後回しにすればするほど、問題は大き くなっていく

    経験から タクティカル・トルネードは、チーム全体の生産 性を低下させる 戦術的に作り続けると、自分のコードすら把握で きなくなり、立て直しが困難になる コードの品質が低いと新メンバーの認知負荷が高 く、人が定着しない AI時代では設計なき開発の破壊速度も加速し、設 計の価値はさらに高まっている 20 / 20