
モブプロでチームのコーディングスキルを向上させよう
-
2021年11月4日
こんにちは、Web開発室のコンテンツ開発チームに所属している大谷です。
ココネのWebコンテンツ開発チームでは7月から週1でモブプロを行っています。
モブプロとはどういうものなのか、何をどう行うのか、3,4ヶ月間モブプロを行なって感じたことを共有したいと思います。
モブプロとは?
モブプログラミングMob Programming(通称:モブプロ)はウッディ・ジュールWoody Zuill(アジャイルコーチ&開発マネージャー)が提案したチーム作業のテクニックです。
1人のドライバー(手を動かす)と複数のナビゲーター(案内する)が1つのPCでコーディングまたは文書化作業を進める開発方式で1:1方式のペアプログラミングを1:nに拡張させた形です。
“n”は開発チーム全体の人数を意味しており、チーム全員が参加することが特徴になっています。
(ウッディ・ジュールが描いたモブプロをイメージしたイラスト)
チームでの取り組み
ココネのWeb開発室はほとんどのメンバーが横断で様々なプロジェクトの業務を行なっています。
だからこそ業務内容やスキルの情報共有&コードの読みやすさ(リファクタリング)がより重要で、情報共有を求める瞬間が頻繁に訪れます。
モブプロについて調べてみると、他社では新規プロジェクトで取り組んだり、1~2週間の短い期間に集中して行う場合が多いらしいのですが、我々のチームでは一旦お試し(?)として、既存の作業の中でリファクタリングやテストなど、みんなが入りやすい作業から週1回、1時間のペースで行う事になりました。
準備するもの
- VSCodeをインストール
https://code.visualstudio.com/
- VSCodeにLiveShareプラグインをインストール
https://visualstudio.microsoft.com/ja/services/live-share/
- Githubアカウントを用意し、VSCodeのLiveShareにログインする
- 積極的にコミュニケーションを行うための折れない心&普段より3倍高いテンション(笑)
モブプロの流れ
では実際に私たちが行なっているモブプロの流れを紹介しようと思います。
- 時間 : 水曜日の午後3時から1時間
参加メンバー : 5人
場所 : モニターがある会議 - 作業する内容を決める(gitのリポジトリを用意する)
- VSCodeで作業フォルダを開き、ステータスバーにある[Live Share]をクリックすると共有用のURLが生成されるので、そのURLを参加メンバーに共有する
- 1人10分ずつコーディングを行う
(実際にやってみると1〜3人くらいが行うことが多かったです) - 参加メンバーみんなで話しながら、新しいルールを共有したり、議論をすることでより分かりやすく良いコードを探りながら進行する
- キリが良いタイミングでコミットをする
- 今回行った差分のMRを作成し、共有する
私たちが主にモブプロで行なった作業はこのようなものがあります。
- リアルタイムのリファクタリング&コードレビュー
- テストの書き方を学ぶ(経験する)
- Story Bookについて学ぶ
振り返り
今回4ヶ月のモブプロを行なってきて、一人で勉強するよりもコードに対する理解が深まり、コードレビューの楽しさを感じたので、これからも是非続けたいと思いました。
しかし、続けるためには反省と改善が必要です。
正直に言うと、最初の私はこのモブプロに積極的に参加することが出来ませんでした。
自分が書くコードをリアルタイムで他人に見せて、もし指摘されたら。。と心が折れることへの恐怖でずっと緊張していて、いつ自分の順番になるのかが気になってコードが頭の中に入りませんでした。
しかし緊張で頭が真っ白になっても、実際自分の順番になってみると、みんながアドバイスしてくれてスムーズに進めることが出来ました。
Live Shareのいいところは、他の人がどこを見ているのかも辿ることができて、いざとなったら同時にタイピングすることもできます。
コーディング中にエラーが出た場合もどこを直す必要があるのか一人で探すより早く見つけることができ、モブプロをやってるうちに段々と楽しくなって来ました。
モブプロにより得られた効果
作業内容&タスクの共有
自分が関わっていない他のプロジェクトの内容を一緒に把握することで、もしそのプロジェクトの作業をする事になってもよりスムーズにプロジェクトに参加できるようになることが期待出来ます。
コード品質の向上
コーディングスタイルや設計などに関して議論することでチーム全体でより品質の良いコードを書けるようになりました。
情報共有&学習スキルアップ
新しい知識(テストの書き方、StoryBook、リファクタリングなど含め)を一人で学ぶより効率よく学ぶことが出来て、自分の視野を広げてくれます。
コードレビューやデバッグ時間を減らせる
みんなで同時に見ることで、バグや気になる所をすぐに見つけてその場で対応することが出来るため、コードレビューやデバッグする時間を節約出来ます。
終わりに
モブプロは話し合いやブレインストーミングを必要とする傾向のあるタスクで、試してみる価値があると確信しています。
チームによっては驚くほど良い成果が得られる可能性があるので、是非チームでモブプロを取り入れてみてください!
ココネでは一緒に働く仲間を募集中です。
ご興味のある方は、以下のリンクから是非ご応募ください。