いろいろなプロセス ~V字モデルとスクラム~
前回は、チームを作るための要素について説明しました。『チームとは個人個人の力を単純に加えたものよりも大きな力を発揮する程度にまで強く結束したグループである。』と『ピープルウェア』では定義されています。グループをいかにチームへと変えていくのか?そのための要素を本稿では、ビジョンとプロセスの2つに大きく分けました。プロセスは、ゴール、マイルストン、ガイドライン、ルール、ロールから構成されます。以降の話では、プロジェクトの達成に人を惹き付ける魅力的なビジョンが存在していることを前提に話します。
え?それ前提にしていいの?と思われる方もいる気はしますが、ビジョンについては前回のコラムをご覧ください。
一般的なプロセス
さて、今回はプロセスを説明するための例として一般的に認知されている以下のプロセスモデルを取り上げます。
- ウォーターフォール型
- V字モデル - 反復型
- スクラム(Scrum)
プロセスモデルとは、プロセスの一部の特徴を抽出して表現したものです。モデルとは、複雑な実体を特徴によって分解することで理解を助けるためのものであり、例えば、プラモデルは実物の形態のみを縮小してプラスチックにより造形し表現しています。ここで挙げたプロセスモデルは主にマイルストンの設定の仕方を規定します。ゴールに至るための経路が異なります。
ゴールはシステム要件を満たすことであり、大きく分けると機能要件と非機能要件を満たすことに分けられます。機能要件はシステムが満たすべき機能であり、非機能要件はパフォーマンス、使いやすさ、メンテナンスのしやすさ、制約などです。全てのシステム要件を満たした状態がゴール地点であり、ゴールに至るまでにいくつかの状態を経ることになります。富士山の頂上がゴールだとすると、5合目や8合目がマイルストンになります。
図1:ゴールとマイルストン |
それでは、「ウォーターフォール型や反復型のプロセスモデルでは、どのようなマイルストンを設定するのか?」を見ていきましょう。
V字モデル
ウォーターフォール型に従ったプロセスでは、滝の水が上流から下流に流れるように、上流工程から下流工程へと仕事が流れていきます。滝の水が上へと戻らないように、ウォーターフォール型では工程を逆へ戻ることはありません。「前工程へと戻らないようにしよう!」と意図して考えられたプロセスと言っても良いかもしれません。ウォーターフォール型では、図2のように仕事が流れていきます。
図2:ウォーターフォール型のプロセス |
図2では、下流にテスト工程が存在しています。しかし、実際の開発では、単体テスト、システムテスト、受け入れテストといった様々なテストを行います。これらのテストは上流工程と対応しており、図3のようなV字を描くことができます。
図3:V字モデル |
工程は「行うこと」を意味します。マイルストンは各工程を行った結果として到達する「状態」を意味しますが、各工程はどのような状態を目指すのでしょう?