目次
要件定義の炎上とはなに?
要件定義とはシステム開発における上流工程での1つの工程で、クライアントの要望や課題などを抽出し、システム要件として定義を行うことです。
しかし要件定義が不十分な場合、その後の設計や開発も上手く進まず、予定しているスケジュール通りに進められなくなり、まるで火事場のようにプロジェクト自体が炎上してしまうことになります。
これが要件定義の炎上です。
要件定義とは
要件定義はシステム開発プロジェクトにおけるもっとも上流の工程です。
一般的にはSEがクライアントからヒヤリングを行い、クライアントの要望や課題解決のためにシステムに実装すべき機能などを要件として整理します。
さらに要件定義としてまとめて、クライアントとシステム会社との間で合意を取ることになります。
要件定義の重要性
要件定義は次の工程である基本設計を行うためのベースとなるものです。
要件定義が不十分な場合、実際にシステムの設計を行うために必要な情報が足りず、まともなシステム設計ができなくなります。
そのため、要件定義はプロジェクト自体の成功や失敗を左右する重要な工程だと言えるでしょう。
要件定義で炎上する原因9選
要件定義によってプロジェクトが炎上してしまうケースにはさまざまな原因があります。
ここでは要件定義で炎上する原因9選を紹介していきますので、炎上を回避するためにもどのような原因が考えられるのかぜひ参考にしてみてください。
1:要件定義進行の曖昧さ
プロジェクトが炎上する原因として大きいのが要件定義の曖昧さです。
要件定義が曖昧になる原因としては、そもそもクライアント側に明確な要件がないケースや、開発側のプロジェクトマネージャーが要件定義の必要性を認識できていないなど様々です。
しかし要件定義自体をおろそかにすることで、設計の工程以降の工程が上手く進まなくなり、炎上するケースは多いです。
2:プロジェクトマネージャーの管理不足
前述のとおり、プロジェクトマネージャーのスキル不足によって要件定義が曖昧になることで、要件定義が炎上するケースもあります。
また、プロジェクトマネージャーの管理不足によってプロジェクトがコントロールできず、炎上することも多いです。
たとえば、プロジェクトマネージャーが実際に作業が可能かどうかわからないようなクライアントからの要求を受けてしまい、炎上に繋がるといったケースもあります。
3:クライアントとのすり合わせ不足
クライアントとの打ち合わせの際に、きちんと要件のすり合わせを行わずに要件定義が炎上するケースもあります。
要件定義とはそもそもクライアント側と開発側でのシステム要件の認識のすり合わせを行うものですが、プロジェクトマネージャーやSEの認識が足りず、打ち合わせでの発言によって要件定義ができていると勘違いしているパターンがあります。
そういった場合、あとからクライアントとの間に認識に齟齬が発生し、作業のやり直しなどが発生して炎上に繋がります。
4:過少見積もりが原因で工数追加により納期遅延
要件定義などのプロジェクトが始まる前の工程で、作業の見積もりを行います。
しかし作業の見積もりを少ない数字で出してしまった場合、実際にプロジェクトが始まると工数不足によって作業が遅延し、工数が追加されることによって納期が遅れるなどの炎上へ繋がることがあります。
5:作業プロセスの整備が不十分
作業プロセスとはドキュメントのフォーマットや具体的な開発プロセスの手法などさまざまな種類がありますが、プロジェクトを滞りなく進めるために統一するべき内容が規定されています。
作業プロセスがきちんと整備されていないプロジェクトの場合、チームごとにフォーマットの違いなどが発生し、炎上へ繋がるケースがあります。
6:プロジェクトメンバーのスキルの問題
システム開発プロジェクトではメンバー一人ひとりの生産性を考慮して作業計画を策定するため、メンバーのスキルが足りていない場合スケジュールに遅延が発生することがあります。
また、メンバーがもともと少ない少人数でのプロジェクトの場合は、メンバーのスキル不足が炎上に繋がるケースもあります。
7:開発当初の要求仕様から追加や変更により納期遅延
すでに要件定義が完了し、プロジェクトがスタートしている状態で、当初の要求仕様から追加や変更が発生することがあります。
そういった場合にはプロジェクトの途中で追加作業が膨大な量になり、作業の遅延が発生し、納期の遅延や炎上に繋がるケースがあります。
8:プロジェクトの作業範囲分担が決まっていない
要件定義を行っている段階で、プロジェクトの作業範囲が決まっていないケースもあります。
そういった場合、クライアントと開発側で要件を決定するための時間がかかり、その後のスケジュールも遅延していくことになります。
このような場合、遅延した分スケジュールの見直しを行う必要がありますが、実際には見直さずに炎上に繋がるプロジェクトが多いです。
9:システム開発の納期に余裕がない
要件定義を行っている時点ですでにリリース日が決まっており、システム開発のスケジュールに余裕がないケースも多いです。
最初からリリーススケジュールが決まっていると、作業見積もりによってスケジュールを組むことができなくなるため、ほぼ炎上が決定した状態でスタートすることになります。
ありがちな要件定義炎上の失敗例
要件定義は特にプロジェクトで失敗しやすいといわれています。
プロジェクトにおける要件定義は「プロジェクトで何を作るか」を決めることです。
プロジェクトでは最初に要件定義を行います。
しかしこの部分でつまずいてしまう例も多くあるとされています。
その失敗例をみてみましょう。
プロジェクト開始時点で焦りがある
現在の技術では最初から完璧な要件定義を行うことが難しいとされています。
最低限「エンジニアが実装に入れる」「プロジェクトの関係者がOKを出す内容」に仕上げていく必要がありますが、
複雑なシステムを構築するには実際に一度手を加えてから再度要件を見直さなければならないこともあります。
しかし、会社側の都合により、要件定義の時間が十分に確保されていないことが多くあります。
そのためプロジェクト開始時点で焦りがあり、結果的にプロジェクトの失敗につながってしまうのです。
専門家の意見を入れていない
日本のIT人材のほとんどはIT企業に所属しているとされます。
そのため非IT企業は外部のIT企業に仕事を発注することが多いですが、その際に専門的な知見を入れていないことも多いです。
そのためIT企業から見ると非効率的な案件もあります。
しかしIT企業側が打診しても発注元である非IT企業が内容を変えない場合、非効率的な方法でプロジェクトを進めることとなります。
その結果、非IT企業が欲しかったものとズレが生じ、失敗につながってしまいます。
要件定義の炎上を防ぐ発注者のポイント
では「地雷」ともいうべき要件定義を成功させるにはどうしたらいいのでしょうか。
それにはまず発注者に以下のことをはっきり決めてもらうことが重要です。
・ITを導入する背景と目的(企業にどんな課題があるか)
・目的を達成するために業務をどう変えるかという業務要件定義
・「どのようなITシステムを入れ、それがどう役立つのか」というIT化の方針
・IT化する上での条件(前提や制約)
・具体的にどんなシステムを考えているのか
などを決めてもらうことで、ミスマッチが少なくなるでしょう。
要件定義の炎上を防ぐプロジェクトチームのポイント7選
システム開発プロジェクトでは要件定義の炎上を発生させないことが重要ですが、そのためにはどのようなことを行えばよいのでしょうか。
ここでは要件定義の炎上を防ぐプロジェクトチームのポイント7選をご紹介しますので、ぜひ参考にしてみてください。
1:認識・作業・意思伝達を正確にする
要件定義の炎上には「認識」「作業」「意思伝達」という3つの要素のどこかに根本的な原因が隠れています。
これらを正確にするためには、情報は伝聞に頼らず必ず裏を取るようにし、作業を行う際にはチェックのための時間を取るようにし、意思疎通のためのツールを適切に選ぶことが重要です。
2:全体スケジュールの把握
一度炎上してしまったプロジェクトを立て直すのは非常に難しいですが、炎上しそうなプロジェクトや炎上してしまったプロジェクトを立て直すには、全体スケジュールの中のどの位置にいるのかを把握する必要があります。
そのため、全体スケジュールを把握し、どこができていてどこができていないのかを知ることが重要です。
3:クライアントとのヒヤリングの重要性
システム開発プロジェクトの下流工程を円滑に進めるためには、上流工程でのクライアントへのヒヤリングにしっかりと時間をかけて行うことが重要です。
クライアントとの信頼関係を構築し、お互いに認識の齟齬が発生しないように要件定義ですり合わせを行うことで、プロジェクトの炎上リスクを下げることができるでしょう。
4:プロジェクト技術スキルの重要性
プロジェクトメンバーの技術不足によって予定通りにスケジュールが進まず、遅延が発生するケースもあります。
そのため、炎上を避けるにはメンバーの技術スキルが十分に足りていることが前提となるでしょう。
そのためには、人員配置の時点で個々のメンバーのスキルを把握しておくことが重要です。
5:システムを導入目的を明確にする
システム導入を行う目的が曖昧な場合、クライアント側でも明確な要件がない状態になるため、十分な要件定義ができなくなります。
そのため、そもそも何のためにシステムを導入するのかをクライアントとの打ち合わせではっきりさせ、同じ目標を共有することが大切です。
6:プロジェクトの役割分担の明確化
システム開発プロジェクト内での役割が明確になっていないと、メンバーそれぞれが自分のやるべき作業に集中できなくなります。
また、誰も手を付けずに放置されたタスクから炎上するケースに繋がるため、役割分担を明確化し、プロジェクトが遅延しないようにすることが重要です。
7:プロジェクトの進捗管理表の作成
プロジェクトの進捗管理を行うには、進捗管理表を作成することが有効です。
進捗管理のためのツールを利用するのも良いですが、Excelなどで管理する場合は、作業アイテムや作業者、作業工数、開始日、終了日といった項目を用意して、作業計画が把握できるような進捗管理表を作成するようにしましょう。
炎上しないための要件定義を学べる書籍について
ここまでプロジェクトを炎上させないためには要件定義が非常に重要であることをご紹介しましたが、要件定義について学びたいという方も多いでしょう。
ここでは最後に、炎上しないための要件定義を学べる書籍2冊をご紹介します。
演習で身につく要件定義の実践テクニック
システム開発プロジェクトで必要になる要件定義の進め方を学べる本です。
要件定義を行う際に必要なスキルを「進め方」「コミュニケーションスキル」「ツール」という3つに分類して解説します。
実際の事例をもとにした演習を解くことで、要件定義の実践的な力を身につけることができます。
出典:演習で身につく要件定義の実践テクニック
参照:https://www.amazon.co.jp/dp/482225884X
はじめよう! 要件定義 ~ビギナーからベテランまで
ソフトウェア開発に携わる人材に必要な要件定義の知識を学べる本です。
豊富な図解が掲載されているためわかりやすく、これから要件定義について学ぶ初心者から、すでにいくつかのプロジェクトを経験しているベテランにも役立つ1冊です。
出典:はじめよう! 要件定義 ~ビギナーからベテランまで
参照:https://www.amazon.co.jp/dp/4774172286
システム開発における要件定義は重要ポイント
要件定義はプロジェクトを成功させる上でとても重要な工程です。
成功させるには十分な時間をとり、専門家の意見を取り入れることが大切です。
特に非IT企業から発注を受けた場合には、後々もめないようにしっかり決め事を守ってもらいましょう。
インフラエンジニア専門の転職サイト「FEnetインフラ」
FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。
転職をお考えの方は気軽にご登録・ご相談ください。