「非」育成論。ジュニアエンジニアを変身させる環境の作り方。

「非」育成論。ジュニアエンジニアを変身させる環境の作り方。

こんにちは。エンペイのエンジニアの町村です。

先日、美容室で人生初のパーマ&髪染めをやってきました。

染まってる……か…?
染まってる……か…?

髪型以外何も変わっていないんですが、精神はかなりウキウキして、変身した気分になれました。いやーよかった。(僕のミスで、指名したつもりの美容師ではない人になったけど)

で、今回は髪型とは全く関係ないのですが、「変身」に関係のある話をします。 エンペイに入ってぐんぐん成長している一人のエンジニアについて、その成長の過程をご紹介していきます。

彼がどういう意識でどういう仕事をしてきたのかをインタビューで紐解き、それを通して「エンペイ」という環境について皆様に知ってもらえたらと思います。

気になったな、働いてみたいなという気分になった方は気軽にご連絡を!

採用ページはこちらです。

💡
この記事のターゲット ・エンジニアってどうやって育てたらいいんだ、と悩んでいるマネージャーの方 ・職を探しているエンジニアの方(一緒に働きましょう)

目次

登場人物

image

サノくん

主人公。フィヨルドブートキャンプというプログラミングスクールに在籍中、エンペイのバイト募集をみて、2021年2月にジョイン。そのまま社員に。

意外と背が大きい。

image

naoyaさん

テックリード、認定スクラムマスター。2021年5月にエンペイに入社。

とても背が大きい。以前、youtuberの道に僕を誘ってきた。

image

