要件定義ってなに?システム開発の進め方
2021/02/17
システム開発における「要件定義」とは、ユーザの希望や要求を明確にし、どのような機能をシステムに盛り込むのかを定義する作業です。
システム開発では、設計の前工程としてこの要件定義があり、要求定義の成否いかんでシステム開発の成否が決まるといっても過言ではありません。
なぜなら、要件定義をきちんと行っていないと、手戻りが多く発生したり、ユーザの要求を満たすシステムが実現できなかったりする可能性があるからです。
本記事では、システム開発の要件定義とは何か?その進め方や注意点などをご紹介いたします。
システム開発の要件定義とはユーザと開発者の合意文書
ユーザがシステムに希望する仕様は、大まかなものから詳細に考えられたものまでさまざま。たとえば、「このデータを入力するとこのように表示してほしい」「この場合はこういう処理をしてほしい」「入力項目は○つ、出力項目は△つ」など、端的にいえばインプットとアウトプットをメインに要求してきます。もちろん「こんなことができないか?」といった漠然とした要求の場合もあります。
しかし、どのような場合でも、「そのシステムの目的は何か」「どのようなことをするためのシステムなのか」がはっきりしないと、最終的にどの機能まで搭載するのか、それを実現するためにはどのような機能設計が必要なのかということが決められません。
そのために、まずは「そのシステムの目的は何か?」「そのシステムで何がしたいのか、何ができればよいのか」を、ユーザ側と開発者側が意見を交し、明確にしていくことが重要です。何のためにシステムを開発するのか?(=システムの目的)が明確になっていない場合、開発していく途中でもブレが生じてしまい、「やりたいことができない」システムができあがってしまう可能性もあります。
このような、システムの目的をはじめとするユーザ側の要求は「要求定義」と呼ばれることもあります。
ユーザ側の要求が明確になれば、次はそれを実現するためにどのような機能を盛り込めばいいのか、満たすべき性能はどの程度なのかを、開発者側が技術的な要件に落とし込んでいきます。
このようにして要件定義を行い、要件定義書にまとめます。システム開発はここから本格的に動き出すのです。
要件定義をなおざりにすると、後になって「こんな機能も入れてほしい」と追加要求をどんどん入れられたり、「こんなことは言っていない」と、言った・言わないのトラブルが発生したりする可能性もあります。
システム開発の要件定義は「ユーザの要求をすべて盛り込む必要があるか?」を意識すべき
システム開発における要件定義の一般的な進め方は、次の3ステップです。
1. ユーザの希望をヒアリングする
まずは、ユーザがどのような課題を抱えていて、何を実現したいのか、要件の元となるユーザの希望をヒアリングします。
ユーザが認識している、顕在化した課題のみにとらわれていると、潜在的な真の課題に気づけないこともあります。ユーザが抱える課題の本質を引き出せるコミュニケーション力が求められます。
この段階で、開発するシステムの全体像を描けるのがベストです。
2.システムの要件を検討する
ヒアリングした希望を元に、システムで実現すべき要件を検討していきます。
システムに実装する機能単位まで細分化した上で要件化します。
ただ、すべての希望を実現できるとは限らないため、ヒアリングの段階で、実現したいことに優先順位を付けておく必要があります。
予算やスケジュールとの兼ね合いで、優先順位の低い希望は切り捨てる決断も必要になります。
3. 要件定義書にまとめる
前項で検討・決定した要件をドキュメントにまとめていきます。
明文化しておくことで、後から「言った・言わない」のトラブルを防げるほか、開発のフェーズが進む中で判断に迷いが生じた際の拠り所となります。
要件定義書に盛り込むべき項目は、次の通りです。
・概要
・業務要件
・機能要件
・非機能要件
・スケジュール
・予算
要件定義書を読めば、プロジェクト全体の概要を理解できるように作成しましょう。
【まとめ】要件定義書はシステム開発の指南書
システム開発はいくつかの工程を経て進められていくため、さまざまなタイミングでトラブルが発生しがちです。そんなときに、システムの要件がきちんと定義されていれば、ブレることなく正しい方向にトラブルを解決することができます。
また、工程ごとに開発メンバーが変わったり、メンバーの変更があったりした場合でも、システムの目的を含む要件定義が明確であれば、目指す方向を即座に理解できるはずです。
このようなことからも、システム開発において要件定義はとても重要なものであり、要件定義書はシステム開発の指南書だということがいえるでしょう。