2024-01-18

要件定義とは?システム開発で失敗しないための発注者と開発者のすり合わせプロセス

システム発注で失敗しないためには、なにを作るのかを明確にする「要件定義」が重要です。

一方で、システムの発注者から見れば要件定義は不慣れなものであり、そもそも何をすればいいのかもイメージがつかないものです。

そこで本記事では、発注者の目線で要件定義の重要性を解説します。

システム開発で失敗しないためにも、ぜひ最後までご覧ください。

件定義とは?現場と開発者の認識の擦り合わせ

要件定義(ようけんていぎ)とは、システム開発を行うにあたって、そのシステムが何を実現すべきかを関係者間で明確にする作業のことです。

具体的には、システムの目的、機能、データの種類や流れ、画面・帳票のイメージなどを可視化します。

要件定義のプロセスでは、現場の業務フローや課題を洗い出し、システム利用の場面別に、誰が、いつ、どこで、何をするのかを可視化したうえで、システムに何を求めるか共有化します。

これによって、現場とシステム担当者の認識のずれを防ぎ、開発後のシステム利用を円滑にします。

要件定義は誰がやるもの?発注側か受注側か

株式会社LOGにおいては、クライアントとの密接な協力に基づいて要件定義を進めています。

主にヒアリングと現場訪問に重点を置き、クライアントの実際の作業フローや業務環境を深く理解することから始まります。

現場のフローに合わせたシステム設計が重視され、現在のフローを変えずにそのままシステムに移行できるよう柔軟な開発アプローチが採用されています。

社外の関係者との連特別な要件への対応もLOGの特徴であり、これにより、各クライアントの独特な業務フローや特殊な要求に対しても柔軟に対応することができます。

たとえば在庫管理のシステムでは、業務フローの半分以上に社外の関係者が関わりますから、現場の状況を知らないままでは進められないのです。

株式会社LOGの要件定義は、ただの技術的な仕様書作成にとどまらず、クライアントの業務理解と深く連携し、プロジェクトの成功に不可欠な役割を担っています。

要件定義はいつやるの?プロセスとタイミング

要件定義はプロジェクトの最初の段階、具体的には契約を提携したの後、デザイン開発の前に行われます。

株式会社ログではシステムを利用する現場にお伺いし、各担当者や業務フローを整理しながら、次の4つのアプローチで要件を定義していきます。

業務フロー・ストーリーマッピング

ストーリーマッピングは、業務の流れと各工程で行われる作業を可視化する手法です。この方法では、特に各担当者のタスクを明確にし、業務プロセスを詳細に追跡します。

例えば、あるプロジェクトマネージャーが現場を訪れた際に、重要な用紙を発見したことがありました。この用紙はシステム担当者にも知られていましたが、具体的な使用方法が理解されていませんでした。

現場スタッフに確認したところ、この用紙は業務に不可欠であることが判明しました。

この例のように、各担当者が把握していない業務フローが存在することがあります。

ストーリーマッピングによって、これらの未知の業務フローを明らかにし、すべてのプロセスを整理して抜け漏れのない形でまとめることが可能です。

これは、システム利用の背景から利用終了まで、どの人物が関わり、どの工程でどの作業を担当しているかを整理する過程です。このアプローチにより、担当者は自分が知らない現場の作業フローを理解することができます。

リージョン整理

リージョン管理は、システムに関わる個々の担当者の役割と権限を明確にするアプローチです。このプロセスでは、各担当者がどの程度の操作を行えるか、及びユーザーが自ら操作できる範囲を定めます。

たとえば、重要な予算決定に関わるシステムであれば、一般の従業員が広範囲にわたって操作できる設定はセキュリティ上好ましくありません。

これは極端な例ではありますが、どのシステムにおいても、誰がどのようにシステムを利用するかの明確化は必要なのです。

リージョン管理では、システムに関わる業務内容に基づいて、どの担当者がどの程度の権限を持つべきかを整理します。

これにより、システムの利用が適切な管理下に置かれ、セキュリティや効率性が保たれるようになります。このアプローチは、権限の適切な配分を通じて、システムの安全性と有効性を高めることを目的としています。

プロセス管理

プロセス管理は、必要な機能ごとの流れや構成を整理するアプローチです。この方法では、実際の業務フローを現場のフローと照らし合わせながら可視化します。

ストーリーマッピングとの主な違いは、ストーリーマッピングがユーザーを中心にして各工程での関わりを整理するのに対し、プロセス管理は業務のプロセス自体とその流れを可視化する点にあります。

このアプローチは、後に行われるシステム設計において、必要なページや機能を明確にするために重要です。

具体的には、システムにどのようなページが必要か、また、それらのページで実現すべき機能やタスクを洗い出し、設計する基礎を提供します。

このプロセスにより、効率的で機能的なシステムの開発が可能になり、実際の業務フローに適切に対応するシステムが設計されます。

LOGの要件定義と他社の違い

