※この記事は、 CyberAgent PTA Advent Calendar 2020の20日目の記事です。
こんにちは、サイバーエージェントグループの株式会社AJAにて、エンジニアをしているNanaumiです。
今年も、もう直ぐ終わってしまいますが、とても大変な1年でしたね・・・。
僕は今年新卒として入社し、新米エンジニアとして約一年間過ごしてきました。
業務の中で、失敗したなと悩んだ点や、成長のために工夫した点などを少し共有し、リモート下で同じ悩みを抱える新米エンジニアの助けになればと思います。何気に初投稿なので緊張しますが、頑張って書いてみます!
※技術的な内容よりも新米エンジニアとしてのマインド的な内容が多めです。
僕のキラキラ新米エンジニアライフは・・・
今年の4月にリモートでの入社式&新卒研修を行いました。当時の自分は今後始まるであろうリモート出社に正直ワクワクしていたことを覚えています。実際、入社式や新卒研修はとても楽しく、無事に終えることができました。しかしその後、実業務に取り組んでいく中で多くの問題にぶつかってしまいました・・・。
質問がうまくできない問題
まずはじめに、今年の僕を最も苦しめた問題を紹介したいと思います。それがこの、__質問がうまくできない問題__です。
ここでの "質問がうまくできない問題" というのは、下の二つを意味しています。
質問した方が効率が良いのに質問することができない
僕は、エンジニアならば 、
- エラーの解決方法がわからない
- プロダクトのデプロイ方法がわからない
- 綺麗な処理の実装方法がわからない
などの様々な問題は、検索したりドキュメントを読むなりして自分で解決することが美徳なんだ、それがかっこいいんだ!と思っていました。その中でも、ウルトラC級の問題にぶつかったときにだけ、誰かに質問することが許されると勝手に思っていました。
しかしその結果、質問すれば一瞬で解決するような問題に長時間を割いてしまったり、間違った解決方法(もはや解決してない)を採用して開発の手戻りを発生させてしまいました・・・。
そこで、わからない問題は全部チームに質問しよう!!
というネクストアクションを用意してみましたが、一向に僕は質問をしません。
困りました・・・。なぜ、僕は一向に質問をしないのか。
その原因を深掘ると、上記の通り僕が勝手に思っていたエンジニアの美徳やかっこよさの裏側にある、質問をしたときに、もし質問の答えが知っていて当たり前の内容だったら恥ずかしい、という羞恥心が原因であることがわかりました。なまじ技術に触れてきたたため、「こんなこともわからないの?」と思われてしまうことに漠然とした恐怖がありました。不必要なプライドです。
もちろん、こんなプライドは捨てた方がいいのですが、それ以上に理解しなければいけない事実がありました。それは、
__僕の仕事は、自分のエンジニアとしてのプライドを保つことではなく、限られた工数の中で担当する機能を作りきること__という事実です。
それに気が付き反省し、少しずつ質問することを覚えた僕ですが、岩のように凝り固まった考えはなかなか解消されることなく、もう少し時間がかかりそうです。そこで僕は、せめてチームメンバーが僕の状況を知れるようにSlackの自分のtimesに質問ではなく困っている事実のみを垂れ流すことにしました。すると、チームメンバーが僕の困っていることに対して反応をしてくれるようになりました!
もし、同じ悩みを持っている人がいました、まずはtimesの活用からをお勧めします。
質問の内容が不足していて、望んだ回答を得られるまで時間がかかる
これは、まさにリモートならではの問題だと思っています。
オフラインだと、何か質問をしたときの回答って、瞬時に返ってくるのですが、リモートではそうはいきません。
リモートでも瞬時に返ってくればそれは理想ですが、現実は1レスポンスに数分かかるのは割とよくあることです。
会話であれば数秒で終わる内容が、チャットではその何倍の時間をも要することになります。
そのため、例えばチャットでプログラムの error に関する質問をする時には、
- 何をしたらどんな、error 文が出てきたのか
- 自分はどこまで調べたor対処したのか
- 相手にどんな回答を求めているのか
をなどを意識して質問することが大切になります。
意識し始めた今でも情報が不足することはありますが、入社当初は情報不足が頻発していたので1つの質問を解決するのに膨大な時間をかけてしまっていた記憶があります。
リモート環境において大切なこと
こういった質問に関する問題は、オフライン環境でも頻発している問題だと思います。だた、そこにリモート環境という要因が加わることによって問題の影響度は一気に大きくなりますし、解決も難しくなります。
1つ目の問題に関しても、もちろん僕のプライドの問題です。ただ、オフラインでは椅子に座って仕事しているだけでtimesに状況を垂れ流すのと同じ効果があると思っています。そのため、優しい先輩エンジニアが僕が質問できないことを補助してくれますが、リモートではそうはいきません。
リモート環境下での問題解決は、困っている側がしっかり相手がわかりやすいように救難信号を出すことが、一番大切なんだと思いました。
孤独が辛い問題
この問題に関しては、自分でも結構驚きました。自分は、かなり1人が好きな人種なので、休日も1人で外に出歩くことが多いですし、旅行なども1人で行くことあり、孤独を好む方だと思っていました (悲しい自己紹介...) 。
しかし、実際は業務を進める中で、目の前の開発物に対して1人で取り組んでいるのが心細くなったり、朝起きて仕事に取り組む覇気が足らないことが多々ありました。
この問題に対しては、入社当時はチームのメンバーのこともよくわからず孤独を辛く感じる場面もありましたが、
- 朝会、夕会
- お茶会
- 技術書輪読会
などを、オンラインで行っていく中で、チームとの繋がりが強まっていき、そもそも孤独を感じる場面も減ってきました。
簡単なやりとりはSlackなどを使った文面でのやりとりでも十分ですが、オンラインでチーム開発をする上で、
Zoomなどを使った音声ビデオ会議のイベントは、関係値向上に非常に効果的だなと感じました。
もし、リモート配属されたチームでそのような施策が用意されていなかったら積極的に提案してみることをお勧めします。僕自身、上記のオンラインイベントの他にチーム内で、競技プログラミングのプライベートコンテストを提案したりして楽しみながらリモート業務に勤しんでいます!
オンライン環境下で技術的成長をするために
これ関しては、僕自身今もいろいろ考えています。
ここまで、リモート環境で苦労したことばかり書いてきましたが、リモート環境だからこその利点もあります。
その一つが、通勤時間がなくなることです。
僕の場合、行きと帰り合わせて1時間を少し超えるぐらいにはなります。
その1時間を勉強に使えるかどうかでも成長の傾きが大きく変わってきますよね (僕は技術書を読んでます!) 。
また、同期やエンジニアの友人と話す機会も減ってしまって、
張り合いがなくなってしまっていると感じることもあります。
そんな時は、Qiitaで "新卒" と検索して、自分以外の新卒の頑張っている姿を見て気合を入れています。
技術力の成長に、リモートの有無はあまり関係ないかもしれませんが、リモート環境だからこそのエンジニアライフを見つけて成長したいです!。
おわりに
リモート時代の新卒エンジニアとして約一年間働いてみて、失敗したなと悩んだ点や、そこから成長のために工夫した点などを紹介してみました。細かい失敗を取り上げるとまだまだたくさんあると思います。
新卒エンジニアなんて、エンジニア業界の中では生まれたての赤子のような物なので、
とりあえず呼吸ができること (gitが使えること) 、歩けること(コードが読めること)を褒めて、何か困ったりわからないことがあればとりあえず大声で泣いてみればいいのかなと最近は思います。