Redmineのプラグイン「redmine_reply_button」の解説です。
このプラグインにより、最終更新者を担当者として編集を開始できる「返答」ボタンを追加することができます。これによりチケット上でのやり取りが一段とやりやすくなると思います!
ダウンロードはこちらからどうぞ。
以降では、チケット駆動開発の特徴の一つである「チケット上でのやり取り」について簡単におさらいをしてから、具体的なプラグインの設定方法の解説を行っていきます。
是非、最後までご覧ください。
チケット駆動開発の特徴の一つに「チケット上でやり取りを行う」というものがあります。
例えば、コードレビューにおいて、以下のようなやり取りがあったとしましょう。
以下の処理は、なぜ while を使っているのですか?
while (true)
{
var item = items[i] as AppointmentItem;
ホントは foreach を使っていたのですが、OutOfMemory が発生して処理に失敗することがあったので、やむなく while を使用しました。
そうだったのですね、了解です。
では、コードにその旨をコメントしておいてもらってもいいですか?
承知しました。
以下のように追記しておいたのでご確認ください。
確認しました。
対応ありがとうございます。
チケット駆動開発においては、このようなやり取りをメールやチャットで行うのではなく、以下のようにチケット上で担当者を切り替えながら実施します。
最初の指摘は、このように指摘チケットとして作成されます。その後、以下のように担当者を切り替えながら、やり取りを進めていきます。(チケット上でのやり取りを使った『チケット駆動』のレビュー作業についてはこちらをご覧ください。)
このようにチケット上で担当者を切り替えながら、やり取りを行うと以下のような利点があります。
このように「チケット上でやり取りを行う」ことで大きな利点が得られるのですが、反面、若干の煩雑さもあります。それの相手に返答する際に、毎回、相手をチケットの担当者に設定しないといけないという点です。小さなプロジェクトではさほど気にならないかもしれませんが、プロジェクトが大きくなり、関係者が何十人といる中から毎回相手を選択するのはかなり面倒でしょう。
そこで、「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 を使うことでレビュー用のチケットの作成がとても簡単に行えるので、是非お試しください!
]]>
Redmineのプラグイン「redmine_date_independent」の解説です。
このプラグインにより「親チケットの値の算出方法」の期日に関する連動設定をプロジェクトやステータスごとに設定することが可能になります。
ダウンロードはこちらからどうぞ。
以降では、期日の連動設定を使い分ける必要性について説明した上で、具体的なプラグインの設定方法を解説していきます。
是非、最後までお付き合いください。
親チケットと子チケットの関係性に注目して整理していきたいと思います。通常、作業を親チケットと子チケットに分けて表現した場合、そこには包含関係があると思いますが、厳密には以下の2種類の分け方ができるでしょう。
WBS方式とToDo方式の違いを具体例で見てみましょう。
たとえば、新規の開発は「機能仕様」「設計」「実装」「テスト」という4つの工程を踏まなければならないと定められているとします。ここで「Basic認証対応」という新規の案件があったとすると、以下のようなチケットが作られることになるでしょう。
ここで「#1347 Basic認証対応」とそれぞれの「機能仕様」「設計」「実装」「テスト」のチケットの関係はWBS方式になっています。つまり、「テスト」まで終了すれば「Basic認証対応」は完了ですし、「テスト」の期日が伸びてしまうと、「Basic認証対応」の期日も自動的に伸びてしまいます。
では、ここで「機能仕様」の検討中に「実装方法について〇〇部署に確認する必要がある」という意見が上がったため、忘れないよう「#1349 設計」の子チケットとして「#1352 〇〇部署への確認」というチケットを作ったとします。
この場合、「#1349 設計」と「#1352 〇〇部署への確認」の関係はToDo方式となっています。なので、「設計」を完了するまでに「〇〇部署への確認」を行う必要はありますが、「〇〇部署への確認」が完了しても「設計」が完了するわけではありませんし、期日も別のものとなるでしょう。
このように一つの案件の中でも親チケットと子チケットを「連動させたい(=WBS方式)」場合と「連動させたくない(=ToDo方式)」場合が混在することがよくあると思います。しかし、Redmineの設定では「子チケットの値から算出(=連動させたい)」か「子チケットから独立(=連動させたくない)」のどちらか一方を選択する必要があり、この設定はプロジェクトやトラッカーに関わらず、すべてのチケットに一律に適用されます。
つまり、設定で「子チケットの値から算出(=連動させたい)」となっていると、先ほどの「〇〇部署への確認」のような子チケットの追加はできません。逆に、「子チケットから独立(=連動させたくない)」が選択されていると、子チケットの期日の変化に対して、手作業でそれを親チケットに反映する必要が出てきて、煩わしく感じる場面もあるでしょう。
そこで、「redmine_date_independent」の出番というわけです。
これを使えば「親チケットの値の算出方法」をプロジェクトやステータスに応じて柔軟に設定することができるようになります。
以降ではその具体的な設定方法を見ていきましょう。
Redmineのプラグインのフォルダにredmine_date_independentを配置して、DBのマイグレーションを行った後、Redmineを再起動してください。以下のようなコマンドで実行することができます。
$ cd /var/lib/redmine/plugins
$ git clone https://github.com/RedminePower/redmine_date_independent.git
$ bundle exec rake redmine:plugins:migrate NAME=redmine_date_independent RAILS_ENV=production
$ httpd -k restart
インストールが成功すると管理画面に「開始日/期日の独立」という項目が表示されます。ここから「親チケットの値の算出方法」を細かく設定するための設定を追加してください。
「新しい開始日/期日の独立」をクリックすると「開始日/期日の独立」の追加画面を開くことができます。本プラグインでは、全体の設定として「開始日/期日」が「子チケットの値から算出(=連動させたい)」が設定されていることを想定しています。そして、そこに個別に「子チケットから独立(=連動させたくない)」のプロジェクトを追加していく、という形で設定を行っていきます。
各項目の設定が完了したら「作成」をクリックして「開始日/期日の独立」の設定を追加してください。
以上でプラグイン「redmine_date_independent」の解説は終了です。
いかがでしたでしょうか?
機能としてはそこまで複雑ではないのですが、文章で説明するとなると少し長くなってしまいましたね。
チケット駆動開発においては、親チケットと連動させたい場面、させたくない画面、その両方が必ず出てくると思います。しかし、設定がすべてのチケットに一律に適用されるため、安易に変更はできないと断られる。その言い分も十分理解できますが、やっぱりもどかしいですよね。
このプラグインがそんな悩みを抱えた人の一助になれば幸いです!
今回は期日についてのお話でしたが、Redmine Powerでは『子チケットがすべて終了したら、親チケットを終了する』プラグイン(redmine_auto_close)も提供しています。
是非そちらもお試しください!