ワークフロー
ワークフロー(workflow)は、リソース(資源)を体系的に組織化した反復可能な業務活動のパターンである。ワークフローは、物質の加工、サービスの提供、情報の処理など、何らかの具体的意図をもって設計される。ワークフローは、例えば、操作の列、個人またはグループの定まった作業、従業員の組織、複数の機械の機構などで表現しうる。
ワークフローは組織構造に関する各種概念(サイロ、機能、チーム、プロジェクト、階層)と密接な関係がある。ワークフローは組織の基本的構成要素と見ることもできる。これら概念の関係については後述する。
ワークフローは明らかに現代になって登場した概念である。ピラミッドのような歴史的建造物の建設でも、労働者の集団における各人の業績が存在したと想像することはできる。しかし、仕事の性質を研究することで価値を生み出し、組織をよりよく機能させようという考え方は、おそらくアダム・スミスを起源とする明らかに現代的な思考である。以下では、大まかに年代を区切って、ワークフローの観念が発展していった経緯を簡単に解説する。
ワークフローの観念は、仕事自体の概念化の歴史的発展と共に発展した。現代的なワークフローの起源は、フレデリック・テイラー (Taylor, 1919) とヘンリー・ガントまで遡る。彼らは製造業において、計画的かつ合理的な作業組織の研究を共同で立ち上げた。テイラーらが興味をもったワークフローは、主に物質とエネルギーに関するものであり、それらは時間研究(Time Study)と動作研究(Motion Study)を使って研究され、改善された。
一方、同時期に情報に関するワークフローも成長を開始している。特に、デューイ十進分類法やの発明で知られるメルヴィル・デューイが重要な役割を果たした。
この時代から既に工場の組立てラインがワークフローの主要な例であったが、仕事に関する当時の考察は一般に理解されているよりずっと進んでおり、単なる処理の逐次的なブレークダウン以上のフローの概念が既に生まれていた。現代のオペレーションズリサーチにおける概念モデルであるフローショップ、ジョブショップ、キューイングシステム (Pinedo, 2001) は20世紀初頭に既に発展していた。
この時代は「情報」のフローに関する観念が比較的未発達であったことが足かせとなり、ワークフローの最適化と生産性については、スループットと資源活用という最も単純な観念しかなかった。
ワークフローの文化への影響は、1950年に20世紀フォックス社で映画化された『一ダースなら安くなる』やチャップリンの『モダン・タイムス』のような映画に見て取ることができる。これらの概念は製造業の現場だけに留まることはなかった。例えばある雑誌は、主婦に一度に2枚のパンの片面を焼ける網で3枚のパンを効率よく焼く方法を問うパズルを掲載していた。
製造業の現場から始まった労働の合理化は、タイプライターと複写機の発明により、さらに適用範囲が広まっていった。ファイリングシステムや物理的に明白な情報のフローを管理する洗練されたシステムが発展していった。情報に関するワークフローの定式化の範囲が広がりを見せる中で、第二次世界大戦とアポロ計画という2つのイベントがワークフローの飛躍的発展をもたらした。特に数学的な最適化技法の進歩が顕著であった。当時のワークフローの文化的影響は、W・H・ホワイトの『組織の中の人間』などに見て取ることができる。
1980年ごろには、これまでのワークフローの2つの問題が指摘されるようになっていた。
第1にテイラー以来の手法では、人間を一種の自動機械のように概念化していた。人間の自己実現や成長への欲求を考慮すると、従来的な工業的作業スタイルは、人間性の喪失であると同時に人間の可能性を無視しているとして批評された(アブラハム・マズローの自己実現理論がこのような主張の基盤となっている)。
第2の問題は、品質である。ワークフローはどんなにうまく合理的に構築されたとしても、作業条件の変化に対しては、一種の非合理的な慣性と非柔軟性を示すと考えられた。
第1の問題はそれほど重視されなかったものの、品質に関しては分析的意味でも合成的意味でも、TQMからシックス・シグマまで、さらにはビジネスプロセス・リエンジニアリングのより品質的な観点まで様々な運動を通して仕事の性質の変換が行われた (Hammers and Champy, 1991)。品質向上運動の影響下で、ワークフローは多くの精査と最適化の主題となった。ワークフローにおける要求の動的に変化する認識は、クリティカルパスや変化するボトルネックと関連する現象の認識という形で明らかとなった (E. Goldratt, 1996)。
品質管理運動を経て、情報のフローは最初のワークフローの形式を生み出した物質やエネルギーのそれとは根本的に異なることを明らかにした。情報フローの低コスト性と適用性により、ワークフローの高度な合理化は瞬時に達成でき、高度な柔軟性と適用性と反応性をもたせることができると思われた。このような洞察から、情報技術のワークフロー利用は広範囲にわたるようになり、製造業、サービス業、純粋な情報処理などに適用されるようになった。多品種少量生産、ジャストインタイム生産システム、その他の高度に敏捷で適用性のあるワークフローシステムがこの時代の産物である。
21世紀初頭のインターネットバブルの崩壊により、高度なワークフローの概念化に対する不信感が生まれた。今日、様々な人々が、合理的で柔軟で国際化(作業場所の分散)に対応可能で人間の可能性を十分に生かす新たな作業モデルの開発という問題に立ち返っている。その中でも、オープンソースコミュニティで育ってきた、一見して無政府主義的なシステムに対する真剣な考察は重要である。
軍事計画でのワークフローを Concept of Operations (CONOPS) と呼ぶ。
工場でのジョブショップモデルやフローショップモデルで、部品が各種工程を移動していくフローはワークフローの一種である。
保険金請求処理は、情報中心で文書駆動型のワークフローの一例である。
Wikipedia の編集は確率的ワークフローの一例である。
Getting Things Done (GTD) システムは情報を扱う仕事のための個人ワークフロー管理のモデルである。
ワークフロー問題は、ペトリネットのようなグラフ理論に基づく形式化によってモデル化され解析可能である。
オペレーションズリサーチにおけるスケジューリングシステムの計測に使われる諸概念は、ワークフロー全般の計測にも役立つ。例えば、スループット、処理時間、その他の統計情報がある。
情報技術、文書管理システムなどでは、「ワークフロー」という言葉には特別な意味がある。1993年、ワークフロー管理とワークフロー管理システムの相互運用に関する業界団体 Workflow Management Coalition (WfMC) が結成されたが、2019年に解散した。
2000年代初期、バイオインフォマティクスやケモインフォマティクスにおいてワークフローが広く採用され、様々なデータフォーマットと膨大なデータ量を効率的に処理することに貢献している。また、科学的ワークフローのパラダイムは生命科学研究におけるPerlスクリプト利用の伝統にも近いので、科学におけるワークフローの導入は、より構造化された基盤構築への自然な流れといえる。
近年、特に軍事目的で自動エージェントが人間のような役割を演じるような場面を想定した相互主導型ワークフローの概念化が行われている。革新的で適応的で協調的な人間の作業には、Human Interaction Management の技法が必要とされる。
ワークフロープロセスを理解することによってビジネスで得られる最大の利点は、作業経路のスループットが、独自のビジネス属性やルールの個別制御を増大させて潜在的に低効率な部分を減らすようにモデル化される点である。物理的リソースと人的リソースの評価は、作業間のスムーズな変化を形成する可能性やハンドオフポイントの評価の基本である。いくつかのワークフロー改善理論が提案され、既に職場で実施されている。例えば、以下のものがある。
ギャップを埋める方法として、様々な成果を盛り込んだ「ワークフローパターン」が定義され、各種ワークフローエンジンの比較に利用される。
ワークフローは一般に形式的か否かによらず、何らかのフロー図(処理ステップ間の有向フローを示す図)作成技法として説明される。1つの処理ステップやワークフローの構成要素は、基本的には以下の3つのパラメータで定義される。
入力記述: そのステップを実施するのに必須な情報/材料/エネルギー
変換ルール、アルゴリズムなど、そのステップを行う人間や機械(あるいは両者の組合せ)が従う手順
出力記述: そのステップによって生成され次のステップの入力となる情報/材料/エネルギー
各要素は、その前の要素の出力が自身の要素の入力と一致する場合だけ接続可能である。したがって、入出力のデータ型とその意味(意味論)が最も基本的な属性である。アルゴリズムやルールは、ある入力セットからある出力セットへと変換する方法がいくつもあり、しかもそれらの間で正確性や速度に違いがある場合だけ意味をもつ。
構成要素がコンピュータネットワークを経由したWebサービスのような遠隔サービスの場合、QoS や可用性といった属性も考慮する必要がある。
ワークフローから具体的なアプリケーションを構築するワークフローアプリケーションには様々なものがあり、人間と機械(あるいはソフトウェア)が協調してデータの処理を行う。例えば、何らかの購入要求を考えてみれば、様々な部門での承認を経て最終的に購入が行われる。その要求は一種のメッセージとして扱われ、各種の待ち行列に置かれて処理を待つ。ワークフロープロセスは常に変更され更新される。他に影響を与えずに新たな要素を追加することも可能である。
ワークフローアプリケーションの開発には二つの方法がある。一つは、ワークフローモデルを専用言語で設計し、そのモデル内の各タスクを人間やソフトウェアに割り当てる方式である。ワークフロー言語はグラフィカルな記法であることが多いが、一部はテキストまたはXMLベースである。ワークフロー定義に使える言語としては以下のものがある。
ワークフロー記述言語:
Webサービスに基づく実行プロセス定義言語:
もう一つのワークフローアプリケーション定義の方法は、タスク間の関係を抽象化したインタフェースやライブラリを備えたプログラミング言語を使うものである。以下は、そのようなライブラリやインタフェースの例である。
また、ビジネスプロセスモデル用の言語(例えば、Business Process Modeling Notation)をワークフローに使うこともできる。しかし、ビジネスプロセスモデル用言語は抽象度が高く、実装に近い詳細なワークフローを記述するには不十分である。
設計時の意味論的間違いを検出するなど、静的解析のため、ワークフローをペトリネットのような数学的形式を使って形式的に表現することもできる。