要件定義はITプロジェクトの成功において最も重要なステップですが、難易度が高く苦手とする方も多いのではないでしょうか。
本稿では、ITの要件定義を進める上で大切なポイントについて、初心者目線でやさしく簡潔に解説していきます。
行き詰まったときは、一度基本に立ち返るのも手です。本稿が皆様のお悩みのヒントとなれば幸いです。
ちなみに今回は実践入門とし、「そもそも要件定義とはなにか?」という説明は省略しますので、要件定義について知りたい方は以下のエントリを参照してください。
要件定義を進める上でのポイント
それでは、さっそく要件定義を成功に導くポイントについて解説していきます。
我々QualityCube社が、要件定義を進める上で重要と考えるポイントを大きく2つに分け、それぞれ解説していきます。
<要件定義のPOINT>
POINT1.「要件定義を進める上で持つべき考え方」
POINT2.「要件定義を成功に導く具体的なアクション」
POINT1.「要件定義を進める上で持つべき考え方」
POINT1は、要件定義を進める上で、まず念頭に置いてほしい考え方6つです。
これらを常に意識していただくことが、結果的に要件定義の質を高めることとなります。
(1)コミュニケーションの強化
要件定義の最初の難関は、関係者間のコミュニケーションです。
コミュニケーション不足による認識齟齬がもとで、トラブルに発展する事例は少なくありません。しかしながら、立場の異なるメンバー同士の意思疎通はどこの組織においても、そうスムーズにはいかないものです。
だからこそ定期的にコミュニケーションの場を設け、各ステークホルダの期待や要求を明確に掴み、丁寧にヒアリングすることで、プロジェクトの方向性を共有することを心がけましょう。プロジェクトの目的や要求事項を正確に把握、理解するためにも、ここは乗り越えるべきポイントです。
(2)完全性
要件定義は、システムやプロジェクトに関する重要な側面を網羅した「完全であり理想的な状態」である必要があります。
要件に抜け漏れがあると、後々の工程で問題を引き起こす可能性が高まり、プロジェクトの失敗に繋がりかねません。常に細心の注意を払い、抜け漏れが起こらないように意識しましょう。
(3)一貫性(矛盾の解消と整合性の確保)
要件定義の中で矛盾が生じないようにすることも重要です。
一貫性のない要件定義は、開発途中の大幅な手戻りの要因となり、結果的に時間の浪費やコストの増加といったムダを招くこととなります。とはいえ、要求にそってあれこれと要素を追加しているうちに、少しずつ整合性が合わなくなる…ということは起こりえます。
複数のステークホルダから要求があった場合は、要求同士の整合性が確保できるよう、常に矛盾点はないか意識し、見つけ次第解消しておきましょう。
お互いの妥協案を見つける、あるいは双方の要求を包含する新たな要求を定義するなど、矛盾の解消方法を模索する必要があります。
(4)優先順位の設定
すべての要求事項について加味すべきですが、すべてが同じ重要度を持つことはありません。
よって、絶対に実装する機能と可能であれば実装する機能の切り分けや、どの機能から実装すべきか等、優先順位を明確にするよう心がけましょう。
限られたリソースから価値ある成果物を生み出すためにも、またスケジュールや予算の最適化のためにも、優先順位の設定は非常に重要です。
(5)システム化に向けての実現可能性の検討
システム化に向けて、技術的な制約や実現可能性を検討することも重要です。
様々な条件が要求事項に含まれており実装が困難、あるいはコストが見合わない場合は、議論によって適切な妥協点を見いだす必要があります。
システムの理想像を描くことが要件定義ではありますが、「絵に描いたモチ」にしないための検討は十分におこなうべきです。
(6)長期的な視点
要件定義では、プロジェクトの現段階のみにとどまらず、長期的な視点も考慮すべきです。将来的な拡張や仕様変更に対応できるよう柔軟性を持たせ、システムの持続可能性を確保することが理想です。
顧客のえがく未来のビジョンに合致し、かつ将来的なニーズにも対応できるシステムの構築を目指しましょう。
POINT2.「要件定義を成功に導く具体的なアクション」
POINT2には具体的なアクション7つを示します。
POINT1の要素を意識しつつPOINT2のアクションを取ることで、さらに要求定義の質が高まりますので、ぜひ実行してください。
(1)文書(ドキュメント)化であいまいさを排除
要件定義ではあいまいさを排除し、具体的かつ明確な表記で要求を文書(ドキュメント)化することが重要です。(これは「要件定義書」と呼ばれます。)
要求事項を整理し、客観性の高い要求定義書を作成することで、開発メンバーを含めたステークホルダが異なる解釈をする余地がないようにしておきます。
これにより、開発チームや関係者が共通認識を持ってプロジェクトを進めることができます。
(2)変更管理プロセスの策定
プロジェクトの進行中に要求事項が変更となるケースもよくあります。
その際、混乱や確認漏れ、ムダな作業の発生を避けるためにも、変更管理のプロセスを策定しておきましょう。
変更が発生した際の承認手続きや影響分析、文書の更新手順などを明確に定義し、変更を適切に管理できるようにしておきます。
(3)工程移行判定基準の設定
要件定義を成功させるためには、効果的な工程移行判定基準を設定することが重要です。
工程移行判定の基準次第で、品質確保のレベルが変わるといっても過言ではありません。
プロセスとプロダクト(ドキュメント)の両方の視点から基準を設けることにより、要件定義工程を網羅的に判定することが可能となります。
◆参考◆
工程移行判定をサポートするQualityCube独自の品質管理ツール:「クオリティゲート」
(4)承認プロセスの確立
要件定義をスムーズに進めるためにも、ステークホルダによる承認プロセスを確立しておきましょう。
文書化された要求事項の正確さやプロジェクトの目的達成可否について、承認者に確認してもらいます。適切な承認プロセスを経て顧客との合意を取っておくことは、後々のトラブルを避けるために最も重要なことの一つです。
(5)可視性とアクセシビリティの確保
要件定義は開発プロセス全体の源と言えます。そのため、定義し文書化された要求事項は、全てのステークホルダがアクセスしやすく見やすい形で管理することが重要です。
要件定義は、ステークホルダ全員がいつでも取り出せる場所に管理しましょう。
(6)適切なツールの選定
以外と見落としがちですが、要件定義の過程で使用するツールの選択も重要です。
要件管理ツールやコミュニケーションツールなどを必要に応じて活用することで、要求事項の追跡やステークホルダとの効果的なコミュニケーションが行え、円滑な管理が可能となります。
目的達成に最適なツールを選定しておきましょう。
(7)専門知識の活用
要件定義においては、関連する専門知識を活用することも重要です。
業界のベストプラクティスやフレームワークを採り入れることで、成功確率は飛躍的に向上します。また、必要に応じて専門家のアドバイスを積極的に取り入れることも得策です。
さいごに
本稿では、ITの要件定義を進める上でのポイントについて解説してきました。
「かんたんに分かりやすく」をモットーに書きましたので、実践入門としてお役に立てば幸いです。
なお、要件定義のさらに詳細な解説をご覧になりたい方は、以下のエントリをご参照ください。より深い内容に触れていますので、きっとご満足いただけるかと思います。
株式会社QualityCubeでは、品質コンサルティングをドメインとした様々なソフトウェア品質改善のソリューションを提供しております。
システム開発において難易度が高いといわれる上流工程の支援を得意とし、「要件定義代行支援サービス」や「DXコンサルティングサービス」等も展開中です。
お困りごとがございましたら、まずはお気軽にお問い合わせ下さい。