« Pivotal Trackerの4つのトラッカー | トップページ | Redmineのワークフロー管理機能に分岐やロジックを追加するプラグインredmine_custom_workflows »

2015/07/14

RedmineをBPMツールとして使うアイデア

Redmineを事務処理の申請承認ワークフローシステムとして使うとか、帳票ワークフローシステムとして使うアイデアを考えているうちに、RedmineをBPMツールとして使うアイデアについて考えてみた。
以下、ラフなメモ書き。

【元ネタ】
Redmineは事務処理の申請承認ワークフローに使えるか?: プログラマの思索

Redmineは帳票ワークフローシステムであるというアイデア: プログラマの思索

Redmineにワークフローエンジンとして必要な機能~ワークフローに組織マスタの情報を持たせる: プログラマの思索

akipiiさんはTwitterを使っています: "それだ! @u6k_yu1: チケット管理システム全般に言えることだとは思うけど、中でもRedmineは、ワークフロー制御と項目カスタマイズ性によって完成度が高いと言える/Redmineは帳票ワークフローシステムであるというアイデア http://t.co/OE4oYv6UYC"

akipiiさんはTwitterを使っています: "Web画面で全部できるのが利点かな。RT @haruo31: イシューマネジメントシステムが帳票ワークフローに使えるが、ビジネスロジックが欠落していることと、用語かBTS由来なので結局その辺イジりだしたら全部書き直すことになるかと http://t.co/Y69F58vIBZ"

MHさんはTwitterを使っています: "@kondoumh 帳票とかワークフローは業務システムに付随する機能であってドメインモデルではないんじゃないかな。Redmine は Trac よりも洗練された高機能な ITS であって、Trac と全く異なるドメインモデルを持つとは思えない。"

akipiiさんはTwitterを使っています: "まさに御意。RT @u6k_yu1: 要件ごとにRedmineでどう実現できるか・実現できないかがまとめられていて興味深い。ただやはり、条件分岐を伴うワークフローが弱い。実はBPMプラグインとかあったりして http://t.co/WPVxxoYEIB"

akipiiさんはTwitterを使っています: "日本の組織文化に帳票にこだわりがあるのが一つの理由かも。RT @hidenorigoto: 「Redmineは帳票ワークフローだ」なのか、それとも「管理は帳票ワークフローで表せる」ということなのか。"

akipiiさんはTwitterを使っています: "コミッタは日本で多様な状況に使われるとは想定していなかっただろうな。RT @sugimoto_kei: 興味深いのは、Redmineの帳票ワークフロー的なドメインモデルは対象領域である障害管理や課題管理の領域に、観察可能な形であらかじめ存在したものではないだろうという点です。"

akipiiさんはTwitterを使っています: "組織の成熟度とプロセスは比例する気がするな。RT @sator: Redmineのダメさ加減(ITSとしての話ね!BTSとしてはフツーに優秀だと思う)はわりと世間でも認識されていて、「グループウェア」という名前でいろいろ新作も出てくるのだけど、どれも機能を追加しちゃうのだよねぇ。"

【1】BPMは、普通は、定型業務などの申請承認ワークフローをシステム化するもの、というイメージで捉えている。
その発想を更に進めて、既存の業務フローをBPMツールで全て見える化し、不要なプロセスや業務を削除して、あるべき姿の業務プロセスを定める、というBPRの側面も持つ。

ビジネスプロセス管理 - Wikipedia

Bonita BPM - オープンソースBPMジャパン株式会社

BPR(びーぴーあーる)とは - コトバンク

オープンソースのワークフローエンジンActivitiの感想: プログラマの思索

BonitaBPMを動かしてみた感想~BPMツールに必要な必須機能: プログラマの思索

BPMツールとして必要な機能は何か?
それは、「ワークフローエンジン」を持つことだろう。

ワークフローエンジンとは、Redmineは事務処理の申請承認ワークフローに使えるか?に書いたように、申請承認フローを制御するワークフロー管理機能と、分岐やビジネスロジックなどのビジネスルール機能を持つもの。
例えば、決裁金額によって承認フローを切り替える、とか、稟議・根回し・投票・相談などの特殊なワークフローが相当する。

