ソフトウェア要件仕様書とは
ソフトウェア要件仕様書 (SRS) では、必要な能力、機能、イノベーション、ソフトウェア開発プロジェクトの制約を書面に記述します。SRS は、利害関係者の意向、すべての要素 (機能性および非機能性の領域)、ソフトウェアの動作やユーザーとの相互作用、ソフトウェアによって解決される問題を考慮に入れた文書です。この文書は、その後の設計および開発プロセスを支える「親」文書となります。また、ソフトウェア要件仕様書は、設計、テスト、検証、納入のタイムテーブルと費用の見積もりを作成するために使用されます。検証およびテスト中に確認する内容、機能的要素の配置方法についても指定します。
SRS の調査と作成という手法は、新しいソフトウェアの設計、開発、展開を準備するために長く使用されてきました。さまざまな技術的・非技術的な構成要素を幅広く取り入れた後に、ソフトウェアにより達成される内容やその動作が包括的にわかりやすく記述されます。その主な目的の 1 つは、実際の設計、開発、コーディングを開始する前に、新しいプロジェクトに必要な内容についての合意を促進することです。
ソフトウェア要件が重要である理由
SRS の第一の重要性は、開発の内容とその機能を利害関係者に明確に伝える能力です。開発者がコードを書く前に、製品に関するすべての要素が指定され、説明、仕様、グラフや表などの視覚的要素、ユースケースや現実世界のシナリオを通して記述されます。SRS の作成は、新しいソフトウェアを社内で開発する場合に有益です。ソフトウェア開発を外部の開発リソースに委託するときの明確な仕様書となるためです。ソフトウェア要件仕様書の目的をいくつか示します。
- 完了させる作業範囲の正確な説明
- ソフトウェアの設計者と開発者のための明確で管理しやすい詳細情報
- テスト チームのためのユースケース シナリオ
- 機能に対する顧客の要件の調整
- ソフトウェア開発のための更新可能な信頼できる唯一の資料
- さまざまな利害関係者からの情報を包含
適切なソフトウェア要件の利点
強力な SRS 文書があれば、ユーザー/顧客の情報提供やフィードバック、設計、検証、テスト、全体的なユーザー受け入れなどの多層的なやりとりの時間を節約できます。主要な利害関係者は文書の内容にアクセスでき、合意した能力や機能を理解しているため、SRS は余分な労力を省き、設計および開発プロセスを合理化するのにも役立ちます。正確な調査が記録されていて、関係者が範囲と機能に合意していれば、費用のかかる再設計やプロジェクト中の変更の必要性が最小限に抑えられます。SRS を使用すると、開発およびビルド プロセスを通して、または新しい作業者がチームに加わるときに、やりとりの貴重な時間を節約することもできます。また、包括的な SRS では次のことが可能です。
- 費用と時間の見積もりの精度の向上
- ソフトウェアの開発から本番稼働への移行の簡素化
- ソフトウェア ソリューションに含める内容に関する信頼できる唯一の資料として機能
- 仕様の一部を共有することによる利害関係者や顧客とのやりとりの向上
- 費用のかかる後半段階での変更の削減
- 将来の参照に備えた詳細の文書化
- ユーザーに要件リストの文書を提供
- 開発時の余計な労力とタスクの削減
ソフトウェア要件仕様書の使用者
SRS 文書には、説明的な要素と詳細な仕様の要素が含まれます。そのため、1 人のテクニカル ライターが文書を作成する場合でも、SRS の計画には多くの構成要素を盛り込むことが重要です。SRS の作成には、マーケティングやプロジェクト管理、サポート担当者、プロジェクト経営陣、顧客、設計および開発エンジニアなど、さまざまな人に携わってもらうことができます。フルタイムまたは請負業者の開発者、テスト担当者は、SRS に基づいて作業することで、ソフトウェア ソリューションが要件に従って開発されていることを確かめられます。
利害関係者から必要な情報を得るための方法としては、アンケート、インタビュー、調査、会議、フォーカス グループなどがあります。実情調査と確認は、ソフトウェアに含める内容と全体的な目標を特定することから始まります。また、ソフトウェアで実行しない内容や、業界や企業の方針、ハードウェアの制約が存在するかどうかを定義することも有益です。ここでの作業は、実際の設計要素を文書化することではありません。その代わりに、最終バージョンには後からソリューションを構築するための適切な説明と記述、グラフなどの視覚的要素、技術仕様、定義、優先順位付けと評価のプロトコル、参考資料、検証およびテスト、ユーザー シナリオを盛り込みます。現在の機能、制限、ビジネス上の懸念、費用についてなど、機能に関する質問をまとめます。 ServiceAide (サービス エイド) の製品管理部門長の
リッチ・グレイヴス (Rich Graves) 氏は、ソフトウェア開発のアジャイル フレームワークに厳密に従っています。彼は、ジョブ理論の考え方が、チームでより良い製品を開発する上で役立っていると感じています。「ジョブ理論とは、顧客中心の考え方です。」と、グレイヴス (Graves) 氏は言います。「この理論により、ユーザーとその最終的目標のことを考えるようになります。ユーザーを中心に考えてユーザーの問題を理解できれば、要件を記述して、真に革新的な製品を構築することができます。要件の収集は当て推量ではありません。ターゲット ユーザー、その現実の問題、その問題をほかの誰よりも良い方法で解決する手段に焦点を当てているからです。」
ソフトウェア要件仕様書を作成するためのベスト プラクティス
2011 年に、長く使用されてきた IEEE 29148:1998 規格とテンプレートが更新および強化され、現在は ISO/IEC/IEEE 29148 となっています。この教育的ガイドでは 5 つのモジュールでベスト プラクティスが規定され、強力な SRS 文書を作成するための情報が記載されています。最初の 3 つの部分には、範囲、適切な参照資料の仕様、設定の定義を定めるためのプロセスを中心とした要素が記述されています。
4 つ目のモジュールは最長で、ここでは優れた SRS 文書と計画を作成するための性質、優勢な環境、一般的特性を特定する方法を説明しています。 これらの特性を正確に記述できるようになれば、質の高い有益な SRS を作成できるようになります。
文書は次のようなものである必要があります。
- 正確: ソフトウェアが特定された要件を満たしていることを保証するための分析方法。
- 明確: ソフトウェアの使用目的が一意に解釈でき、共通の言語で伝えられること。
- 完全: 機能、パフォーマンス、設計の制約、属性、または外部インターフェイスのすべての要件が表現されていること。
- 整合性がある: システム要件仕様書など、ほかの文書との整合性が取れていること。
- 重要性や安定性がランク付けされている: すべての要件が等しく重みづけされているわけではないため、要件を適切にランク付けする方法が採用されている必要がある。
- 検証可能: 曖昧さを防止するために、測定可能な要素と定義された用語を使用すること。
- 修正可能: SRS 文書の組織的構造が適切に定義されており、冗長性が排除され、適応が容易であること。
- 追跡可能: 開発の最初から SRS に基づいてから作成された文書までたどって追跡できること。
Cisco (シスコ) のシニア プロダクト マネージャーのゼーン・ボンド (Zane Bond) 氏によると、「要件は新しい開発プロジェクトの中心となります。実際に必要とされている要件を理解することは、科学でもあり、アートでもあります。開発方法、文化、提供方法に関係なく、明確で理解しやすい要件を記述することは、プロジェクトの成功にとても重要な要素となります。文書が非常にシンプルであれば、それが正しく作成されていることがわかり、要件の記述に今までこれほど多くの顧客とのやりとり、市場分析、設計会議などが必要とされていたことを不思議に思うでしょう。」
ボンド (Bond) 氏は SRS を構成するための次のようなヒントを示しています。
- 要件がシンプルであるほど、チームに特定の作業方法を強いることが少なくなります。チームが適切に業務を遂行するための十分な環境を確保しながらも、過度に具体的な要件を用いて要求を指示することがないよう、常にバランスを取る必要があります。要件については、次のアントワーヌ・ド・サン=テグジュペリ (Antoine de Saint-Exupéry) の言葉からの引用が思い浮かびます。「完璧さが達成されるのは、付け加えるものがないときではなく、取り除くものがないときだと思います。」完璧さとは本当は目標ではなく、求めるものを起点とし、不可欠な要素まで絞り込んでいく精神のことです。
- 要件には、誰がなぜこれを必要としているかなど、解決する問題を明確に記述する必要もあります。要件の背景を知ることは、チームがプロセスに関してより良い決定をする上で役立ちます。
- SMART の基準は、主要な要素が欠落していないことや、構築する内容の規模に応じた進行状況を確認するのに役立ちます。ごく小さな要素は最小限の要件によって達成できますが、戦略的な中規模から大規模の要素にはより詳細な要件が必要となります。
ソフトウェア要件仕様書の作成方法
1998 年以来、さまざまな業界においてソフトウェア使用要件の記述に IEEE テンプレートが使用されてきました。 今日、最も一般的なテンプレートの一部では、ISO/IEC/IEEE 29148 のモジュール 5 の標準言語と増分セットアップが使用されています。これには以下が含まれます。
i. 導入
この領域には範囲、目的、定義、参照資料、概要が含まれます。
ii. 全体説明
製品の全体像と機能、ユーザーの特性、制約要素 (前提事項や依存関係など)、要件の割り当てをこのセクションに記述します。
iii. 固有の要件 (最大で最重要の部分)
すべての要件、機能、インターフェイス、パフォーマンスとデータの要件、設計の制約、セキュリティ、現場への実装に必要な調整、メンテナンス、特徴とシステム属性、優先順位、リリース計画を含みます。
iv. 補足情報
このセクションで扱われていない指標、グラフ、付録、特別な指示を含みます。
SRS のすべての領域は等しく重要ですが、実際には、機能や要件、検証、リリースに向けたテストにどう優先度を持たせるかを考えながら、時間の約 1/4 を固有の要件セクションに割くと予想されます。
ソフトウェア要件の作成に最も重要な 10 のヒント
ソフトウェア要件の作成には時間がかかりますが、正しく行えば大きな見返りがあります。以下に、効果的な SRS を作成するのに役立つ 10 のヒントを示します。
- 開発するのが大規模で堅牢、長期的なソフトウェア ソリューションの場合は特に、時間をかけて正確に詳細な要件を作成する
- 開発者ではなく、利害関係者のニーズと開発言語を理解している人が作成する
- 優れたコミュニケーション スキルを備えた人が作成する
- 画像、グラフ、チャート、図を盛り込んで、ニーズを表現する
- 要件の内容や優先順位を変更した場合、SRS を更新する
- オンラインまたは共有の場所に SRS を保管し、チームが容易にアクセスできるようにする
- 要件書をテストや検証に使用する
- SRS は対象者に向けて作成する
- 開発チームが製品を構築するのに必要なすべての情報が SRS に盛り込まれていることを確認する
- 関連する内容や文書にリンクさせる
優れた計画を立てておかなければ、優れた製品はできないとよく言われます。優れた計画書により、重要な保護や情報伝達の機会が得られ、設計と構築、または新しいソフトウェア購入に充てる費用と時間が節約できます。顧客、ユーザー、技術チーム、管理者、その他の利害関係者には、設計プロセスを開始に先立って、開始段階のプロセス、コミュニケーション、予算編成、タイムラインの設定、必須の購買に関与してもらえます。そうすることで、最終的なソフトウェア展開時の成果を大きくすることができます。
Smartsheet を使用して、ソフトウェア要件書を開発管理時に役立つチェックリストに変換して利用
ニーズに合わせ変化に対応できるようデザインされた、柔軟性のあるプラットフォームで、チームの能力を最大限に引き出しましょう。 Smartsheet プラットフォームなら、いつでもどこでも簡単に作業の計画、保存、管理、およびレポート作成が可能なため、チームはより効率的かつ効果的に仕事を進めることができるようになります。作業に関して主要なメトリックを表示したり、リアルタイムの可視性を提供したりするために、ロールアップ レポート、ダッシュボード、および自動化されたワークフローを作成する機能も装備されており、チーム メンバーをつないで情報共有を促進することが可能です。 やるべきことを明確にすると、チームの生産性と作業達成能力が向上します。ぜひこの機会に Smartsheet を無料でお試しください。