達人プログラマー アンドリューハント、デビッドトーマス(ピアソンエデュケーション)
1.変化の触媒たれ
あらかじめ要求をうまく引き出せるようなシステムを作成する。
元々必要な機能追加質問に対してあらかじめ準備しておく。
2.大きな構想を忘れないようにすること
細かな仕様変更要求に対しては、大きな視点でものを見て、周囲で何が起こっているか注意する。
3.品質要求を明確にすること
トレードオフにユーザを巻き込み、現段階でのやめ時を選択させる。
4.モジュールの独立性と開発生産性を上げるために設計はレイヤー化する。
(1)ユーザインターフェース
(2)データベースアクセス
(3)レポートエンジン
(4)ビジネスロジック
(5)アプリケーションフレームワーク
(6)標準ライブラリ
(7)オペレーティングシステム
5.(客先依頼において)最終決定などというものは存在しない
可逆性のある設計、コーディングとすること。「やり直し」をできるだけ発生させない。
6.(要求の最終形態に対する何らかの解釈として)できるだけ基本的な構造仕様を迅速に明確に提示すること
デモ可能な環境を整え、目標を明確に捉えるまで何度も提案、修正すること
(1)プロトタイピング
システムの最終形態についての理解を検証するもの。
コンセプトの確認を終えた後は作成したものを捨て去り、得られた情報から再構築する。
(2)曳光弾によるアプローチ
アプリケーション全体の連携、アーキテクチャの骨格を作成する。
先行して作成した公開フレームワークは、その後新しい機能が追加され、完全なルーチンに置換される。