Technology7. 要件定義
開発チームにはより管理しやすいアプリケーションの供給が求められているという話をしました。それでは、具体的に何をすれば良いのでしょうか?アプリケーション・ライフサイクルに沿って考えて行きましょう。まずは、要件定義の段階で求められていることについて考えてみます。
アプリケーションの要件には、機能要件、非機能要件、ユーザビリティ要件という、大きく分けて3種類の要件があります。
機能要件は、アプリケーションに求められている機能であり、開発者にとっては身近な存在でしょう。
また、ユーザビリティ要件もアプリケーションの使い勝手を定義するものであり、ユーザ・インタフェースのレイアウトに関する指針や、ユーザビリティを評価するための性能要件を定義します。
非機能要件は、機能性要件やユーザビリティ要件以外のアプリケーションに対する要件ですが、以下のような要件があります。
- 管理性
- 運用性
- 保守性
- 可用性と信頼性
- キャパシティとパフォーマンス
- セキュリティ
- 継続性
- 財務
まずは、分かりやすいところで運用性について考えてみましょう。
データのバックアップする場合、プラットフォームやデータベース管理システムが違えば、操作方法は違ってきます。プラットフォームに依存しないバックアップ・ツールを使えば同じ操作環境が提供できるかも知れませんが、そのことも含めて現在のバックアップ業務がどのように実施されているかを考慮することは必要です。
アプリケーション開発者の視点から見れば些細な要件変更でも、日々の運用業務に大きなインパクトを与える可能性があるのです。
考慮すべき点は、要件定義の段階には多くの利害関係者が参加しており、システムが提供しなければならないものに異なる前提や意見を持っていることです。
アプリケーションの要件には、開発スケジュールやコストもあり、非機能要件を十分考慮した結論が出るとは限りません。ただ、この段階で検討することは重要です。なぜなら、この段階で生じた誤解が、スケジュールや品質へ大きな影響を与えることがあるからです。