MENU

 

COLUMN

BizTechコラム

ITアーキテクト育成

プログラミングはペアからモブへ

島 慎哉

2018.02.02

普段、私はJavaでバックエンドのアプリケーション構築や開発環境整備を担当しているのですが、フロントエンドは協力会社の方にお願いすることが多くなりがちです。この状況にチームメンバー内でも危機感を覚え、グループ会社の株式会社オージス総研の社員とフロントエンドの勉強会を定期的に開催しています。本コラムは勉強会で実践している「モブプログラミング」についてご紹介します。

モブプログラミングとは

モブプログラミングとは「モブ(群集、群れ)」と「プログラミング」を組み合わせた言葉で、その名の通り、複数人のメンバーが同じ場所、同じコンピュータ・画面(プロジェクター)でプログラミングを行う開発手法です。似たような開発手法にペアプログラミングがあります。実際に手を動かす「ドライバー」と、レビューを含め作業をサポートする「ナビゲーター」、2人1組で役割を交代しながら生産性向上を図る開発手法です。モブプログラミングは、このナビゲーターが多くいる状態と考えると理解しやすいと思います。ペアで作業する場合、ナビゲーターはドライバーの考え方や意図をリアルタイムに汲むことができるため、認識あわせをしながら開発作業ができるというメリットがあります。モブの場合には、この認識あわせを当事者間だけでなくチームレベルで実施できるため、効率をさらに高めることが期待できます。

モブでプログラミング

協調活動は教育に効く

今回は勉強会という通常の開発業務とは異なる状況ではありますが、実際にモブプログラミングを経験して、スキルトランスファーや若手エンジニア教育のシーンに有効だと感じました。従来方式の、個々人の作業に対する有識者レビューだけでは、複数人いるレビュアー毎に品質にバラつきが出てきたり、スキルセットの差により当事者しか理解できないロジックになってしまったりと、少なからず問題が発生する可能性があります。
片や、モブプログラミングの場合は、参加しているメンバー全員の理解と認識共有をしながら進めることで従来方式の問題発生リスクを軽減できます。メンバーには過去経験した案件や担当領域によって得手・不得手があります。今回のフロントエンド勉強会では知識や経験はほとんど同レベルではあるものの、決めたテーマに対して「Javaならどうやって書くだろう」「ドメイン駆動設計の観点から見ると分かりやすい」といったように、メンバー共通のバックグラウンドを活用して、協調しながら知識習得ができました。モブ形式でフロントエンドとバックエンドの違いを整理していくことで、バックエンド側の理解も深めることができるという副次的な効果もありました。

業務に活用するためにはプロセスの見直しが必要

一方で、業務適用を考えると運営プロセスの検討・改善が必要です。短期間試行しただけですが、下記のような問題が見えてきました。

問題点:特定のメンバーだけが盛り上がる...
解決案:ドライバーをうまく切り替えてチーム全体のモチベーションを高める

問題点:課題を解決できずに時間だけが過ぎていった...
解決案1:ゴールをブレイクダウンして明確化する
解決案2:タイムキーパーを設けて時間ごとに役割を交代する

また、複数人が1つのタスクを対応することになるので、従来手法では管理しきれなくなることも予想されます。これまで通り、各メンバーがそれぞれ別のタスクを対応すれば、人的リソースを有効活用でき稼働率を上げることができます。
一方で、リーン開発手法の元となったTPS(※)では、仕掛かり中を1つないし、限りなく少なくして市場投入スピードを速めるOne Piece Flowという考え方があります。モブプログラミングの利点・考え方は後者に近いため、リーン開発手法を実践している現場では、モブプログラミングの導入の障壁が低いと考えられます。

まとめ

本コラムではモブプログラミングとその所感についてご紹介しました。すぐに業務へ適用するには難しそうですが、まずは始めてみることが重要です。なにより、モブでの作業は楽しいです。プロトタイプの作成や共通処理方式のアーキテクチャ標準化などのシーンがあれば、是非試してみることをおすすめします。

  • ※ TPS  Toyota Production System:トヨタ生産方式

著者プロフィール

島 慎哉

技術開発部 グループ長

お客さまのITサービス、業務アプリケーションを最前線で支えるITアーキテクトとして要求開発からアプリケーション開発、保守運用に至る各工程で、当社ソリューションを提供してきました。現在は、当社クラウドサービスを加速させるべく、サービス開発と技術開発を企画・推進しています。DevOpsの実現・アジャイルな組織・テクノロジーの融合によるイノベーション創出など、モード2組織実現を目指すべく日々新しいことにチャレンジしています。

この記事をシェアする