コンテンツにスキップ
この記事はパブリックドメイン(CC0)です。自由にご利用ください。 CC0 1.0 Universal

業務プロセス指向への招待

企業や政府、非営利団体、あるいは少人数のチームは、その規模や種類に関わらず、組織活動を行っています。

組織活動は、複数の業務プロセスから構成されます。

業務プロセスは、タスクに分解することができます。組織内の部門や担当者が、それぞれの役割として与えられたタスクを実行することで、業務プロセスが機能します。

このようにして個々の業務プロセスが機能することで、全体として組織活動が機能します。

オブジェクト指向ソフトウェア

ソフトウェア開発の世界において、オブジェクト指向ソフトウェアという考え方と、それに基づいた設計手法やプログラミング言語が開発されてきました。

それまでのソフトウェアは、データと処理を別々に設計し、プログラムの中でもデータの定義と処理の定義は独立していました。

このため、密接に関連するデータと処理の定義を、プログラムの中で近い場所に配置することもできましたし、全く別の場所に配置することもできました。

定義する場所の配置がどちらであっても、コンピュータがプログラムを処理する上では、何も違いはありません。

一方で、開発したプログラムを改良したり、機能追加する場合には、配置の仕方の良し悪しによって、作業効率やバグが生じる可能性が大きく異なります。

密接に関連するデータと処理の定義が、数万行や数十万行に及ぶプログラム内にバラバラに配置されていると、変更を加えることが著しく困難になります。

オブジェクト指向ソフトウェアは、そうした問題を解決するための基本的な考え方です。

つまり、密接に関係するデータと処理は、あとからプログラムを変更する際にもわかりやすいように、プログラム内で明確に区画化して同じ区画の中に入れておく、という考え方です。

このデータと処理を入れる区画が、オブジェクトと呼ばれている概念です。

ソフトウェアの設計段階から、オブジェクトという単位を中心に設計しておくことも重要です。

一方で、通常、私たちは様々な物事をオブジェクトとして捉えることに慣れています。

例えば目覚まし時計に、起床予定時刻をセットすると、その時刻にアラームが鳴ります。私たちは目覚まし時計というオブジェクトが、起床予定時刻というデータと、アラームが鳴るという処理を持っているという認識を持っているわけです。

この人間の一般的な認知の仕方に沿った形でソフトウェアの設計と実装を行うことが、理にかなっているわけです。これが、オブジェクト指向ソフトウェアが普及した理由です。

業務プロセス指向ソフトウェア

組織活動とオブジェクト指向ソフトウェアについて概説してきました。

ここで、新しいソフトウェア開発の考え方として、業務プロセス指向ソフトウェアを提案したいと思います。

オブジェクト指向ソフトウェアの話で説明したように、人間の認識に合う形でソフトウェアを設計することは、ソフトウェアを改良したり機能追加する上で、大きな利点となります。

組織活動においてソフトウェアを活用する際には、その基本単位である業務プロセスという概念的な区画の中に、関連する情報や機能を配置することで、改良や機能追加が容易になるはずです。

これが業務プロセス指向ソフトウェアの基本的な考え方です。

マニュアルと入力情報

比較的大きな企業では、典型的な業務プロセスは、マニュアル化されていることが多くあります。マニュアル化できるくらい明確に定義された業務プロセスは、ワークフローとも呼ばれます。

一般的なソフトウェアによって実現される業務システムは、このワークフローをシステム化したものです。ワークフローに沿って、各担当者や担当部門が情報を業務システムに入力していくことで、業務プロセスが実現されます。

ここで、業務マニュアル、業務システム、入力情報は、非常に密接な関係にあります。

しかし、ここで説明した仕組みでは、この密接な関係にある3つの要素が、バラバラに配置されているのです。

業務プロセス指向ソフトウェアの考え方では、これらは1つのまとまりであるべき、という立場を取ります。

1つのファイルに、業務マニュアルが記載されており、各担当者や担当部門が入力する情報を書き込む欄もある、という書類をイメージしてください。

