「要件定義って何をどうやってやるんだろう。」
「要件定義をするのが難しい。」
「要件定義を誰かに手伝ってもらえないだろうか。」
こんな悩みをお持ちではないでしょうか。
システムを発注する担当者がこのような悩みを抱えるのはよくあることです。要件定義はその後の開発工程を大きく左右する重要な工程であるため妥協はできません。しかし、発注担当の方が要件定義を経験することができる回数・頻度ともにそれほど多くありません。つまり、要件定義は重要さに反して、経験値が上がりづらい工程なのです。
そんな重要だが難しい要件定義については、必ずしもご自身でやりきろうとせずに、プロの支援を受けるのも有効な手段の一つです。ご自身で行った要件定義に自信が持てないままプロジェクトを推進していくのは開発フェーズに入った時に問題が見つかるなどリスクが大きいです。
反対に、専門家の助けを借りながら要件定義を確実に行うことで、後の工程で問題が起こる可能性を格段に減らすことができるため、最終的に良いシステムを作り上げられる可能性が高いです。
そこで、この記事では弊社で提供できる要件定義の支援内容について以下の内容を具体的に説明していきます。
支援内容 | ①要件定義請負(ユーザーストーリー作成、フェーズごとのリリーススケジュールの作成など)②システム会社の選定③プロジェクトマネジメント |
費用 | ・週2日稼働で月に50万円・週1日稼働で月に25万円 |
得意領域 | アジャイル開発 例:toC向けのウェブ・アプリ開発 |
この記事が「要件定義の支援が欲しい」と言うニーズを満たすことにつながり、その結果開発プロジェクトの進行に関する悩みを抱える人が世の中から一人でも少なくできれば幸いです。
1 支援内容
弊社で支援可能な内容を、以下の9つに分けて詳細に説明します。
1-1 システム化の目的整理を行います
一般的に要求定義と呼ばれる工程です。
この工程では、1〜2週間をかけてクライアントとミーティングを行いながら以下のアウトプットを作成します。
・システム開発プロジェクトの背景となっている事業課題や事業目的の整理
・システム開発で実現したい要求のまとめ
・プロジェクトのマイルストーンの整理(いつまでに何を実現するべきか)
・プロジェクトの体制と利用可能なリソースの定義
この工程がプロジェクトの全体の根幹になります。ここで定義された要求とマイルストーン、プロジェクトで使えるリソースをもとにいつまでに何を開発するかが決まってきます。
1-2 ユーザーストーリーの作成を行います
ユーザーストーリーの作成を行います。
ここでは、想定ユーザがどんな目的を持って、どんな行動をするかを洗い出します。例えばタスク管理システムを作成する場合には、以下のようなストーリーが作成されることになります。
1-3 ユーザーストーリーマップの作成を行い、必要な機能を洗い出します
ユーザーストーリーマップの作成を行います。
ここでは、これから作ろうとしているシステムにどんな機能が必要で、どの順番で作っていくべきかを検討できる状態を作ることを目的にします。
具体的には以下の3つのことを行います。
・前のステップでリストアップされたユーザーのストーリーを時系列に並び替える
・各ストーリーの目的を達成するために必要な機能をリストアップする
・各機能を開発工数が少ない順に並び替える
アウトプットの例としては以下のようなものになります。これはタスク管理システムを開発することを想定しています。
1-4 システム完成後の業務フロー図の作成を行います
システムを使った業務フローがわかる図を作成します。
システムを開発する場合は、そのシステムを使った業務フローについて関係者が把握している必要があります。
例えば、誰でもプロフィールをWebに簡単に作成できるサービスがあったとします。その際にはプロフィールを作りたい人がどのようにそのサービスを使えるのかを、サービス提供側の営業担当者も含めた動きとして以下のようなフロー図を作ります。
1-5 システム構成図の作成を行います
構築するシステムの構成図を作成します。
この図は主に開発者向けに作られるドキュメントです。具体的には以下のような構成図が作成されます。
1-6 画面構成案と画面フローの作成を行います
個別の画面の構成と画面のフローの作成を行います。
ユーザーストーリーマッピングによって開発するべき機能を特定したら、それをもとに実際の画面案と画面フローに落とし込みます。
具体的には以下のような画面案と画面フローを作成します。
1-7 非機能要件一覧の作成を行います
非機能要件の一覧を文書にします。
1−3で作ったユーザが使うサイトの機能の一覧ではなく、サイトの裏側の機能を決めていきます。例えば、サイトの想定ユーザ数や通信速度などの性能や、セキュリティについて決めます。
具体的には以下のような要件を定義します。
1-8 開発に必要なシステム会社の選定をお手伝いします
システム開発をする上で欠かせないシステム開発の協力会社の選定をサポートします。
このフェーズではおおよそ1〜2ヶ月かけて、貴社にピッタリなシステム開発会社が選定します。
具体的には以下の3ステップで実施します。
・貴社の開発するシステムの特徴を把握する
・それに合わせた開発会社を選定するために商談に同席する
・開発したいシステムの特性を鑑みて、商談した開発会社のメリデメをまとめる
システム開発に精通していなければ最適なシステム開発会社はわかりません。なぜならシステム開発といっても画一的なものではないからです。例えば以下にあげるような観点で最適な開発スタイルは異なり、それに伴い最適な開発会社もことなります。
・システムの対象領域(toC向けなのかtoB向けなのか)
・システムの内容(どういった課題を解決するシステムなのか)
・システムの対象とするユーザ規模の想定
・システムの作り方(継続的に開発を回していくものか一回で完成系を作るシステム化想定か)
そこで弊社では、まず貴社の開発したいシステム特徴を特定します。次に、そのシステムの特性にぴったりな開発会社を選定するために、システム開発会社を複数紹介したり既に候補がある場合には商談に同席します。そして、商談の結果最適な企業はどこかを助言します。
1-9 スケジュール管理などシステム開発プロジェクトのマネジメントを行います
要件定義が終わったあとの開発フェーズでは、開発プロジェクトの進捗管理を行います。具体的には以下のようなガントチャートの作成を行い、それに沿った進捗管理を行います。
発注側がシステム開発についてあまり知見がない場合、システム開発の進捗管理をするのが難しい場合があります。
スムーズにプロジェクトを進行するためには「適切なサイズにタスクを分解し、根拠のある妥当な工数を見積もること」が重要です。しかし、システムに対する知見がない場合、妥当なサイズにタスクを分解すること自体ができません。その結果、以下のような弊害が発生します。
・いつまでに何をしているべきかを判断できないため、効果的なスケジュールが立てられない。
・大まかなタスクサイズでしか進捗を確認できないため、遅延が出ているのに気付くのが遅れる。
そこで、弊社では発注者と一緒にプロジェクトの進捗管理と開発中に発生する可能性がある仕様の変更などの相談対応を行います。具体的には以下のような作業を一緒に行います。
・必要なタスクを適切なサイズに分解し、それぞれの工数見積もりを行います
・プロジェクトの目的と期限をもとに適切なスケジュール作成を行い、ガントチャートに落とし込んで管理できる状態にします。
・問題が発生した時のリカバリー案を検討します。
2 費用の目安
弊社ではシステム開発を大きく二つのフェーズで捉えていて、それぞれに対応した二つのご支援プランを用意しています。
2-1. 全体の要件定義を行うフェーズのご支援
タイミングとしてはプロジェクトキックオフ〜システム開発が始まる前までの期間です。
内容としてはシステムの方向性やスケジュール感を決め、具体的な開発タスクに落とし込むまでの支援をしております。
週2稼働で50万円で案件の支援をさせていただいております。
2-2. プロジェクトの進捗管理フェーズのご支援
タイミングとしては、プロダクトの大枠が決まった後から始まる、実際に開発が動いている期間です。
内容としては、プロジェクトの進捗管理と課題が出てきた時の代替案の検討や、タスクの優先順位の組み直しなどをしております。また、新しく検討する必要がある機能の要件定義もします。
週1稼働で25万円で案件の支援をさせていただいております。
3 得意なシステム開発の案件
システム化に対して不確実性が高い案件が得意です。
不確実さを解消するために、仮説の洗い出し、仮説検証と開発の優先度づけを行います。そして、ユーザインタビューやユーザテストを用いて小さな仮説検証を繰り返しながら開発を進めていきます。
そのため、少人数の開発チームによるアジャイル開発が得意です。
4 これまでの支援実績
これまでの支援実績をご紹介します。
4-1 サステナビリティレポートの作成ツールの開発プロジェクト
サステナビリティレポートの作成にあたってはサステナビリティ担当者が多くの他部門の関係者と連携して情報を集める必要があり、コミュニケーションが煩雑であるという課題がありました。
弊社では開発にあたって以下の点で支援を行いました。その結果、無事スケジュールを前倒しして初期リリースを行うことができました。
・システム開発の目的整理
・システムの画面フローを確定するために、サステナビリティ担当者の業務フローのヒアリング
・ユーザーストーリーの作成
・ユーザーストーリーマッピングの作成
・早期に初期リリースするために、やることの優先順位づけと取捨選択
・画面フローと画面構成案の作成
・設計
・デザイナーとエンジニアの採用
・開発チームのマネジメント
4-2 複数DBの統合プロジェクト
11個の既存の求人サービスを1つに統合するというプロジェクトを行いました。
このプロジェクトは初期の想定より、開始が遅れていました。そのためリリーススケジュールを変更する検討が始まっていた段階で支援を開始させていただきました。
弊社では統合にあたって以下の点で支援を行いました。その結果、開始は2ヶ月遅れていましたが、リリースは予定通りのスケジュールで行うことができました。
・統合のビジネス的な目的とマイルストーンの整理
・ビジネス的なマイルストーンに合致する統合方法案の提案
・統合にあたって改修が必要な機能の洗い出しと改修方法の提案
・設計
・開発チームのマネジメント