スコープは、プロジェクト定義の中で不可欠な要素の一つです。その上で、何をすべきかという「実行する作業の量」を想像しますね。
それでは、最初にスコープという言葉の意味について辞書で調べてみましょう:
イタリア語のscopo(「目的」)より、ラテン語のscopus(「ターゲット」)から
おお、ちょっと待ってください。元の意味は、実行する作業の量ではなく、目的に関するもののようです・・・興味深いですね。アジャイルには多くの捉え方があるので、勘違いを避けるためにここではScrumについて話しましょう。
アジャイルスクラムプロジェクトにおける進捗は、実行されたタスクの数ではなく、提供された利用者経験の項目、つまりユーザーストーリーで測定されます。それは、進捗を確認するために「作業の量」で計測するそれと根本的に異なります。何を開発したとしても、利用者経験を提供できない限り全てが無駄です。厳しく聞こえますが、それがアジャイルスクラムプロジェクトのスコープを正しく理解するための元です。
さて、スコープが何であるかを明確に理解したら、より具体的に話してみましょう。
アジャイルスクラムプロジェクトにはスプリントがあります。
スプリントとは何でしょうか?ある意味ミニプロジェクトです。非常に短い期間で、明確な目標と明確に定義された提供内容を持つミニプロジェクトです。アジャイルスクラムは「やるべきこと」ではなく「利用者への提供内容」にフォーカスするので、「タスク」ではなく「提供」となります。スプリントのサイズは、その中のユーザーストーリーのサイズの合計であり、ストーリーポイントとも呼ばれます。それはパラダイムによって異なる場合があります。
ストーリーポイントとは何でしょうか?それはユーザーストーリーの複雑さを測定するための単位です。特定の時間やその他の物理的計測値に拘束されない任意の数値です。プロジェクトでストーリーポイントを計測する方法を決定したら、そのモデルは最後まで使いましょう。そうしないと、見積もりが正確でなくなります。
ここでは、よく使われている期限付きのベースラインを使用したユーザーストーリーポイントを測定する1つの方法をご紹介します。
言葉で表現すると、一定量のストーリーポイントがあります。特定の適度に短い期間で実行できるタスクを表してベースラインと呼ばれます。ベースラインより上または下のストーリーポイントは、実現の相対的な難しさを表しています。難易度は通常、未知数の量に関係しているため、タスクがベースラインの3倍もしくは4倍難しいかどうかを確実に見積もることはできません。ここではフィボナッチ数列を使います。フィボナッチ数列は、上に行くほど幾何学的に大きな数を生成する優れた特性を備えているため、未知数が多すぎてわからない時は必然的に大きな数になります。大きすぎるタスクは推定できませんよね。トートロジーになってしまいごめんなさい。そのため、通常はストーリーポイントの量に上限を設けます。
概略的にしますと:
さて難易度を見積もる方法がわかりましたので、スコープの話に戻しましょう。
途中でスプリントを変更するのは悪い考えだと聞いたことがありますが、最近のアジャイル業界は少し緩くなっています。ですが、実行中のスプリントのスコープは変更してはいけません。実行中にスコープが変更されると、終了すべきストーリーポイントの量に影響がでるので、メンバーが過労して苦しむことになります。あまり自信がないですが、本来であれば人間は残業を嫌うはずです。必然的に品質も落ちます。残業をしたくない場合は、スプリントスコープで遊んではいけません。
特にコーポレートアジャイルにおいて見過ごされがちな1つに、作業要求者と実行者の間の契約という存在です。いわゆる契約とは、顧客とのビジネスニーズの短い定義であり、そのニーズを実装した明確な定義です。よって契約とは、ビジネスニーズの短いステートメントと、そのニーズを実装するためのユーザーストーリーのリストであると言えます。
「契約」を取り上げた理由は、変わらずスコープの問題です。我々は顧客から要求された仕事をします。要求されていない仕事をする必要はありません。顧客が依頼していないものを提供することは優しいことと思うかもしれませんが、契約に記載されていることを行うのであって、記載されていない仕事はしてはいけません。その理由は、頭に浮かぶすべてのベルやホイッスルではなく、利用者の提供に重点を置き、ユーザーの価値を最大化するためです。最低限までスコープを減らして品質を提供するという考えです。ストーリーポイントは、ユーザーストーリーを提供する難しさを測定するためのものですが、ユーザーストーリー自体は非常に単純なステートメントであり、特定のビジネスニーズに到達するためにソフトウェアがどのように動作するかを説明しています。
まとめますと、アジャイルスクラムのスコープは利用者価値の量で表される。ということです。ユーザーストーリー、ストーリーポイントは、利用者価値を表現する単なる方法であり、それ以上でもそれ以下でもありません。
このような用語でスコープを抑えると、開発者が正気を保ちながら(つまり、仕事しすぎて倒れない)、最大限に効率的になる(つまり、ユーザーが望むものを提供する)のに役立つことになります。