この記事は WHITEPLUS Advent Calendar 2021 の3日目の記事です。
はじめに
こんにちは。株式会社ホワイトプラス、エンジニアの @d_tanaka_g です。
私の所属する開発チームでは、毎週火曜 13:00〜19:00の間を
「リファクタリングタイム」としています。
- レガシーコードの撲滅
- チーム運営の仕組み改善
- メンバーのスキルアップ
などなど、エンジニア自身の気付きや課題感に基づいて改善活動を行っています。
この記事では、リファクタリングタイムの運用について紹介します。
背景
弊チームはスクラム開発を採用しています。
また、スクラム開発のお作法に則り、毎週チームで振り返りを実施しています。
KPT(Keep・Problem・Try)を挙げて、翌週の行動改善に繋げていく...という形をとっています。
しかし、「Tryを挙げたものの、改善の時間が確保できない」という問題が発生していました。
日々のタスク消化に追われ、改善に時間を割くことができず、Tryが溜まってしまいました。
そこで、まとまった時間を予め確保できるように
部のマネージャーに働きかけ、リファクタリングタイムが誕生しました。
運用方法
リファクタリングのタスクは、カンバン方式で管理しています。
運用の流れ
1. 振り返り
- 毎週1回、チームでの振り返りを実施します(スプリント終了日に実施)
- KPT(Keep・Problem・Try)を挙げます
- KPTから、具体的なアクションに落とし込めるものをピックアップして、カンバンに登録します
2. リファクタリングタイム
- リファクタリングタイムの開始時に、チーム全員が Google Meet で集合します
- 前回実施したことを確認します
- タスクの「継続/中止/完了」を判断します
- 未実施のタスクを優先度順に並び替えます
- 今回実施するタスクを決定し、担当者を割り当てます
運用のコツ
実施する内容を揃える
あるメンバーはレガシーコード改善、別のメンバーは組織の仕組み改善 ... という状態よりも、全員で類似のタスクに取り掛かる方がよいです。
改善系のタスクは答えが決まっていない場合も多いため、相談しながら進める方が効率がよいです。
しかし、各々が異なる種類のタスクを抱えていると、相談の度にスイッチングコストがかかってしまいます。
類似のタスクをまとめてプロジェクト化して、ある期間で集中的に取り組むのもよいと思います。
タスクは1日で終わらせる
タスクがその日の内に終わらないと、翌週に持ち越しになってしまいます。
こうなると、翌週はまず思い出すところから始まってしまうため、効率が悪いです。
- 大粒のタスクは分解する
- 複雑なタスクは複数人で対応し、タスクの数は少なくてもよいので確実に終わらせる
といった、翌週に持ち越さないための工夫が必要になります。
チーム外の理解をどうやって得るか?
組織の風土によって、難易度が大きく変わる部分だと思います。
リファクタリングの効果は定量的に示しにくく、特に非エンジニアのメンバーからは「何をしているのか」「何のためにしているのか」が分かりにくいものです。
チームのリソースを投入することに対して、納得してもらうのは大変です。
弊チームがこの課題にどう対処しているかというと... あえて何もしていません。
というのは「リファクタリングの効果を頑張って説明しようとしない」という事です。
見方を変えると「チームのアウトプットの質とスピードが維持できていればいい」という事です。
期待される品質や納期を守ることが、リファクタリングタイムに価値があることの一番の証明になるのかなと思います。
まとめ
リファクタリングタイムの誕生によって、
振り返りで掲げたTryが少しずつですが確実に消化される体制になりました。
実際、コードの品質が上がったり、組織のルールが洗練されて、
より開発しやすい環境になってきているなと感じています。
皆さんの会社でもぜひ取り入れてみてください!!!
We are hiring!!!
ホワイトプラスでは、ビジョンやバリューに共感していただけるエンジニアを募集しています!
ネットクリーニングの「リネット」など「生活領域×テクノロジー」で事業を展開している会社です。
どんな会社か気になった方はオウンドメディア「ホワプラSTYLE」をご覧ください。
オンラインでカジュアル面談もできますので、ぜひお気軽にお問い合わせください。 open.talentio.com open.talentio.com