開発プロセスの効率化によって得られた時間を技術負債の解消に充てる
続いて月澤氏は、開発チームにおける技術負債の返済について説明を始めた。助太刀では建設業で働く人向けのスマホアプリ(ネイティブアプリ)に加え、工事会社が利用するWebサービスを提供している。これらのバックエンドはモノリシックな構造になっているが、コードだけでなく、ビジネス面でも一貫性を保つ必要がある。したがって、アプリとWeb版の統一性や依存関係の管理が必要となる。
スマホアプリの変更については、毎日のアップデートがユーザーにとって必ずしも良いとは限らない。ある程度の機能をまとめてリリースする方が良い。開発のサイクルは2週間のスプリントで行われている。このサイクルは変更しておらず、リードタイムの短縮を主目的としている。その結果、開発の効率が上がり、1スプリントの中で行えるタスクが増加した。空いた時間で次の新機能の開発や、見えてきた技術的な課題の解決ができるようになったのだ。
技術負債の解消には大きな変更が必要で、それには多くの時間がかかる。そこで、まず短期的に課題を整理し、今後の大規模な変更を可能にするための前準備としての短期的なリファクタリングを開始することを決定した。この方針をもとに、チーム全体での取り組みを開始することとなった。
iOS/Androidのアプリチーム、Webフロントチーム、バックエンドチームそれぞれが現在抱えている技術的負債や改善点をスプレッドシートにまとめる作業を進めた。各チームでまとめた情報を基に、全チームが集まって議論を行い、依存関係やタスクの優先順位、開発順序などの認識合わせを行った。これにより、技術的負債返済のロードマップを策定した。返済を進める際のルールとして、スプリント内での作業時間の約30%を技術的負債の返済に充てること、余った時間が出た場合の作業内容はプロジェクトマネージャーと相談することなどを設定した。
技術的負債返済は重要だが緊急性は低い。だからといって放置はできないため、一定の時間は割り当てることとしたのだ。さらに、ロードマップは開発部全体で共有・管理され、それに従って運用されている。一連の取り組みの成果について月澤氏は次のようにコメントした。
「積極的なコミュニケーションを取ることで、お互いの行動や考えを理解することができました。エンジニアとして、直したいと思う箇所を改善できない時は、正直、ストレスを感じることもあります。しかし、今はチーム全員で取り組むことを前提とした良い雰囲気ができたのはすごく良かったと思います」