オススメ記事
システムエンジニア(SE)が要件定義をする上で重要なこと4つ

要件定義とは読んで字のごとく要件を定義することです。ざっくり言えば何を作りたいかということで、必要な機能や性能を決定する作業です。

ソフトウェアの開発を行うときには、要件定義→設計→製造→テストといった工程を経てリリースするのが一般的です。特に業務系システムの規模な開発現場では、ウォーターフォール形式の開発を採用されることが多く、上流工程でしっかりと情報を精査し、内容を固めておくことが大切です。

僕も長年システム開発をやってきていますが、とにかくここがしっかりしないと、大方炎上コースに突入します。僕も炎上を招いたこともあるので、人のことは言えない立場ですがw

というわけで、今回は要件定義をする上で重要なことは何かという点をまとめていきます。特に、要件定義が何か分からない人は読んで頂けたらと思います。

SEが要件定義をする上で重要なこと

ここからは要件定義で重要な点を記述していきます。ここで述べるのは、主に業務系システムを開発する上での話となります。

システムを作成する目的を理解する

要件定義で最も重要なことは、システムを作成する目的を理解することです。

当たり前といえば当たり前の話なのですが、ここがそもそも曖昧になっていると、それ以降の作業が全て台無しになる可能性があります。システム化をする理由は、業務上で何かしら課題を抱えており、その課題を解決したいからです。

そのため表面的な事象から課題の本質をヒアリングする、探しあてることが必要となります。

例えば以下の通り。

課題の抽出
  • 事象:同一の情報を部署ごとにExcelでバラバラに管理している
  • 課題:情報管理の手間が増える ⇒ 生産性が低い

 

ここで生産性が低いという課題が浮かび上がります。

 業務系システムの課題はほとんどが生産性が低い、業務効率が悪いに結びつきますが、こういった形で課題を一言で表すようにしてシステムの目的が定まるようにします。これにより、目的は「生産性向上」だということを共有しやすくなるわけです。

何をやりたいのかをはっきりさせないと、何が最適な形なのかが分かりませんよね。

クライアントの業務内容を理解する

クライアントの業務内容を理解することも非常に重要です。業務内容が分からないと、どこに問題があるのか、どの業務をどういった形でシステム化すれば良いのかを導き出すのが難しいからです。

実際、クライアントから課題が提示されればやりやすいですが、システム化したいという思いだけあって、何をシステム化するまではうまく説明できない人もいます。そこを手助けするために業務知識が必要ということです。

 ではクライアントの業務を理解するために何をするかというと、基本的にヒアリングです。クライアントが実際に行っている業務を説明してもらい、それに対して質問を繰り返すことです。

一番良いのは、SEがその仕事を実際にやってみることですが、現実的にはそうもいかないですよね。なので、ヒアリングを行い、聞き取った内容から業務フロー図を作成し、クライアントとSEの認識に差がないことをチェックしていくことが行われます。

 ヒアリングだけで理解できない場合はどうするか?これはもうクライアントに依頼をして、実際の業務を見せてもらいましょう。百聞は一見にしかずです。

要件定義の責務はクライアントにある

SEは要件定義の作業を行いますが、要件定義の責務はクライアントにあることを忘れてはなりません。つまりクライアントが決定するためのサポートという位置付けです。

ITの現場では笑い話というか怖い話としてよく挙がるのは、要件定義を丸投げされたという話。確かにあります。特にITリテラシーの低いクライアントには見られる傾向です。

でも、これを真に受けてはいけません。必ずクライアントを巻き込んで、ヒアリングする時間を設けてもらいましょう。クライアントの協力なくして要件定義は完了しません

もしクライアントの協力なしで要件定義を完了させた場合、待っているのは炎上しかありません。

搭載する機能は必要なものに絞る

システムに搭載するのは必要な機能だけに絞ります。

もちろんあれば便利なものを候補として挙げていくのは良いのですが、搭載することで大きな効果が得られるものを優先していきます。重要でない機能を搭載することは、後々クライアントからの評価を下げる原因になります。

また、日程を圧迫すると同時に予算を食いつぶすことにもなります。高機能にしたい、売り上げを高くしたいという気持ちは分からないでもないですが、誠意を持って必要なものを必要なだけ機能を搭載することの方が大事です。

真の意味で顧客から評価を得られることを意識しましょう。

最後に:課題を精査し、良いシステム開発を始めよう

SEが要件定義をする上で重要な点を4つ紹介しました。

現在はウォーターフォール形式の開発方式はあまり採用されなくなってきましたが、どの開発方式だとしても要件定義の重要性は変わりません。

近年流行りの自社Webサービス系の開発が速いのは、要件を自分たちで決定できるからです。その分マーケティングの知識が求められますが、何をしたいかの大筋が書けていて、決定する権利も有している場合は、高速に物事を決めることがでぎす。

一方、いわゆるSierと呼ばれる組織のSEの場合、自分よりもクライアントの業務を理解することから入ります。クライアントとのやり取りも多く、要件が定まらないこともしばしばあります。

でも課題を解決に導くこと自体の楽しさや、プロジェクトを成功に導いたときに頂ける感謝の言葉は大きな喜びとなりますよ。課題をしっかり精査し、必要なものを提供することを心がけましょう。

3ヶ月での転職を保証する「DMM WEBCAMP」

プログラミングは自主学習の難易度が極めて高く、孤独で相談できない環境では多くの人が挫折します。なので、メンターや仲間と一緒に取り組めるプログラミングスクールに通うのがオススメ。

「DMM WEBCAMP」は3ヶ月でエンジニアへの転職を保証します。3ヶ月で転職できない場合は全額を返金。未経験からでも転職への自信を持ったプログラミングスクールです。

申し込みはこちら▼

おすすめの記事