« RedmineのGitリポジトリはmirrorオプションで同期するメモ | トップページ | Redmineを会議室予約システムにしてしまうredmine_meeting_room_calendarプラグイン »

2016/06/17

プロセスフロー図をRedmineチケットで表現するアイデア~Lychee Association Chartで実現できるか

@u6k_yu1さんのつぶやきから、プロセスフロー図をRedmineチケットで表現するアイデアを得たのでメモ。
以下は、まとまりのないメモ書き。

【参考1】
PFD(プロセスフローダイアグラム)で開発プロセスを設計する: プログラマの思索

PFDによる開発プロセスのモデリング - 千里霧中

Association Chart | Lychee Redmine

プロセスフロー図(PFD)作成アドインについて


【参考2】
u6k_yu1さんのツイート: "ゴールの成果物から逆順に作業・成果物を算出して、プロセスフロー図を作成する。 →図の作業を親チケット、成果物を子チケットとしてRedmineチケットを発行する。 →成果物とそれを必要とする作業にチケット関連を設定する。 →成果物に成果物定義をなるべく細かく書く。 →"

u6k_yu1さんのツイート: "@u6k_yu1 →動かせないマイルストーンを起点に、各作業の期間を設定する。 という手順で、作業チケット、成果物チケットを発行している。難点は、 ・期間設定をガントチャートで直接操作したいけど、プラグインが必要。 ・Redmineでプロセスフロー図を直接描きたい。"

u6k_yu1さんのツイート: "@u6k_yu1 うーん、やはりプロセスフロー図の作業、成果物とRedmineチケットを直接関連付けたいなぁ。"

akipiiさんのツイート: "@u6k_yu1 Lychee Association Chartが近いかな。プロセスフロー図は書けないけど。Graphvizを使ってスクリプトにするか。"

【1】PFD(プロセスフローダイヤグラム)はXDDP提唱者の清水吉男さんが編み出したもので、開発プロセスを一瞥するのにすごく良い。
プロセスと成果物を紐付けて、プロジェクトの開始から終了まで、一連の作業を図示できる。

たとえば、複数の成果物(例:テーブル設計書、画面設計書)がなければ、プログラミングできない、とか、一連の作業のボトルネックを把握するのに役立つ。
あるいは、結合テスト前までに、検証用環境を構築しておく必要があるとか、検証用環境を構築するために事前にパッケージ製品を購入して事前に検証しておく作業が必要とか、色んな作業をあぶり出すのに使う。

しかし、普通の案件では、WBSを作成して、それで終わりという所が多い。
スケジュール管理はWBSを洗い出したら終わりという気はしない。
むしろ、プロセスと成果物の一連のイメージがWBSでは湧きづらい。
だから、WBSだけ見ても、何が遅れて問題になっているのか分かりにくい。

WBSという無味乾燥なExcelの表形式の内容を、もっとビジュアルに表現して、何がボトルネックになりやすいか、をイメージしたいのだ。

【2】Redmineでは、WBSをチケットに置き換えることで、階層化されたガントチャートを自動表示できる。
つまり、WBSをチケットで一度表現してしまえば、ガントチャートだけでなく、色んなビューで表現できる可能性がRedmineにはある。
実際、WBSがチケットで一度登録できれば、EVMやリソースヒストグラム、PERT図でも表現することは理論上可能だ。

その発想をPFDにも適用して、Redmine上でPFDを表現できないか?

【3】たぶん、PFDのイメージに近いプラグインは有償ではあるが、Lychee Association Chartが近いだろうと思う。

Lychee Association Chartでは、チケットの親子関係や先行・後続の関連チケットを1枚の図に表してくれる。
つまり、PFDにおけるプロセスの先行・後続関係は、Redmineチケットの先行・後続関係に対応付けできる。

また、Lychee Association Chartでは、チケットとリビジョンを紐付けた関係も図示してくれる。
つまり、チケットにコミットされたソースやドキュメントが自動で紐づくので、チケットを成果物に対応付ければ良い。

すなわち、PFDにおけるプロセスの流れは、Redmine上で、チケットの先行後続関係、プロセスと成果物の関係は親子チケットと構成管理ツール連携で実現できるはずだ。

【3-1】Lychee Association Chartを使っている事例を読むと、作業と成果物の漏れがないか、点検するのに使っているようだ。

