なぜAgileは25年前に出現しなかったのか?

Agile2009で参加したDean Leffingwell氏の発表にて、「なぜAgileは25年間に存在しなかったと思う?」という問いかけがあった。自分は「ツールが存在しなかったから」と答えてみたが、実際の所は以下のようなものらしい。

  • 大きな二つの理由は「計算機能力の不足」と「言語の特性」。
  • 昔はちょっとした量のコードをコンパイル・リンクするだけでも相当な時間がかかった。
  • しかも、テストは手動。
    • ツールを使った自動化も工夫はされたが、プロジェクト毎あるいはテスト対象毎に個別設置する必要があった。
    • JUnitに始まるテストフレームワークの発展ってのは偉大なものだったのだ。
  • そのJUnitに代表されるユニットテスト自動化と汎用化を実現できたのは、やはりオブジェクト指向技術がきちんと研究された結果であろう。
  • こうして、「コードを書く→ビルドする→テストする」という一連の流れにかかる時間・費用が激減した。
  • 結果としてリファクタリング・テスト駆動型開発の概念が確立された。

「コードを書く→ビルドする→テストする」工程に多大な時間と費用がかかった時代には、ビルドをする「前に」できる限りの間違いを排除する必要があった。分析設計に工数をかける意味はあったわけだ。