これは モブプログラミング Advent Calendar 2018 20日目の記事です。
19日の記事は、こちらです。
今日は、転職したその日からモブプログラミングを経験しアウトプットした事例のお話です。
はじめに
Advent Calendar 初めて書きます。
なぜ書こうと思ったかは後押しされた理由が2つあります。
Advent Calendarはやったことあるかないかや、エキスパートであるかどうかに関係なく、この流れに乗ってアウトプットするぜっていう勢いがすべてだと個人的には思っております。せっかくなのでモブで記事を書いてみてはいかがでしょうか(ネタ提供)?
勢いがすべて!!ということで、勢いで書いてみます。
概要
- 未経験な技術でも、モブプログラミングでアウトプットができた。
- 他の方の作業を見てプロジェクトの理解が深まった。
- プロジェクトの新規メンバアサイン時にモブプログラミングを導入した。
- そして、モブプログラミングでチームが一緒に楽しく仕事することができている。
背景
転職してとあるプロジェクトに参画することになりました。このプロジェクトでは、 Scrumを採用し2週間のスプリントの途中でした。私と同じタイミングで3名が追加されていました。
私はプロジェクトで利用する技術はほぼ未経験でした。そして、Scrum やペアプログラミング、モブプログラミングも経験がありませんでした。
転職初日
会社の概要説明などを受けたあと、チームメンバへの紹介やプロジェクトの概要説明が終わり、いざ作業しようとしていました。
それまでは2名がペアプログラミングでの開発をしていました。私を含め3名が追加され、合計 5名でモブプログラミングがスタートしていきました。
その時の印象はこんな感じです。
メンバーA:『じゃあ、みんなでモブプログラミングやっていきましょう』
私:『(?モブプログラミング?ペア?ではなく?)』
『モブプログラミングってなんですか?』
メンバーA:『モブプログラミングっていうのは…』
~~~
私:『(なるほど、みんなで同じ作業を進めるのか。なんだか面白そう。)』
メンバーA:『 では、Mobster 使って時間区切ってやっていきましょう!じゃあ、Bさんナビ、Cさんドライバーでお願いします。』
~~~
ワイワイガヤガヤ。
~~~
私:『(でも、みんなが同じ作業だとアウトプット量は…。。。)』
『(!!!今のショートカットどうやってやったんだろう?)』
『すみません、今のどうやってやったんですか?』
メンバーC:『それは、↑↑↓↓←→←→BA です。』
私:『へぇ、すごい!!』
~~~
メンバーD:『じゃあ @lamatsujun さん、ドライバーです。 』
私:『は、はい。』
目の前にはキーボードとマウス、大きなディスプレイが立ちはだかる。。。
~~~
と、こんな流れでモブプログラミングでプロジェクトへ参画していきました。
※実際には、もっと丁寧に教えて頂いたかもしれませんが、個人の印象です。
私達のやり方とモブプログラミング環境
チームでのモブプログラミングのルールは下記の通りシンプルです。
- 1ターンは 10分間
- 役割は、ナビ、ドライバー、残りはモバー
- ターンが終われば役割は順次交代
- 全員の作業が終われば 10分間の休憩
計画、設計、開発、テスト、ドキュメント作成に至るまで全ての作業で採用しています。開発環境はディスプレイが3つ(55, 49, 27インチ)で十分すぎるほどです。キーボード、マウスは、1つずつでスタートし、だんだん増えていき、現在は 1人に1つずつ(5キーボード、5マウス)あります。そして、チームの周りにホワイトボードがたくさんあり議論のときはすぐにそれを利用します。
前述の通りプロジェクトでは Scrum を採用し1スプリント2週間で作業しています。新規メンバ3名が追加され、モブプログラミングが始まったわけですが、当然ベロシティは変化していきました。
ベロシティの変化
さて、新規メンバ3名が参入しモブプログラミングを始めたチームなのですが、ベロシティがどうなったのか、下記の図をお示しします。
一般的に新規メンバがアサインされれば、教育コストが発生しベロシティは低下します。その後緩やかに上昇していくのが通常だと思います。私達のプロジェクトの場合、結果どうなっかというと…。
ベロシティはさほど低下せずに、その後のスプリントでは速やかに上昇していきました。そして、2スプリント後には、計画以上のストーリーポイントを消化することができました。これは偏にモブプログラミングのおかげです。複数の異なるスキルを持ち合わせたメンバ同士が、個々のスキルを結集した結果をアウトプットし続けた結果でした。
おわりに
モブプログラミングの実績を紹介しました。好き嫌いがあるかもしれませんが、私にはすごく合いました。また、ベロシティを見て頂いた通り、プロジェクト新規メンバへの共有には有用だと感じています。
個々が持っている経験からの最適な進め方や、効率化の手法などをまとめて知ることができます。議論では異なる考え方や観点を知り視野が広がり、一緒にメンバーの開発や設計に関するスタンスもわかります。もちろんみんなが一緒に作業をするので、協力し、共創する姿勢が大切です。
いろいろと書きましたが、モブプログラミングで大事なのは楽しく仕事をできていることだと思います。これが、私が合っていると思う最大の理由かもしれません。
(初めて Advent Calendar やってみましたが、やってみるものですね!)
21日目は
モブプログラミング Advent Calendar 2018 21日目は @huideyeren さん です!