どうも、とっても寒くなりましたね。冬ですね〜。
モバイルアプリケーション開発部の福井(@tinpay)です。
こちらの記事はChatworkプロダクト本部のAdventCalendar、16日目の記事となります。
早速ですが本題。
Chatworkのモバイルアプリケーション開発部は来年からチームを再編成する予定です。再編成においてチームトポロジーを参考に設計したので、経緯や期待するところをブログに書いていきたいと思います。
チームトポロジーについて
チームトポロジーについては多くの方がまとめてくださっているので、ここで詳しくは書きません。 以下の書籍、サイトを参考にしてくださいmm
チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計 | マシュー・スケルトン, マニュエル・パイス, 原田 騎郎, 永瀬 美穂, 吉羽 龍太郎 |本 | 通販 | Amazon
現在の2つのストリームアラインドチームの構成
Chatworkではモバイルアプリケーション開発部が現在2つのチームに分かれており、チームごとに責務分割は行わずに、両チームともユーザー価値提供を行うストリームアラインドチームとして構成されています(2つのチーム名は「Rouge」, 「Noir」)。ただ、直接的にはユーザー価値につながらない作業も結構あったりします。
- アーキテクチャの選定
- 新技術の導入
- コーディングルールの策定
- テスト運用ルールの策定
- CI/CD
- リリース作業
このような作業は両チームで分担しながら、それぞれが時間に余裕がある際に作業をしています。
※ 現在のチームに関係する記事を貼っておきます creators-note.chatwork.com creators-note.chatwork.com creators-note.chatwork.com
現在のチーム課題
前述にあるチーム構成の場合、直接ユーザー価値につながらない作業を各チームが隙間時間だけで行っているとマルチモジュール化やSwiftUI化などといった新技術導入やアーキテクチャの変更ががなかなか進まず、別の機能開発の差し込み作業が入ってきて新技術導入作業の中断を余儀なくされることも多々有りました。
また、チームが互いに境界を持たずに機能開発を行っているため修正箇所が重複するためコンフリクトが発生しやすくなります。コンフリクトによる影響を最小限に抑えるため、複雑な機能実装の場合はお互いがどのような作業をしているのか把握しておく必要があり、密にコミュニケーションを取る必要がありました。
すべてのチームが実装している新機能の詳細仕様や実装を全モバイルエンジニアが把握することは現実的に厳しく、把握できたとしてもストリームアラインドチームが増える度に個々の認知負荷が膨れ上がり、エンジニア個々のパフォーマンスが落ち、学習や理解が止まってしまいます。
課題解決のためにプラットフォームチームを新設
現在の課題として
- 新技術導入を計画に沿って進められることができない
- 認知負荷の向上
があります。
これらの課題を解決すべく、来年からプラットフォームチームの新設を予定しています。
- Rouge : ストリームアラインドチーム
- Noir : Androidプラットフォームチーム
- Blanc : iOSプラットフォームチーム
という3チーム構成です。
ストリームアラインドチームはユーザーへの価値提供、プラットフォームチームはストリームアラインドチームへの価値提供と、各チームが異なる責務を持ちます。
このようにチームの境界を引くことでチームごとの責任範囲が明確になり、認知負荷の軽減につながります。
いきなり年始からビシッと境界を引くことは難しいと思うので、まずは各チームがコラボレーションしながら、前述した「直接的にはユーザー価値につながらない作業」をプラットフォームが作業して、その中で徐々にいい感じの境界を見つけていく予定です。
その結果、ストリームアラインドチームが機能開発に集中できるようになりリードタイムが向上すればと思っています。
また、組織内にはRouge以外にもモバイル領域においてユーザー価値提供している職能横断型チームが複数存在します。プラットフォームチームはこれらの職能横断型チームのニーズを理解し、中長期的にはサービスとしてプラットフォーム提供するところを目標として進めていく予定です。
仲間募集中
モバイルアプリケーション開発部では一緒に働いてくれる仲間を募集しています!
iOS / Androidアプリ開発、アジャイル開発、チーム体制に興味持っていただけたかたは是非お声がけください〜!