サイボウズが持つ「実況」文化が、モブプログラミングを後押ししている
モブプログラミングとは、複数人でグループを組んで一緒にプログラムを開発する手法のことだ。
メンバーには2種類の役割がある。ひとつは「ドライバー」と呼ばれる役割で、実際にパソコンに触ってコードを書く。これは1名のみが担当する。それ以外のメンバーは全員、「ナビゲーター」という役割になる。ドライバーが書いているコードに対し、意見を言う人々だ。15分ほどのサイクルで、各メンバーが順番にドライバー役になっていく。
モブプログラミングを実施することで、特定のメンバーが持つ知識やノウハウがグループに共有されるため、参加者全員のスキルレベルが向上するメリットがある。
「基本的にモブプログラミングは同じ場所にグループ全員が集まり、意見を出し合いながら進める手法です。けれど、これもリモートで実施することは難しくないと思っています。テレビ会議を用いて複数拠点のメンバーが同士が話せる状態にしておき、かつ画面共有で同じ画面を見られるようにしておけばいいのです」
だが、必ずしも全てのメンバーが初めから終わりまでモブプログラミングに参加できるわけではない。時間的制約があるケースも多いリモートのメンバーは、途中で離脱してしまうこともあるだろう。どのような形で、欠落した箇所の知識を補完するのだろうか。そこで役に立ってくるのが、非同期のコミュニケーションだ。
「サイボウズには『実況』の文化があります。これは何かというと、社員が勉強会や会議などをkintone上でリアルタイムに実況するんですね。スレッド上に、会議のやり取りがどんどん流れていきます。この文化があるため、モブプログラミングでナビゲーターが発言した内容も、必ず誰かがテキストで残します。書き込みを後から見返すことで、どんなやり取りがあったのかを理解できるのです」
この文化は副次的なメリットを発生させている。ログが残ることが前提となっているため、参加者が途中で休憩をとりやすくなるのだ。モブプログラミングにおいても、同期・非同期のコミュニケーションをうまく組み合わせることが成功の秘訣と言えそうだ。
最後に、リモート開発におけるモブプログラミングのメリットを、岡田氏はこう総括した。
「まず、拠点をまたいだ新人育成や属人性の排除が可能になります。例えば、東京では研修の方法が確立されているのに別拠点では研修が整備されておらず、研修期間だけ東京出張に行くことは多いと思います。リモートでモブプログラミングをすればこの課題はかなり解消されます。また、特定のメンバーだけが持つスキルや特定の拠点にしかないプロジェクトを、複数の拠点で共有することが可能になります」
さらに岡田氏は個人的に重要だと思うこととして「情報格差の解消」を挙げた。
「例えば同じ拠点にいると、ちょっと廊下ですれ違ったときに『ねえ、知ってる? 実はこの間……』と気軽に情報交換できます。ですが、拠点が離れるとどうしてもそういった話題が入ってこない。リモート上で密なコミュニケーションをとる機会を設けることで、情報格差はかなり解消されます」
一般的に、スクラムやモブプログラミングといった手法はリモート開発には不向きだとされる。しかし、サイボウズは先入観にとらわれず、創意工夫を凝らしながらこれらを成功させていた。その裏側を支えるのは、何よりも「働き方の多様性」に向き合い続ける同社の姿勢そのものなのだろう。
お問い合わせ
サイボウズ株式会社