「要件定義でやるべきこと」ということをメインテーマに情報システム開発の中でも現場に関わる部分の業務フローの明確化すなわち、業務でやらなけらばならないことの順番、タイミングを決めるためのノウハウをこの項には詰めています。どうぞ一読お願いします。

業務プロセス要件の明確化とは?

この記事では業務プロセスを表すプロセスモデルを、業務フロー図の形で表現します。作成する業務フロー図は、ビジネス要件を満たし、プレイクダウンされた業務要件を表すものになります。同時に、システム要件が明らかになるプロセスモデルである必要があります。要求を基に作成した①「理想のToBeプロセスモデル」を基に、②「Aslsプロセスモデル+制約」を踏まえて、③「実現を目指す ToBeプロセスモデル」を作成するのが理想の形です。

業務フロー図では、階層化とプレイクダウンにより、概要から詳細へとブロセスモデルを表現するとともに、業務プロセスの要件を明確にしていきます。

プロセスモデルとは?

データモデルはビジネスの静的側面を表すものです。これに対しプロセスモデルは、ビジネスの動的側面を表します。静的と動的の両面から「ユーザーにわかりやすい表現で」要件を確定していくことにより、ビジネスに直結した価値ある情報システムの構築が可能になります。要件定義段階で作成するプロセスモデルは、まずビジネス要件と方向性が一致し、業務要件とシステム要件を満たすものでなければなりません。業務フローに登場する業務プロセスに対して、早めに定義を行っておくと、後工程での機能確定やUI確定の際に、ブレが出にくいのは事実です。要件定義で全ての業務プロセスの定義を完璧に終える必要はありませんがシステム開発プロジェクトにおいてポイントとなる主要な業務プロセスに関しては定義を行っていきます。プロセスの定義とともに、機能確定を目的にユーザーシナリオを明確していくことも可能になります。本項では、様々な要件定義における工程と作業の考え方に対応可能なように、主要機能を確定し、システム要件として明確にするところまでを、要件定義で行う事項とみなし説明します。なぜ業務フローか?ユーザーにとって良いシステムとはどのようなものでしょうか。筆者は以下のように考えています。

・ビジネスを円滑に運営できる。

・ビジネスの変化に迅速に対応できる。

「良いシステム」を開発するためには、まずは基本的な業務処理に着目し、きちんと見える化することが近道になります。業務の流れの中でシステムをどう利用するかをユーザーと開発者が共有することで、ビジネスを円滑に運営できるシステムの開発が実現するからです。それに加えて、データを重視し、変化に強い安定したデータ構造の構築と、「要求·要件のトレーサビリティ」が可能な環境があれば、変化による影響が把握可能になりま す。ここではまず、「業務プロセスの見える化」を実現するために、業務処理に着目します。ビジネスはあらゆる業務処理によって成り立っています。そして、そういった業務を遂行する処理のタイミングは、業務の流れが前提であり、その流れを踏まえないことには規定できません。ユーザーは業務の流れの中で自分が担当する仕事を行います。その仕事の単位が業務プロセスもしくは業務プロセスの固まりです。この考えを踏まえて、まず、開発者とユーザー合意する業務モデルを、業務の流れを前提にしてまとめていくのです。

一般的に馴染みのあるBFD (Business Flow Diagram:業務の流れ図)をわかりやすくカスタマイズした描き方で、業務の流れを把握できるプロセスモデルを表します。そして業務の流れの中で、個々の業務プロセスを表すアイコンを、線で結ぶ形で表していきます。もちろん、ほかの表記法でもプロセスモデルを記述することはできます。世の中には様々な手法や描き方があり、どれを使用しても、プロセスモデルを作成する「目的」を果たせれば問題ありません。その目的とは、開発者(システム屋)とユーザー(業務屋)が、業務プロセスの観点から共通認識を持つことです。そしてその共通認識を、システム稼働後に、ユーザー(業務屋)が現場でマニュアルとして流用できれば、業務視点でシステムが浸透していく手助けとなります。つまり、共通認識を可能とする「共通言語」であることが望ましいといえます。システム開発の際に作成するプロセスモデルとしての業務フローの目的は、業務改革を伴うとしても、【業務分析→業務改革】を目的としたフローとは、目的が若干異なります。システム開発の際に作成する業務フローは、あくまでシステムを使ったプロセスの定義が目的になります。但し最終的に新業務を構築するという狙いは同じなので流用は可能です。

まずは、要件定義で使用するプロセスモデルを通じて、立場の異なる人同志がわかりあえること、つまり「コミュニケーションツール」としてのプロセスモデルを目指します。「わかりやすい」ためには、シンプルであるべきでしょう。あまり複雑でごちゃごちゃしていると混乱を招きます。そして、複雑でごちゃごちゃしているものは間違っていても気付かれにくく、問題が大きくなりがちです。シンプルで分かりやすいものは間違いが発見されやすく、多くの人の目に触れることで品質が向上します。シンプルでわかりやすいメッセージは、誰の心にも届きやすいのです。

