アイキャッチ

チーム全員が1台のPCを共有するというモブ・プログラミングの実態。果たしてその効果とは?【バズワードから紐解くエンジニアのキャリア Vol.5】

働き方

    バズワードから紐解くエンジニアのキャリア

    IT業界で注目される次世代技術は、常に“バズワード化”する。AI、ロボティクス、IoT、ブロックチェーン、FinTech、オムニチャネル……一過性の“Buzz”で終わらずに普及・定着していく次の注目技術は、エンジニアの働き方をどう変えるのか? この連載は、そんなバズワードの1つにフォーカスして現役SEをはじめとするエンジニアがめざすキャリアと将来展望について考察していく。

    IT業界で日々バズワード化される次世代技術は、エンジニアの働き方にどんな変化をもたらすのか? VRやAI、IoT、Chatbotなどをピックアップしてきたこの連載で今回フォーカスするのは「モブ・プログラミング」だ。

    1つの端末を共有して2人でディスカッションしながら開発を進める「ペア・プログラミング」はよく知られているが、「モブ・プログラミング」では原則3人以上の開発チーム全員が1カ所に集まり、ディスプレイやモニターに映し出されたソースコードを見ながら開発を進めるという。

    まだ普及しているとは言いがたい「モブ・プログラミング」だが、今回取材に応じてくれたネクストスケープでは、試験的に業務に導入したという。マネジャーとしてチームを指揮する松永聡氏に、その可能性やエンジニアにもたらす変化などについて聞いた。

    プロフィール画像

    ネクストスケープ クラウド事業本部 コンサルティング&テクノロジー部
    松永 聡(まつなが・さとし)氏

    大学卒業後、SIerに就職してJavaScriptを用いたBtoB分野向け基幹システムの開発などに従事。業務を通して身につけたシステム開発スキルと、個人として取り組んでいたアプリ開発技術の両方を活かしたキャリアアップのため、15年にデジタルマーケティングCMSソリューションの『Sitecore』を手掛けるネクストスケープに転職。現在、複数の開発チームを統括するマネジメントを担当

    モブ・プログラミングを試験的に導入してみたという、ネクストスケープの松永氏に話をきいた

    「チームの課題を全て解決できるかもしれない」モブ・プログラミングへの期待

    モブ・プログラミングという言葉は、2002年8月に刊行された書籍『Extreme Programming Perspectives』(Pearson Education)で始めて世に知れ渡った。

    そして日本でも注目を集めるきっかけになったのは、提唱者の1人であるWoody Zuill(ウディ・ズィール)氏が12年に『YouTube』に投稿した動画だった。

    松永氏もこの動画を見て具体的な手法や開発上のメリットなどを知り、大きな興味と関心を抱いたという。さらに、17年1月、『アジャイルコーチング』(オーム社)などの共著者であるRachel Davies(レイチェル・デイヴィス)氏のプレゼンを聞き、試験的に業務に導入する意思を固めたと話す。

    実際のモブ・プログラミングは、「ドライバー」と「ナビゲーター」という二つの役割に分担して行なわれる。実際に手を動かしてプログラミングを行なうのが「ドライバー」で、それ以外のメンバーは「ナビゲーター」としてアイデアや意見を発言しながらサポートを行なう。そしてドライバー役やナビゲーター役は一定時間で交代させていく。

    松永氏はまず、こうしたモブ・プログラミングの特性を理解した上で、次のような仮説を立てたという。

    【1】若手エンジニアにナレッジ共有ができるのでは?
    【2】開発チーム全員がその場にいることで、コミュニケーションが円滑化するのでは?
    【3】開発の初期フェーズで、開発チーム全員が取り組むべきタスクについて共通認識を持てるのでは?

    ネクストスケープ クラウド事業本部 コンサルティング&テクノロジー部 松永 聡氏

    「当社では4人の開発チームで試験的に導入してみたのですが、そのうち開発経験のあるメンバーが2人で、残り2人は未経験でした。未経験の2人のエンジニアができるだけ多くの知識やスキルを身に付けるというのも課題の1つでした」

    また、【2】【3】の仮説については、それまでに試験的に導入していたスクラム開発からその効果を予想していたという。

    「スクラム開発を導入した時に、スプリントの最初の日にスプリント計画ミーティングを行っていました。そこでメンバーが全員集まりタスク情報を共有することで、期間中もメンバーが活発にコミュニケーションを取れていました。モブ・プログラミングでも同じような効果が得られるのではないかと前向きに捉えていました」

    それでは、実際にチームへと導入した結果、どのような変化が得られたのだろうか。

    モブ・プログラミングを実際に導入してみて気付いたメリットと課題

    実際にモブ・プログラミングを導入してみて、前述した3つの仮説は全て正しかったと実感できたと松永氏は語る。さらに仮説に付随する形で新たな発見もあった。

    【1】リアルタイムで情報共有が可能な上、開発に疑問点が出た場合、その場ですぐに質問できる
    【2】開発の初期フェーズで課題に気付いた時、重要な意志決定を現場ですぐに下すことができる
    【3】第3者が常にチェックできる体制なので、すぐにミスに気付くことができ、修正作業が1度で済む

    「今までのようにメンバーが個々で開発を進めた場合、初期の段階で同じ障害にぶつかるケースでは、対応工数×メンバー数分だけ、工数がかかってしまいますし、初期段階のミスをあとから発見して訂正するのも影響範囲が広くなりがちで、結果的に工数がかかってしまいますその点モブ・プログラミングではミスを初期段階で発見しやすくなりますし、障害の対応は1回で済みます。結果として効率は上がっていると考えています」

    実際にモブ・プログラミングを導入したことで効果に対して確かな手応えを感じている一方で、その課題も浮かび上がったという。

    「実際にモブ・プログラミングを行なっているメンバーたちはその効率の良さを実感できますが、一見すると周りからは“非効率”なことをやっていると思われる可能性があると思います」

    どうやって社内の理解を得ていくのかが、モブ・プログラミングを導入する上での、大きな課題だと語る松永氏。そして導入の可否を決めるにあたり「チームの課題や目標によって、導入するかを検討するのがいい」という。では実際にモブ・プログラミングによる恩恵を受けられるのは、どういったチームなのだろうか?

    「初期フェーズのみ」の導入で開発が見違えるほどスムーズになる

    モブ・プログラミングの導入を考えた時、まずメンバー同士の仲が良いことが条件だと松永氏は語る。

    「日頃から円滑にコミュニケーションを取れているチームなら大丈夫ですが、メンバー同士の仲が悪いと同じ画面を見ているだけでもつらいですからね(笑)。ただ、日本人はスポーツなどでも“個人戦”よりも“団体戦”や“チーム戦”が得意な傾向があると思います。最初から風通しの良さがあるチームなら、恩恵はしっかり受けられると思いますよ」

    松永氏は上記で述べたモブ・プログラミングのメリットを鑑みて、「開発初期段階だけ」など、まずは期間を決めてモブ・プログラミングを導入してみることで、その効果を最大限に実感できるのではないかと語る。

    「開発の初期フェーズでは、しっかり情報共有ができていないとミスやエラーにつながってしまい、工数が増えてしまう。そこで初期フェーズだけモブ・プロプログラミングを導入してみることで、その後の開発が見違えるほどスムーズになるかもしれません」

    また松永氏は、チーム全員で1つのシステム、1つのプロダクト開発に責任を持って取り組んでいるという自覚が生まれる点も特筆すべきだと付け足した。

    チームで開発を行う上で、メンバー全員が同じレベルの知識やスキルを持っているわけではない。しかし1度でもモブ・プログラミングを経験すれば、これまで気付かなかったヒントや、知識、スキルを身に付ける大きなチャンスにもなる。生産性やスキル格差に課題を抱えるチームであれば、一度試す価値があるだろう。

    取材・文/浦野孝嗣 撮影/羽田智行(編集部)

    Xをフォローしよう

    この記事をシェア

    RELATED関連記事

    RANKING人気記事ランキング

    JOB BOARD編集部オススメ求人特集





    サイトマップ