システム構築作業の中でも、上流工程に位置するのが要件定義フェーズ。

要件定義の工程では、まだお客様は「こんなシステムを作りたい」という明確なイメージは抱けていません。「システムを導入してこんなことができたらいいな」レベルでしか考えがありませんので、SEがお客様の要件を聞き出しながら、システムに落とし込んでいく要件を固めていく作業をしていきます。

そしてシステムとして形にするための機器構成や開発言語などを考えながら、要件定義書にお客様要件をまとめていきます。

要件定義は誰にでも出来るものではなく、業務知識も豊富でそれなりに経験を積んだSEが担当する工程です。しかし要件定義の段階でしっかりと要件を固めることができずに、後になって大幅な出戻り作業になることもあります。

そこで要件定義を上手に進めていく上で、最も大切なことについてご説明していきましょう。

要件定義はSE主導で進めお客様をコントロールすることが最も大事

要件定義をする上で大事なことはいくつもあります。ざっと挙げるだけでも、以下のようなものが思い浮かぶでしょう。

  • SEがその業界の業務知識を豊富に蓄えていること
  • お客様と会話できるほどのコミュニケーション力
  • 機器構成や開発言語を決められるだけの技術的知見

しかし最も大事なことは「お客様をコントロールすること」です。司会進行能力とでも言うのか、あくまでSE主導で打ち合わせを進めていく必要があります。

お客様主導で進めると収拾がつかない

経験が少なく、要件定義が下手なSEほど、お客様主導で打ち合わせを進めがちです。

業務的な知識が足りていないと、どうしてもお客様が何を困っているかの予測自体が立てられないため、打ち合わせの場でも「現状で困っていることはありますか?」のように、ぼんやりとしたテーマになってしまいます。そうすると「あれもしたい」や「これもしたい」という意見が乱立し、いつまでたっても要件を固めることができなくなってしまいます。

これは決してお客様が悪いわけではありません。より多くの要件を引き出すことはSEにとって大事なスキルではありますが、収拾がつかなくなるようではいけません。

仕事ですから予算も時間も限られています。限定された条件がある中で、最もお客様に喜んでいただけるシステムを提案していくことがSEとしての役目なのです。

SEからの提案を中心に話を進め、お客様が補足するぐらいがベスト

では要件定義を上手に進めるにはどうするべきか? ですが、ある程度SEからの提案を中心にして話を進め、お客様が足りない部分を補足するぐらいがベストだと思います。

もちろん要件の大枠は一番最初にヒアリングしなければなりません。ですがダラダラとお客様の聞き取りを続けるのではなく「〇〇の業務をシステム化したい」という大枠の要望から、SEは「では〇〇や〇〇のような機能が必要になりますね」といったように話を持っていきます。

時には予算のことも気にしながら、お客様にとってベストな提案をしていきます。もちろんお客様固有の処理や業務もあるでしょうから、そうしたこともコミュニケーション力を高くして逐一ヒアリングをしていくようにしましょう。

このようにSE主導で打ち合わせを進めていくと、案外すんなり要件がまとまっていくものです。

やっぱり業務知識は必須になる

「SE主導でお客様をコントロールする」なんて簡単に申しておりますが、実際にやってみると決して簡単ではありません。業務に関してはお客様の方がプロですので、システム寄りではなく業務寄りの話になると、どうしてもお客様のペースに引っ張られてしまいます。

そこで大事になるのが、やっぱり業務知識です。要件定義を上手に進められるようになりたければ、特定の分野でもよいので、業務知識を豊富に蓄えておかなければなりません。そうしないとシステムの提案をすることもできませんし、SE主導で打ち合わせを進めることもできません。

上流工程も任されるようなSEになりたいと思うなら、若いうちから業務知識を身に付けるような仕事の取り組みをするようにしましょう。
※参考記事「SEとして大事な業務知識を身に付けるためにやるべきこと

必ず要件定義書はお客様の承認を得る

要件定義書まで作成して、忘れてはいけないのは、しっかりと内容をお客様にご説明した上で、お客様承認を得ることです。これは「プロジェクトの炎上を防ぐなら「工程厳守」と「品質確保」を忘れるな」の記事内でもご説明していることですが、しっかりとお客様承認を頂いておかないと、後になってから「こんな要件は出していない」と言われかねません。

下流工程から要件定義にまで遡ることになれば、出戻り工数も相当なものになるはずです。プロジェクトの炎上を避けるためにも、定義した要件は文書化して、お客様承認を取ることを忘れてはいけません。

追加要件は別途見積もり作成

システム化要件を凍結した後に、「この作業もシステムで自動化したい」といった話が出てくるようなら、いくら技術的にも時間的にも問題がなかったとしても安請け合いしてはいけません。

そこはビジネスですので、別途見積もりを取るようにして、追加作業分も含めた納期を再度調整するようにしましょう。

 

おわりに

上流工程になればなるほど業務寄りの話になるため、お客様主導の打ち合わせにすると、収拾がつかなくなる恐れがあるので要注意です。

だから要件定義フェーズでは、必ずSEがお客様をコントロールするぐらいの姿勢で挑むようにしましょう。それが最も大事なことと言ってもよいぐらいです。システムエンジニアとはお客様の御用聞きではないのです。

そうした上手な要件定義ができるようになるためにも、業務知識はしっかりと身に付けておきたいものですね。

 



【X(旧twitter)でも情報発信中】

Xを最近始めたので、フォローしてもらえると嬉しいです(エンジニア界隈の方はフォローバックさせていただきます)! システム開発に関することや、最新テクノロジーのことなど、世のエンジニアにとって有用な情報を発信してます!

"X" @TECH_KEYSYS