「チームで力を合わせる」のにモブワークって向いているのではないかと思った

ファームノート札幌事務所のメンバーで構成されているteamSでの仕事のすすめかた、一般的にはモブワークと呼ばれていそうなやり方を同僚の秋山ウテさんが記事にしてくれた。自分たちが普段は意識せず無意識下でやっていたところもインタビューでは言語化を通じて意識の元に出していけ、よりチーム内での理解が深まった。ありがたい。

ウテさんは、エンジニアやモブワークに馴染みが少ない読者に対して、この働き方だとどういう利点が得られるのかというのを、チーム外から観測して読者に想像しやすい事例であるモブプログラミングを通じて論理立てて説明可能な記事にしてくれた。

同じチームのmohyaさん、iakioさんもモブワークについて着目した記事を書いてくれた。私も一度雑感を書き出したことがある。

なんで二度目の記事を書こうとしてるの

みんなの記事を読んでまだ私にも書けそうなことがあったから。これはみんなの記事を読んで考えが深まった、時間が経ってさらに気づいたことがあったといった要素によるものだ。

みんながおもしろい記事を書いていて悔しくなったから。私も最初よりいいやつを楽しく書けるはずだ。

記事を書いている私

ウテさんの記事でいうところの

エンジニアの北村さん提案で”モブプログラミング”を始めた

の北村さんであり、mohyaさんの記事でいうところの

同じチームで一緒に作業をしている肉さん

でもある。チームメンバーに「皆で同じことをやってみよう」と誘ってみたのは私だ。

「力を合わせる」ってどういうこと?特に知識労働で

現在のチーム編成になる前、私は別のチームにいた。そこでは私ともう一人が同じ場所、別の一人がリモート、計三人で働いていた。

そのチームの担当領域で、稀に意図しない挙動になるのだけれど、再現が困難で原因も掴めずに悩んでいたバグがあった。幸いなことにバグがおきたときの対処は容易だったのと、対処の優先度が低いものだったため、バグがおきたときには手動で正常な状態へと修正していた。

あるときリモートのメンバーが出張で同じ場所へとやってきた。何がきっかけだったか忘れたが、悩みのバグについて取り組んでみようということになった。これまで何度取り組んでみてもうまくいくことはなかったので、正直なところ私はそのときも期待していなかった。いつもと違うのは複数のメンバーが同じ場所にいて、同じ時間、画面やホワイトボードを同期的に見るということだけだ。

しかし驚くべきことにこれまで何度か取り組んで解決できなかったバグが、この方式で1-2時間取り組んだところ解決してしまったのだ。簡潔で解決が容易だと思ったものが実は複雑で困難なケース、複雑で解決が困難だと思ったものが実は簡潔で容易だったケースというのは、これまでもあった。しかし複雑で解決が困難だと予想し、事実もその通りだったのに、予測に反して短時間で解決できてしまったケースは初めての経験だった。三人それぞれの意見や考察を持ち寄って話していたら解決してしまったのだ。誤解のないように言っておくとそれまでもみんなで同じ仕事をすることは断片的にはあったが成果は予想を超えることはなかった。予想以上に凄くうまくいったことが初めてだったのだ。

私は偶然得られたこの体験に本当に驚いた。それまでも力を合わせて仕事をしてきたつもりだったけれど、知識労働の領域で力を合わせて仕事をするというのは、もしかしたらこういうやり方が有効なこともままあるのではないかと思った。

私たちのチームにモブワークを提案した理由

私たちのチームTeamSが発足した当初は、よくある働きかたと同様にそれぞれが別のタスクに取り組んでいた。しかし私たちのチームが取り組んでいる領域はFarmnote発足から5年近く一緒に頑張ってきたコードにより構成されており、お客様に価値をお届けしお金をいただけている源泉になっている一方で、今となっては様々な理由によって読み書きがだいぶん辛くなっていた。もちろん当時読み書きしやすいようにできる限りの努力をしていたことは疑うべくもないけれど、現在辛いと感じるのもまた事実だ。

コードを読み書きするのが辛いと感じるのは感情であって説明可能な論理ではない。とはいえそれなりによい経験を積んだプログラマが辛いと感じるということは、コードに何らかの危険信号が潜んでいると考えてもよいだろう。その危険性を顕在化させないように細心の注意を払ってコードを書いていくのは可能ではあるものの孤独で困難で時間がかかる作業であった。もちろん困っているときに助けを求めればチームメンバーが集まってきて複数の目と手と頭と口を持ち寄って状況を解決してくれるが、それは時限的なもので特定の状況が解決すればまたそれぞれの作業へと戻っていく。

「困っているときに助けを求めれば」というところに着目してほしい。もし止むをえず、ずっと困る状況に置かれ続けるなら、ずっとチームメンバーに助けを求め続けるということをすればいいのではないかと思いついた。そのときに前述した成功体験のことを思い出し、同じ場所にいて、同じ時間、画面やホワイトボードを同期的に見続けるというのが、チームが直面している状況に向いた作業方法なのではないかと考え提案した。

私たちと私たちを取り巻くひとたちたまたまモブワークに向いていたのかもしれない

実際に取り入れてやってみたところ、特筆するような苦労はなく、凄くうまくいった。自身の孤独や不安を解消できないままコードに取り組み続けるということはなくなったし、難しいコードの進捗はでるし、コーディング以外の改善活動にも精力的に取り組むチームになったと感じている。チーム外からどう見えているかについては判断を保留するが、今のところネガティブなフィードバックは受けとっていない。

その後モブワークの本や記事を読むと、最初はそれなりに苦労することが多いようだが、私たちは苦労しなかった。しかしそれはTeamSのメンバーがモブワークする能力が高かったということだけを意味するわけではない。それは一要素にすぎなくて、当初から快適にモブワークしやすい環境が用意されていたこと、またその環境に改善したいところが出たら要望を受けて短いスパンで解決してくれたバックオフィス、やりたいことを明示してやり方はチームに一任してくれていたマネージャー、といったチーム外の要素も重なった結果だろうと思う。私はTeamSのメンバーに誇りを感じるのと同時にTeamSを取り巻く環境を整備してくれているFarmnoteにも感謝している。

モブワークという道具

私は今回の経験を通じてモブワークというやり方を今後の私の選択肢の一つにできていると思う。

一般的に、ある特定のやり方だけしかないときより、複数の選択肢の中から状況にあわせてやり方を選べる方がうまくいきやすいだろう。個別に取り組むというのは現在一般的な働きかたであるので、一般的でないが将来有望そうなやつを試してみるというのは価値のあることだと思う。

あなたがもし未経験だとしたら、モブワークという道具が自分たちの手に馴染むかどうか、自分たちがやるにあたって障害となるものがあるか、自身がいまいるところで試し体験してみてはどうだろう。もしかすると今とりくんでいる領域の役にたつかもしれないし、そうでなくても今後の選択肢に加えることができるだろう。


この記事が気に入ったらサポートをしてみませんか?