■
「強く強張ったものは折れる。しなやかなものは生き残る。---- Tao Te Ching」
私もしなやかでありたい。Tao Te Ching を調べたら、「老子の道徳真経」のことだった。
第8章 方向付けフェーズから推敲フェーズへ(P111)
推敲フェーズでは、「中核のアーキテクチャを構築」し,「高リスクの要素を解決」し,
「ほとんどの要件を定義」し,「全体的なスケジュールと資源を見積もる」
8.2 推敲フェーズの始動(P113)
- 一連の反復の先頭に位置する(2〜6週間の反復期間が推奨)
- プログラミングに早く着手する
- 本番稼動システムの一部を作成する(推敲フェーズは設計フェーズでも、実装に備えてモデルを完全に作成するフェーズでもない)
- 早期から頻繁に現実的なテストを行う
- フェーズの反復ごとに、ワークショップを重ね、ユースケースと要件のほとんどを記述する。
8.2.1 推敲フェーズで大切なこと(P114)
- 「広く浅い」設計と実装を採用する。(インターフェイスを明確にするために部分的に実装してみる。モジュールの大部分が「スタブ化されたコード」からなる)
- モジュール相互のローカルおよびリモートのインターフェイスを洗練する
- 既存のコンポーネントを統合する
- 多数の主要コンポーネントにまたがる設計,実装,テストが必要となる,頭から最後までの単純化されたシナリオを実装する
テストがとにかく大事!
フィードバックを獲得して、調整して、中核部が堅牢であることを実証しなきゃいけないから
(テストをしなきゃいけないものの例:ユーザーインターフェイスの使いやすさのテスト,リモートサービスに障害が発生した場合の回復のテスト,リモートサービスに高負荷をかけるテスト)
※これ、こないだのプロジェクトで失敗してることばっかだ・・・(汗。POSで障害起きたけど復旧に時間かかったし、リモートのポイントシステムが高負荷で落ちたし・・・。こんな早い段階で作ってテストするものなんかー。ビックリ。
8.6 推敲フェーズを理解していない状況(P117)
- ほとんどの要件が、ここまでに定義済みだった
- 数ヶ月以上をかける
- 1回しか反復しない
- あくまでプロトタイプを作ってしまう(本番稼動システムには組み込めない)
- 完全な設計を行おうとする
- 要件を調整し、改良するということを行わない。(先に進むだけで戻らない)
※「理解してない状況」シリーズおもろいっっ!身につまされます。ホントに。