チーム全員が1台のPCを共有するというモブ・プログラミングの実態。転職ノウハウ転職・求人情報サイトのtypeエンジニアtypeキャリアチーム全員が1台のPCを共有するというモブ・プログラミングの実態。Vol.586チーム全員が1台のPCを共有するというモブ・プログラミングの実態。Vol.5】2017.05.18TwitterLINEFacebookHatena【連載】バズワードから紐解くエンジニアのキャリアIT業界で注目される次世代技術は、常に“バズワード化”する。この連載は、そんなバズワードの1つにフォーカスして現役SEをはじめとするエンジニアがめざすキャリアと将来展望について考察していく。VRやAI、IoT、Chatbotなどをピックアップしてきたこの連載で今回フォーカスするのは「モブ・プログラミング」だ。1つの端末を共有して2人でディスカッションしながら開発を進める「ペア・プログラミング」はよく知られているが、「モブ・プログラミング」では原則3人以上の開発チーム全員が1カ所に集まり、ディスプレイやモニターに映し出されたソースコードを見ながら開発を進めるという。普及しているとは言いがたい「モブ・プログラミング」だが、今回取材に応じてくれたネクストスケープでは、試験的に業務に導入したという。マネジャーとしてチームを指揮する松永聡氏に、その可能性やエンジニアにもたらす変化などについて聞いた。聡(まつなが・さとし)氏大学卒業後、SIerに就職してJavaScriptを用いたBtoB分野向け基幹システムの開発などに従事。業務を通して身につけたシステム開発スキルと、個人として取り組んでいたアプリ開発技術の両方を活かしたキャリアアップのため、15年にデジタルマーケティングCMSソリューションの『Sitecore』を手掛けるネクストスケープに転職。Education)で始めて世に知れ渡った。Zuill(ウディ・ズィール)氏が12年に『YouTube』に投稿した動画だった。松永氏もこの動画を見て具体的な手法や開発上のメリットなどを知り、大きな興味と関心を抱いたという。Davies(レイチェル・デイヴィス)氏のプレゼンを聞き、試験的に業務に導入する意思を固めたと話す。実際のモブ・プログラミングは、「ドライバー」と「ナビゲーター」という二つの役割に分担して行なわれる。実際に手を動かしてプログラミングを行なうのが「ドライバー」で、それ以外のメンバーは「ナビゲーター」としてアイデアや意見を発言しながらサポートを行なう。ドライバー役やナビゲーター役は一定時間で交代させていく。松永氏はまず、こうしたモブ・プログラミングの特性を理解した上で、次のような仮説を立てたという。【1】若手エンジニアにナレッジ共有ができるのでは?【2】開発チーム全員がその場にいることで、コミュニケーションが円滑化するのでは?【3】開発の初期フェーズで、開発チーム全員が取り組むべきタスクについて共通認識を持てるのでは?「当社では4人の開発チームで試験的に導入してみたのですが、そのうち開発経験のあるメンバーが2人で、残り2人は未経験でした。未経験の2人のエンジニアができるだけ多くの知識やスキルを身に付けるというのも課題の1つでした」また、【2】【3】の仮説については、それまでに試験的に導入していたスクラム開発からその効果を予想していたという。「スクラム開発を導入した時に、スプリントの最初の日にスプリント計画ミーティングを行っていました。そこでメンバーが全員集まりタスク情報を共有することで、期間中もメンバーが活発にコミュニケーションを取れていました。モブ・プログラミングでも同じような効果が得られるのではないかと前向きに捉えていました」それでは、実際にチームへと導入した結果、どのような変化が得られたのだろうか。実際にモブ・プログラミングを導入してみて、前述した3つの仮説は全て正しかったと実感できたと松永氏は語る。仮説に付随する形で新たな発見もあった。【1】リアルタイムで情報共有が可能な上、開発に疑問点が出た場合、その場ですぐに質問できる【2】開発の初期フェーズで課題に気付いた時、重要な意志決定を現場ですぐに下すことができる【3】第3者が常にチェックできる体制なので、すぐにミスに気付くことができ、修正作業が1度で済む「今までのようにメンバーが個々で開発を進めた場合、初期の段階で同じ障害にぶつかるケースでは、対応工数×メンバー数分だけ、工数がかかってしまいますし、初期段階のミスをあとから発見して訂正するのも影響範囲が広くなりがちで、結果的に工数がかかってしまいますその点モブ・プログラミングではミスを初期段階で発見しやすくなりますし、障害の対応は1回で済みます。実際にモブ・プログラミングを導入したことで効果に対して確かな手応えを感じている一方で、その課題も浮かび上がったという。「実際にモブ・プログラミングを行なっているメンバーたちはその効率の良さを実感できますが、一見すると周りからは“非効率”なことをやっていると思われる可能性があると思います」どうやって社内の理解を得ていくのかが、モブ・プログラミングを導入する上での、大きな課題だと語る松永氏。導入の可否を決めるにあたり「チームの課題や目標によって、導入するかを検討するのがいい」という。実際にモブ・プログラミングによる恩恵を受けられるのは、どういったチームなのだろうか?「初期フェーズのみ」の導入で開発が見違えるほどスムーズになるモブ・プログラミングの導入を考えた時、まずメンバー同士の仲が良いことが条件だと松永氏は語る。「日頃から円滑にコミュニケーションを取れているチームなら大丈夫ですが、メンバー同士の仲が悪いと同じ画面を見ているだけでもつらいですからね(笑)。日本人はスポーツなどでも“個人戦”よりも“団体戦”や“チーム戦”が得意な傾向があると思います。松永氏は上記で述べたモブ・プログラミングのメリットを鑑みて、「開発初期段階だけ」など、まずは期間を決めてモブ・プログラミングを導入してみることで、その効果を最大限に実感できるのではないかと語る。「開発の初期フェーズでは、しっかり情報共有ができていないとミスやエラーにつながってしまい、工数が増えてしまう。そこで初期フェーズだけモブ・プロプログラミングを導入してみることで、その後の開発が見違えるほどスムーズになるかもしれません」また松永氏は、チーム全員で1つのシステム、1つのプロダクト開発に責任を持って取り組んでいるという自覚が生まれる点も特筆すべきだと付け足した。チームで開発を行う上で、メンバー全員が同じレベルの知識やスキルを持っているわけではない。1度でもモブ・プログラミングを経験すれば、これまで気付かなかったヒントや、知識、スキルを身に付ける大きなチャンスにもなる。生産性やスキル格差に課題を抱えるチームであれば、一度試す価値があるだろう。人気企業3社が本...英文メールでよく見る「略語」の意味は?アメリカ&シンガポール...チーム全員が1台のPCを共有するというモブ・プログラミングの実態。転職サイトtypeは株式会社キャリアデザインセンターによって運営されています。