July 21, 2020
要件管理のベストプラクティス:要件の再利用
By Paula Rome
*本記事はPerforce Software社の以下のブログ記事(2020年7月21日時点)の参考訳です。
Requirements Management Best Practices: Requirements Reuse
*ブログの内容は更新されている可能性があります。また、記事内のリンク先は別途記載がない限りは英語ページになります。
ソフトウェア要件の再利用で時間を節約
要件を再利用することで、品質を犠牲にすることなく、要件の収集や将来的に製品のメンテナンスにかかる時間とお金を節約することができます。しかし、要件の再利用には乗り越えるべき課題もあります。
この点については、ベストプラクティスを採用することで、要件を再利用可能な状態にするために費やした時間や労力に十分見合う対価を得ることができます。
要件の再利用がおすすめのケース
多くの場合、要件収集に関する議論では「ステークホルダーや顧客から要件を引き出すベストな方法」が焦点となります。また、往々にして"バージョン1.0"のみが議論され、収集した要件を以降のバージョンでいかに活用するかまでは検討されません。
今後、新しいバージョンの開発または同じ機能や既知の制約事項を流用した他製品の開発の可能性があるのであれば、要件の再利用を考えておく価値があるでしょう。
要件を再利用することで、新しく要件を一から書くより時間もコストも抑えられますし、要件の見落としがないか確認するうえで、既存の要件はチェックリストのような役割も果たします。また、検証・テスト済みの要件を再利用するため、品質向上にもつながります。
[参考ホワイトペーパー:9 TIPS FOR WRITNG USEFUL REQUIREMENTS >>]
要件を再利用する場合の注意点
要件を再利用することで時間を大幅に節約できるはずですが、以下の2つの落とし穴には注意してください。
- 再利用すると決めた既存の要件であっても、要件収集作業の一環として、その正確性と妥当性については見直す必要がある。ただ、それでもゼロから始めるよりは作業量は少なくて済む。
- 古い要件を書き直して再利用可能なものにする場合、事前の準備に 時間がかかることもある。
しかし、要件を何度も再利用することで長期的にはこれらの労力は報われることになります。ここからは、再利用のメリットと実施方法についてみていきましょう。
要件を再利用するための6つのベストプラクティス
さて、再利用可能な要件を持続的に作っていくにはどうすればよいのでしょうか?ここでは、6つのコツをご紹介します。
1. リポジトリを構築する
当然のことながら、最初のステップは再利用可能な要件のために、分かりやすく検索可能なリポジトリを作成することです。このリポジトリには、製品のライフサイクルを通して要件管理に使用しているリポジトリと同じものを使うのが理想的です。ここで重要なのは、メタデータを利用してリポジトリを作成することです。膨大な数の要件の中から関連する要件を特定するには、メタデータが必要になってくるからです。
2. 既存要件を微調整する
細かいところを少し変更するだけで再利用できる要件は沢山あるでしょう。 例えば、iPhone用のアプリを作った際に、"Apple Payによる決済"に関する要件があったとします。この要件をより汎用的な"決済"に関するものに微調整することで、他のプラットフォーム向けの別のアプリにも再利用できるようになります。
3. 再利用を意識して新しい要件を作成する
新しい要件を書く際は常に、後で再利用することを意識して表現を考えましょう。他のプロジェクトでも使える程度に汎用性を持たせつつ、現在のプロジェクトに有益であるようにするべきです。この作業には時間がかかりますが、将来のプロジェクトでより多くの時間を節約することができます。
4. "余計な詳細"に注意する
要件を汎用的にすることで、各要件の詳細を別に文書としてまとめておきたい誘惑に駆られるかもしれません。しかし、これをしてしまうと、節約どころか余計な時間がかかってしまいます。そんな時は、ソフトウェア要件のベストプラクティスについて書かれたこの本にある以下の例を考えてみてください。
新しいプロジェクトのために要件を書くことになったあるチームは、要件の再利用にこだわっていました。ビジネスアナリスト達は、各要件の詳細をすべて個別に文書化しておけば、要件自体は再利用可能になるだろうと考えました。結果、要件は14,000件以上になってしまったのです!本来ならばひとつの要件になるはずのところが、ひとつの親要件に対して詳細を説明した子要件がいくつもぶら下がるような構造のリポジトリになってしまったのです。ここまで詳細に記載された要件はすべて、たったひとつのアプリケーションに関連するものでした。
5. パターン化する
要件をパターン化することで、収集すべき情報、必要となる要素、注意すべき点などが明確になります。パターンに基づいて要件を作成することで、重要な情報の見落としを防ぐことができます。結果として、必要情報がしっかりと記載され、再利用もしやすい要件を用意することができるのです。
6. 依存関係の紐付けを行う
要件の中には一緒に再利用する必要のある要件もあるでしょう。例えば、別の要件があってはじめて機能するものや、別の要件の存在理由となっているようなものです。再利用の際の見落としを防ぐために、どちらからの依存関係もきちんと分かるように紐付けをしておきましょう。ほとんどの要件管理ソリューションには、関連するアイテムを紐付けるための機能が備わっています。
要件管理をより簡単に
もし今現在、あなたが手作業で要件を管理しているのならば、何かしらの要件管理ソリューションを導入することで、最も効果的に時間を節約することができます。Perforce Software社のアプリケーション・ライフサイクル・マネジメントツール「Helix ALM」のモジュールのひとつである「Helix RM」を使えば、バージョン間または製品間で簡単に要件を共有することができます。さらに、トレーサビリティの確保により、要件間の依存関係や特定の要件に対する変更による影響の把握が容易になります。
Helix ALM/Helix RMは、30日間無料でお試しいただけます。ぜひ一度お使いいただき、ご自身の管理する要件で違いを実感してみてください。