要求仕様に関する不具合発生を防止する - 「W字モデル」導入のメリットと課題
はじめに
「出荷直前/出荷後に要求仕様通りにソフトウェアが動作しないことが発覚し、その改修作業で想定外の手戻り作業による大幅な出荷遅延と追加費用が発生した。」
ソフトウェア開発プロジェクトで上記のようなトラブルを経験したことはありませんか? 一般的に、要求仕様に関連する不具合は、最終工程であるソフトウェア検証まで検出できないため、手戻り作業や改修コストが予想以上に大きくなります。要求仕様に関する不具合の原因として、以下のようなケースが考えられます。
- 要求分析工程で、開発者が誤った(曖昧な/不十分な)要求仕様書を作成してしまった。
- 検証者は、検証工程で誤った(曖昧な/不十分な)要求仕様書に従って検証仕様書を作成して検証を実施したため、検証検証結果の妥当性の確認が不十分だった。
- 開発者と検証者間の情報共有不足により、検証工程で検証者が要求仕様書を十分に理解できないまま、誤った検証仕様書を作成して検証作業を実施したため、十分な検証ができていなかった。
要求仕様に関する不具合発生の防止策の一つとして、上流工程の品質向上を目的とした「W字モデル」の考え方とプロセスを導入するというアプローチがあります。
1. 「V字モデル」とは
まず最初に、ソフトウェア開発で広く採用されている「V字モデル」について簡単に説明します。
- ウォーターフォール開発モデルでは、各開発プロセスの上流から下流に向かって、要求分析、設計、検証と各プロセスを進め、基本的に後戻りはしません。
- V字モデルは、ウォーターフォールモデルに対して、開発工程と検証工程の各プロセス間の対応関係を明確にした開発モデルです。
一般的に、V字モデルにおける開発者と検証者の業務分担は以下となります。
2. 「W字モデル」とは
次に、「W字モデル」について、「V字モデル」との違いに着目して簡単に説明します。
- W字モデルは Andreas Spillner 氏が提唱した「上流工程で検証計画を同時期に作成することで、開発工程全体短縮(開発効率化)を実現する」 というプロセスモデルに基づいており、開発と検証を交互に繰り返す活動が 「W字」 に見えることから、W字モデルと呼ばれています。
- W字モデルはV字モデルを拡張した開発モデルで、開発工程完了後に検証を行うのではなく、開発と検証をリンクさせ、開発段階から検証者が参加して検証準備を同時並行で行うことを特徴としています。
W字モデルにおける開発者と検証者の業務分担は以下となります。
3. 開発者、検証者の業務分担
2章、3章で説明した「V字モデル」と「W字モデル」の違いを、各工程毎の開発者と検証者間の業務分担と実施時期に着目して表形式でまとめてみましたので、参考にしてください。
4. 「W字モデル」導入のメリット
「W字モデル」を導入することにより、開発作業と検証作業を並行して実施することで、次のような効果が期待できます。
- 要求仕様書や設計書を開発者と検証者が合同レビューすることで検証の知見が加わり、矛盾/欠陥の検出率向上します(作業成果物の品質の向上)。
- 早期検出と検証の知見を開発にフィードバックできるため、検証工程まで不具合を流出させた場合の改修費用との比較で、手戻り工数の大幅な削減が期待できます(開発効率化)。
- 開発/検証チーム間の協業体制が醸成され、プロジェクトメンバーの品質に対する意識が向上します。
5. 「W字モデル」導入の留意点
「W字モデル」を導入するにあたり、次のような考慮・認識しておくべき留意点があります。
- W字モデルを導入するには、検証工程を前倒しにするなど開発プロセス全体に変革が必要で、体制構築と要員計画の見直し、チームのスキルセット向上等、多岐にわたる事前準備が必要となります。
- W字モデルでは開発作業と検証作業の連携が密になり、リソース調達やプロジェクト管理が複雑になるので、開発者と検証者間の情報共有の仕組み構築や開発/検証ツール選定も相互連携を考慮して慎重に行う必要があります。
- 一般に高スキル者数は限られており、開発/検証チーム双方に高スキル者を同時にアサインすることは困難です。
- 開発段階から検証者が関与するためには、検証者にも開発者と同等レベルの仕様理解力、設計力、コミュニケーション能力が求められますが、プロジェクト管理者は開発チームへの高スキル者アサインを優先すると、開発/検証チーム間の対等な関係構築は困難になります。
- W字モデル導入の効果を得るには、組織の開発プロセス(V字プロセス)が十分成熟していることが前提となります。
- 検証者が検証業務の分析/計画などの活動無しに検証作業を実施している組織では、Wモデル導入効果は期待できません。
特にソフトウェア愛初経験豊富な検証者を確保できるかというところがネックとなりがちですので、上記の留意点を踏まえると本格的に「W字モデル」を導入するのは、少しハードルが高いと感じるかもしれません。ソフトウェアアーキテクチャ/詳細設計の設計レビューに、ソフトウェア開発経験が無い検証者が参加しても、お勉強会になりがちですが(勉強の成果は、自ら実施する検証作業の精度向上には役立ちます)、レビュー対象のドキュメントの品質向上効果はあまり期待できません。
要求分析工程に限定すれば、評価者に追加要求されるスキルは仕様理解力となり(仕様理解力は文章読解力と同じ)、ソフトウェア設計経験の有無にはあまり関係ないと考えて良いので、「W 字モデル」のアプローチ導入に対するハードルは大幅に低下するのではないでしょうか。
まとめ
ユーザ視点・仕様理解力を持った検証の専門家が要求仕様レビューに参加すれば、検証の知見を発揮して要求仕様の品質向上に大きく貢献できると思います。要求仕様に関する不具合は影響範囲・規模が一番大きいので、これを少しでも削減できれば大きな開発効率化が実現できます。まずは、要求分析工程に対して部分的に「Wモデル」を適用するというスモールスタートをトライしてみてはいかがでしょう。
(海農 公宏)