本記事の想定読者
以下に当てはまる方に役立つのではないか?と思っています。
- 作成するプルリクがなかなかマージされずに苦労している
- 自分が書いたコードを見直そうと考えているもののなかなか手をつけられていない
- 「全然上記に当てはまらないわ、自分対象者じゃないわ」と思った方
レビューコメントにじっくり向き合う時間がない(のは僕の言い訳でした...)
エンジニアの仕事の中で、プロダクトの品質を高めるための仕事があります。
皆さんお察しの通り、PRレビューです。
我々エンジニアは日々、プロダクト品質向上を目指し、レビューという行為をもってしてコードに向き合っているのではないかと思います。
僕が所属するチームも例外ではなく、僕自身日々多くのレビューコメントを頂いています。
そんなレビューコメントですが、かくいう私は現在新卒一年目ということもあり、他の方よりも知見が少ないこともあったりして、レビューコメントもその分増えるわけです。
正直なところ、レビューがなかなか通らなかったりすることもあります。
その際は、発狂とまではいかないまでも、心の叫びがtimesに飛び交うこともしばしばあったりします。
日々の振り返りのハードルを高めている要素は何か
色々考えてみたのですが、これは紛れもなく自分の怠惰さしか考えられませんでしたw
時間は有限です。
僕たちは限られた時間の中で、よりプロダクトを発展させるために、素早く成長することが求められます。
成長するためには、何が必要か?
PDCAPDCAPDC.....
日々課題を抽出し、仮説を元にアクションを実行し続けるほかありません。
「誰しもがそんなことはわかっているんだ。」
わかっているのですが、人間とは怠惰なもので、一度失われた習慣を取り戻すためには膨大なエネルギーを要します。
最初のうちは振り返りを行っていたのですが、一瞬仕事に追われる期間があってからはその習慣はどこへやら...
気づいたときには、プルリクエストの山は増え、コメントも膨大になっていました...
ここから一つ一つコメントを追っていくのは正直得策じゃないなと思いつつ、時間だけが過ぎ去っていったのです。
本当に、「その都度学習しろよ」という感じですよね...
ちょうどアドベント・カレンダーのネタを探していたところ、そういえばプルリクのコメント抽出して分析したいと思っていたことを思い出し、今にいたります。
人間の怠惰を技術の力で解決していきます。
定期的にレビューコメントを収集、分類し、結果を可視化する
今回作成したものとしては以下です。
repo: https://github.com/fqqk/pull-req-comment-collecter
もしこちらのスクリプトの利用を検討していらっしゃる方は一度踏みとどまって考えてください。こちらは最終手段としてご利用ください。日々の継続的な振り返りをすることを推奨いたします。
スプリント期間内(SUPERSTUDIOでは2週間を1スプリントとしています)で作成した自分のプルリクエストに寄せられたレビューコメントを抽出してスプレットシートに貼り付けるということをしています。
スプシでやりたかった理由としては以下の通りです。
- コメントをカテゴリ分けして自分のコードの特徴を可視化したかった
- 改善の様子を時系列で追っていきたかった
- API触ったことがなかったので興味本位で
また、振り返りを定期的に行えるよう、スプシへの書き込み完了をトリガーとしてslack通知をしています。
実際に取得した結果はこんな感じで、まあなんともシンプルな完成形です。
カテゴリ欄は振り返り時にコメントと向き合って主観的に記入していく感じです。(僕はchatGPTにコメントを流して意図を聞いたりして言葉を補ったりしました。)
(カテゴリの自動分類も機能に追加しようかと思ったのですが、自分の振り返りの機会が失われそうだなと思ってやめました。)
埋めたカテゴリ列をグラフ化するとこんな感じです。
結果から、僕の現状のコードには
- 無駄
- 命名
- 対応漏れ
という特徴が目立つことがわかります。
改善アクションとしては、まずはこのことを認識するところからスタートです。
認識さえしていれば、次の開発時には
「無駄なコードになってないかな?」
「命名迷って仮決めしたけど、そもそもこのメソッドでやりたいことが多すぎやしないか?」
「対応漏れしないようにするために対応することリストでも作るか」
のようなことが頭に浮かぶようになります。
これだけでもだいぶ仕事がうまく進む可能性は高まることが期待できそうです。(認知は非常に大事)
まとめ
振り返りは適切な単位で定期的に行うのがベストです。
これからも振り返りを大切にしつつ、プロダクトをより良くするべく鍛錬していきたいです。
作ったからには、ちゃんと運用して振り返りを継続的にやっていきたいと思います。
読んでいただきありがとうございました!