この記事の要約
要件定義は、システム開発を始める前に、発注者と開発会社が「何を作り、何をゴールとするか」の認識を合わせる工程です。省くと、完成したシステムがイメージと違う、言った・言っていないの食い違い、予算や納期の超過といった問題が起こります。発注前にすべてを決める必要はなく、メモ書きの段階で相談できます。
「要望を伝えたらすぐにでも開発を始めてほしい」
そう思われる発注者様は少なくありません。
確かに、開発手法には、アジャイル開発のように「まずは作ってみて、動かしながら徐々に改善していく」柔軟な進め方もあります。
しかし、どのような手法をとるにしても、「そもそも何のために作るのか」「絶対に外せない機能は何か」といった、最初に必ず決めておきたい内容があります。
こうした内容を曖昧にしたまま開発を進めてしまうと、大幅な手戻りが起きて、納期も予算もオーバーしてしまうことが多いのです。
このようなリスクを防ぎ、プロジェクトをスムーズに進めるために、開発のスタート地点で「何を作るのか」というゴールを明確にする工程が「要件定義(ようけんていぎ)」です。
今回は、要件定義を省くとどのような問題が起きるのか、何を決めておく必要があるのかを解説します。
また、システム開発を依頼する前に整理しておくと、開発を進めやすくなるポイントも紹介します。
1.要件定義を省くと、どんな問題が起きるのか
要件定義を省いてしまうと、開発の現場ではさまざまなトラブルが起こります。
具体的にどのような問題が起きるのか、代表的な3つのリスクを見ていきましょう。
完成したシステムがイメージと違う
作りたいシステムのイメージを開発会社に伝えても、同じイメージを共有できるとは限りません。
依頼者が「業務上当たり前の機能だから、当然わかっているはず」と思っていても、開発会社はその機能が必要なことを知らない、ということはよくあります。
その結果、完成したシステムが期待していたものと違って、修正が必要になることがあります。
「言った・言っていない」で認識が食い違う
口頭での話し合いや、チャットでの曖昧なやり取りだけで進めていると、「あの時こう言ったはず」「いや、そんな仕様は聞いていない」という認識の食い違いが起こります。
このような「言った・言っていない」の問題は、依頼者と開発会社の双方にとって負担になります。
予算や納期に影響する
開発が始まってから「やっぱりあの機能も欲しい」「これも連動させたい」と要望を追加することはよくあります。
しかし、追加する内容によっては設計そのものを変更しなければならないこともあり、その場合は大幅な追加予算やリリースの遅れにつながります。
実際にあった事例
弊社が過去に引き継いだシステム開発の事例を紹介します。
A社は、作りたいシステムのイメージがあり、必要な機能もある程度決まっていたそうです。
しかし、開発前の段階で必要な要件を整理しきれていませんでした。
開発を進める中で、開発会社と共有できていなかった機能があり、その機能には別のサービスとの外部連携が必要だとわかりました。
そのため、大幅な追加費用がかかり、リリース時期も延期することになりました。
結局、A社はその開発会社とは保守契約を結ばず、弊社が引き継ぐこととなりました。
もし開発前に外部連携の必要性を確認できていれば、必要な費用や開発期間を見積もりに反映でき、よりスムーズに進められた可能性があります。
2.要件定義では何を決めるのか
要件定義とは、「今回のプロジェクトで何を作り、何をゴールとするか」を取り決める工程です。具体的には、以下のような項目を一つひとつ明確にしていきます。
システムで何を実現したいのか
まずは「なぜこのシステムを作るのか」というビジネス上の根本的な目的を共有します。
「顧客情報を管理したい」「手作業の業務を自動化して時間を削減したい」など、目指すゴールを明確にします。
また、開発会社も、単に依頼された機能を作るだけでなく、依頼者が本当に実現したいことを理解することで、より適切な提案ができるようになります。
必要な機能と、その優先順位
目的を達成するために「どんな機能が必要か」を洗い出します。
ここでは「優先順位」をつけることが重要です。
すべての要望を詰め込もうとすると予算がいくらあっても足りなくなるため、「絶対に外せない機能」と「余裕があれば欲しい機能」に仕分けします。
また、すべての機能を最初から実装する必要があるとは限りません。
開発予算や納期によっては、まず必要最低限の機能を実装し、後から追加していく方法もあります。
そのため、要件定義では、「最初のリリースで必要な機能」と「将来的に追加したい機能」を分けて整理することも大切です。
優先順位を明確にしておくことで、予算や納期に合わせた開発計画を立てやすくなります。
誰がどのように使うのか
システムを使うのは「一般の顧客」なのか「社内の従業員」なのか。
どのような場面で、どのような操作手順で使うのかをシミュレーションします。
例えば、同じ顧客管理システムでも、営業担当者が外出先で使うのか、事務担当者が社内で使うのかによって、必要な機能や画面の構成は変わります。
一般ユーザー向けのシステムでも同様に、使う人や場面によって必要な機能や構成が変わります。
使う人のITスキルや実際の業務の流れを想定しておくことで、本当に使いやすいシステムに仕上がります。
速さ・セキュリティ・保守性などの要件
目に見える「画面や機能」だけでなく、目に見えない「性能やセキュリティなどの面」も決めます。これを「非機能要件」と言います。
例えば、「アクセスが集中しても速く動いてほしい」「個人情報を取り扱うのでセキュリティを強化したい」「トラブルが起きたときに対応しやすい仕組みが欲しい」など、希望どおりに運用するための土台を決めます。
こうした要件は、機能そのものとは異なるため、見落とされやすい部分です。
完成後にどのように運用・保守をするのかを考えておくことも、要件定義の大切なポイントです。
予算や納期とのバランスを考える
最後に、整理した要件を予算や納期と照らし合わせます。
機能の数や複雑さ、外部サービスとの連携、セキュリティ対策などによって、必要な開発費や期間は変わります。
そのため、要件定義では、実現したいことの優先順位を確認しながら、予算やリリース時期に合わせて開発範囲を調整していきます。
何を優先して、どこまで実現するのかを開発会社と相談しながら決めるとスムーズです。
3.要件定義をする前に整理しておきたいこと
発注前に現在の業務や困っていることを整理しておくと、開発会社との打ち合わせを進めやすくなります。
ここでは、システム開発を依頼する前に、発注者側で整理しておくと良いポイントを紹介します。
現在の困りごとと、どうなれば成功なのか
「必要な情報が社内で共有されていない」「手入力の作業が多くてミスが多発している」といった現状の課題を整理しておきます。あわせて、「外出中でも事務と営業で資料を共有したい」「作業時間を半分にしたい」など、どのようになれば成功といえるかという理想のゴールもまとめておきます。
誰が使うのか
システムを利用する人についても、事前に整理しておきましょう。
社員だけが使うのか、取引先も使うのか、一般ユーザーが使うのか、といった点です。
例えば、社内の担当者だけが利用するシステムと、取引先もログインして利用するシステムでは、必要なアクセス権限やセキュリティ対策が異なります。
現在の業務の流れや、使っているExcel・紙の資料
社内システムや業務効率化ツールを作る場合は、現在の業務の流れを書き出しておきましょう。
また、普段使っているExcelのフォーマットや紙の手順書などがあれば、そのまま開発会社に見せるのもおすすめです。
予算と希望納期の目安
「〇〇万円以内に収めたい」「新年度が始まる4月にはリリースしたい」といった目安を伝えます。
これらをもとに、開発会社と一緒に「その予算と期間でどこまで実現できるか」を逆算しながら要件定義を進めます。
絶対に外せない機能を洗い出す
「こんな機能が欲しい」という具体的なアイデアがあれば、「絶対に外せない機能(必須)」と「予算に余裕があれば欲しい機能(希望)」の2つに仕分けておきましょう。それだけで、見積もりや提案の精度がグッと上がります。
また、将来的に追加したい機能も整理しておけば、要件定義の段階で開発会社に伝えられます。
「準備することが多くて大変そう」と不安に思われた方もいるかもしれません。
しかし、発注前にすべての項目を完璧に埋める必要はまったくありません。
メモ書きや、頭の中にあるモヤモヤとしたイメージの段階でも開発会社に相談していただいて大丈夫です。
システム開発に詳しくない場合、どのような機能が必要なのか、どのような仕組みで実現できるのかを判断するのは難しいものです。
「ここがうまく整理できない」「そもそもシステムで実現できるかわからない」という部分こそ、私たち開発会社がプロの視点からヒアリングを行い、一緒に具体化していくところです。
まずは「今困っていること」をそのまま相談してみてください。
まとめ
要件定義は、システム開発を始める前に、発注者と開発会社が実現したいことや必要な機能について認識を合わせるための工程です。
システムの目的や必要な機能、利用方法などを整理しておくことで、完成したシステムがイメージと違ったり、開発途中で大きな変更が生じたりするリスクを減らせます。
ただし、発注前にすべての要件を決めておく必要はありません。
現在の業務で困っていることや、システムで実現したいことが漠然としていても、開発会社と相談しながら具体化していくことができます。
アイデアやメモ書きの段階でも、システム開発を検討するための十分なきっかけになります。
株式会社パパグラムでは、Webシステムの新規開発だけでなく、既存システムの改修や機能追加などのご相談にも対応しています。
システム開発を検討しているけれど、何から決めればよいのかわからない方も、現在のお困りごとや実現したいことをお聞かせください。要件定義の段階から丁寧にヒアリングを行い、ご納得いただけるシステムを開発いたします。
まずはお気軽にお問い合わせください。