システム開発の要件定義は、大きく2つのアプローチに分けられると考えられます。一つ目は、要件定義を行わずにすぐに制作に入るタイプです。

このアプローチは主に小規模なプロジェクトに見られ、工数の削減が可能ですが、発注者と制作側の認識の不一致が原因でシステムの修正が多くなり、完成が遅れるリスクがあります。

二つ目は、要件定義をじっくりと行うタイプで、この場合、要件定義の過程自体に数ヶ月を要することもありますが、十分な準備により、より手堅く進めることができます。

他社の形式とは異なり、私たちLOG社が行うシステム開発は、小さなシステムを作り、それをブラッシュアップしていくアジャイル開発と呼ばれるスタイルです。

アジャイル開発では、必要最小限の機能で開発を進め、要件定義も必要最小限に抑えられます。これにより、システムを早期に現場で使用し、実際のフィードバックを元に開発を繰り返していくことが可能になります。

この方法は、現場からの即時のフィードバックを取り入れながら、柔軟にシステムを改善していくことを特徴としています。

要件定義を自社で行場合の注意点

システム開発を自社で進めたい場合や、条件をそろえて複数社から見積もりをもらいたい場合に、要件定義を自社でまとめたいケースもあるでしょう。

ここでは、要件定義を自社で行うための注意点を3つご紹介します。

  1. 現場の作業フローをもれなく洗い出す
  2. 特殊なケースを見極める
  3.  関係者にも協力を求める

それぞれ詳しく見ていきましょう。

1. 現場の作業フローをもれなく洗い出す

要件定義の際には、現場の作業フローを初めから終わりまで徹底的に確認することが重要です。

実際の業務フローに合致しないシステムは、開発されたとしても実際には使用されないことが多いです。

これは過去の開発経験から得た重要な教訓です。例えば、開発担当者が使用方法を知らない用紙が、現場では非常に重要なものである可能性があります。

このような重要な要素を見落としてシステムを開発すると、最終的にはそのシステムが完全には採用されず、従来の方法に戻ってしまう事態が発生することがあります。

したがって、業務フローに沿って必要な機能を洗い出すことで、取りこぼしがないようにしましょう。

これにより、効率的で実用的なシステムの開発が可能になります。

2. 特殊なケースを見極める

要件定義では、全ての業務フローを詳細に洗い出すことが理想的ですが、業務の洗い出しすぎには注意が必要です。

特に、特殊な取引先や細かい業務プロセスに至るまで細分化しすぎると、要件定義のプロセスが複雑になりすぎ、まとめる作業が困難になる可能性があります。

また、システムを汎用的なものとして開発し他社へのサービス提供を目指している場合、過度に特殊なケースに対応することはデメリットとなることも考えられます。

したがって、要件定義の際には、必要な機能と特殊な機能を見極めることが非常に重要です。

これは状況に応じた判断が求められる部分であり、要件定義のプロセスを進める中で、各機能の必要性や適切性を慎重に評価する必要があります。

要件定義の目的は、効率的で実用的なシステムを開発することにあり、そのためには実際の業務に必要な要素と不必要な要素を区別する洞察が不可欠です。

3. 関係者にも協力を求める

特定のシステム開発において、要件定義を自社内だけで行うのが不十分な場合もあります。

例えば、受注の在庫管理システムを開発する際、システムの主要利用者は自社の在庫管理担当者だけでなく、システムにアクセスする取引先も含まれます。

このような場合、取引先もシステムの利用者として考慮する必要があります。

もし取引先がシステムを使いこなせなければ、そのシステムは機能しないという結果になりかねません。

そのため、自社だけではなく、取引先や他部署の関係者もシステム開発のプロセスに巻き込むことが重要です。

すべての潜在的なユーザーや関わる業務フローを把握し、これらの関係者からのフィードバックや要望を要件定義に反映させることで、より実用的でユーザーフレンドリーなシステムを開発することが可能になります。

要件定義の段階で広範な協力とコミュニケーションを取り入れることで、システムの適用範囲を広げ、利用者のニーズに対応することができるのです。

まとめ

要件定義は、システム開発において、そのシステムが実現すべき目的や機能を明確にする重要なプロセスです。

システムの目的、機能、データの流れ、画面のイメージなどを可視化する作業が含まれます。

要件定義により現場とシステム担当者間の認識のずれを防ぎ、開発後のシステム利用を円滑にします。

株式会社LOGでは、クライアントとの緊密な協力に基づき要件定義を進めています。

これにはヒアリングや現場訪問が含まれ、クライアントの実際の作業フローや業務環境を深く理解することが目的です。

リージョン管理やプロセス管理などのアプローチを通じて、システムの設計を行います。

また、アジャイル開発を採用し、必要最小限の機能で開発を始め、現場のフィードバックを基にシステムを改善していきます。

弊社ではシステム開発のご相談も承っております。お気軽にご相談ください。