加えて、各作業の次の担当者の連絡先も具体的に記載されているとします。

すると、この業務マニュアル付きの入力情報記入用ファイルに、業務プロセスの全ての要素が内包されていることが分かります。

このファイルを作成して、最初のタスクの担当者に渡せば、後は記載されたマニュアルに沿って業務プロセスが進行します。そして、最終的に入力すべき情報が全て埋まると、業務プロセスの1つが完了することになります。

このファイルが、業務プロセス指向ソフトウェアの考え方を適用した、業務プロセス指向ソフトウェアそのものです。

そして、多種多様な業務プロセス指向ソフトウェアが機能することで、組織活動全体が機能することになります。

ソフトウェアそのもの

先ほど、業務マニュアル付きの入力情報記入用ファイルが、業務プロセス指向ソフトウェアそのものだ、と表現しました。

ここからプログラムやシステムを開発する話になると想像した人もいるかもしれません。

しかし、そうではありません。

プログラムやシステムとは無関係に、業務プロセス指向ソフトウェアとして、このファイル自体は機能します。

先ほど説明した通り、このファイルを作成して最初の担当者に送れば、後は各タスクの担当者に受け渡されていき、そこに書かれた業務プロセスが実行されるためです。

もちろん、このファイルを元にして、そこに書かれたワークフローを実現するためのプログラムやシステムを開発することはできます。

しかし、そのシステムを介する場合と、このファイルそのものを担当者間で受け渡していくことに、どれほどの差があるでしょうか。

ここで、注意するべき点は、プログラムやシステムを開発するということは、マニュアルと処理を分離させてしまうという点です。

この分離は、業務プロセス指向の考え方に逆行します。つまり、業務プロセスの改善や機能追加を困難にするということです。

それは業務マニュアルを改変する場合を想像すればすぐに分かります。

業務プロセスの手順を変更する度に、プログラムやシステムをそれに合わせて変更する必要が出てきます。

このため、業務マニュアルは初めから十分に練られたものにしておく必要があり、マニュアル化に時間がかかります。また、マニュアルを変更してもすぐにプログラムやシステムに反映されません。

こうした時間が必要になるという問題に加えて、改修コストもかかります。

これでは業務プロセスやマニュアルを、容易には変更できないことを意味します。

一方で、プログラムやシステムを開発せず、業務マニュアル付きの入力情報記入用ファイルを担当者間でやりとりするやり方であれば、プログラムやシステムの開発期間や保守運用コストも必要なくなります。

実行されるソフトウェア

それでは、なぜこのファイルを「ソフトウェア」と呼ぶのだろうか、と疑問を抱く人もいるでしょう。

その理由は、このファイルが、実行されるファイルであるためです。ただし、プログラムとしてコンピューター上で実行されるのではなく、人間によって実行されるソフトウェアだからです。

業務マニュアルは人間にとってプログラムのようなものです。そして入力情報記入欄は、メモリやデータベース上のデータ格納場所のようなものです。

このように考えれば、このファイルは人間に実行されるソフトウェアと捉えても、間違いではありません。

実行主体

業務プロセス指向ソフトウェアに書かれたタスクを実行するのは、人間である場合と人工知能である場合があります。

1つのタスクであっても、人工知能と人間が協力して実行する場合もあれば、人間だけ、あるいは人工知能だけで実行するタスクもあるでしょう。

人工知能も、このファイルの中の業務マニュアルを読んで、適切な処理を行うことができます。

つまりこのファイルは、人間と人工知能の両方にとって、実行可能なソフトウェアということになります。

人工知能によるアシスト

まず、人工知能がファイルを実行します。その際に、ファイル内に書かれた業務マニュアルを読み、処理すべき内容を理解します。

その処理の中には、そのまま人工知能が実行したり、入力情報欄に情報を入力することができる部分もあります。

一方で人間による処理や情報入力が必要になる部分もあります。

その部分については、人工知能が人間にそれを知らせて、処理や情報入力を促します。

