patorashのブログ

方向性はまだない

最近取り組んできたことと新たな課題について

4月のまとめ的な感じになるけれど。

予備知識

現在の開発体制が、私がリーダー、後輩氏、パートナーさんの3名体制である。

  • 私はRails歴9年で今のプロジェクトを最初から担当している。40歳とはいえ新米リーダーである。
  • 後輩氏は4月より新卒入社3年目に入ったくらいで、経験はまだ浅いしプロジェクト歴は半年過ぎたくらい。
  • パートナーさんは今年2月くらいから開発に参加。他言語の経験はあったがRubyRailsは初めて。

前はこういうことに取り組んでいた。

patorash.hatenablog.com

現在

チケットの粒度を私側で調整して、それを割り振るようにしていたおかげで、チームメンバーが何をしたらいいかについてはハマりにくくなったので、その点は良かった。事前に仕様を考えて実装前にチェックするので、妙な手戻りも起きにくい。そのため、実装速度も上がってきた。これはいい成果である。

そして、最近のことでいうと、よく言われる

  • 緊急で重要な仕事
  • 緊急ではないが重要な仕事
  • 緊急で重要ではない仕事
  • 緊急でも重要でもない仕事

についての話をして、端から見たら「やらないとなー」とは思うけれど急ぎではないからと放置され続けてしまうようなチケット(つまり緊急ではないが重要な仕事)についても、仕事の具合を見つつ、徐々に取り組んでください。と伝え、最近はそれをやってもらえるようにもなってきた。これもいい成果である。まぁ具体的には、

  • 仕様変更が起きているためにバージョンを固定化しているgemのバージョンアップ
  • Rubyのバージョンアップ
  • Railsのバージョンアップ
  • JSライブラリのバージョンアップ
  • ミドルウェアのバージョンアップ
  • 修正範囲は小さいけれど大量にやらなければならないリファクタリング

というところ。

また、PR*1をチェックする場合は私がレビューする前に後輩氏とパートナー氏の間で先に見てもらうというルールにしていて、それが通ったら私がチェックしてマージする、というふうにしている。

まぁやってほしいところをしてもらえるようになって、成果も出ているので、チームとしては成長していると思う。

ただちょっと、自分の中で色々と課題が出てきている。

課題

コードレビューで一日が終わる

さきほど上げた、修正範囲は小さいけれど大量にやらなければならないリファクタリングに取り組んでもらっている。まぁでも課題自体は二人に任せており、配分もそれぞれで話し合って担当範囲を決めてくださいってことにもしていて、子チケットは二人が作ってくれているので、その点も非常に助かっている…のだが、修正範囲が小さいであるが故に修正もすぐに終わり、PRがバンバン飛んでくる。

そんなPRなので、レビュー後の指摘の修正もそこそこすぐに終わり、再レビューが来る。再レビューを終えてマージする頃には次のPRが来る…という感じで、気づいたら自分のタスクがほぼ進まないまま、1日が終わっている。PRとPRの合間に自分のことをやるのでスイッチングコストもかかる。

作業者にとっては、ストーリーポイントが1のタスクをバンバンこなしている感じになるので、リズムに乗れるし、仕事やってる感もでてくると思う(単純なことなので退屈だなーと思いながら、かもしれないところはある)。しかしレビュワーにとってはキューがどんどん溜まっていくのでキツイ。レビューが遅くなると同じミスを繰り返しているPRが飛んできたりもするので、早めにレスポンスしたほうがいいなとも思って優先度を上げてレビューした結果、ミスも減って良かった…のだが更にPRが来る速度が上がる。

やってほしいと言っているのも私自身なので、「これは仕方ないのか…!?」と思う反面、レビューで終わる日が続くとちょっと精神的に、くる。

解決法?

ちょうどこの前、上司である id:tech-kazuhisa との1on1があったので、その話をしたところ、よいディスカッションができた。

  • スプリントプランニングでそれらのタスクの数を調整しておく
  • 後輩氏とパートナーさんでお互いにレビューしあってマージできるレベルまで育てる

前者は、そもそもうちのチームは「なんちゃってスクラム」みたいになっていて、スプリントプランニングなどを殆どしないで目に付いたバックログを倒していくような運用をしているので、そろそろちゃんとスプリントプランニングしたほうがいいかもなぁという気持ちになった。そこである程度小さいPRの流量を調整しておけば、確かに作業時間を捻出しつつ、PRも取り込んでいけそう。

後者は、まだ難しい…。これはモブ設計ならぬモブレビューみたいなことをしたほうがいいのかな?とか、RubyRailsの本の読書会などをしてRubyらしい視点でのレビューができるように培っていくことが必要かなとも思うので、週に1時間でも何かしらの読書会をしていくべきか…という気持ちになった。 ただ、レビュー時に気を付ける点は明文化できそうである。PRテンプレートに私なりの気を付けていること等を書いておくというのがいいかなと考えたので、GW開けたらそれをやっておきたい。

*1:プルリクエストのこと