【2】では、BPMツールの機能はRedmineで実現できるか?
下記で書いたように、簡単な申請承認フローならば、Redmineで実現可能だ。
しかし、幾つかの重要な機能がRedmineには不足している。

Redmineは事務処理の申請承認ワークフローに使えるか?: プログラマの思索

Redmineは帳票ワークフローシステムであるというアイデア: プログラマの思索

個人的には、Redmineに不足していると思う重要な機能は、ワークフローエンジンと組織マスタ管理だろうと思う。

【2-1】Redmineのワークフロー管理機能は、他のITSに比べれば、Web画面上でいくらでも種類を増やせるし、いくらでもステータスを追加できる利点がある。
また、トラッカーごとにカスタムフィールドを紐づけできるので、チケットに足りない項目を増やすこともできる。

このメリットこそが、日本のSIが持つ独自の複雑な開発プロセスを実現できる点につながり、Redmineを使っている状況が多いのだろう。

しかし、BPMのワークフローエンジンはもっと複雑であるのに対し、Redmineのワークフロー管理機能は初歩的すぎる。
他のBPMツールのワークフローエンジンのように、分岐・稟議・根回し・投票・相談・代行申請・代行承認などの機能も実現できなければ、日本企業の申請承認フロー全てに対応できないだろう。

もし、ワークフローエンジンをRedmineが持つとすれば、他のBPMツールのように、GUI画面でワークフローをVBライクに描いて設定できたり、ワークフロー設定情報をXMLでインポートしたりエクスポートできる機能が必要になるだろう。

【2-2】Redmineが他のITSに比べてメリットである点は、ロールによるユーザの操作制御が細かくできるし、ユーザグループによってユーザをカテゴライズする機能があることだ。

例えば、Redmineでは、ロールをいくらでも増やせるし、それぞれのロールごとに、Redmineのデフォルト機能だけでなく、プラグインの機能も操作を制限したり、参照権限しか付与しない、などという設定ができる。

しかし、市販のBPMツールは、組織マスタという人事情報とワークフローエンジンが密接に絡んだ機能を提供している。
大企業になるほど、組織階層は複雑になるし、役職も多いから、そのような状況に耐えれるような組織マスタ管理の機能が必要だ。

組織マスタ管理の機能は、実際の業務に当てはめると正直奥が深い。
イレギュラーな機能がかなり多いのだ。

例えば、大企業では、一人の人が複数の部署に兼務するケースがある。
すると、ログイン時に、どの役職や部署でログインするか、という制御が必要で、その役職や部署に応じた画面遷移や操作の制御が必要になる。

同様に、出張した社員に対し、上長が代わりに代理申請したり、代理承認する機能も業務上は必要だ。
このようなイレギュラーな業務にもシステムとして対応する必要がある。

【2-3】また、正式な組織構造だけでなく、非公式な組織構造を複数個持つ状況もある。
例えば、工場内では正式な役職名ではなく、その工場内だけでしか通用しない非公式な役職を作っていて、その役職に応じた業務があったりする。
特に生産ライン、品質管理の業務で多い。

あるいは、遠方の営業所では、部長以上の上級職がいない時に経費を決裁できるように、非公式な承認フローが必要だったりする。
他にも、グループ会社や海外の子会社の社員が混じっていれば、彼らの人事情報は、親企業の組織構造とは違って、別の小会社の組織情報が必要になったりする。
他に、社内の特別のプロジェクト型組織なども当てはまるだろう。

すなわち、組織情報は一つだけマスタ管理すべきものではなく、非公式な組織構造も別で保持できるようなマスタ管理の機能が必要だ。

さらに、組織情報には変更適用日を持たせるようにしたい。
例えば、4月の期首には、普通の大企業は大幅な人事異動があるが、普通は1ヶ月前には内示が出ていて、人事異動は確定している。
すると、4月1日に組織マスタを全て洗い替える作業を行うと、大企業になるほどデータ移行は1日では終わらない。
そのデータ移行のために、BPMのシステムが1日以上止まってしまうのは、本末転倒だ。
だから、組織情報に変更適用日を持たせて、4月1日に新たな組織情報に切り替わるような仕組みは必須だ。

