こんにちは!モバイルアプリケーション開発部でiOSエンジニアをしている中山 龍(@ryu_develop)です!
時間は早いものでもう12月!残り4ヶ月ほどで新卒1年目が終わろうとしています〜
ということで、本記事は Chatwork Advent Calendar 2023 8日目の記事です🎄🥳
今回の記事は11月中旬に大阪で開催されたモバイルアプリケーション開発部の部署合宿に関する報告記事です🎉
普段は全国各地からリモートワークで働いている部署メンバーが合宿で集まり、オフラインでどのようなことに取り組んだのかについて紹介します。本記事で参考になる部分があれば幸いです。
合宿の日程
今回の合宿は11月16日からの2日間で以下の日程で行われました
▹ 1日目:
- チーム支援者の方によるワーク
- マネージャーによるワーク
▹ 2日目:
- チーム支援者の方によるワーク
- iOS/Android各チームのワーク
今回の記事では、合宿の中でも自分が事前準備や当日のファシリテーションに大きく関わった『iOSチームで実施したワーク』の部分で、事前に行った準備や当日の様子などについて紹介したいと思います。
合宿をする前に
部署合宿をするために、どんなことを行うかのコンテンツを決める必要がありました。コンテンツ決めに立候補したメンバーの方と、その方に誘われた僕も参加し、その2名で合宿準備を行いました。(以降、この2名のことを「合宿準備メンバー」と表記します)
合宿準備メンバーは、2人とも今年に入社した合宿未経験のコンビで、最初は合宿までにうまくコンテンツを決められるのかという不安がありましたが、今となっては『過去の先入観がなく、新鮮な合宿を行うことができたのではないか』と思っています。
合宿の目標決め
合宿で何をやるかを決めるために、まずはチームが抱えている課題の洗い出しから行いました。
このコンテンツ決めの作業を始める前に、チーム全員で『チームの現状・思っていること・やるべきこと』などについての話ができていました。なので、合宿準備メンバーはその際に出ていた意見を参考にしながら自分たちでもさらに深掘りを行い、合宿でどの課題を扱うかを話し合いました。
扱う課題を選定する際には、『約6時間弱である合宿のワークで手を打つことができるような粒度の課題』であることを意識する必要があり、また、今回の合宿では業務委託の方にも参加していただくということから、その方々も含めたメンバー全員が課題として認識していそうなことを扱う必要がありました。
それらを考えた結果として『SVVS化を加速させる』というのをテーマとして扱うことにしました。
そして、『SVVS化を加速させる』というテーマの中でも、チームとしてリアーキテクチャ以外の業務をやる時間が多い状況で、少しでもSVVS化を加速させるために、『毎週行っているモブプロの時間でのSVVS化のスピードや質の向上』を目標としました。
補足: 『SVVS(Store-View-ViewState)』とは、Chatworkで考案したSwiftUIの導入に適したアーキテクチャのことであり、『SVVS化』とはiOSプラットフォームチームが現在のChatwork iOSアプリで進めている、SVVSへのリアーキテクチャ作業のことです。
実施したワーク
設定した目標を踏まえ、今回はチームとして『選定したドメインモデルに対するStoreを作成するワーク』を中心に行いました
『選定したドメインモデルに対するStoreを作成するワーク』は具体的には以下のような内容です
- 2 or 3人 × 3チームで行う
- 既存のChatworkアプリからドメインモデルを選定し、それを扱うSVVSのStoreを作成する
- 作成する成果物は動作するコードでなくてもよく、図やテキスト、サンプルコードなどでまとめてもよい
- Storeを作成する上で考える必要のある周辺部分(Repositoryなど)も大まかな設計を考える
- 実現可能そうな範囲であれば既存の実装に対する変更の提案もOK
- 成果物は完成できず中途半端でも良い
- 今回はStore化する上での課題や気付きなどの洗い出しが目的のため
ワーク後には各チームごとに発表を行い、成果物やワーク中に出てきた課題・解決策などを共有しました。
発表の際には質疑応答の時間も取られており、「ここって〇〇ってことですか?」のような質問や「こっちのチームでもこの悩みはあった!」といった共感の声がありました
そして、各チームの発表で課題や解決策などの意見を共有した後には、普段の業務内で感じている疑問なども集めました。そして、その中から投票によってチームの関心の高い話題を選び、チームで議論を始めていきました。
この時間では、ワークをやってみたことで初めて見えてきた課題の解決に向かって話し合ったり、普段から抱えていた疑問に対してメンバー間で知見を共有し、認識を揃えたりといったことができました。
議論の着地自体も「このような実装をすれば良さそう」といった実装の具体的な内容のものや、「この件については今後のモブプロを進めながら議論をしていこう」といった、業務内での次のアクションにつながる内容のものなどがありました。
最後に、今までの議論を踏まえ、今後のネクストアクションをチームで認識しました。
先程の議論を基に「この場合にはこのような実装で対処しよう」といったものや、「〇〇パッケージ名を変える・新しい名前を考える」、「〇〇の最終形をモブプロの時間でもう少し考えていこう」など、今後のリアーキテクチャを進める助けになりそうなアクションが多数まとまりました。
合宿を終えて
今回は初めて参加する合宿となりました。普段はオンラインでも不自由なくチームで仕事をしていますが、今回の合宿をしてみて、オフラインで会って話す良さを感じました。
合宿の振り返りを終えたメンバーの意見としても
- オンラインで共有してない部分も共有できたかもしれない
- みんなが思うSVVSに対して考えてることを引き出せた気がする
- チームで分かれてやったことで、深く話し合えた
- みんなの共通認識を形作る助けになったように感じる
- チームで一緒のコードを深掘りできて、いろいろ理解できたことが多かった
- オンラインでもこれくらいワイワイしたい
- こういう機会がもう少し頻繁にあると良さそう
など、オフラインであることやワーク内容に対してポジティブな意見をいただき、良い合宿になったのではないかと考えています。
また、合宿の進行役としても、事前の想定スケジュール通りに行かない部分があっても臨機応変に対応しながらワークを進めることができ、合宿終了後には無事にやりきったいう達成感がありました。合宿準備メンバーの間でも「準備したものが成功してよかった」「大成功だ」との会話があり、成功を実感できた良い経験になりました。
この合宿で出たアクションをチームとして今後の業務に役立てて行きたいと思います!🔥
🎄若手&学生のモバイルエンジニア向けのイベントを行います🎄
気軽にご参加ください🤝
⭐️Chatworkのモバイルアプリケーション開発部は一緒に働く仲間を募集しています!⭐️