町村(@machi_heigh_ho

エンジニア、インタビュアー。2021年7月にエンペイに入社。

背が低いのと体重が重いのがコンプレックス。

image

田野さん(@hikoharu06

CTO。今回、ブログを依頼してきた。

お題は「サノくんというジュニアエンジニアをnaoyaさんがどう育てたか」

意外と背が高くない。

「別に育ててへんで」

町村
町村

こんにちは。

田野さんに「町村、ブログ書け。あと早く勤怠提出しろ」って言われまして、ちょっとどう書いたらいいかわからんのでとりあえず話を聞きたいんですが。

naoyaさん
naoyaさん

勤怠は提出しぃや。

サノくん
サノくん

こんにちはー。

勤怠は提出した方がいいと思います。

町村
町村

明日やります。

エンペイのエンジニア育成について書くんですけども、naoyaさんがサノくんをどう育ててきたか、聞いてもよいですか?

naoyaさん
naoyaさん

え、別に育ててへんで。 そんな余裕なかったし。

町村
町村

え。

サノくん
サノくん

そうですね、育てられた、という意識は特にないです

町村
町村

え。え。

💡
頓挫:勢いや物事の進行が急にくじけること。   「―をきたす」

僕が途方に暮れてmtgを切ろうとしていると、見かねたサノくんが話しかけてくれた。

サノくん
サノくん

……あの、そんなに暗い顔しないでください。 育てられた、という感覚はないんですが、安心して育つことができる環境をいただいた、という感覚はすごくあるんです。

町村
町村

なんだァ 驚かさないでヨォ〜

妙なテンションになってしまった僕に嫌な顔一つせず、サノくんはエンペイの環境について、いろいろと思うところを言ってくれました。

彼曰く、エンペイは

💡
・自分のやりたいこと + 任される仕事のバランスが取れている環境 ・その中で、経験豊富なエンジニアと対等に仕事ができる環境

であるとのこと。その環境の中で仕事をした結果、振り返ってみると確かに自分は成長しているな、と実感できるということでした。

では、入社当時から今に至るまでのサノくんの仕事を振り返りながら、「エンペイ」という環境で人がどう育つのか、みていきましょう。

入社当時〜最近の仕事の変化

2021年前半

サノくんは、2021年の2月にアルバイトとしてエンペイにジョインしました。 当時フィヨルドブートキャンプ(※)というプログラミングスクールに所属していた彼は、エンペイのバイト募集をみて応募したそうです。

サノくん
サノくん

お金が欲しかったんですよねー。

当時はCTOの田野さんしか内部のエンジニアがおらず、業務委託中心の組織でした。

スタートアップは大抵そうかもしれませんが「研修」等はなく、軽いオンボーディングのあとすぐチームにジョインして開発が始まったそうです。

サノくん
サノくん

この頃は、jsの不具合修正やCSSフレームワークの適用、テストの修正など、主に軽いタスクをやっていました。

フィヨルドでは主に「自分が使う」アプリを修正していたのに対し、エンペイでは「お客さんが使う」アプリを修正するので、「どうあるべきか」についてより深く考えるのが大変でしたね。

当時から、タスクを振られる → 要件を考える → 作業するというサイクルで成果を出してきたというサノくん。 5月から、主体的な仕事のプロセスが本格化していきます。

※フィヨルドブートキャンプ…「現場の即戦力になれる」がテーマのオンラインプログラミングスクール。成果やコーディングの勉強だけでなく、Ruby界隈とのコネクション形成も進むのが特徴。エンペイにもここの卒業生が多数いる。筆者は卒業生ではないが、勝手にめっちゃおすすめ。

https://bootcamp.fjord.jp/

2021年5月 - naoyaさんとの出会い

5月にnaoyaさんが入社すると、今まで作っていた画面のリニューアルや、技術的負債の返済がエンペイ内でのメイントピックになりました。 (ちなみに筆者もこの年の6月にジョインし、サノくん、naoyaさんたちと一緒に仕事をしていました)

ここから、サノくんの「自走」が本格化します。

町村
町村

この期間、わりとnaoyaさんとペアで開発していた印象があるんだけど、実際にどういう感じで仕事をしていたの?

サノくん
サノくん

ペア作業をしていたというよりは、naoyaさんが大方針を決めて、その中のタスクについて要件を考えて実装を進める、困ったらnaoyaさんに聞く、というプロセスでした。 特に開発初期は細かいタイミングで質問・仮説出しをして方針をすり合わせていたので、ペアに見えていたかもしれません。

すり合わせることによって、タスクの大きさも調整できたので、能力を大きく超えるタスクは抱えずに済みました。

町村
町村

ここが大変だった、みたいのはありますか? コミュニケーションでも技術的なことでも。

サノくん
サノくん

そもそも「負債」の概念が最初共有できてなくて、人によって何を負債と言ってるのかが違うのが結構大変でしたね。 「具体的に何がつらいか」をそれぞれの人に聞いたり、そこから例えば「状態管理」というキーワードが出てきたらそれについての勉強会をやったりして解決しました。

密に連携をとっていたものの、タスクの進め方自体はかなり自律性が高く、「自分の考えの元に行動する」という時間が長かったと語ってくれました。

ジュニアエンジニアとは

ここでエンジニアのクラスの定義を確認しておきます。

諸説ありますが、支配的なものとして以下のように言えると思います。

💡
ジュニア:独立して技術的なタスク(コードを動作させる)をこなすことができる ミドル:ビジネス要件を理解して、技術的な解決策に結びつけられる シニア:技術的/ビジネス的負債を予見して、コストを最小化する形でコードを設計できる (参考:https://devskiller.com/jp/ジュニア・デベロッパー/

以上の定義に照らすと、サノくんのこの時期の働き方は、すでにジュニアのものではありません。 技術的なタスクをこなすのはもちろんですが、タスクに取り掛かる時には常にビジネス要件の理解から入っている点で、すでにミドルエンジニアの働き方をしていると言えます。

それは教育目的だけでなく、差し迫った課題を解決するために仕方なくという側面もあったのですが…

naoyaさん
naoyaさん

入社前に、すでに田野に言われとったからな。 「フロントのソースが余命半年やからどないかしてくれ」いうて。 実際に実装していく段になって、一人ではなかなかきついというのもあり、サノさんと一緒に作業してたんや。

町村
町村

まあ実際、大変でしたよね…負債の返済とリニューアルどっちもあって。 やっぱり「育てる」という感じではなかったですか?

naoyaさん
naoyaさん

せやな。育成のためになにか特殊なことをしたというよりは、一緒に仕事をする中で、必要な時に必要なことを言った、という感じやな。 そもそも「育てる」というメソッドがそんなに俺の中に確立されてへんくて、その辺は手探りな感じやった。

サノくんが言っていた「対等に仕事ができる環境」は、この「一緒に仕事をする」という意識に支えられていそうな感じがします。

naoyaさんはコテコテの関西弁ですが、大きいプロジェクトのタスクを切って整理することにかけてはかなり長けたリーダーであり、エンジニアです。

2022年 - 新プロダクトへの挑戦、挫折、成功

2022年の4月から、サノくんはエンペイの新しいプロダクトの開発チームに参画し、新規開発をしてきました。そこで、サノくんの「自走」がさらにグレードアップします。

サノくん
サノくん

プレリリースに向けて、一人に一機能がアサインされて、並行して作るという方針でした。テーブル構成とか共通の部分に関してはチームで相談して決めましたが、機能の設計・実装に関してはほぼ一人で作り切りました。 自分はユーザ登録の機能を担当していました。 Goを触るのは初めてで、技術的に難しかったですけど、面白い仕事でしたね。

町村
町村

だいぶ「独り立ち」という感じですね。

サノくん
サノくん

ですね。大変だったこととして、一ヶ月とか集中して作った後に、事業責任者の人に見せたら「微妙だね」みたいな反応をもらっちゃったことがあります。 フィードバックとしては実際納得できるもので、ユーザの使いやすさとかを考えると確かにそうだな、という部分があったので、大幅に作り直すことになりました。

町村
町村

oh、それはなかなか大変ですな…。 メンタル的にもきたんじゃないですか?

サノくん
サノくん

はい。だいぶ凹みました。 naoyaさんは結構メンタルケアをしてくれて、凹んだときに「休め」って言ってくれたり、そうじゃないときもちょくちょく状況を気にかけてくれるのがありがたかったですね。

一ヶ月集中して作った機能が作り直しになる経験…僕にもあるのでかなりつらさが偲ばれます。 ひっくり返した人にヘイトが溜まってもおかしくない状況ですが、サノくんはそれを乗り越えて作りきり、新規プロダクトは無事リリースされました。

サノくん
サノくん

事業責任者の方とは大体プロジェクトマネージャ(PM)を介して会話をしていたのですが、そのPMさんの存在がかなり大きかったと思いますね。 ビジネスサイドの問題があったらすぐ開発チームに噛み砕いて共有してくれますし、人間的にも信頼できているので心理的な安心感もあります。

こういう時ってビジネス vs テクノロジーみたいな構図になりがちですけど、PMさんが挟まることで三者の関係になって、意思疎通がしやすかったと思います。

とても一回り下とは思えない大人な意見をいただきました。 並行開発というのは効率がいい代わりに、何か起こった時のカバーがしにくく、ハイリスクであるという欠点がありますが、PMの上手い繋ぎによってそのあたりをケアしていた、という様子が伺えます。

2022年後半 - 「手を上げる」こと

町村
町村

最近はどういう開発をしてますか? 何か技術的に面白いこととか。

サノくん
サノくん

最近やったのは、LINEのメッセージ送信に失敗したときにリトライする機構と、それに伴う送信の非同期化ですね。

既存プロダクトのチームにいた時から問題意識はあったんですけど、他の開発作業で使っていた技術を応用できるんじゃないかと思ってやってみました。

町村
町村

おお、それはすごい。 自分で発案してやった感じ?

サノくん
サノくん

そうですね。新規プロダクトが運用に乗ったタイミングで、手を挙げてみました。 実装する前にフローチャートを見せて意見もらったりとか、こまめに状況を共有することを意識して開発しました。

町村
町村

ひっくり返された経験が生きている感じがしますね!

完璧な後処理でした。エンペイに入った頃の彼からは想像できない成果ですが、これも当初から一貫して「自分で要件を考える → 作業する」というプロセスをとってきたからこその問題意識であり、成長といえると思います。

「エンペイ」という環境と今後のキャリア

町村
町村

エンペイの育成環境について、どう思いますか?

サノくん
サノくん

エンペイに入って「育ててもらった」というよりは「育つ環境の中で一緒に仕事をさせてもらった」という印象が大きいですね。

その中で仕事を任せてもらってやっていくうちに、だんだんやりたいことも見えてきて、手を挙げたら実際にやらせてもらえる。 「期待されて動く」ことと「自分で動く」ことの両輪があるのが、自分の成長にとって良かったと感じます。

町村
町村

具体的にどういう能力が伸びたと感じますか?

サノくん
サノくん

自分で要件や仕様を考える中で、将来を見据えてシステムの構造を考える能力は伸びたかな、と思います。 発覚する前にバグる可能性に気づけたり、先回りしてリファクタリングのタスクを立てたりとかですね。 その上で、いろんな視点を入れることの大切さにも気づくことができました。

町村
町村

ありがとうございます。人を巻き込むのは大事だよね。 それを踏まえて、今後どういうエンジニアになりたい、とかありますか?

サノくん
サノくん

仕事しているうちに「システムを掌握したい」という欲求を自分の中に発見しました。システムを掌握すれば、不具合の少ない設計とかを考えられるようになると思いますし、他の開発者にタスクを渡すのもやりやすくなって、より大規模な開発ができるようになる、というのもあります。 なので、システムの設計段階にどんどん絡んでいくエンジニアになりたいですね。

町村
町村

なるほど。「依頼する」ことそのもののスキルというのもあるし、そのスキルを伸ばしていくためにはある程度システムを掌握していないとチャレンジもしにくい、という感じですかね。

サノくん
サノくん

はい。あと、この記事のタイトルにもつながってきますが「ジュニアエンジニア」と評価されている状況を抜けたい、という健全な焦りもあります。 もうすぐエンペイに入って2年になりますし、キャリアやポジション的にもレベルアップしていきたいです。 そのためにも、「システムを掌握する」というのは鍵になってくると思っています。

やはり、一貫して「自走」してきた経験が、サノさんの意識を自然に高めてきたようです。 ただ、その意識を行動に活かしているのは紛れもなくサノさんの力です。エンペイにとってもよいエンジニアを採れて、最高の採用になりました。

💡
まとめ 安全性を確保しながら「自走」できる環境によって、サノさんは大きく成長を遂げた。 特別な「育成」をしなくても成長してくれたサノさんによって、エンペイも大きく戦力を増やせた。

偉そうにインタビューをするのもいいが、僕も頑張らなくては…!という気持ちになったので、まずは勤怠を提出します。しました。

この記事の「答え」

💖
エンジニアってどうやって育てたらいいんだ、と悩んでいるマネージャーの方 → 「仕事の振り方」を変えずに「仕事の大きさ」で難易度をコントロールすると、自走しやすくなるかもしれません
💖
職を探しているエンジニアの方(一緒に働きましょう) → 一緒にエンペイで働きましょう!

おわりに - サノくんにとっての「開発」

町村
町村

少し抽象的な質問になるんですが、サノさんにとって「開発」とはなんですか?

サノくん
サノくん

「仕事」ですかね。 やっぱりお金が発生するからやっているという面が大きいです。 趣味でコードを書くこともあるんですけど、突き詰めるためには仕事じゃないときついかな、という感触があります。

町村
町村

なるほど。 自分のモチベーションの源泉がちゃんと認識できてるのはすごいですね。

サノくん
サノくん

やっぱり、自分の性質として「これを理解しないとシステムが壊れる」とか「業務に影響が出る」という意識があると、よく動けるところがありますね。

町村
町村

ありがとうございました!これで書けそう!

自分のモチベーションを見つめることが、何よりの成長の助けになるとはよく言います。 サノくんの今後の成長にも大いに期待していきたいと思います!

一緒に働きませんか

株式会社エンペイでは、一緒に働く仲間を募集しています。

各種エンジニア・他職種ともに絶賛募集中ですので、この記事を読んで興味を惹かれたという方はぜひ一度採用ページをご覧になってください。詳細な募集要項が載っています。