アジャイル開発では、「包括的なドキュメントよりも、動作するソフトウエアを重視する」と宣言している。
簡潔なドキュメントを書ことだけて足りるのです。本当にそうなのでしょうか。
詳細な説明がなくてもソフトウエアの仕様を理解できる理由として以下の点が考えられます。
・ユースケース・シナリオに従って動作するソフトウエアがある。
・原則(オブジェクト指向設計の原則)に従って設計されている。
・パターン(デザインパターン)を適用して設計されている。
・専門的な知識を持つ技術者から適時教えてもらえる環境がある。
・動くテスト環境がある。
逆に言えば簡潔なドキュメントで足りる開発手法なのです。一般的なドキュメントを修正し、
それから対応するコードを修正するという流れでは、コードを書くために多くの詳細情報が必要です。
しかし、修正されたコードに多くの設計情報が含まれていれば、
コードそのものを直接修正するのですから、詳細なドキュメントを必要としません。
熟練したプログラマーは、実装しているシナリオをあるデザイン・パターンを適用して実現します。 また、既に実装されたコードがあれば詳細な設計ドキュメントがなくても、 クラスの名前からデザインパターンを連想し、クラスの構造やシナリオを理解します。
public class TestObserver { public void testButtonClick() { Button button = new Button("abc"); MockPanel mockPanel = new MockPanel(); button.addListener(mockPanel); button.click(); assertPanelEquals(mockPanel, "abc"); } }
参考文献:Agile Software Development by Robert C Martin