スケーラビリティのあるチームをつくるために大切にした6つのこと(2)
4.CD(Continuous Delivery)
CDにおける工夫として、Delivery Botを用いている。下図のように、リリース対象のブランチやバージョンなどの情報をSlack上でBotに指示するだけで、簡単にリリースを行えるようになっているのだ。
また、社内のテスターやデザイナーへ開発中のアプリを共有するため、DeployGateを導入している。Slack内の特定チャンネルに投稿されるQRコードを利用して、各メンバーへ配布ページへのリンク情報を共有しているのだ。
5.教育
メンバーの教育のため、毎週火曜にSwift Study Lunchというランチ読書会を開催している。これまで『Swift実践入門』『iOSアプリ設計パターン』『Clean Architecture』などの本を読んできたという。社内のiOSエンジニア複数名が参加しており、各チームの技術共有の場としても機能している。
6.開発プロセス
開発プロセスにも、いくつもの工夫がある。Pull Requestにおけるレビュアーアサインの自動化・負荷分散を行うため、Pull Pandaを導入している。また、毎月第4水曜日にBug Fix Dayという日を設け、プロジェクトの新規開発を行わずにバグ修正に専念しているという。Bug Fix Dayがあることで、さまざまな不具合の修正が進み、iOSアプリの信頼性が増したそうだ。ほかにも以下のような施策を実施し、開発プロセスの改善を続けている。
「最後にまとめです。冒頭で提示したGitHub Contributorsのグラフからもわかるように、フェーズごとにアプリ開発に関わるメンバーは変わっていきます。チームに対してメンバーが望むことも変化しますし、チームで実現できることも変化していくでしょう。そのバランスを取りながら、Developer Experience (開発体験)を良い状態で維持していくことが大切になります」
