
338
20
章 グローバルなソフトウェア開発における依存関係の認識と管理
なことでしょう。大規模プロジェクトでは、たとえば経験、組織構造、地理的な分散、スケジュールの
圧力などの多数の要因が、効率良く効果的にすべての関連する作業依存関係を見つけ出して管理しよう
とするプロジェクトメンバーの能力を抑制する障壁を作ってしまいます。
たとえば、開発者があるシステムに対して限定的な知識
/
経験しか持っていないと、自分の作業の一
部としてそのシステムに施す変更が意味するすべての可能性(たとえば、メソッドや関数呼び出しの事
前条件や事後条件を満たすことなど)について、理解していない傾向があります。このような知識の
ギャップが、典型的には作業の手戻りや品質の悪さという形で、生産性を低める結果をもたらすのです。
しかし、技術的ノウハウやシステムノウハウというカテゴリを越えて、経験は重要であり得ます。一
緒に働く人を知っていると、情報共有やコーディネーションが行い易いため、他のチームメンバーと一
緒
に働いてお互いよく知っていることは、結果として生産性と品質を改善する可能性があります。たと
えば技術者たちは、情報を同僚にもらったり互いに共有するための割り込みを、いつどのようにすれば
良いか分かり合ったりするなどして、お互いに協力する方法を内輪に作り上げているものなのです。
作業依存関係の認識と管理に関係する重要な、しかし時に見過ごされる要因は、プロジェクトと開発
組織の構造です。そのような構造は、いくつもの要素、たとえば関係する組織ユニット群 ...