VisasQ Dev Blog

ビザスク開発ブログ

チームのリファクタリングを促進した話

アドバイザー/lite開発のたつかわです。

今回は昨年の9月頃からの取り組みにより所属チームのリファクタリングタスクの消化率を改善することができたのでその内容を記事にしたいと思います。

リファクタリングDay

昨年の8月までは隔週ごとに「リファクタリングDay」という日を1日設けて、その日は全日リファクタリングタスクのみに時間を充てていました。 この方法は一見良さそうだったのですが以下問題点がありタスクがなかなか消化できていませんでした。

  • 緊急のタスクが入った場合はそちらが優先されてしまう。つまり、メンバーによっては「リファクタリングDay」を行わないことがある。
  • 全てのタスクが1日で終わるような軽いタスクではないため、次回に持ち越してしまうことがある。
  • 次回に持ち越した際は前回進捗を思い出しながら対応することになり時間が無駄になってしまう。
  • 1日固定されてモチベーションが上がらない。

以上の問題を改善するために「リファクタリングDay」を廃止して昨年9月から次節で紹介する「Tech Challenge」という取り組みを試験的に始めました。

Tech Challengeとは

「Tech Challenge」とは隔週ごとにチームで1時間ほど時間をとって、以下の中から2週間で各メンバーが取り組んだ内容について発表する会です。「リファクタリングDay」のように1日に固定にするよりも各メンバーに対応する時期、時間は任せた方が良いのではないかという意見からこの取り組みを始めました。

リファクタリングDay」と異なる点としてまず1点目は、隔週ごとにメンバー全員に取り組んだ内容を発表していただく点です。ここで重要なことは進捗の有無にかかわらず全員に発表していただく点です。半ば強制的に何か発表しなければならないので各メンバーは発表日までにいずれかは対応しないとならないという気持ちが芽生えタスク消化促進につながるようにしています。

2点目としてはモチベーション低下を回避するためにリファクタリング以外の要素も含めた点です。他の選択肢を設けることによってリファクタリングを行わなくてはならないといったマイナスイメージを払拭しています。

3点目としてはタスクを各メンバーに起票していただく点です。日々の開発の中で見つけたタスクはとりあえず起票していただき、隔週ごとに対応可否の検討や担当者の割り振りを行ないました。これにより、メンバー全員がタスクを持っていないという状況を作り出さないようにしました。

Tech Challengeを実施した結果

リファクタリングタスクの内容に大小はありますが、9月〜4月の8ヶ月間でおおよそ120程完了しました(チームメンバーは7人)。一方で「リファクタリングDay」を行っていた頃は消化されるタスクが1ヶ月あたり5つほどだったので大きく状況が改善されました。試験的に始めた「Tech Challenge」でしたが無事タスク消化の改善につながって良かったと思います。

結果的に各メンバーの比重としてはリファクタリングに向きがちでしたが、それ以外の外部発信した内容や自己学習した内容を発表していただくことにより技術共有の良い場ともなりました。

また、「Tech Challenge」を行なってみて発表時間が1時間かからず短くなってしまうことが幾度かありましたが、その際は余った時間でちょっとした打ち合わせなどにも使用できることに気づきました。リモートワークが多くなりチームで交流する機会が減っていたことを補うといった点でこちらは思わぬ収穫でした。

最後に

リファクタリングタスクは後回しにしてスタックされがちですが、チーム全体で工夫して対応していくことにより状況は改善されると思います。 各々のチームに合った方法を見つけて実行に移すことが重要だと思いますが、もし今回の取り組みが読者の皆様の参考になれば幸いです。