Smily Books Blog 2023年7月更新中

アジャイルプロジェクト管理 アリスター・コーバーン(ピアソン・エデュケーション)

1.成功と失敗
(1)オブジェクト指向のメリットを得るにはコストがかかる。
新しいオブジェクト指向プログラマが給料に見合った働きをするまで
トレーニングするのに9ヶ月かかる。
(2)成功するプロジェクトのステップは以下の4つ
 インクリメンタルな計画を使用する
 間違ったアイデアを発見し、修正する
 納品習慣を形成する
 優れたスポンサ、プロジェクトマネージャ、テクニカルリーダを育成する
(3)インクリメンタルな開発
 システムの各部分を異なるタイミング、異なる割合で完成させる手法
(4)イテレーティブな開発
 システムの品質を改善するために、システムの一部を再作成する事。

2.(オブジェクト指向)プロジェクトの適合性
(1)最適な人員
 できるだけ早く終えることが目的のプロジェクトは2人で構成する。
 (オブジェクト指向でのコミュニケーションの難しさを避けるため、人員は最小限)
 オブジェクト技術を調査するプロジェクトは少なくとも4人で構成する。
 (オブジェクト指向でのコミュニケーションの難しさを明らかにするため人員は増やす)
(2)最適なプロジェクト
 システム拡張性、設計が言語のメモリ管理機能に依存し、プログラム構造を単純化する必要があるプロジェクト
(3)不適合なプロジェクト
 開発メンバをオブジェクト指向で再教育するコストに見合わない場合

3.オブジェクト指向プロジェクトの選択と設定
(1)教育事項
 オブジェクト指向で考えられるようにする
 オブジェクト指向設計の利点を理解
 プログラミングツールの理解
 プログラミング(コーディング)規約の標準化
 クラスライブラリの理解
 フレームワークを文書化する方法の理解
 プロジェクトメンバの役割理解

4.プロジェクトの開始
(1)見積り
 非商用クラス1つにつき開発期間は2週間、商用クラス(再販される)クラスは4週間かかる
 ただし、クラスを開発する期間の他に必要なクラスを推測する作業(こちらの方が難しい)期間も考慮が必要。
(2)ドメインクラスの洗い出し
 「名詞」をブレーンストーミングし、構築するシステムコンポーネントを洗い出す。
 システムコンポーネントの組立、分割可能性を検討し、クラスとする。
 そのクラス1つにつき、2あるいは4週間として、作業期間を見積もる。
(3)画面クラス
 画面はユーザの必要性に沿って作られるため、ドメインとは関係性が無い。
 画面クラス1つにつき、3週間割り当てる。
(4)ユーティリティクラス
 通貨、時間、トランザクション、再帰ツリーなど一般に役立つクラス。
 1クラスにつき2週間割り当てる。
(5)フレームワーククラス
 検索、エラー、画面管理などビジネスに関連しない技術的なクラス。
 1クラスにつき10週間割り当てる。
(6)上述の見積は平均的開発者の場合。優秀なプログラマは数倍のスピードとして見積もる。
(7)上記の見積は、システム要求時には詳細な見積はできない。

5.間違いの修正
(1)イテレーションのリスク
 プロトタイピティ:
  プロトタイプの改版が最終納品とになると勘違いし、プロトタイプの改版を続ける事 デススパイラル:
  マネージャが慢性的にスケジュール作成を要求し続ける事
  開発者はイテレーションのたびにスケジュール作成も行い、開発進捗が遅れる
(2)イテレーションのリスク回避策
 タイムボックス:
  ある期間(タイムボックス)の間、開発へのあらゆる割込を禁止する
 チーム内の1名を犠牲にして、スケジュール作成者専属とする