要件定義は、システム開発における上流工程であり、システム化の始まりでもあります。また、要件定義に必要なのはシステム開発における全工程の知識です。
要件定義とは何か?については、別途コラム『要件定義って?基礎知識と制作の流れについて』で紹介しているので、ぜひ参考にしてみてください。
システム開発を行う上で「どうシステム化するのか」を決めるのが要件定義であり、要件定義書を作成するためにはユーザーの要求をシステムの要件へ変換・細分化することが必要です。そのため用語の正しい理解のほか、さまざまなスキルが求められます。
では、求められるスキルとは一体どのようなものなのでしょうか?
ということで!今回は、要件定義を行うために必要なスキルについて詳しくご紹介いたします。
要件定義を行うために必要なスキル
▼コミュニケーション能力
要求と要件との間に意識のズレが生じないよう、細部までをヒアリングするコミュニケーションスキルが必要です。
ユーザーや自社の営業部にとって、要求するものを細部に渡るまで表現することは簡単ではありません。
要件定義を行う際には、コンピューターの動作としてユーザー要求を理解し、アナログな部分も含めた全てがどのような動きになるのかをヒアリングにて決定していく必要があります。
また、どうしてもシステム化できない部分も明確にしていかなければなりません。この切り分けが曖昧なものは、全て仕様バグとして後々浮き彫りになってしまいます。
コミュニケーションスキル、特にヒアリングスキルは、要件定義において非常に重要なスキルと言えます。
▼具体的なシステムをイメージするスキル
要件定義はアナログをデジタルに置き換える作業です。プログラムはコーディングした通りにしか動きませんので、ユーザーの要求の細部まで把握する必要があります。
そのためには、要求がシステム化した際にどのように動くのか、またユーザーのオペレーションがどのようになるのかを具体的にイメージするスキルが必要です。
要求を詳細に把握するスキルは、下流工程の豊富な経験が土台となります。
プログラミングをする際には、完成したシステムの動きを明確にイメージする能力が必要だからです。
またプログラミングやテストの豊富な経験は、システムをイメージするスキルを無意識に向上させることにも繋がります。
▼システム完成までの工程を逆算するスキル
ユーザーの要求がシステム化し、運用された状態を明確にイメージすることは、プログラミングなどを含めたその工程を逆算するスキルとして役に立ちます。
システムは細かなプログラムの集まりです。大きなまとまりとなったシステムの全体像から、どのようなプログラムがどこで動くべきなのかを逆算することで、ある程度の工数も把握することができます。
逆算するスキルはスケジュールの大まかな把握と開発時の役割分担を明確にイメージし、その後の工程をスムーズに進めるためにも役立ちます。
▼要件をドキュメント化するスキル
ユーザーの要求をシステムへ落とし込み、最後にドキュメント化するためにはシステムの詳細を数値や言葉で正確に表現するスキルが必要です。
ドキュメントは誰が読んでも分かりやすい表現が必要であり、実際にシステムが稼働した数年後にシステムの改良が必要な場面でも読めるドキュメントにしなければなりません。
また、要件定義書が完成し、その後のシステム設計やプログラミングの段階での手戻りは許されません。そのためドキュメント作成前には、表現方法やドキュメントフォーマットを統一しておく必要があります。
要件定義のポイント3つ
1.あいまいな定義をしない
要件定義を行うのは開発者ですが、そもそも発注者の要求がはっきりしていなければゴールがブレてしまいます。要件定義が曖昧なままで進められてしまった場合、求められるシステムの開発は困難です。
このような要因で納期が遅れても開発者側は責任を負うことができないため、あいまいな定義になってしまわないよう注意を払いましょう。
要件定義でつくった成果物に対する責任の所在は発注者側にもある、という認識を共有しておくことが推奨されます。
また、開発者側もヒアリングに工夫が必要です。
ヒアリングは、5W2Hに則ることでより確度を上げることができます。
2.スケジュールに余裕を持つ
納期を厳守することが求められるため、余裕を持ったスケジューリングが重要です。
すべての工程でスケジュールを立て、管理者は細かく進捗を把握し調整を続けることが求められます。業務の漏れを見逃さないためには、スケジュールを開発チーム全員で共有することも効果的です。
細かくスケジュールを立てておくことで、トラブル発生時の対応もスムーズに行えます。
3.既存のシステムでも定義はしっかり行う
要件定義を明確にすることの重要さは、既存システムを改善する場合でも同様です。
改善点を明確にする際にも先ほどの5W2Hが役に立ちます。
また、稼働中のシステムであれば、影響が出ないよう注意も必要です。入念な仕様調査を行ったうえで改善点を洗い出し、要求をまとめましょう。
さいごに
いかがでしたか?
今回は、要件定義を行うために必要なスキルと要件定義を行う際のポイントについてご紹介しました。
要件定義がいかに重要であるかを理解し、全体的な流れを把握しながら下流工程を経験することで、より早く要件定義などの上流工程へ辿り着けるでしょう。