エンジニア未経験だった僕がスペースマーケットに入社して1年で取り組んだこと/学んだこと
こんちには。
スペースマーケットでフロントエンドエンジニアをしているmizukiです。
早いもので、2021年12月にエンジニア業務未経験の状態からスペースマーケットに入社してから1年が経過しました。
ちょうどいいタイミングで年末年始だったので、この休みも利用して振り返りをして記事にまとめていこうと思います。
この記事では、
・業務未経験からエンジニアに転職した僕がどんなことを考えてどんなことをしていたか
・スペースマーケットではどのような施策にアサインしてどのようなサポートをしていたか
みたいなことがわかるように書いていきたいと思います!
自己紹介
僕は2021年の12月に、エンジニア業務未経験の状態でスペースマーケットに入社をしました。
しかし、未経験とは言っても
新卒でSIer(SAPというシステムの保守・運用を2年弱担当)
↓
某プログラミグスクールのメンター(HTML/CSS,JS,Ruby/RoRを2年弱教える)
↓
スペースマーケット入社
といった経歴なので、ITとかプログラミングとかそういった分野に多少は馴染みがありました。
ただ、独学がメインで業務での経験はなかったので、大規模なアプリ開発や複数人での開発は全くわからない状態でした。
1年間の全体の振り返り
1年間を全体的に振り返ると、以下の3トピックに集約されるかなと思います。
最低限の要約になるので、細かい話は次の詳細の振り返りを読んでいただけると幸いです。
① 最低限の戦力にはなれた(はず)
採用してもらっておいてこんなこと言うのもアレですが、リファラルでもない通常の採用ルートで未経験のエンジニアを採用するのはもはやギャンブルのような気もします。
それを分かっていたからこそ、「早く一人前にならなきゃ」という意識で日々を過ごしました。
ただ振られたタスクをこなすだけではなく、施策やタスクがひと段落したときには振り返りをして、PDCAサイクルを細かく回して質を高めることを意識しました。
また、下の②、③で書くような会社のサポートもあり、最低限のパフォーマンスが出せるだけのエンジニアにはなれたのではないかなと思います。
② 段階的にタスクを任せてもらえた
入社してから今に至るまで一貫して、「今の自分ではちょっとストレッチな内容」のタスクを任せてもらえたと感じています。
それは、毎月やっている1on1や日々の関わりの中で上長の方々が自分のスキルレベルを適切に把握し、1,2ヶ月先まで先読みしてタスクを準備してもらえていたおかげだと思っています。
(そこにはほんとに感謝しかないです・・・!)
数行程度で終わる改修から始まり、最終的には大規模なPJの開発リーダーや大規模なリプレイスの担当などを段階的に任せてもらえ、簡単すぎず難しすぎないとてもいいレベル感のタスクを行うことで成長が最大化できました。
③ 自分の意思を尊重してもらえた
②で書いたように上長の方々は自分にいいレベル感のタスクを振ってくれたのですが、ただ一方的に任せるだけではなく自分の意思も頻繁にヒアリングしてもらえました。
1on1などで、
・将来どうなりたいか
・今興味ある分野はあるか
・今足りないと思ってるスキルは何か
・どんなタスクや施策だとモチベーションが上がるか/下がるか
などを聞いてもらえたので、自分がモチベーション高く遂行できるタスクをこなすことができました。
これも成長を最大化できた要因だと思います。
1ヶ月単位の細かい振り返り
ここからはアサインされたタスクや施策ごとに月単位くらいの粒度で書いていきます。
1ヶ月目
入社初月は当たり前ながらオンボーディングや研修がメインでした。
会社のオリエンテーションなどをこなし、未経験での入社ということもあり技術研修も用意してもらっていました。
技術研修ではフロントエンドで使用する技術(JS,TS,React,jest/RTL,GraphQL)について読み物やハンズオン形式の資料を用意してもらっており、それらを進めていく形でした。
また、毎日夕方にはメンターの方との1on1があり、そこで困っていることや質問したいことを解消してもらいました。
未経験での入社ということもあり技術面は不安要素しかなかったので、研修のための期間と資料を用意してくださり精神的にとても助かりました。
研修資料でインプットもしつつ、自分なりに主要なリポジトリのコードをリーディングをして実務に備えました。
そんな中で「やっぱり実際にコード書いてみないと身につかないような気もするな〜」と感じたのでメンターの方に相談してみたところ、本来1ヶ月程度で行う予定だった研修を急遽変更し、研修開始後半月ほどで簡単なタスクを用意してもらい、研修と実務を並行して進めていけることになりました。
柔軟に対応してくださったり、入社間もない自分の意見をしっかり聞き入れてくれたことがとても嬉しかったです。
2 ヶ月目
1ヶ月で研修は完全に終わったので、2ヶ月目は小規模なタスクを進めていきました。
ボリューム的には、簡単なものだと数行、大きいものでも100〜200行程度の改修を行いました。
簡単な改修ではありましたが、言われたことをそのままやるだけではなく、改修をした周辺のコードを読んでみたり、わからないことは都度調べたり質問したりしながら自分の知見を増やすことを意識して取り組みました。
また、任せてもらう際には上長の方から施策概要を丁寧に説明してもらったり、技術的なことだけではなく業務の進め方をインプットすることができました。
未経験ということもあり、タスクを任せてもらってから実装してレビューやLGTMをもらってリリースするまでの流れがイメージできていなかったので、簡単なタスクで業務の流れを理解することができたのはとても助かりました。
この段階で、タスクを割り振ってもらってからリリースするまでの簡単な流れは把握できたので、3ヶ月目以降に実施するタスクや施策のための基盤は固めることができていたなと思います。
3〜4 ヶ月目
3ヶ月目からは中規模なタスクを進めていきました。
だいたい2〜3週間でリリースできるぐらいの規模感のタスクを3つ連続でやりました。
細かい仕様をPMやデザイナーとすり合わせを行う作業は上長の方がメインで進めてくれましたが、実装は僕一人で進めました。
せっかく1つの機能を任せてもらえたので、最大限独力で実装できるように既存のコードを読み漁ったりGoogle検索を最大限に活用して取り組みました。
もちろん時間のかけ過ぎはよくないのである程度調べてもわからないことは質問していましたが、独力でできることが増えてくるとより楽しくなってきました。
実装を僕一人に任せてもらえていた分たくさんコードを書くことができて、技術的に学ぶことが多かったです。
レビューでは、コードの書き方だけではなくPRの作る単位や見やすいコミットの分け方など細かくアドバイスをいただけました。
また、上長の方が仕様のすり合わせを行う姿を見て、自分だったらどう立ち回るかをイメージする良いキッカケにもなりました。
結果、この2ヶ月である程度一人で施策を進めていくイメージをつけることができたと思います。
5〜6 ヶ月目
5ヶ月目以降からは、大規模な施策のFE担当として施策を進めてきました。
規模としてはだいたいリリースまでに2ヶ月くらいかかるような割と大きな規模の開発で、ここでもFEの実装を僕一人に任せてもらえました。
実装面では、これまでにアドバイスしてもらっていたことを意識して進めていき、もちろんレビューはある程度もらうもののそこまで詰まることなく進められるようにはなっていたと思います。
そして、この時期くらいからそろそろ自分も開発のリーダー的なポジションを任されそうな気配がしていたので、実装面以外の施策の進め方や取りまとめなども先輩方から学ぼうという意識も持って取り組んでいました。
今回は他の方が開発チーム全体の取りまとめをやってくれたので、自分ができる範囲での取りまとめの補佐も行おうと考えていました。
割と大きな規模の施策ということもあり、FE/BE/APP間の連携が必要になるので連携仕様をまとめたり、施策全体の要件や仕様を文章化したりと、自分にできることを探して率先して行いました。
そういったこともあり、自分が取りまとめを任せられたときにやるべきことを少しずつイメージできるようになっていたかなと思います。
7 ヶ月目
大規模施策を終えた後には、隣のチームが進めている施策に1ヶ月だけ助っ人としてアサインされました。
僕がアサインされたタイミングではタスクを全てチケット化して整理がされていたので、それらをプランニングポーカーで見積もりをしながらそれぞれのタスクに担当者を振り分けていくことから始めました。
進行中の施策に途中から入ることが初めてだったので少し困惑もしましたが、これまでの施策ではFEの実装を自分一人で行うことしかなかったので、このタイミングで初めて本格的な「複数人での開発」を経験することができました。
正直これまでは自分の感覚で見積もりをしていたので、ここで他の人の感覚とすり合わせを行うことができたのは大きかったです。
それ以外にも、コンフリクトが発生しないように他の人の実装状況を把握したり、同じコンポーネントに改修を加える時には事前に調整したり、施策全体がスムーズに終わるようにタスクの交換をしたりと、初めて複数人で柔軟に軌道修正しつつ実装していく経験をしました。
途中出場して任された分の実装をして途中退場する、といった感じで終わりましたが、複数人で連携をしながら開発していく経験ができて学びになりました。
8〜10 ヶ月目
8ヶ月目からはとうとう大規模な施策の開発リーダー的な役割を任されました。
規模としてはだいたい2ヶ月半くらいかかった施策で、開発全体の取りまとめをしつつFEの実装も行いました。
この施策では既存の実装に対して合計で2000~3000行程度の改修を行う必要がありましたが、これまでの経験からFEの実装はほとんど独力でできるようにはなっていました。
そのため、ここでは開発全体の取りまとめとしてPM/デザイナーと要件やUI周りの整理をしたり、BE/APPと連携部分の整理をしたり、施策全体のスケジュールを調整したりなど、そういったことを学ぼうという意識で取り組みました。
実際に進めてみると、やはり初めてのことばかりで漏れがあったり、やることが多く奔走して対応が後手に回ることも多かったなと思います。
しかし、上長の方が途中で仕様の考慮漏れを指摘してくださったり、決めるべきことを助言してくださったおかげもあり、何とかスケジュール通りにリリースすることができました。
この施策を経て、「ただ要件通りのプログラムを書く」ではなく「会社の理念体現や目標達成のために施策を遂行する」という意識を持つことができました。
また、要件を整理するところからリリースを行うまでに、どのタイミングで何を決めていく必要があるかも学ぶことができました。
反省は多々あったものの、未経験で入社して1年も経たない自分にこれだけのことを任せてもらえたこと自体がとても嬉しかったですし、成長に繋がったなと思います。
11 ヶ月目〜現在
スペースマーケットではフロントエンドのコードをNext.jsに移行しており、11ヶ月目以降はスペース予約ページを移行する施策にアサインしてもらえました。
※Next.jsへの移行についてはこちらの記事に詳しく書かれているのでぜひ読んでみてください!
大規模な画面を1つ丸々移行する経験は初めてであったことと、予約ページではスペースの空き状況を確認したりプランや支払方法、オプションを細かく設定したりと、考慮することが多くて設計時からかなり苦戦しました。
もちろん僕一人ではなく、先輩エンジニアの方のリードの元で予約ページの中の一部を担当していたので、設計時から細かくサポートをしていただけました。
具体的には、以下のようなことです。
・施策の全体像やスケジュールについてインプット
・タスクの分解、プランニングポーカーなどで進め方の認識共有
・日次で朝会を行い、困りごとや疑問を解消
・レビューでの細やかな指摘(たくさん指摘をいただきましたが、事前に「この施策では細かく指摘するからね〜」と言ってもらっていたので、精神的負担はほとんどありませんでした!)
1つの画面を0から作るということでこれまでやっていた既存のコードへの改修とはまた違った難しさがあり、「コンポーネントをどう切り分けるか」、「データをどう保持してどこで更新をするか」などの設計がうまくいかず、実装中に考慮漏れがあったりしました。
しかし、実装がある程度完了した今振り返ってみると、一度経験したからこそ次に同じようなページ実装をするときに今回の考慮が足りなかったことを生かすことができると思います。
また、新規ページを作るとなると実装量もこれまでの比にならないくらいの量を書いたので、指摘の量もこれまでに比べて多く、かなり多くの知識をインプットすることができました。
結果として、かなりレベルアップできたと感じています。
まだ入社してエンジニアを始めて1年にも満たない状態にも関わらず、新規ページの設計から実装まで行うタスクを経験することができたのはすごくありがたいと感じました。
まとめ
改めて見返してみると、バランス良く自分のスキルを高められるようなタスクをアサインしてもらっていたり、自分から手を上げれば年次やスキル関係なくチャレンジできる環境があるなと思います。
エンジニア1年生にしては贅沢な環境ですくすくと育つことができたかなと思うので、来年以降もさらに成長していけたらと思います!
おわりに
スペースマーケットでは一緒に働く仲間を募集しています!
全てはこの記事に書いたとおりですが、エンジニアとしてスキルアップできる環境が整っているなと思います。
カジュアル面談もやっておりますので、少しでも興味を持ってくださった方は以下のサイトからご応募ください🙌
スペースを簡単に貸し借りできるサービス「スペースマーケット」のエンジニアによる公式ブログです。 弊社採用技術スタックはこちら -> whatweuse.dev/company/spacemarket
Discussion