こんにちは。新卒エンジニアとしてアプリケーションGに所属している堂浦です。
私は今年の4月にABEJAへ入社し、現在はABEJA Insight for Retailの開発・運用・保守に携わっています。
入社してから、ReactやGoを使った開発に取り組んでいます。ただ、入社した時点では、どちらもほとんど触ったことがありませんでした。
そんな私が配属後にぶつかったのが、モブプログラミングで何も分からない問題です。
今回は、その困りごとをレトロスペクティブでチームに伝えてみた話を書きます。
モブプロには参加している。でも、分からない
私たちのチームでは、開発スタイルの一つとしてモブプログラミング(以下、モブプロ)を取り入れています。
一人が画面を共有してコードを書くドライバーを担当し、ほかのメンバーがナビゲーターとして考え方や進め方を伝えます。
複数人で相談しながら進められるので、先輩たちの考え方を近くで見られるのは、モブプロの面白いところです。
一方で、配属されたばかりの私は、そもそも画面に映っているコードがほとんど分かりませんでした。
先輩たちはコードを見ながら、次に何を確認するか、どこを直すかを話しています。私は同じ画面を見ているのに、その会話についていけません。
分からない単語について考えている間に話は先へ進み、ようやく一つ理解したころには、すでに別のファイルが開かれている。そんなこともよくありました。
自分がドライバーになっても、ナビゲーターから教えてもらった操作をそのまま実行するだけでした。ナビゲーターになったときは、何を伝えればよいのか分からず、先輩たちの会話を聞いていることしかできません。
一応、モブプロには参加しています。でも、自分が開発に参加できている感覚はあまりありませんでした。
質問すると、開発を止めてしまいそうだった
分からなければ質問すればよい。今振り返れば、本当にそのとおりです。
それでも、当時はなかなか質問できませんでした。
先輩たちがスムーズに開発を進めているところで、自分だけが基本的な質問をすると、会話も作業も止まります。自分の理解のために、チーム全員の時間を使ってしまう気がしていました。
そうして遠慮しているうちに、分からないことは増えていきました。
質問できない。だから分からない。分からないので、さらに質問しづらくなる。
このままでは、言われたとおりにキーボードを操作するだけになってしまいそうでした。
レトロスペクティブで困りごとを話してみた
私たちのチームでは、定期的にレトロスペクティブを行っています。
開発の進め方を振り返り、よかったことや改善したいこと、次に試してみたいことをチームで話す時間です。
そこで私は、モブプロで感じていたことをそのまま話してみました。
コードが分からず、会話についていけていないこと。質問したいものの、開発を止めてしまいそうで遠慮していること。
話してみて分かったのは、先輩たちは私が質問することをまったく迷惑だと思っていなかった、ということでした。むしろ、分からないところはどんどん質問してほしいと考えてくれていました。
私の中では大きな悩みになっていましたが、チームに伝えてみると、そもそもの認識がずれていたことに気づきました。
先輩たちが質問を歓迎していることは、黙っているだけでは私には分かりません。一方で、私が質問をためらっていることも、黙ったままでは先輩たちには分かりませんでした。
「もっと頑張る」ではなく、チームのTRYになった
レトロスペクティブでは、気持ちを話して終わりにはなりませんでした。
どうすれば私が質問しやすくなるのかをチームで考え、まずは私がドライバーを担当する機会を増やすことになりました。
私がドライバーになると、経験のあるメンバーが担当するときよりも進行はゆっくりになります。ただ、その分、分からないところで立ち止まりやすくなります。
自分の手でコードをたどりながら、その場で質問もできます。教えてもらった操作をするだけでなく、なぜその操作をするのかを確認する時間が増えました。
また、別のレトロスペクティブでは、ストーリーポイントを考える際に、私の習熟にかかる時間も含めて見積もるというTRYが生まれました。
それまでは、質問する時間を追加の時間だと勝手に感じていました。最初からチームの計画に含まれるようになったことで、以前よりも質問への心理的なハードルが下がりました。
もちろん、この二つを始めただけで急にコードが読めるようになったわけではありません。今でも分からないことはたくさんあります。
それでも、分からないまま流れていく時間は少しずつ減ってきました。
新卒でも、チームの環境づくりに参加できる
今回の経験で一番印象に残ったのは、困りごとを伝えることも、チームで開発するための行動の一つなのだと分かったことです。
最初は、自分の知識が足りないことをチームの場で話すのが少し恥ずかしくもありました。まずは自分だけで勉強して、ある程度できるようになってから参加しなければならない、とも考えていました。
しかし、自分だけで解決しようとして黙っていると、チームからは何に困っているのかが見えません。
今回、私が困りごとを伝えたことで、ドライバーを担当する機会や、質問する時間を含めた進め方を一緒に考えてもらえました。
新卒だから用意された環境の中で学ぶだけではなく、自分が学びやすい環境をチームと一緒につくることもできる。そのことに気づけたのは、大きな変化でした。
同時に、新卒の率直な意見を受け止め、具体的なTRYに変えてくれるチームのありがたさも感じています。
まとめ
今回は、モブプロについていけず、質問することにも遠慮していた私が、レトロスペクティブで困りごとを伝えた話を紹介しました。
困っていると伝えたことをきっかけに、私がドライバーを担当する機会が増え、習熟にかかる時間も開発の計画に含めてもらえるようになりました。
まだ先輩たちの会話についていけないこともありますし、質問の内容がうまくまとまらないこともあります。
それでも、分からないことを分からないままにせず、少しずつ声に出せるようになってきました。
チームにつくってもらった機会を活用しながら、いつか自分もナビゲーターとして、チームの開発を前に進められるエンジニアになりたいと思います。
We Are Hiring!
ABEJAは、テクノロジーの社会実装に取り組んでいます。 技術はもちろん、技術をどのようにして社会やビジネスに組み込んでいくかを考えるのが好きな方は、下記採用ページからエントリーください! (新卒の方やインターンシップのエントリーもお待ちしております!)