住友電装株式会社様における業務プロセスの見える化 | Lychee Redmine

もし、PFDがRedmineチケットで実現できるならば、計画したプロセス(=チケット)に対して、実績としての成果物(=SCMリビジョン)が紐付いていなければ、成果物が作られていないか、成果物の完了報告が漏れていることが考えられる。
そうであれば、品質保証部のチェックが入るまでに、Lychee Association Chartで出力した図を元に開発チーム自身でチェックできるし、そうすることで成果物の漏れを無くしたり、品質向上に役立つ可能性がある。

つまり、PFDのメリットである「開発プロセスを設計する」「設計された開発プロセスを検証する」という発想をRedmine上で実現しているわけだ。

【4】しかし、PFDをRedmineチケットで実現する場合、生のRedmineの機能では操作しづらいだろう。

チケットの先行後続関係、チケットの親子関係が複数レイヤになった場合、チケット一覧画面で、親チケットの番号を入力するとか、先行するチケットの番号を入力するなどの操作は非常に面倒だろう。
できれば、ガントチャート画面上でチケットの先行後続関係を簡単に操作したい。

Lychee Association Chartならば、操作方法についてはいくらか解決できるだろう。

【4-1】しかし、さらに、PFDを階層化したい場合、Redmine上で上記のやり方を一貫して行えるか?

たとえば、大規模受託開発案件の場合、複数のサブシステム単位に設計書が必要だし、他のサブシステムの設計書ができてから自分たちのサブシステムの設計書が作れる、というような依存関係もあるだろう。
あるいは、1個の画面を作るために、複数の成果物が必要だったり、その成果物を階層化したい時もあるかもしれない。

すると、PFDで表すプロセスフローは非常に複雑になるだろう。
チケットの枚数もかなり多くなるし、それらチケットを手作業で関連付ける事自体がかなりの手間だ。
また、先行後続で関連付けられたチケットを階層化する場合の運用ルールや考え方も事前に決めておく必要があるだろう。

たとえば、先行後続関係は親チケット同士に限る、とか、成果物チケットは必ず最下層の子チケットに配置する、などの運用ルールが必要になるだろう。
たぶん、チケットの枚数は数百~数千枚程度まで膨れ上がるかもしれない。
その場合に、PFDで表した数百枚、数千枚のチケットをRedmine上でそもそも保守できるのか、という疑問もある。
Lychee Association Chartを使ったとしても、PFDを実際に使ったノウハウがなければ、きれいに運用するのは難しいのかもしれない。

【4-2】とは言え、PFDをRedmineチケットで表現するアイデアは、色んな可能性を秘めていると思う。

プロセスと成果物の一連の関係をチケットで表現してしまえば、ガントチャートで進捗管理できるし、リソースヒストグラムでメンバーの作業負荷をチェックできるし、EVMでプロジェクトの採算や完了時点の最終コストを予測することもできる。
また、プロセスと成果物の関係は本来、PERT図で表現できるものだから、XDDPのプロセスフローダイアグラム(PFD)に置き換えることは理論上簡単なはずだ。

つまり、チケット集計による様々なビューを実現することによって、プロジェクトリーダーは、案件の状況を色んな角度から分析できるはず。

特に、日本ではXDDPの手法は一部でよく知られており、組込みソフトウェア開発における派生開発で既に実績もかなりある。
また、Redmineは元来、複数プロジェクト機能のおかげで派生開発の進捗管理もしやすい。
つまり、複数の製品開発(ソフトウェアプロダクトライン)や製品の派生開発のプロジェクト管理は、元々、Redmineに向いている部分がある。

したがって、そのXDDPの手法の一つであるPFDをRedmine上で実現できれば、成果物の漏れを無くすように開発プロセスの品質を強化できるし、派生開発のプロジェクト管理をより楽にできるように運用できる可能性があるはず。

色々考えてみる。

|

« RedmineのGitリポジトリはmirrorオプションで同期するメモ | トップページ | Redmineを会議室予約システムにしてしまうredmine_meeting_room_calendarプラグイン »

Redmine」カテゴリの記事

ソフトウェア工学」カテゴリの記事

プロジェクトマネジメント」カテゴリの記事

コメント

コメントを書く



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


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



« RedmineのGitリポジトリはmirrorオプションで同期するメモ | トップページ | Redmineを会議室予約システムにしてしまうredmine_meeting_room_calendarプラグイン »