忘れる前に走り書き的にメモ。
## Day0 実験の場をゲット!
とあるチームのテックリードから「助けて欲しい」という相談があった。話を聞くと、プロジェクトが遅れている状況で、まだ大きく分けて3つの技術的課題が残ってて、でも、チームはその技術にあまり詳しくないので先が見えなくて不安。ということみたい。
チームの構成は、プロダクトオーナー、テックリード、エンジニア2人の4人チーム。開発手法にはスクラムを採用してる。スプリント期間は2週間。
「いいよー。水曜から金曜の3日間だけなら手伝えるし、それで不安は解決できると思う。スプリントはその間は止めようかな」と言いながら、折角だから実験させてもらおうかなと思い、条件を出した。「この3日間は全員がこの課題解決を最優先すること」それから「僕の好きにやらせてもらうねー」。
実験してみたかったのは、別々に作業するのと一緒に作業するのとではどっちがどうなんだろうなってのと、一緒に作業するのも色んなやり方を試してみたいな。ということ。
ということで、そのチームに3日間だけエンジニアの1人として参加することになった。チームは東京にいるので、僕は大阪からリモートで参加。
## Day1 ソロワークからペアワーク、そしてモブワーク1
### Sprint1 9:00-11:00
9:00-9:15 計画
エンジニア4人でZoomに集まって「どう進めよっか?普段だったらどうする?」って聞いたら「時間がないので、それぞれのメンバーが別々に課題を担当して並行で進めると思う」ということだったので「分かるー。じゃあ、折角だから今回は全員でやってみようか?まずは、一番不安だって言ってる課題1を僕ら4人で潰してみよう?」と話をした。
チームで相談した結果、課題1を5,6個のタスクに分割して、それぞれが好きなものを取って進めることにした。「んー、でも今日の夕方とかじゃ遠すぎるから11時頃にまた集まろうか」と、2時間スプリントが突然始まった。
9:30-11:00 ソロワーク
それぞれが、チャットツールで「僕はこのタスクをやりまーす」みたいに宣言して作業。
11:00-11:30 レビュー・ふりかえり・再計画
レビューでは、お互いにタスクの状況を共有。
ふりかえりは「思ったように進まなかった」という内容。次のスプリントに向けて、1つのアクションアイテムを出すことにした。全員で取り組んではいるけど、結局バラバラで作業をしてしまってるから、相談できるようにペアワークをしてみよう。
そして、現在の状況を元に再計画をして、午後の2時間の目標を立てた。
### Sprint2 13:00-15:00
13:00-14:30 ペアワーク
2つのペアに分かれて作業。状況は常にチャットツールに流しておく。ペアでタスクを担当して、2人で一緒に調査したり、細かい部分は別々に調査をして30分後にまた情報交換をしよう、みたいにして進めた。
14:30-15:00 レビュー・ふりかえり・再計画
レビューではペア同士の情報を交換。
ふりかえりは「進んでる感がある」。アクションは、次のスプリントはチームリードが会議で不在になるので「じゃ、3人でモブワークしようか」となった。
そして、現在の状況を元に再計画をして、次の目標を立てた。
### Sprint3 15:00-17:00
15:00-16:30 モブワーク
3人で1つの画面を共有しながら、ペアワークのときみたいに、3人で一緒に調査したり、細かい部分は別々に調査をして30分後にまた情報交換をしよう、みたいにして進めた。
16:30-17:00 レビュー・ふりかえり・再計画
会議から戻ってきたテックリードに内容を共有して、今日1日のふりかえりをFunDoneLearnでやって、再計画をして明日の目標を立てた。スピード感がある、進んだ、先が見えて不安が減りつつある、という意見が出た。
### 放課後
「2時間スプリントを3回やったからぐったりしてる」ってつぶやいたら「2回で十分だよ」とか「学習セッションやるのも良さそう!」とかの意見をもらった。ふむふむ。
## Day2 プロダクトオーナーの不安解消と学習セッションの開始
この日からプロダクトオーナーに各スプリントの「レビュー・ふりかえり・再計画」に参加してもらうことにした。
### Sprint0 9:00-10:00
最初の1時間は、プロジェクトのことを忘れて、みんなで知りたいことを学習する時間にしてみよう。と提案をして、みんなでシステムの勉強をした。
### Sprint1 10:00-12:00
Day1とはペアを変えて、ペア作業。ふりかえりからのアクションで「ペア作業は疲れるからあいだで休憩をとろう」。
### Sprint2 13:00-15:00
ペア作業をしながら「別々に調査するほうがはやいと思ってやってたけど、その情報を30分後にお互いに共有ってなんか時間の無駄じゃない?」ってなって「ずっと画面共有して同じことを調査して、たまに別の画面で調査してもいいけど、基本的には常につなぎっぱなしにしてみない?」ってやってみたら、共有の時間がなくなって快適になった。
### Sprint3 15:30-17:30
このスプリントは調査でハマってあんまり成果がでなかったなぁ。再計画で、課題1を完全に解決するより先に、課題2を先に見た方が良さそうってなった。
でも、プロダクトオーナーはふりかえりで「色々見えるようになったのが良かった。みんなが何に悩んでて、それがどう難しくて、どういう風にそれに対応しようとしているのか、その結果を受けての再計画をどうしているか、が見えるようになって良かった」って言ってた。
それと、学習セッションは良いから続けようってなった。
それと、2時間スプリントx3は、今回は3日間限定だから大丈夫だけど、これを日常でやるのはつらい、持続可能ではないねってなった。
## Day3 モブワーク2と課題解決
### Sprint0 9:00-10:00
学習セッション。プロジェクトのことを忘れて学習しようよーって言ったのにみんな「次のスプリントでやるこの技術の部分、ちょっと調べておきたい」みたいに言って、まぁそれもいいねーって笑いながら全員で調べたりしてた。
### Sprint1 10:00-11:30
学習セッションで全員で調べてた流れで「これ良くない?このまま進めてみようか」って突然のモブワーク。Day1のSprint3でやったモブと違うのは、もう「別々に作業して後で内容を共有しよう」というのはやめた、ということ。全員で画面を見ながら「あ!それならこういう方法があるよ?」とか言いながら一つずつ問題を潰していった。
ここで課題2はあっさり解決した。
そして、レビューしようとしたら「あれ?全部知ってるから何も共有することがないね?」ってなってさくっとふりかえりと再計画をして終わった。
### Sprint2 13:00-15:00
課題3にモブで取り組んだ。途中でテックリードが抜けて戻ってきたけど、その間も普通に作業は続いた。課題3もここで解決して、課題1の残りに着手。
### Sprint3 15:30-17:30
課題1の残りや、課題2,3で問題はないんだけど気になっていた部分を全員でチェックして終わった。僕は僕で興味があることがあったので、チームのZoomはそのままにして会話をしてもらいながら、横で違う部分を調査してた。ら、会話の中で「あ、それ、以前に調べたよ」みたいなのが出てきたので話に参加したりしてた。
結果としては、3つの課題が全て解決した。ふりかえりでは、安心した、自分が知らないことをみんなも知らないってことが分かって相談して良いんだと思った、モブでやったので結果だけじゃなくて調べ方もその試行錯誤も一緒に経験することができて良かった、良い週末を過ごせそう。って意見が出て楽しかった。
来週の月曜日にこの3日間全体のふりかえりと、プロジェクトの再計画をすることになっている。
## 個人的なふりかえり
今回はやりたいことが技術調査だったので特に、2時間スプリントという短いスプリントはうまく動いた。というのも、調査の結果や進捗を見て頻繁に再計画をする必要があったから。
1アクションアイテムのふりかえりは、細かい実験をすることができるので良かった。
学習セッションも良かった。プロジェクトのことを忘れて立ち止まるというのは普段やってないんだなって思った。気になっていることや技術の学習をできるので、結果としてはプロジェクトの細かい部分の不安を消すことができると感じる。
2時間スプリントを3回というのは体力的に無理。体が重くて家に帰るのが大変だった。その代わりに試してみたいのは全員同席のモブワーク。今回は僕がリモートで参加してるから「気軽に離席する」というのが難しかったかなと思う。でも、全員がその場にいてモブワークしてたら、気軽にコーヒーを買いに行ったり、休憩したり、別のことを少し調べたり、もう少しゆったりとしたペースでできるんじゃないかなと思ってる。
モブワークをしてて良かったのは、結果だけじゃなくて過程の経験を共有できていること。もし全員がバラバラに課題の調査をしていたら、自分が担当したもの以外は不安に思っていただろうし、テックリードもその内容をレビューしたいと思っていただろうと思う。だけど、今回は全員が同じ経験をしているので、全員が3つの課題全てに対して安心感を持っている。
楽しかった!