ときどき更新されます

CS 周りのお勉強のログ

Design It! の3章を読んだ.

3章では主に,設計をリスク駆動で進めていく方法について書かれていたので,まとめます.

設計におけるゴールとそれに向けて意識すること

ゴール:最適で合理的な設計ではなく,自分たちのニーズを満たす必要最小限の設計.

上のゴールを達成するために,設計中意識すること

  • 設計を解決策を検証する実験とみなす.設計において考えた組み合わせがあまり良くないわかるだけでも,ゴールに近づいている.
  • リスクを減らすということに専念する.
  • 利害関係者の数を減らしたり,制約を加えたり減らしたり,定型問題に落としたりして問題を単純化する.
  • ある解決策を検証する速度を上げて,素早く学べるようにする.
  • 問題を先に定義しようとするのではなく,解決策と同時に探っていく.

設計に専念する期間

アーキテクチャ設計に時間をかけることについて,将来の修正コストを減らせるということと,利害関係者に価値を届けるまでに時間がかかるということがトレードオフ

最適な時間については,システムの大きさ,複雑さ,要求の変動性に依存.

設計の優先順位

リスクをベースに考える.リスクの大きさで優先順位をつける.

リスクは,現在ある条件と,それにより今後起こりうる結果をセットで記述する.

リスクの軽減に取り組み際はまず,以下のようなある程度の対処方針を決める.

  • 確率を下げる
  • 影響を軽減する
  • 時間的な制約を取り除く
  • 上で考えた条件を取り除けるようにする.
  • 受容して何もしない

その後,現在どこにリスクがあるかを基に,デザインマインドセットを選択し,解決のための設計を進めていく. この際,Think-Do-Check を利用して,次になにをすべきかを決めていく.

上記をアーキテクチャがシステムにおける最大のリスクでは無くなるまで続け,その後は必要になったときに都度対処するという方針に変える(対処プロセスは同じ).

設計計画

上のような考えを基にして設計計画を立てる.その際以下を含むようにする.

  • どのような状態になるまで設計に専念すべきか(システムの大小などによる)
  • 設計としての成果物を何にするか
  • マイルストーン.各レビューなども含める.
  • 上位のリスク.定期的に見直す.
  • 初期の設計思想を伝える簡単な設計