CodeZine(コードジン)

特集ページ一覧

リモートでのスクラム・モブプロを成功させる秘訣は? サイボウズの実践事例に学ぶ【デブサミ2018 福岡】

【B-7】拠点をまたいだリモートスクラム・リモートモブプロ実践事例

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2018/09/27 14:00

 リモート開発とは、メンバーの一部が離れた場所(別拠点や在宅など)で開発をすることだ。「サイボウズOffice」や「kintone」などの製品を開発・提供するサイボウズ株式会社では、企業として積極的にこの働き方を推進してきた。一般的に、成功の難易度が高いと考えられているリモート開発だが、同社はどんな方法を用いてその運用を行っているのか。エンジニアマネージャーとして組織マネジメントに取り組みつつ、福岡や広島での開発拠点立ち上げを目指して活動している岡田勇樹氏が、その秘訣を語った。

サイボウズ株式会社 グローバル開発本部 副本部長 兼 西日本開発部 部長 岡田勇樹氏
サイボウズ株式会社 グローバル開発本部 副本部長 兼 西日本開発部 部長 岡田勇樹氏

同期・非同期コミュニケーションをうまく使い分けるのが、リモートスクラム成功のコツ

 リモート開発を導入する企業は徐々に増えてきている。これは、社会全体の傾向を見ても不可逆な流れであることは間違いない。日本国内では少子化のため労働人口は減少しつつある。企業が何も対策をとらなければ、労働者を雇用できなくなり、ひいては会社を縮小させることにつながってしまう。

 また、それ以外にもリモート開発には数多くの利点がある。「災害時に交通機関がストップしても業務を継続できる」「メンバーが最も集中できる環境で仕事に取り組める」など、枚挙にいとまがない。

 ただし、この開発体制を取り入れるには、解決しなければならない課題がある。スクラムやモブプログラミングなどの手法は、基本的に全メンバーが同じ場所に集まることを前提としたプラクティスだ。だが、リモートの場合は「同じ場所にいないことを前提に、どううまく機能させるか」を考えなければならないのだ。サイボウズではどんな点を工夫しているのだろうか。

 「リモート開発で重要になってくるのは、同期・非同期コミュニケーションの使い分けです。前者は例えば、電話やSlack、LINEなどのチャットツール。後者はメールや情報共有ツールなどがそれにあたります。各拠点は物理的な距離がありますし、住んでいる国が違って時差があるケースだってあるかもしれません。だからこそ、情報を送信・受信するタイミングに制約のない非同期的な方法も有効活用しつつ、コミュニケーションをとっていく必要があるのです」

 コミュニケーション方法を適切に使い分ければ、リモート開発でスクラムを実施することは決して難しくないという。では、スクラムの各イベントを、サイボウズではどのような方法で実施しているのだろうか。岡田氏は順に解説した。

 まず、リファインメントは基本的に全てテレビ会議で行う。この際に重要なのは、なるべく少人数で開催することだという。参加者が多いとどうしてもコミュニケーションパスが増えてしまい難易度が高くなり、テレビ会議ではその傾向がさらに顕著だからだ。また、非同期コミュニケーションの活用として、話した内容を議事録としてオンライン上に残し、全員が後から見られる状態にしておくことも重要だ。

 次にプランニング。こちらもテレビ会議で行う。サイボウズでは物理的なかんばんとオンライン上のかんばんの2つでタスクを管理しており、会議中は物理的なかんばんを使ってタスクを整理し、会議終了後にオンライン側のかんばんにも同じ内容を反映させている。

 デイリースクラムは、物理的なかんばんをテレビ会議のカメラで映しながら開催する。必要に応じて、オンライン上のかんばんを画面共有機能で映すケースもあるという。会議が終了したタイミングで、物理的なかんばんとオンライン上のかんばん、どちらかのタスクが先に進んでいる状態になるので、内容を同期する。

リモートスクラム成功の秘訣
リモートスクラム成功の秘訣

 スクラムの全イベントについての言及は本記事では割愛するが、いずれのイベントにおいても重要なのは「オンライン・オフラインの両方で同じ情報を共有すること」「会議で話された内容を非同期的に確認できるようにしておくこと」だ。どの拠点にいるメンバーでも同一の情報を享受できることが、スクラム成功の鍵といえる。

サイボウズが持つ「実況」文化が、モブプログラミングを後押ししている

 モブプログラミングとは、複数人でグループを組んで一緒にプログラムを開発する手法のことだ。

 メンバーには2種類の役割がある。ひとつは「ドライバー」と呼ばれる役割で、実際にパソコンに触ってコードを書く。これは1名のみが担当する。それ以外のメンバーは全員、「ナビゲーター」という役割になる。ドライバーが書いているコードに対し、意見を言う人々だ。15分ほどのサイクルで、各メンバーが順番にドライバー役になっていく。

 モブプログラミングを実施することで、特定のメンバーが持つ知識やノウハウがグループに共有されるため、参加者全員のスキルレベルが向上するメリットがある。

モブプロの利点
モブプロの利点

 「基本的にモブプログラミングは同じ場所にグループ全員が集まり、意見を出し合いながら進める手法です。けれど、これもリモートで実施することは難しくないと思っています。テレビ会議を用いて複数拠点のメンバーが同士が話せる状態にしておき、かつ画面共有で同じ画面を見られるようにしておけばいいのです」

 だが、必ずしも全てのメンバーが初めから終わりまでモブプログラミングに参加できるわけではない。時間的制約があるケースも多いリモートのメンバーは、途中で離脱してしまうこともあるだろう。どのような形で、欠落した箇所の知識を補完するのだろうか。そこで役に立ってくるのが、非同期のコミュニケーションだ。

 「サイボウズには『実況』の文化があります。これは何かというと、社員が勉強会や会議などをkintone上でリアルタイムに実況するんですね。スレッド上に、会議のやり取りがどんどん流れていきます。この文化があるため、モブプログラミングでナビゲーターが発言した内容も、必ず誰かがテキストで残します。書き込みを後から見返すことで、どんなやり取りがあったのかを理解できるのです」

 この文化は副次的なメリットを発生させている。ログが残ることが前提となっているため、参加者が途中で休憩をとりやすくなるのだ。モブプログラミングにおいても、同期・非同期のコミュニケーションをうまく組み合わせることが成功の秘訣と言えそうだ。

 最後に、リモート開発におけるモブプログラミングのメリットを、岡田氏はこう総括した。

 「まず、拠点をまたいだ新人育成や属人性の排除が可能になります。例えば、東京では研修の方法が確立されているのに別拠点では研修が整備されておらず、研修期間だけ東京出張に行くことは多いと思います。リモートでモブプログラミングをすればこの課題はかなり解消されます。また、特定のメンバーだけが持つスキルや特定の拠点にしかないプロジェクトを、複数の拠点で共有することが可能になります」

 さらに岡田氏は個人的に重要だと思うこととして「情報格差の解消」を挙げた。

 「例えば同じ拠点にいると、ちょっと廊下ですれ違ったときに『ねえ、知ってる? 実はこの間……』と気軽に情報交換できます。ですが、拠点が離れるとどうしてもそういった話題が入ってこない。リモート上で密なコミュニケーションをとる機会を設けることで、情報格差はかなり解消されます」

 一般的に、スクラムやモブプログラミングといった手法はリモート開発には不向きだとされる。しかし、サイボウズは先入観にとらわれず、創意工夫を凝らしながらこれらを成功させていた。その裏側を支えるのは、何よりも「働き方の多様性」に向き合い続ける同社の姿勢そのものなのだろう。

お問い合わせ

 サイボウズ株式会社

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5