契約駆動開発(CDD:Contract Driven Development)

Coplien氏とMartin氏の「Coplien氏とMartin氏、TDDとCDDそしてプロフェッショナルの定義について大いに語る。」の議論はとても面白いです。
二人の議論は平行線の様に見えますが実際の問題意識は共通しているように思います。
ただMartin氏の方が業界への期待を持ってちょっとお節介を考えていて、Coplien氏はお節介もいいが弊害も正しく認識しなければならないと警告しているのだと感じました。
この議論の中でCoplien氏は契約による設計(DbC:Design by Contract)をプラクティスにした契約駆動開発(CDD:Contract Driven Development)を紹介しています。
この契約駆動開発(CDD:Contract Driven Development)を行うにはCode ContractsとPexの組み合わせを活用することで効果的に実践できると思います。
契約駆動開発というわけではありませんがCode ContractsとPexを使った作業の具体的なイメージは「Manuel Fahndrich and Peli de Halleux - The Synergy of Code Contracts and Pex」このビデオで見ることができます。
Martin氏の反応にあるように契約による設計は古くて過去の様に思われがちですがユニットテスト技術の発展と実践の普及と合わせて当初のアイデアから発展させて効果的な実践が考えられるのではないかと思います。