なぜKyashのモバイルチームは周りからいいチームだよねと言われるのか

この記事はKyash Advent Calendar 2024の19日目の記事です。

こんにちは。Kyashでモバイルエンジニアをしているkato(@ktc_eng)です。 Kyashのモバイルチームはありがたいことにいいチームだよね、仲が良いよねと社内の方々から評価していただくことが多い印象です。今回この記事ではなぜモバイルチームが社内にそのような印象を与えているのか、その秘訣は何なのかを言葉にしてみたいと思います。この種の記事は書き手がマネージャーであることがほとんどのように思いますが、これをメンバーが語ることで、よりリアルに雰囲気が伝わるといいなと願っています。

半期に一度の目標設定と振り返り

モバイルチームは目標設定と振り返りを半期に一回の頻度で設けています。現在Kyashは事業部制をとっており事業部ごとに目標が存在しますが、それとは別にモバイルチーム単位で独自に目標を設定しています。今年は目標設定も振り返りもメンバーから、やりたいよね、そろそろそういう時期だよねという話が自発的に出てきて実現していたりします。手前味噌ながらすごいことですよね。

目標設定・振り返りともに毎回形式が決まっているわけではありませんが、基本的にどちらも個々人で考えを書き出し、最後にそれを集約するというスタイルです。あるときは出社してみんな集まって決めたり、ときにはオンラインでやったりとその時々でやりやすい形で実施しています。意見を出すのもみんなが遠慮せずに感じていることを書いていて、かつその意見にリスペクトを持っているのでいつも建設的な議論ができています。

ちなみに2024年H1の目標は「価値提供のスピードを上げるためのトライのフィードバックループを回す」でした。この少し抽象的な目標からブレークダウンしていくつか具体的なトライを設定しました。先日牧山さん(@_rmakiyama)が書いてくれたリリーストレインの取り組みはこのトライの成果のひとつでもあります。目標を決め、その目標に従いチームで考え動くことで様々な改善が進んでいる実感があります。

FigJamでH1の振り返りを実施した様子

ワーキングアグリーメントを設定している

Kyashのモバイルチームはワーキングアグリーメントを設定しています。ワーキングアグリーメントとは、チームが協力して仕事を進めるうえで守るべきルールや基準、行動様式を共有するための合意事項です。ワーキングアグリーメントについて詳しくは以下の記事を参照ください。

ワーキングアグリーメント - Agile Studio

このワーキングアグリーメントはモバイルチームとしても今年から初めて制定しました。ワーキングアグリーメントは以下のルールとしています。

  • 全員が納得し合意したもののみを採用する
  • わざわざ明文化するほどでないようなことをあえて明文化しておく
  • 定めた項目を定期的に振り返って改善する

ワーキングアグリーメントはチーム全員が仕事をする上で摩擦なく気持ちよく働けるようにするためのものです。よってだれか一人でも違和感を抱いたり、守ることが難しいと感じるものは採用しません。また、お互い察するという文化にならないように当たり前のようなことであってもきちんと言葉として残しておきます。さらに、メンバーの入れ替わりによって定めたルールが心地よくないと感じたり、もっと別のよいルールを取り決めたいとなったときに改善できるよう定期的に振り返るようにしています。いくつか実際にKyashのモバイルチームで現在定めているワーキングアグリーメントをご紹介します。

  • リアクションは積極的にしよう!わいわい!
  • わからないことは素直にわからないと言うし、何度も教え合おう
  • Pull Requestのマージまでの責任はレビュイーが持とう!レビュイーの裁量で気軽にリマインドOK!
  • Slackのやりとりが続きそうなら気軽にハドルで話そう
  • 早めに上がるときは申し訳なく思う必要はないよ、おつかれさま!

ほかにもあと少しあるのですが抜粋して掲載しています。ルールがカジュアルでやわらかい文体なのが気に入っています。私の体感としても上記のルールはモバイルチーム内でとてもよく機能しており、非常に働きやすいです。「こんな初歩的なことを聞くのもよくないかな」「〇〇さんにhuddleで認識合わせお願いするのは迷惑だろうか」「ちょっと急ぎでレビューして欲しいのだけれど催促すると気分を害してしまうかも」などなど、コミュニケーションの心理的ハードルはいくらでも思いつきますが、これらのルールがあるおかげで無駄にあれこれ悩んだりする必要がありません。気にしなくて良いことを気にしないでいいのは非常に心地が良いのでおすすめです。

KMPという技術選択

KyashのモバイルチームではKMP(Kotlin Multiplatform)を採用しています。KMPはビジネスロジックiOS/Androidで使えるように共通化しているという性質上、両OSのエンジニアのコミュニケーションが必要不可欠です。Android Studioの使い方やKotlinの言語機能の知見はAndroidエンジニアの方がアドバンテージがあるため、iOSエンジニアがKMPを実装するときはAndroidエンジニアの意見やアドバイスを頼りにしています。また、AndroidエンジニアはKMPで書かれたコードをiOS側でハンドリングする際にどうなるのかイメージがつかないこともあるので、その点iOSエンジニアも説明することが求められます。

私はときどきKMPって正直どう?と知人から聞かれることがあります。その際に決まって、設計や運用云々はさておき、iOS/Androidエンジニア同士が仲が良い、もしくはこれからコミュニケーションをもっと活性化させたりモバイルチームとしてチームビルディングしていきたいと思うなら良い選択肢のひとつかもしれないと答えています。

KMPはビジネスロジックを共通化できるというメリットはもちろんのこと、両OSエンジニア間のコミュニケーションを増やすという効果もあります。これによりKyashのValueのひとつでもあるONE TEAMとなってプロダクト開発に取り組むことができる。これはコミュニケーションコストととらえることも当然できますが、少なくともKyashではKMPは良いコミュニケーションの潤滑剤として寄与してくれています。

接触回数が多い

結局周りから仲が良く見えるというのは

  • 接触回数が多く
  • 和気藹々としており
  • その姿が周りに認知されている

状態なのかなと思います。週2回Slackのhuddleでのミーティング、隔週で開催されている各OSごとの雑談会、オフィスに集まっての目標設定、ときにはボードゲームをしている様子などなど、モバイルチームのそういう姿をみなさん観測するわけです。それは良いチームにも見えますよね。なんか自分のチームがうまくいかない、そう感じるときは単にコミュニケーション不足なのかもしれませんね。

先日集まってやったボードゲーム、わいわい

おわりに

この記事を執筆中、絶賛不確実性の高いタスクに押しつぶされそうになっており、ちょうどモバイルチームのメンバーに助けてもらいながら仕事を進めているところでした。相談やモブプロをお願いしたりすることも続くので申し訳ないなと思っていたのですが、この記事を書くにあたってもう一度ワーキングアグリーメントを見て、頼ってもいいチームなんだと再認識し励まされました。チームって素敵ですね!

この記事がみなさんのチーム作りに少しでもヒントを提供することができていれば嬉しく思います。

さて、Kyashでは一緒に新しいお金の文化を創っていく仲間を募集しています! 少しでも気になるかもと感じたらぜひご応募ください!

応募したい方ははこちら
https://herp.careers/v1/kyash/requisition-groups/c72c257d-18e5-4613-b824-834fe711df35

カジュアルに話を聞きたい方はこちら
https://pitta.me/matches/gxnDbkESOGQO