この際に、人工知能は人間による処理内容や入力情報の内容によって、人間への提示方法を変えることができます。

基本的な人間への提示方法は、テキストチャットや音声チャットで人間に必要な作業を伝えたり、入力すべき情報をヒアリングするという方法が考えられます。

また、直接そのファイルを開くやり方もあります。ファイルがテキストであれば、テキストエディタを開く、という具合です。

もう少し高度な方法として、必要な作業や入力情報を抽出して、その内容に応じて、人間が作業しやすいアプリ向けに一時的なファイルを生成し、それを実行するという方法もあります。

例えば、表の形で入力する必要があれば、表計算ソフト用のファイルを生成して、そこに人間が情報を入力する、という形です。一時的なファイルに入力された情報は、人工知能が元のファイルの入力欄に書き写します。

さらに高度な方法は、ファイルと人間がすべき作業や入力情報にフィットするユーザーインターフェースを持つアプリをオンデマンドでプログラミングするというやり方もあります。

このようにして、人工知能が自動処理したり、人間による作業や入力をアシストして、1つのタスクが完了すると、業務マニュアルに書かれた次のタスクの担当者の連絡先に、人工知能がファイルを転送します。

このように、人工知能が人間をアシストすることで、人間は最低限必要な作業だけを、作業しやすいユーザーインターフェースを通して効率的に実施すれば良い、という仕組みが実現できます。

AIフレンドリファイル

基本的には、業務プロセス指向ソフトウェアは、どのようなファイル形式でも構いません。

ただ、人工知能によるアシストを考えると、基本的なファイルフォーマットは、人工知能が扱いやすい形式が適しています。代表的なものはマークダウン形式のテキストファイルです。

そして、基本的な記載内容のルールを決めておくとよいでしょう。人工知能がアシストするため、その基本的な記載ルールも柔軟に変更したり拡張することができます。

ナレッジ蓄積と業務プロセス改善

業務プロセス指向ソフトウェアは、プログラムやシステムの開発を伴わず、マニュアルと入力欄を合わせたファイル自体の作成や変更するだけで、新しい業務プロセスを組織に追加したり、既存の業務プロセスを変更することができます。

また、業務マニュアルの中に、その業務プロセスに関する質問や改善要望を連絡する窓口の連絡先を記載しておくことが重要です。

これにより、人工知能や人間が、不明点に悩んだり調べたりする時間と手間が大幅に減ります。また、質問と回答、そして改善要望が、1つの連絡窓口に集約されるため、業務プロセスのナレッジが自然に蓄積され、かつ業務プロセスの改善を高頻度で行うことができます。

蓄積されたナレッジを体系化して整理したり、改善要望に応じて業務プロセス指向ソフトウェアを変更したりする作業も、人工知能が自動的に実行したり、人間をアシストすることができます。

また、必要があれば、業務プロセス指向ソフトウェアを新しく作成して、新しい業務プロセスを組織に追加することもできます。

高速学習する組織

このようにして、業務プロセス指向ソフトウェアというコンセプトと、人工知能による自動化やアシストにより、組織全体として、自然にナレッジを蓄積し、継続的な自己改善を行うことができるようになります。

これは高速学習する組織、と言えます。

これにより、従来型の組織よりも、はるかに効率的な組織活動が実現できます。

その一方で、個々のタスクは人工知能によるアシストにより、人間はユーザーフレンドリなインターフェースを介して最小限の作業を行えば済みます。

このため、人間が多くのことを学習したり、頻繁に変更される業務プロセスの全てを把握する必要はありません。

人間と違って、人工知能は新しい業務マニュアルを全て読み直すことを苦も無く一瞬で行えます。加えて、新しい業務プロセスに慣れる時間は不要ですし、以前の業務プロセスにこだわることもありません。

このため、人間が苦手な大量のマニュアルの学習や業務プロセスの変更への慣れの部分は、人工知能が吸収します。

こうして、高速学習する組織が実現できるのです。