redmine_reply_button プラグイン 解説

はじめに
Redmineのプラグイン「redmine_reply_button」の解説です。
このプラグインにより、最終更新者を担当者として編集を開始できる「返答」ボタンを追加することができます。これによりチケット上でのやり取りが一段とやりやすくなると思います!

ダウンロードはこちらからどうぞ。
以降では、チケット駆動開発の特徴の一つである「チケット上でのやり取り」について簡単におさらいをしてから、具体的なプラグインの設定方法の解説を行っていきます。
是非、最後までご覧ください。
やり取りはメールではなくチケットで
チケット駆動開発の特徴の一つに「チケット上でやり取りを行う」というものがあります。
例えば、コードレビューにおいて、以下のようなやり取りがあったとしましょう。

以下の処理は、なぜ while を使っているのですか?
while (true)
{
var item = items[i] as AppointmentItem;

ホントは foreach を使っていたのですが、OutOfMemory が発生して処理に失敗することがあったので、やむなく while を使用しました。

そうだったのですね、了解です。
では、コードにその旨をコメントしておいてもらってもいいですか?

承知しました。
以下のように追記しておいたのでご確認ください。


確認しました。
対応ありがとうございます。
チケット駆動開発においては、このようなやり取りをメールやチャットで行うのではなく、以下のようにチケット上で担当者を切り替えながら実施します。

最初の指摘は、このように指摘チケットとして作成されます。その後、以下のように担当者を切り替えながら、やり取りを進めていきます。(チケット上でのやり取りを使った『チケット駆動』のレビュー作業についてはこちらをご覧ください。)

このようにチケット上で担当者を切り替えながら、やり取りを行うと以下のような利点があります。
- 誰がボールを持っているか明確
- チケットの担当者やステータスを確認すれば、そのやり取りが現在「誰で止まっているのか?」ということが一目でわかります。自分の未完了のチケットとなるのでユーザにとっても意識しやすいですし、朝会などで別途ピックアップすることも可能です。またチケットなのでやり取り全体の期限や、相手に回答してほしい期日を設けることも可能です。
- 表現能力が高い
- 一つ一つのやり取りをチケットのコメントで行うことで、テキストだけでなく、表や画像、Gifアニメ、外部サイトへのリンクなどを使用でき、非常に自由度が高く柔軟な表現が可能です。また、Redmineのコメント特有の利点としては、他のチケットへのリンクやバージョン管理システムと連動による成果物との紐づけが容易である点も挙げられるでしょう。
- 情報がすべてチケットに記録される
- 議論に参加した人や発言の内容を含め、結論に至るまでのすべてのやり取りの過程がチケットに記録されます。これによりメールやチャットで行った場合に比べて、やり取りが埋もれてしまうということがありません。また、これらの情報はチケットを参照できるメンバーであれば、誰でも確認することができます。そのため、共有や振り返りもスムーズに行うことができるでしょう。
プラグイン「redmine_reply_button」の強み
このように「チケット上でやり取りを行う」ことで大きな利点が得られるのですが、反面、若干の煩雑さもあります。それの相手に返答する際に、毎回、相手をチケットの担当者に設定しないといけないという点です。小さなプロジェクトではさほど気にならないかもしれませんが、プロジェクトが大きくなり、関係者が何十人といる中から毎回相手を選択するのはかなり面倒でしょう。

そこで、「redmine_reply_button」の出番というわけです。
これを使えば、担当者を相手に変更した状態でチケットの編集を開始できる「返答」ボタンが追加されるようになります。これにより一覧から相手を選ぶ必要はなくなり、手間を減らせるというわけです。
以降ではその具体的な設定方法を見ていきましょう。
やりかた
プラグインのインストール
Redmineのプラグインのフォルダにredmine_reply_buttonを配置して、Redmineを再起動してください。以下のようなコマンドで実行することができます。
$ cd /var/lib/redmine/plugins
$ git clone https://github.com/RedminePower/redmine_reply_button.git
$ httpd -k restart
設定の方法
インストールが成功するとプロジェクトの設定画面の [プロジェクト]-[モジュール] の項目に「Reply button」のチェックが表示されるようになります。「返答」ボタンを有効にしたい場合、チェックを入れてください。

これによりチケットのページに「返答」ボタンが表示されるようになります。「返答」ボタンからチケットの編集を開始すると、「最終更新者」が「担当者」に設定された状態で編集を開始することができます。

さいごに
以上でプラグイン「redmine_reply_button」の解説は終了です。
いかがでしたでしょうか?
ちょっと言葉だけだとイメージが付きにくいかもしれないので、導入の手順も簡単ですし、是非お試しください。
また、この「チケット上でのやり取り」を基本とした Redmine Studio と連携することで実施する『チケット駆動』のレビュー作業についても解説を行っています。 Redmine Studio を使うことでレビュー用のチケットの作成がとても簡単に行えるので、是非お試しください!