株式会社LITALICOでエンジニアをしています@yknoguchiです。
この記事は『LITALICO Advent Calendar 2020』10日目の記事です。
ついでに僕の誕生日です。
この記事はタイトルの通り、20年新卒で入社した僕が一年間ずっとリモートワークかつモブで業務をこなす環境で過ごして実感したことをつらつらと書きます。
はじめに
上に書いた通り、僕は20年新卒として今年の4月、株式会社LITALICOにエンジニアとして入社しました。
初めの3ヶ月ほどは新人研修としてエンジニアの基礎的な勉強をし、7月からエンジニアのチームにジョインしました。
至って普通な仕事の始まり方です。
しかし、今年は新型コロナウイルスが蔓延する世の中になりました。
そのため、研修中、そして今もほぼ全てを自宅からリモートで業務を行っています。
さらに僕が配属されたチームは一日中Zoomを繋いで画面共有し、モブで業務をこなす場所でした。
モブプログラミングについてはこちらの記事が参考になります。
しかも、僕が配属されたチームはエンジニアとしてベテランの方々ばかりで、聞くところによると、僕が新卒でジョインした初めての人間だったようです。
周りを見渡してもベテランの方々ばかりで、Zoomでミーティングに参加すると画面からくるプレッシャーがすごいことになります。
このような環境でおよそ半年を過ごした僕が、リモートワークでモブをするにあたって
- どのようなメリットを感じたか
- 逆にどういうところでやりにくさを感じたか
- 一年を振り返って自分はどのような行動を取ればもっとよかったのか
この3つを新卒新人という立場から今年を振り返ります。
そのため、この記事は、来年新卒として入社する予定の方を対象にしています。
まとめだけを知りたい方は、まとめだけを読んでください。
この記事のターゲット
来年からリモートワークがメインで新卒として入社する予定の方
モブのメリット
モブプログラミングは以下の通りです。
- 自分以外のエンジニアの存在を身近に感じることができる
- エンジニアの習慣に触れることができる
- エンジニアのフィードバックを高速でもらえる
自分以外のエンジニアの存在を身近に感じることができる
これはモブに限らずですが、自分の力を客観的に知れます。
自分もそうでしたが、特に新人は学生時代にある程度プログラミングで何かものを作っていくと、「自分の周りに敵なし」な感覚が身に付いてしまいます。「自分はだいぶ強いエンジニアだ!」と。
まさに井戸の中の蛙です。
この感覚のまま社会人になってしまうと、変なプライドが自分の成長を邪魔してしまう可能性があります(人によると思いますが)。
しかし、いざチームに配属されると、レベルの差に愕然とすると思います。
これにより、自分のエンジニアとしての立ち位置を知ることができ、自分を見つめ直すことができます。
さらにこれがモブの環境になると、自分がコードを書く時以外はチームの画面がずっと表示され、コードを書くスピードやコードリーディングの速さなどに直接触れることができます。
エンジニアの習慣に触れることができる
自分の無力さに愕然とすると、もっと成長しなきゃと考えるようになります。
じゃあどうやって自分を成長させていくか。
個人で勉強を進めるとき、色々な方法を試して試行錯誤して自分なりの学習の型を見つけていくことになります。
試行錯誤することはとても大切で、それ自体が自分にいい影響を与えてくれます。
しかし、無駄に時間をかけ過ぎるのも問題です。
ある程度完成された型を真似して、自分なりに調整していく方が圧倒的に効率が良いです。
そして、周りのエンジニアは学習する型をすでに身につけています。
モブをしているとそれを直接見れます。
画面に映るチームのコーディングの様子や設計をまとめている様子から、
- 実装につまずいた時
- コードリーディングでわからない箇所が出てきた時
などの取り組み方を知ることができます。
もちろん、学習の型にとどまりません。
実装する際の思想。
議論をする際の話の進め方。
休日の過ごし方。
などなど。
「学ぶ」の言葉の由来は「真似ぶ」
エンジニアの方々が常日頃からやっている行動や考え方、習慣に、画面を通じて直接触れることができることは、とても大きなモブのメリットなのです。
エンジニアのフィードバックを高速でもらえる
学習の基本はインプットとアウトプットの繰り返しです。
目標に対して進んでいくときにフィードバックが細かく多くあると、短いルートで目標に辿り着くことができます。
ましてや軌道修正の方向が間違っていると、どんどん目標から離れていってしまいます。
フィードバックは細かく、多く、正確に。
これをできる環境が、モブなのです。
自分の画面を共有しているときに、それた画面を開いたり、おかしなコードを書き出したりするとすぐにフィードバックをもらうことができます。
モブだからこそ感じるやりにくさ
これまで、モブで業務をこなしている時に僕が感じたメリットを上げていきました。
しかし、メリットだけのものは存在しません。デメリットもあります。
僕が感じたデメリットを以下の通りです。
- チームの会話についていけない
- 自分の頭で考えなくなる
- 自分に自信を無くす時がある
チームの会話についていけない
僕が会話の真ん中にいれば会話についていくことができるのですが、ひとたび会話が自分以外の間だけで交わされるようになれば一気に話についていけなくなります。
このような状況になってしまう原因は、「会話の中に出てくる業務用語がわからない/認識するまでに時間がかかる」ためです。
特に「業務用語を認識するまでに時間がかかる」は厄介です。
一度教えていただいた用語も、実際に使えるようになる、または素早く認識ができるようになるまでには時間がかかります。(個人差もあると思いますが…)
しかし、会話自体は用語の意味をわかった前提で進むこともあるため、スピードが追いつかず、しかし一度教わった内容なので再度質問するのは憚られ…と悪循環に陥ってしまします。
自分の頭で考えなくなる
やっちゃいけないことです。
やっちゃいけないことなのですが、気を抜くと自分で気がつかないうちにこのようになってしまいます。
特にこれは、リモートワークで顔が見えない状況だからこそ、起やすくなっています。
チームでコードの設計を考えているときに、「チームの会話についていけない」状況になると、「決まったことを理解すればいいや」と、そうは思っていなくても、それに近い行動を取りそうになります。
自分に自信を無くす時がある
これはそのままの意味です。
メリットの一番最初に書いたように、自分を見つめ直すなど冷静な視点であるうちは大丈夫なのですが、自分と比較してしまうと途端に悪い方向に流れていきます。
まとめ
これまで、新卒の自分の視点で、モブで業務を行うメリットとデメリットを書き連ねてきました。
次に、「もしもこれから、僕と同じような状況になる新人エンジニア方がいるのならば、どうすればもっとやりやすくなるのか」をあくまで僕視点でまとめます。
自分はどのような行動を取ればよいのか
これは「恐れずにどんどんコミュニケーションを取ろう」です。
上記に挙げたメリットもデメリットも、大体はコミュニケーションの不足によるものです。
メリットに挙げたようなエンジニアの方々が持っている、自分の学びになるところは、どんどん質問しこちら側から引き出していくような意気込みがあった方がいいです。
コミュニケーションをはじめからとっていくと、話しかける敷居が低くなり上記のメリットを享受できる場面を増やすことにもつながります。
コミュニケーションをとっていくことは、上記のやりづらさを解消することにもつながります。
自分の頭で考えなくなる原因は、チームの会話の中に入っていけないことが直接的な原因です。
でしたら、チームの方々が議論している中でも(最低限の状況を読みながら)どんどん質問をしていきましょう。
「もしかしたら足を引っ張っているのかも」と思ってしまう時もあるかもしれません
しかし、チーム全体の損得で考えても、「ずっとチームの会話に入らない人がいる」よりも「一時的に議論が止まっても、チーム全体で内容が理解できている」方が圧倒的に得です。
こうやってコミュニケーションをとりながら知識を深めていくと、わからなかった会話の内容がわかるようになるなど、細かな成功体験にもつながります。
そうなると、自分に自信を無くす機会も少なくなり、モブのメリットがどんどん前面へと出てきます。
最後に
今回のこの記事はだいぶ僕の主観が入った記事になっております。
また、「やりづらかったこと〜」などを書いていますが、実際のチームの方々は積極的にコミュニケーションをとっていただき、非常にいい環境で仕事をさせていただいています。
おかげさまで配属から5ヶ月で一つの機能の実装をリードさせていただく機会もいただきました。
本当にありがとうございます。
今年中は新入社員だと言える今だからこそ、しっかりと今年の自分を振り返ってみました。
そしてこれが、これから新入社員となる方々に役に立てればいいな、と思います。
明日は@3939_ohagiさんの記事になります。