こんにちは。freeeの中部支社でエンジニアをしている maru です。
私たち中部支社の開発チームは去年7月の立ち上げ以来、『中部から日本中で使われるプロダクトを作りたい』と考えて開発を行ってきました。 そのためにもfreeeの東京・大阪の開発チームと自然体で連携できるよう、様々な工夫をしています。
今回はその中でうまくいったプラクティスの一つとして、チーム横断でモブプロをした話をご紹介します。
きっかけ:支社の立ち上げでこれまで接点のなかったチームに参加
弊社では昨年2月からリモートワークが始まり、HangoutやRemo上でのコミュニケーションもすっかり日常となりました。 このリモートワーク下においてもチームの異動や、新チームの立ち上げが盛んに行われています。
中部支社の開発チーム(通称 みそかつ)もその一つでした。
去年7月に立ち上げたチームでこれまで一緒に働いたことのない関西支社のたこやきチームに合流することになりました。 担当する開発も、プロジェクト管理freeeという初めて触るプロダクトになりました。
しかし1ヶ月ほどして、異なる文化を持ったチームから来たことによる「壁」にぶつかるようになります。 コードにどんな意図があるのかや、その背景がわからないまま開発していることに課題を感じ始めていました。
具体的に感じた課題感は次のようなものがありました。
どこにコアとなるロジックがあるか把握するのが大変で、生産性が落ちてしまっていました。(具体的には既存の実装を調べる時に、実質機能していないロジックを精査していたこともありました。)
背景知識やプロダクトの設計思想を知らないため、設計方針の議論で手戻りが発生することが増えていました。
PRのコメントで議論をしていても、コメントを書く人と読む人の事前知識に差があると、うまく伝わらなかったり表現が冗長になってしまいます。その結果なかなか議論が進まないこともありました。
有志チームの開発で「モブプロ」を体験した
チーム合流から3ヶ月ほどたったところで、これらの問題を打破するヒントを得られました。 チーム横断で有志メンバーが集まって、技術的な負債や課題を解決する期間(551スプリントと呼んでいます)で、シニアエンジニアの方の呼びかけでモブプロを行ったのです。
web会議ツールのRemoとVS CodeのLive Share機能を使って、4人ほどで集まってコードを書きながら設計方針を決めました。
この時、次のようなことを心がけて行いました。
コードの方針を決める時には普段から課題に感じていることを口に出しながら、その解決策をなるべく コードで示す ようにします。
ドライバを順に交代しながら行い、全員が実際に書いて方針を実現していくようにしました。
その結果シニアエンジニアの思考や意図を書きながら学んでいくことができました。これまでチーム毎にばらつきのあった細部の実装の指針についても、様々な面での優劣を議論し認識を合わせることができました。
普段の開発でもモブプロをするようになった
有志の開発以降は普段の開発でもモブプロを取り入れるようになりました。 よく行うのは開発初期の設計や実装方針を決める段階で、テックリードや開発をリードするエンジニアがアイディアを提案しながら実装方針を形にしています。
また馴染みのない機能拡張の開発を行う時には、既存の実装をよく知る人にモブプロに入ってもらうようにしました。 結果として既存実装の疑問点や当時の意思決定の背景を理解した上で、コードの変更ができるようになりました。
具体的には課題に感じていたことについて、次のような変化が起きました。
ロジックの配置ルールを知ることで、コアロジックの書かれている場所をスムーズに把握できるようになりました。またそれだけでなく、既存実装の抱える課題点や技術的負債について全員が共通認識を持つことで、普段の開発計画の見積もりが立てやすくなったり、リファクタリングの計画を盛り込むことができるようになりました。
チームで大切にしている考えや方針、思想を理解できるようになりました。例えばロジックを可能な限りサーバーサイドに寄せる方針であったり、プロダクトのコア機能がどこにあり、ユーザーストーリーや価値をどのモジュールが実現しているのか、などです。
モブプロを通して建設的な議論の成功体験を積むことができたおかげで、臆せず意見を言い、より突っ込んだ議論をしても大丈夫という安心感を持つことができました。
今後の展望
これまでの9ヶ月ほどで関西支社との連携も機能し、支社の距離を超えて一体感のあるチームで開発を回すことができるようになりました。 その理由には今回お話したモブプロ以外にも、日々のコミュニケーションや細やかなドキュメントでの情報共有など様々な工夫があります。
今後はこれまで蓄積してきたノウハウを元に、東京のチームとも連携の機会を増やし、freeeのコアに近い領域においてもより大きな貢献をしていけるようがんばっていきます。