ソフトウェア設計メソッドの発展
カネヴィンフレームワークにおける2つの複雑性
Complicated(煩雑)
専門家による注意深い分析によって解決が可能なもの
Complex(複合/複雑)
因果関係、メカニズムは事前には確定できない。事後的にだけ分かる
学究的なソフトウェアエンジニアリングは前者を前提。実践プログラマーやアジャイル以降のメソッドは後者。
複雑さを受け入れる
ビジネスの複雑さ(事前に理解できない)を全面的に受け入れ、テスト容易性/変更可能性/開発容易性が強
調されるように。
複雑さをコントロールするのではなく、実践の中から創発させる
継続的なモデリング
ソフトウェアを成長させる
事前のモデリングにより本質的構造を見つけ出すのは流行らなくなった。
対象の問題領域によっては今でも有効