全体最適を目指す開発チームへ―1スレッドにもモブワークの真価
株式会社Skillnote 藤井です。
1年ほど前にアジャイル開発移行したSkillnote開発チームですが、最近よく耳にするのが「1スレッド化」や「モブワーク」。しかし、その目的や使いどころが曖昧なまま導入されている状況があるなと感じられる今日この頃。
本稿では、これらの基本概念から実践上のポイントまでを整理し、開発チームの知的生産性を高めるヒントを共有したいと思います。
1スレッド化とは?
複数の課題を並行して処理するのではなく、1つの課題に集中することで以下の効果を狙う手法です。
・コンテキストスイッチの削減
・WIP(Work in Progress:仕掛かり中の作業)の抑制
・認知負荷の軽減
・完了速度と品質の向上
チームの集中力と成果を最大化するための働き方といえます。
モブワークとは?
1台のPCを複数人で囲み、設計・実装・レビューなどを同時に行う開発手法です。特徴的な利点は以下の通りです。
・認知の即時共有
・レビューや意思決定の高速化
・属人性の排除と学習促進
チームの思考をリアルタイムで統合する、強力なコラボレーション手段です。
両者の関係とねらい
モブワークは、1スレッド化を体現する一つの実践形態です。つまり「チームの知的資産を集中させ、全体最適を実現する」ためのアプローチといえます。個々の効率を超えて、チーム・組織としての価値創出を目指しています。
フロー効率の観点から見る
フロー効率(=実作業時間 ÷ 経過時間)を高めることで、以下のような効果が得られます。
・リードタイムの短縮
・ボトルネックの可視化
おおよその目安は以下の通りとされています。
・20〜40%:一般的なチーム
・40〜60%:非常に効率的
・60%以上:一見理想的だが、過負荷や品質劣化のリスクもあるため注意が必要
ソロ・ペアプロ・モブワークの比較
項目 | ソロ | ペアプロ | モブワーク |
---|---|---|---|
人数 | 1人 | 2人 | 3人以上 |
目的 | 集中・スピード重視 | 知識共有・品質向上 | 認知統一・複雑課題の解決 |
進行 | 一人で完結 | ドライバー/ナビ交代 | 役割分担・ローテーション |
密度 | 状況により変動 | 中〜高 | 非常に高い |
主な適用 | 単純実装・既知のタスク | 実装・リファクタ | 要件定義・設計・重大バグ対応 |
参加者の役割 | ・実装・判断・記録を一人で担う | ・ドライバー:実装を担当 ・ナビゲーター:設計・方向性・レビューを行う ・交代:一定時間ごとに役割を入れ替える |
・ドライバー:キーボード操作を担当(1名) ・ナビゲーターたち:口頭で設計や方針、アイデアを出す(複数) ・記録者(必要に応じて):意思決定や技術的判断を記録する役割 |
どう使い分けるべきか?
・設計や認識合わせにはモブワークが有効
・実装やロジック詰めにはペアプロが効果的
・以下のような場面では、実装でもモブワークが有効
・未知の技術や高難度実装
・バグ調査や障害対応
・共通基盤の実装
・新メンバーのオンボーディング
「手段の目的化」を避けるために
1スレッド化やモブワークはあくまで「全体最適」を実現するための手段です。WIP制限、職能横断チーム、早期レビュー、バリューストリームマッピングなど、状況に応じて必要な施策を選び、組み合わせることが重要だと思います。
おわりに
1スレッド化、モブワーク、ペアプロ──いずれもチームの生産性を高めるための強力な(ただし、目的ではなく)手段です。
最も大切なのは、「最短でユーザー価値を届けるためにどう働くか」という視点だと感じています。手段に縛られず、常に全体最適を模索できる文化をSkillnote社内で作り出しています。