プロジェクト自体の目的と方向性はトップダウンで決めるべきですが、それだけでは「動く仕組み」は作れません。ビジネス要件からブレイクダウンした業務要件との整合性を保ちつつ、現場の意見を吸い上げて、新業務、システムの要件となる「元ネタ」をもらい、プロセスの形に仕上げていく必要があります。現実の業務の流れからプロセスモデルを導出するには、業務を実際に担当している人たちとの相互理解が不可欠です。彼らが理解できる表記法でなければ、現場の力を最大限に引き出し、本当に必要なプロセスモデルを作成することはできません。

特にエンタープライズ系システムは、企業組織の根幹に関わる仕組みが殆どです。そんなシステムの動的側面を表す業務フローは、ビジネス要件と業務要件を満たすものでなくてはなりません。また、満たすものであることを業務担当者や現場に納得してもらわなければなりません。技術者でなくてもわかる表現が必須です。筆者はむしろ、現場のユーザーこそ要件定義の主役だと認識しています。その主役が理解できない表現では、話になりません。もちろん、企業組織の文化や風土により、「わかりやすい」の意味や条件は異なります。目的を果たせるのであれば、どんな表記法でも構いません。業務フロー図をアクティビティ図で描き、ER図をクラス図で描いても、もちろん構いません。ユーザーの合意さえ得られれば、後工程との親和性が高くなるかもしれません。その場合は、本書の内容を読み替えて使用してください。コンシューマー向けシステムにおいても、「ユーザー行動のシナリオ」として業務フローをわかりやすく描いてみることです。業務フロー上に表現された業務プロセスから「お客様視点の」シナリオが浮かび上がってきます。業務フロー図の意義は、とにかく業務の流れを鳥瞰できることです。鳥の目を持った状態で、ビジネスの動的側面について、関係者同士の議論が可能となるのです。

トップダウンとボトムアップ

システム開発の基本原則は「トップダウンで骨組み、ボトムアップで肉付け」です。業務フロー図はトップダウンの考え→ビジネス要件を基に、現場の業務レベル→業務要件の流れに落とし込んだものです。この「骨組み」を明確にする作業を「トップダウンモデリング」と呼び、「肉付け」していく作業を「ボトムアップモデリング」と呼ぶことにします。これはプロセスだけでなく、データに関しても同様の考えでモデリングしていきます。「骨組み」したものを「肉付け」することにより、業務を強靭にしていかなくてはなりません。その際には、現場力を最大限に活かす必要があります。トップダワンで落とし込んだ業務フローを基に、現場の要求を要件化して形にしていくのです。現場力を最大限活かした強靭な業務プロセスを作り上げるには、全社最適だけではなく、部門のメリットも考慮しなければなりません。つまり、新しいプロセスが「現場の自分たちにとって価値がある」と思わせる努力が必要になるのです。

最終的には、現場(エンタープライズ系システムの場合、プロセスオーナーかつユーザー、コンシューマー向けシステムの場合、プロセスオーナー及びユーザーであるお客様)にメリットがないと、システムを活用した業務プロセスは根付きません。開発者、システム部門には、根気よく現場と向き合い寄り添うスタンスが求められます。ここで一緒に業務を作り上げることで、両者の意志疎通がスムーズになっていきます。ここが開発者、システム部門の頑張りどころです。また昨今では、「働きやすさ」を求める機運が高まっています。企業組織の業務プロセスの品質とともに、現場の「心地よさ」が今まで以上に重要視されています。

強靭な業務プロセスを擁する業務フローは、テストシナリオとしても活用可能です。ある程度、要件定義の内容が固まってきたら、システムテスト計画書のテストシナリオとして使うことを意識して、業務フロー図を作成してみましょう。そのままテスト仕様書にも使えるし、最終的にはビジュアルな業務マニュアルに流用可能です。つまり業務フロー図は、システムの視点からも業務の視点からも活用できるのです。

【広告】Librus Tech Communityのお知らせ

Librus株式会社が運営する、システムエンジニアやプロジェクトマネージャーの方向けに展開するコミュニティにぜひご参加ください。「互いに助け合い、学び合う空間」をコンセプトに、システム開発に関するセミナーや勉強会をはじめ、案件や転職先のご紹介、相談対応も行います。エンジニア初心者の方や起業、現在フリーランスをされている方、フリーランスを目指している方も大歓迎です。

▼Slackコミュニティ入会フォーム
https://forms.gle/1D5duKwVJhm1vFb18