27章 プログラムサイズが及ぼす影響
akht.icon
言うことを聞かない猛獣をどのように調教するか
27.1 コミュニケーションとチームの人数
コミュニケーションパス = n * (n - 1) / 2 (nは人数)
大規模なプロジェクトではコミュニケーションを円滑にするために組織的な枠組みが必要
文章化することがコミュニケーション合理化の一般的なアプローチ
27.2 プロジェクトの規模の範囲
本書の票を参照
27.3 プロジェクトの規模がエラーに及ぼす影響
エラーの数と種類はどちらもプロジェクト規模の影響を受ける
種類:プロジェクト規模が大きくなると要求や設計のミスによるエラーの割合が高くなる
数:プロジェクトの規模が2倍になった場合、エラーの数は2倍以上になる
27.4 プロジェクトの規模が生産性に及ぼす影響
プロジェクトが小規模の場合、生産性に最も影響するのはプログラマの能力
プロジェクト規模が大きくなるにつれチームの人数や構成が生産性に大きく影響するようになる
27.5 プロジェクトの規模が開発作業に及ぼす影響
27.5.1 アクティビティの割合と規模
プロジェクト規模が大きくなるほど、コンストラクションの割合が少なくなる
そうなるのは、コンストラクション以外のアクティビティが重要になってくるため
プロジェクトの規模に関わらず常に有効なテクニック
コーディング標準の作成
他の開発者による設計とコードのインスペクション
いいサポートツール
高級言語の使用
27.5.2 プログラム、製品、システム、システム製品
最終的なソフトウェアの品質や複雑さも、プロジェクトの規模に影響する
単純なソフトウェア、複雑なシステムの違い
「プログラム」の開発経験に基づいて「システム製品」の開発スケジュールを立てると見積もりに10倍の誤差が生まれる恐れがある
規模や複雑さに応じて増大する「コンストラクション以外のアクティビティ」を計算に入れる必要がある
このように予測を誤る原因は、大きなプログラムの開発における規模の影響を理解していないことに尽きる。
27.5.3 方法論と規模
方法論の傾向
小規模プロジェクト:自由で直感的なもの
大規模プロジェクト:慎重に計画された厳格なもの
文書化は、ソフトウェアシステムの契約を立てて開発するという作業の目に見える成果物
そう決まってるから仕方なく作成すると思ってるならどこかが間違ってる
方法論では欲張るのは禁物
簡単な手法を選んであとから拡張するのが良い
27.7 まとめ
本書参照