はじめに
本記事はモブプロ開発を行っているチームでやっている取り組み Advent Calendar 2022の10日目の記事です
今回はついにタイトルにもある通り「モブプログラミング」で実際にどのようなことをやっているのか紹介していきます。
私たちは半年ほどモブプログラミングですべての開発を行っており、多くの学びを得ることができました。
本記事ではそこまで詳しく説明をしていませんので、詳しく知りたい方は以下の記事を確認ください
前回
Chapter#9 チームの希望!モブプログラミング
アール「このチームの皆さんは私よりも断然開発経験があって私だけ置いて行かれないか心配です」
ミュート「いやー、でも今回の開発はまったくみたことのないレイヤーで実装されているから俺もよくわからんよ」
ベープ「大丈夫っす!俺はRailsまったくわからんので」
そう、今私たちはこのチームが結成された目的である外部委託していたプロダクトの開発引継ぎを行っていた
じん「まぁ全員不安もあると思いますし、全員がまったくわからない状況でそれぞれで学習を進めるのは効率が悪いので今日からこのチームではモブプログラミングを導入したいと思います」
一同「モブプログラミング??」
じん「そうです!通称モブプロといいます。簡単に言うと全員で同じタスクをこなすという実装方法になります。まずはモブプロがどういうものなのか。そしてどんなメリットやデメリットがあるのか1時間程度の勉強会をしましょう」
そして、じんはとあるスライドを画面共有する
じん「この記事はモブプログラミングベストプラクティスという本をまとめた個人メモになりますので、これをみながら一気に説明していきます」
モブプログラミングについて
モブプログラミングは全員で同じ開発画面を利用して1つの作業をする開発方式です
参加者の中から1人タイピストを選んで、それ以外の人でタイピストに実装の指示をだします
10分したら次の人にタイピストを交代します
簡単に説明するとこのようなものをモブプログラミングといいます
ではなぜこのチームでモブプログラミングを導入したのか説明します
- 開発能力がメンバーでばらばらだった
- 全員がまったく知らないコードを読まなければならない
- 慣れない形式(レイヤー)で実装されていた
この辺りが大きな理由となります。
開発能力がばらばらだったについては、チームには開発歴1年未満の方もいたため到底同じレベルで実装することが不可能だと予想されました。
その人を放置していしまうと進捗が把握できなかったり、その作業が遅れたり、心理的にも負担になり他の人に聞きすぎでしまうことから聞くことをためらう心配がありました
全員が知らないコード、慣れない形式に関しては、私一人で仮に理解して実装したときに、同じ説明を個別に全員にする可能性が高くコストがかかる可能性があると感じました
実際にモブプログラミングをやることで
- 全員が全部のコードを理解している(技術負債なし)
- テストコードの粒度の統一化
- 開発能力が同じレベルに近づいた
- チームとして絆が深まった
など良い効果が多くありました。
しかし、全員が同じレベルだとしたときに4人それぞれで開発する効率に比べるとやはり劣る部分もあります
次回以降の記事でその対策を2点紹介します
モブプログラミングについてはかなり力を入れて取り組んでおり、既に記事として作成しているのでここまでの話を聞いて興味が出た方はよければ以下の記事を確認ください
次回
おわりに
今回は別の記事に詳しいものを用意していたので簡単な概要と記事の紹介をしました
モブプログラミングには大きな可能性があり、タイミングよく導入することで大きな効果があると思っています
まずは体験からやってみて、終わったら振り返りをしてみてチームに導入できるか検討してみてはどうでしょうか