前略、private issue 使ってみました。あるいはITSの黒魔術とは何か

RedmineのtrunkにPrivate Issueの機能が追加されたとのことなので自分のローカルでデモしてみた。
実際のリリースはv1.2.0が予定されているようだ。

プロジェクトのメンバーは以下。

SIer1
SIer2
Dev1
Dev2
Cust1

顧客1人にSIer(笑)2人、丸投げされた開発会社2人という、なんともきな臭い人数構成にしてみた。
小規模のWFとか、大体どこもこんな感じなのではないだろうか。

Private Issueの権限割り当て

Private Issueに関連する権限割り当ては 管理-ロールと権限 からおこなう。
各ロールごとに設定するのは以下の2点

  1. プライベートチケットを表示するか
  2. チケットをプライベートに設定できるか

表示できるチケットで「すべてのチケットを表示」を選択した場合は、Private Issueであるかどうかに
関わらずすべてのチケットを表示可能になる。
逆に、顧客のユーザーなどPrivate Issueを見せたくないロールに対しては
表示できるチケットを「プライベート以外」に設定することでPrivate Issueの存在を隠蔽することができる。

また、Private Issueを作成する権限は「チケットトラッキング」を変更することで付与することができる。

Private Issueを作成する

Private Issueの作成はチケットの作成時に右上に表示される「プライベート」のチェック欄をONにするだけだ。
作成されたチケットはタイトルの前に「プライベート」と表示されることで他のチケットと区別することができる。

なお、現段階ではチケット一覧画面でプライベートであることがわかるような表示、フィルタ条件は見つからなかった。

Private Issueの表示を確認する

まず、sier1でPrivate Issueと普通のチケットを作成した。図で見ると1〜2のチケットがプライベートなのだが、
sier1には表示権限があるので全件表示されている。

同じチケット一覧をcust(顧客)ユーザーで表示したところ。Private Issueは表示ないが、
チケットの件数を見ると5件存在することがわかる。

同じくcustユーザーでプロジェクト概要を表示したところ。こちらではPrivate Issueの件数がカウントされないように
なっている。また、ロードマップやガントチャートでもPrivate Issueが表示されないように配慮されていた。

Private IssueはITSの黒魔術なのか?

twitterでもつぶやいたが、僕はこのPrivate Issue機能には懐疑的だ。

@kanu_ さんに教えていただいた通り trac にも同様の機能を実現するプラグインが存在するのだが、
名前からして黒魔術扱いになっている。


BlackMagicTicketTweaksPlugin

僕がこの機能に感じる違和感は概ね以下のようになる

  1. 情報の共有のために利用するITSで、「情報を隠す」機能の存在はITSの本質と矛盾しているのではないか
  2. そもそも隠したい情報が存在する時点で、そのプロジェクトの健全性を疑うべきではないのか
  3. この機能を実装することで誰が得をするのかよく分からない

今回は見積もりの原価など、顧客には見せられない情報を想定してPrivate Issueを作成した。
このようなケースならばPrivate Issueも利用する意味があるのかもしれないが、見積もり検討など
実際のプロジェクトで何回も行われるようなものではない(保守運用のプロジェクトならばそういったケースもある)。

この機能を実装することで、例えばプラグインの設計が複雑になるようならば無いほうがいいのではないかと思う。
このブログを見てくれている人はどう思うだろうか?ぜひ、様々な意見を聞かせてほしい。

補足

ちなみにRedmineからフォークしたChiliprojectでもPrivate Issueを実装するかどうか議論が盛り上がっているが、
現段階ではRedmineの機能をそのまま取り込むのではなく、権限システムの設計から見なおそうという慎重な姿勢をとっている。

https://www.chiliproject.org/issues/189