【35】大きなスコープは敵

デーブ・クイック

 スコープとは、プロジェクトの規模のことです。どのくらいの時間、作業量、リソースが必要か。どの程度の品質でどのような機能が必要か。実現がどの程度難しいか。リスクはどの程度か。どのような制約があるか。これらの問いに対する答えが、プロジェクトのスコープとなります。

 ソフトウェア・アーキテクトは、大規模で複雑なプロジェクトに挑みたがります。評価を得ようと、プロジェクトの重要性を増すためにわざとスコープを広げようとさえします。しかし、スコープを広げようとすると、失敗の危険性は予想以上に速く拡大します。ですから、スコープの拡大は、成功の敵だと言っても間違いはありません。プロジェクトのスコープを倍にすると、失敗の危険性は桁違いに大きくなります。

 なぜそんなことになるのでしょうか。いくつか例を考えてみましょう。

 もちろん、それなりの規模も複雑度もなく、最初からやる価値のないプロジェクトはあります。テキスト入力機能を持たないテキストエディタは簡単に作れますが、それではテキストエディタにはなりません。では、現実のプロジェクトでスコープを縮小するか、管理できる範囲に押しとどめておくためには、どのような戦略を取ればよいのでしょうか。

 アジャイルの推進者たちは、「使えそうなものの中でもっともシンプルなもの」を作ることを提唱しています。複雑なアーキテクチャーは、単純なアーキテクチャーよりもかなり高い確率で失敗します。プロジェクトのスコープを縮小すれば、多くの場合、アーキテクチャーも小規模になります。スコープ縮小は、アーキテクトが成功の確率を上げるためにできるもっとも効果的な戦略の 1 つなのです。