BPMとワークフローの違い
BPMというとよくワークフローとどう違うのですかと質問されます。今までは、まあ同じようなものですよと答えていました。ASPとSaaSの違いを聞かれたときも同じようにしていました。ただ、よく考えていくとどうもそれではまずいように思え、そこのところをきちんと整理しておく必要があるのではないかと考えたのです。
@ITに日本BPM協会の宇野澤さんが書いた「5分で絶対わかるBPMS」には、BPMSの機能として次の9つを挙げています。
このなかでワークフローという機能が出てきますが、簡単にいうとこの機能だけがワークフローにあって、それ以外の機能をもったものがBPMSであるとも言えます。
ただし、そうみるとBPMSがたくさんの機能を持っているように見えますが、必ずしも全部なくてはいけないかというとそうではありません。使う機能には段階があります。
最初に業務プロセスを作って動かすには、BPM実行エンジンとワークフロー機能だけあれば最低限のことはできます。
プロセスモデラー、シミュレーション機能、組織モデラーといったモデリング機能については、プロセスを最適化したり、プロセス変更をしたりする場合に用いられますので、ToBeモデルを書く場合に必要になります。
また、プロセスモニタリング機能はきちんとプロセスが動いてからの話でパフォーマンスなどを測定し改善につなげるわけです。ですからこれはもう少しあとに使う機能になります。そのほか、ビジネスルール管理は別のソフトがあったり、コメントしておくくらいで済んでしまう場合もあります。ソフトウエア開発はそのままフレームワークを使うだけでいいものがありますので、新たに開発はあまりしない方がいいと思います。
ワークフローとの違いの話に戻ると機能の違いというよりその形態の違いが大きいのではないかと考えています。
どういうことかと言うと、両者とも“単位業務処理”という箱をつないでフローにするという基本部分は同じですが、この箱の粒度が違うのではないでしょうか。
すなわち、従来のワークフローと呼ばれた業務アプリケーションはこの粒度が小さいものが多かったように思います。書類作成とか確認とか承認といったようなアクションレベルをつないでフローを作っているように思います。ですから比較的短いプロセス、例えば申請業務や書類の回覧といったものに適用されています。
ところが、BPMSはそうしたアクションレベルのものもありますが、それよりも粒度の大きいアクティビティのレベルを箱にしています。さらにもっと上の階層であるサービスや別のプロセスそのものをも対象にしています。
すこし乱暴かもしれませんが、本技法でいうミクロフローがいわゆる従来型ワークフローでマクロワークフローがBPMということかもしれません。
また、ワークフローは人や組織を意識しますが、BPMSはあまり意識しません。ここのところも違いがあるように思えるのです。(ここは誤解されそうですから後の作法で説明します)
ですから、SOAやSaaSといった概念にフィットするものとしてBPMSが評価されているのではないでしょうか。ここがBPMSとワークフローの大きな違いであると考えています。
単にフローを作るだけのワークフロー製品から業務プロセス、業務アプリケーションを構築する基盤としてのBPMSというような位置付けなのです。
先日のIBMのカンファレンスでも“ワークフローからBPA”というような言い方をされていました。BPAというのはBusiness Process Automationということなので自動化ということがワークフローとの違いであるといった感じで話していました。
ただ、自動化とひと言で言われても、手作業をIT化するのも自動化だし、プロセス全体を自動制御するのも自動化ですから、ちゃんと定義し、使い方を気をつけた方がいいと思います。ですから自動化というよりコントロール&オペレーションの概念が反映されてきているのがBPMだといった方がよさそうだと思っています。