いろいろなプロセス ~V字モデルとスクラム~
V字モデルのマイルストン
以前テレビ番組で、「一枚の写真を頼りにその写真が撮影された場所に行って同じ角度から写真を撮る」というゲームをする番組を見たことがあります。ゴールは「提示された写真と同じ角度から撮影された写真がある」状態です。その番組で提示される写真は昔の写真です。昔の写真を頼りに撮影場所を特定します。昔とは景観が変わってしまい、昔の写真に写る目印がなくなっている場合すらあります。なかなか難しいゲームです。複数枚の昔の写真が提示され、制限時間内に多くの写真を撮影したチームが勝ちになります。
V字モデルのマイルストンを説明するために、このゲームを例に使ってみます。目的を果たし、ゲームに勝つために何をするでしょうか?
【ステップ1】
まずは、写真が撮影された場所を特定しなければなりません。提示された写真に写っている風景を分析します。写っている橋、道路、建物などに注目するでしょう。
【ステップ2】
次に、橋、道路、建物などの情報に基づき、撮影された場所を推定します。橋と道路の位置関係や角度から分析していくつかの候補地が挙げられます。しかし、各写真の候補地を1つに絞らなくてはなりません。そのために様々な分析をします。現在の地図や都市開発の歴史などを紐解くかもしれません。情報を頼りに候補地を1つに絞り、その候補地で撮影できるであろう写真を想像します。これを提示された全ての写真について行います。
【ステップ3】
候補地が決まったところで、移動手段を検討します。移動には時間と費用が必要ですので、これら制約を満たすような移動手段を考えます。飛行機は早くて安いですが、時間の制約を満たせなくなるリスクが高いです。電車は費用が高くなりますが、時間の予測が確実にできます。このように様々な手段の中から最適な手段を選択します。この際、複数の写真を効率的に撮影できるように、移動経路を検討します。
【ステップ4】
ここでやっと現地に赴くことになります。計画した移動手段に則って現地に赴き、写真撮影です。提示された写真と同じ場所で撮影できるでしょうか。
この例の【ステップ1】から【ステップ4】が、V字モデルの要求定義から実装に該当します。ちょっと分かりづらいでしょうか。対応を図4に示します。
図4:ゲームとV字モデルの対応(要求定義~実装) |
対応について補足説明をします。ステップ1は要求定義であり、提示された要求を分析して要求項目を定義します。ステップ2は基本設計であり、要求項目を満たすシステムを検討し、システム仕様として定義します。基本設計では、顧客の要求を満たすために「何を作れば良いのか」を推定します。ステップ3は詳細設計であり、システムを実装する手段を検討します。詳細設計では、システム仕様を満たすように様々な技術から最適な手段を選択します。ステップ4は実装と実行です。
テストについても例示してみましょう。対応を図5に示します。
図5:ゲームとV字モデルの対応(テスト) |
単体テストとシステムテストは、システム仕様と実行結果の比較になります。システム仕様を満たすようにシステムを作成すれば顧客の要求が満たされるという前提の上に成り立つテストです。実際に顧客が満足するかは、受け入れテストで検証されることになります。