目的
スクラムで開発をやっています。
チームの前回スプリントレトロスペクティブで以下の二つのアクションをすることに決めました。
- PRはできるだけ細かく作成する
- PRが修正とかで長期化したらペアプロする
決めたら、振り返らないといけません。
ということで、集計しました。
確認方法
それぞれこう考えてみました。
- PRはできるだけ細かく作成する → 各PRの変更ファイル数、行数の傾向
- PRが長期化したらペアプロ → PRクローズまでの時間
GitStats というツールもありましたが、今回求めている情報は取得できませんでした。
仕方がないので、以下の手順を取りました。
- DBに欲しい情報を格納するスキーマを設定
- スクリプトでAPIを叩いて、必要な情報を取得し、DBに格納
- DBからSQLで欲しい情報を取得
そのために実際に作ったスクリプトは以下です。
ひとまず必要なPRの作成日時、マージ日時、変更ファイル数を保存するようにしました。
時間がなかったので、結構雑です。
今後も使う場合は、ちょっと改善が必要です。
結果
前回スプリントと今回スプリントで以下のような結果になりました。
測定項目 | 前回 | 今回 |
---|---|---|
変更ファイル数の平均 | 6.1 | 6.1 |
PR数 | 16 | 38 |
クローズまでの平均時間 | 5日と14時間 | 2日と18時間 |
変更ファイル数は変わっていませんでしたが(変わらないのもなんかすごいですが)、PR数が前回の倍以上になっていました。
多少なりともPRを複数に分けて作成することが意識できた結果と言えるかもしれません。
クローズまでの平均時間は、大きく短くなりました。ただし、前回スプリントはゴールデンウィークが含まれているため、そのまま受け取っていいか微妙なところです。
結果だけから見ると、よくなったと言えなくもないが、断言はできないといったところですね。
さらに手間をかければ、より詳細に分析できますが、今回はここまででタイムアップでした。
今後、改善がないようであれば、今回のスクリプトを元に、もっとちゃんと書き直してみたいところです。
最後に
この手のツールって需要ありそうな気がするんですが、GitStats
以外に見つけられなかったのが意外でした。
他にご存知の方は教えてほしいです。見逃してるだけかも、という気がするので。