2020年1月27日、Sansan株式会社の社内にある多目的スペース「Garden」にて、各社のiOSエンジニアが開発の知見を共有するイベント「iOS開発チームの特徴と開発方法を公開!」が開催された。本稿では、Sansan株式会社の中川泰夫氏によるセッションをレポートする。中川氏は「スケーラビリティのあるチームを目指して」というテーマに沿って、開発効率の高い体制をつくるために実施してきたことを発表した。
スケーラビリティのあるチームをつくるために大切にした6つのこと(1)
セッション冒頭で中川氏は、SansanアプリのGitHub Contributorsの数値を提示。iOS版のSansanアプリのコントリビューション数が、どのように変遷してきたかを解説した。
- 2016年4月10日~2017年10月5日:v3.0.0を開発。主に3名がコントリビュート。
- 2017年10月6日~2018年5月7日:v3.1.0 - v4.0.0を開発。3~4名がコントリビュート。
- 2018年5月8日~2018年8月8日:v4.1.0 - v4.1.6を開発。1名がコントリビュート。
- 2018年8月9日~2018年4月8日:v4.1.7 - v5.0.0を開発。この時期、チームに中川氏が参画。複数名がコントリビュート。
上図のグラフから読み取れるように、中川氏が参画した後の開発効率は非常に高くなっている。「スケーラビリティのあるチームを目指して私たちが取り組んできたことを、6つの観点に沿ってご紹介します」と中川氏は口火を切った。
1.アーキテクチャの方針策定
SansanのiOSチームでは開発効率向上のため、採用するアーキテクチャの方針策定を行った。なぜなら、複数人による開発でメンバーの入れ替わりが発生する環境において、設計の軸となる方針がなければ、メンバーが戸惑い教育コストも大きくなってしまうからだ。アプリのアーキテクチャにはVIPERを、UIのアーキテクチャにはDesign Systemを用いている。
2.メンバーの受け入れ
チームに新しいメンバーが入った際には、受け入れ作業を行う必要がある。だが、工数最適化の観点から、受け入れに要する時間的コストは最小限にしたい。説明しなくてもいい情報は、しなくて済むに越したことはないだろう。
「例えば、開発環境の構築は説明するような作業ではないですし、自動的にできた方がみんな楽になります。そこで、iOSアプリ開発に必要となる設定ファイルの作成やライブラリのインストール、Xcodeの設定などを自動化できるスクリプトを書きました」
3.CI(Continuous Integration)
CIにおいても改善を行った。Pull RequestのPushごとに、ビルドやテスト、Lintなどを行うように変更したのだ。用いている技術は、CI/CDサービスのBitriseとコードレビュー自動化サービスのSiderだ。
この記事は参考になりましたか?
- この記事の著者
-
中薗 昴(ナカゾノ スバル)
週の半分はエンジニア、もう半分はライター・編集者として働くパラレルキャリアの人。現職のエンジニアとして培った知識・経験を強みに、専門性の高いIT系コンテンツの制作を行う。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
