無料ブログはココログ

« Redmineチョット入門 - 話題のRedmineの魅力を知ろう- #benkyoenkai | トップページ | OSSを応援してソフトウェアの自由を得よう - 話題のRedmineの魅力を知ろう その2 - #benkyoenkai »

Redmineからワークフローを考える - 人間の可能性を生かすには -

先日のRedmineの紹介を終えてから、そのワークフローの思想を考えてみました。

一般的なワークフロー

Wikipediaによれば、

ワークフロー(英: workflow)は、リソース(資源)を体系的に組織化した反復可能な業務活動のパターンである。

とされていて、障害票や経費伝票などのハンコ欄やの確認日欄などもワークフローを処理する仕組みの一例と言えると思います。

ワークフローを表す場合によく使われるのは、状態遷移図のようにある条件によって状態が変わるモデルです。ワークフローのモデルは作業の分析や自動化にも用いられますが、例えば「リーダの確認によって完了状態になる」のように、作業の進め方のルールをホワイトリスト的に示したものでもあります。

たとえばTracでは、TICKET_MODIFY権限を持つユーザがacceptすると担当をユーザにして、状態をacceptedにする場合は、以下のように書く様です(Tracプロジェクトのサンプルより引用)。

accept = new,accepted -> accepted
accept.permissions = TICKET_MODIFY
accept.operations = set_owner_to_self

このような記述でルールを追加していきます。

Redmineのワークフロー

これに対してRedmineのワークフローは状態遷移表の様に、ロールとチケットの種別毎にステータス間の遷移を許すかどうかをマトリクスで設定します。

 

2_1_4

 

Redmineはブラウザからワークフローを設定できて便利です。しかしTracのようにルールを追加していく場合は、全体が見渡せないので、かえって不便です。

これは実装の都合のようにも思えますが、実は設計思想が違うのではないかと思いました。つまり、ほとんどの遷移は許すものの「リーダ以外が完了状態にする事は許さない」のように、いわばブラックリスト的な設定を容易にしているのではないかと思います。

人間の可能性を生かすには

さて、前述のWikipediaには、このような事も書かれています。

21世紀初頭のインターネットバブルの崩壊により、高度なワークフローの概念化に対する不信感が生まれた。今日、様々な人々が、合理的で柔軟で国際化(作業場所の分散)に対応可能で人間の可能性を十分に生かす新たな作業モデルの開発という問題に立ち返っている。その中でも、オープンソースコミュニティで育ってきた、一見して無政府主義的なシステムに対する真剣な考察は重要である。

Redmineのワークフローはそのドメインのモデルとして、基本は自由でありながら人間がミスを犯しそうな場合には制約を与える方法をとったのではないかと思います。

人間の可能性を生かすには、サーバントリーダーシップ(アジャイル開発への壁は価値観の壁)のように、ルールによる管理から最大限の能力を発揮できるような支援への発想の転換が必要なのだと思います。Redmineのワークフローには、そのような抽象度の高いドメインモデルが隠れているのかも知れません。

このエントリーをはてなブックマークに追加


« Redmineチョット入門 - 話題のRedmineの魅力を知ろう- #benkyoenkai | トップページ | OSSを応援してソフトウェアの自由を得よう - 話題のRedmineの魅力を知ろう その2 - #benkyoenkai »

Redmine」カテゴリの記事

私のアジャイル」カテゴリの記事

コメント

コメントを書く

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

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

« Redmineチョット入門 - 話題のRedmineの魅力を知ろう- #benkyoenkai | トップページ | OSSを応援してソフトウェアの自由を得よう - 話題のRedmineの魅力を知ろう その2 - #benkyoenkai »