【3】以上のように、RedmineにBPMツールの機能を実現するには、最低限、ワークフローエンジンと組織マスタ管理は必要だろう。

【3-1】しかしながら、BPMツールが本来のBPRを目指すツールであるならば、「標準ワークフロー基盤」と言うべき機能が必要であると思う。
「標準ワークフロー基盤」とは、事務処理の申請承認フローだけでなく、販売管理や購買管理、生産管理などでワークフロー機能が必要な時に、業務フローの中で申請承認する裏では、BPMツールのワークフローエンジンの機能をバックグラウンドで動作させることだ。

一般に「標準ワークフロー基盤」は、販売管理・購買管理・生産管理などの業務フローのうち、ワークフローの機能だけはBPMツールとSOAPなどのWebサービスでやり取りする方式で実現する場合が多いだろう。
すると、販売管理・購買管理・生産管理などの業務システムで使われる申請承認データは、BPMツールである標準ワークフロー基盤へWeb経由で流れこんで、一括で管理されるようになる。

この利点は、溜まった申請承認データを集計して分析することによって、業務の改善に役立てることができることだ。
ワークフローのどこでボトルネックになっているのか、どの業務やロールが無駄であるのか、という情報が得られるから、それによって、業務を改善するフィードバックが得られるのだ。
これこそが本来のBPRなのだろう。

【3-2】幸いなことに、Redmineは外部接続I/Fの機能が豊富なので、標準ワークフロー基盤として扱うことはできると思う。

例えば、RedmineのREST APIは、チケットを参照・更新できるし、プロジェクトやユーザ情報も取得したり更新もできる。
また、rakeのI/Fを実装すれば、例えば、マスタデータのバッチ処理や一括メール送信など、バッチ処理を実現できる。

すなわち、Redmineの外部接続I/Fを流用すれば、外部の業務システムからのデータとのやり取りは簡単に実現可能だろうと思う。

Redmineの裏の顔~開発基盤としてのRedmine: プログラマの思索

Redmineの外部接続、データ移行の機能: プログラマの思索

すると、標準ワークフロー基盤の役割を担うRedmineは、事実上、企業内のワークフロー基盤として、ワークフローに関するデータが一括集約され、そのデータを集計する機能をカスタマイズすれば、BPMツールとしてかなりいい線で製品化できるのではないか。

【4】Redmineについてこんなことを夢想していると、Redmineというツールは面白いなあと思う。
以前の僕は、Redmineはチケット駆動開発を実践することでアジャイル開発を実践できると考えていた。

他に、PMBOKのEVMやクリティカルパスを実現することで、RedmineはPMBOKで言うPMIS(プロジェクト管理情報システム)になりうると思っていた。

【公開】未発表資料「チケット駆動開発におけるEVMの考え方」 #RxtStudy: プログラマの思索

RedmineにおけるEVMの考え方: プログラマの思索

RedmineプラグインRodmapsにEVMの機能を追加する: プログラマの思索

チケット駆動開発にPMBOKの概念を導入してみる: プログラマの思索

RedmineのガントチャートはMS ProjectのWeb版になりうるか?: プログラマの思索

さらに、Redmineをヘルプデスク管理として使うことで、CRMの代替にもなりうるのでは、と考えていた。

第8回勉強会の感想~RedmineはCRMや情報系システムにも適用できる #RxTStudy: プログラマの思索

RedmineはCRMソフトとして使えるか?Part2~RedmineをCRMソフトとして使うためのプラグイン: プログラマの思索

そして、Redmineを申請承認フローや帳票ワークフローシステムとして使えるならば、BPMツールを実現することもできるだろう。

そんなことを考えると、たった一つのオープンソースのツールに過ぎないRedmineがこれほどまでの可能性を秘めているツールであることに気づいて、ワクワクしてくる。

|

« Pivotal Trackerの4つのトラッカー | トップページ | Redmineのワークフロー管理機能に分岐やロジックを追加するプラグインredmine_custom_workflows »

Redmine」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« Pivotal Trackerの4つのトラッカー | トップページ | Redmineのワークフロー管理機能に分岐やロジックを追加するプラグインredmine_custom_workflows »