見出し画像

実装経験に自信がなかったエンジニアが、BABY JOBで見つけた新たなキャリアの可能性

「将来、どんなエンジニアでありたいか」

これが私が BABY JOB へ転職を決めたきっかけでした。

これを読んでいるエンジニアの方は、自分がどのようなエンジニアになりたいか、イメージしているでしょうか?
「キャリアビジョン」と言うと、少し大仰に聞こえてしまいますね。

かく言う私自身も、そう明確に決めていたものでもありませんので「将来どんな仕事を しているか|していたいか」ぐらいで構いません。

「どんな仕事をやっているときが楽しいか」「何に憧れてエンジニアになったのか」「マネージャーとスペシャリストのどちらに興味があるか」などなど、人によってパラメータはさまざまだと思います。

私の場合、BABY JOB への入社が私のなりたいエンジニアに一番近づけるイメージがありました。入社から4ヶ月経とうとしている今もその印象は変わりません。

2024年6月から BABY JOB 株式会社へ入社した 加納(@YKanoh65)です。
BABY JOB へ入社後は、保育園探しのプラットフォーム「えんさがそっ♪」の開発に携わっています。

この記事では、私が BABY JOB へ入社した経緯と、入社後のギャップを紹介することで、エンジニアとしての進み方や、キャリアの参考にしていただければと考えています。

この記事は以下のような方にオススメです。

* 転職先をどう選べばいいか悩んでいるエンジニア
* 技術的にやりがいのあることがしたいエンジニア
* 自身のキャリアがわからなくなっているエンジニア


プロフィール

  • 出身:兵庫県西宮市

  •  趣味:スキューバダイビング、観葉植物

  •  特技:

    •  なんでも楽しんで取り組む!

    • 声がデカい(オフィスの皆さま、うるさくてすみません💦)

これまでの経歴

  • 2016年:B2B SaaS の開発

    • 設計/実装

    • 仕様策定

    • オフショア開発におけるブリッジエンジニア

    • エンジニアイベントでの登壇活動

PHPカンファレンス関西2024を主催しました

転職を決めた経緯

転職に踏み切った理由として、今回は以下の2つに触れようと思います。

①技術的負債が抑えられた世界を見てみたかった

前職で担当していたサービスは、とても歴史が長いサービスでした。長い間ユーザに価値を生み出し続けるとてもすごいサービスであると同時に、システムには技術的な負債が多く残されていた状態でした。

負債を少しずつ返済、もしくはこれ以上増えないように防止できればいいのですが、私自身に「負債が貯まっていないシステム」を扱った経験がないため、どのような状態がベストなのか、何が正解かわかりません

書籍やイベントで学習はするのですが、自分の提案が合っているのか勘違いしているだけなのかわからず、どうにも技術知識に自信を持てず、”知識” だけでなく、これを補うための “経験” を積みたいと考えるようになりました。

②上流工程以外の経験を積みたかった

突然の自信過剰発言で申し訳ないのですが、私は他者とコミュニケーションを取るのが得意です(笑)(自分が思い込んでいるだけならごめんなさい...💦)

前職ではそのコミュニケーション力を活かし、オフショア先との調整や、ビジネスサイドのメンバーと連携しての仕様の調整、他部署を巻き込むプロジェクトの推進なども任されるようになりました。

もちろん、このような仕事を任せていただけることは嬉しいですし、やりがいも凄くあったのですが... 組織としてタスクが上流工程、下流工程などに分業されていたこともあり、実装タスクは望んでも任せてもらえなくなってしまいました。

誤解のないよう補足しておくと、決して上流の仕事が嫌いなわけでもありませんし、どちらかと言うと実装よりも自分に合っていると感じています。
しかし、「実装の経験が乏しい中、将来的にこのままでいいのか」不安に思うことが多々ありました。

また、私は社内のエンジニアに外部勉強会への参加を勧めたり、技術の最新情報を共有したりすることを会社から求められる立場でした。
しかし、いくら情報収集して紹介しても、上流工程をメインで行う私には、自分でその知識を使う機会はありませんでした。

将来的に、自分が実装やソフトウェアの設計を知らない状態で、仕様を決め、実装担当者に指示をして、そして実装上の問題を相談されてもいい答えを持ち合わせていない状態になることが不安になり、環境を変えてみようと思ったのです。

どんなエンジニアになりたいか 〜BABY JOB に決めた経緯〜

転職をするにあたり、そもそも自分がどんなエンジニアでありたいのかを考えたところ次の2点が大事だと気づきました。

①エンジニアとしての文化を大事にしている会社で働くこと
②小さな組織でプロダクト全体に関わるエンジニアになること

転職活動では上記の2点の価値観と合うかどうかを考慮し、最終的に BABY JOB に決めました。

①エンジニアとしての文化を大事にしている会社で働くこと

先に述べた「技術的負債の返済や防止」は、言葉で言うほど簡単ではありません。
新しい機能を追加するときも、保守性を考えながら内部設計を行い、負債になりかけたコードを定期的に修正する必要があります。

これを実現するためには、その組織に負債解消のための修正を歓迎する雰囲気や、そのための情報収集を自発的に行う環境が必要不可欠だと考えています。

総じて、このようなエンジニアの「文化」を意図的に作り出し、維持していくことができるエンジニアになりたいと考え、そのような文化が存在する組織に所属したいと考えました。

BABY JOB のエンジニアは、カジュアル面談の内容から、負債を増やさないよう技術的な改善を積極的に行っていく姿勢を感じられました。

また、数人のメンバーは以前私が主催した PHPカンファレンス関西2024 に参加していました。

PHPカンファレンス関西2024での BABY JOB メンバー

参加者だけでなく、登壇者や、スタッフとしても参加してもらっており、その様子や会話した内容からも、会社としてこのようなコミュニティ活動を良しとしている組織であることが汲み取れたため、自分の目指す姿にマッチしていると考えることができました。

②小さな組織でプロダクト全体に関わるエンジニアになること

私は昔から「チームでひとつのものを創り上げる」ことを楽しいと感じています。
そのため、開発者としてプロダクト全体に関わることができるようになりたいと考えていました。

この「プロダクト全体」には、もちろん今まで経験した仕様策定をはじめとする「上流工程」の知識も含まれます。私の経験は上流に偏っていますが、プロダクトを創り上げるためには全体を知っている必要があります。つまり、経験が少ない下流のタスクだけに専念するのではなく、上流のタスクも含めプロダクト全体に関わるべきだと考えています。

そのため転職先としては、大きな組織で「上流」と「下流」を分けて作業するのではなく、
小さなチームでオールラウンドにタスクを進め、全体を俯瞰して議論を行うことでプロダクトに貢献することができる組織をイメージしていました。

BABY JOB ではアジャイル開発を目指しており、工程ごとの分業ではなく、チームメンバー1人1人がそれぞれ機能の設計から実装までを担当することができ、自分がやりたいことに近づけるイメージをすることができました。

入社後のギャップ

上記のような思いで BABY JOB に入社を決めました。
保育園探しのプラットフォーム「えんさがそっ♪」の開発チームに所属して、最初に驚いたことは、チームへの馴染みやすさです。

何人かコミュニティ繋がりで入社前から知っていた人がいたこともありますが、えんさがそっ♪の開発チームは現在のチームリーダーをはじめ、話しかけやすい雰囲気がつくられており、チームに馴染むのに数日とかかりませんでした。

しかし、それ以外も様々な面で想像とは違ってギャップを感じたことがいくつかあります。

開発部について

①ソフトウェア設計をとても重視している!

まず、クラスの設計、命名、その他今後の保守性に関わることなど、ソフトウェアの設計に重点を置いていることが、とても印象的でした。

チームで発生する相談事の半分以上が、ソフトウェア設計に関する内容といっても過言ではありません。

「こんなの、if文を追加するだけで終わるだろう」と私が感じたことも、「ここに処理を追加しようと思うのですが、責務的に問題ないですよね」という感じの議論がすぐに起こります。
クラスや変数の命名も伝わりにくさや誤解を招く表現があれば議論します。

このような状態なので、設計上の改善や修正も歓迎されます。
大きくなりすぎたクラスの分割が四半期の目標になることもありました。
総じて、ソフトウェア設計を軽んじず、常に改善していくよう、チームの方向性が揃っているように思います。

②とにかくリリースサイクルが早い

えんさがそっ♪の開発チームでは、実装が完了しているものがあれば、1週間に1回、本番環境へリリースするタイミングがあります。

そのため、つい昨日書いたコードが明日リリースされることもあります。
このようなスピード感でのリリースを経験したことがなかったため、これが当たり前の環境にとても驚かされました。

このスピード感があるリリースを支えているものが、先に述べた保守性の高いソフトウェア設計と、自動テストです。

えんさがそっ♪はオニオンアーキテクチャを採用しており、コード修正による影響箇所が局所化されています。
また、それぞれに自動テストが用意されているため、なにか問題があってもCIでちゃんと検知してくれる安心感があります。

③チーム全体がコミュニティイベントでの登壇に積極的

今のチームでは、勉強会やTechカンファレンスなどのコミュニティイベントへの登壇について、全員が前向きに捉えており、登壇内容もなにかしら業務の中から探し出すことができています。

そもそも全員が登壇に行きたいと思っており、その中からだれを選出してチームの代表として発表してきてもらうかを考えないといけないぐらいです。なにも働きかけをせずとも積極的に発表のアイディアが出てくる光景はとても新鮮でした。

チームでイベント登壇の相談をする様子

④やることがたくさん!でも変化を受け入れる文化がある

入社前から「やることはたくさんあるから、どれでも手をつけてくれていいよ」とは言われていました。

実際、まだまだ組織として整備しないといけないところや、変えていかないといけないところは多々あると感じてはいますが、今のチームにはその変化を受け入れる文化があるように感じています。

何か変化があると、人はどうしても最初に警戒してしまうものだと思います。そのため、私は最初の数ヶ月は様子を伺い、慣れてきてからいろいろと活動しようと考えていました。

が、そもそも私の入社後数週間でも、週に2回ある振り返りの意見をもとに、日次のミーティング内容が変わったり、フローが変わったりと、課題解決のために現状を変えることに抵抗がないチームであることがわかりました。

また、チームメンバー同士の風通しがいいこともあり、気になったことを問題提起し、改善に自分で動ける状態になるまで、2週間かかりませんでした。
今では、いろいろなことを自分で考えながらぐいぐいと進められることにとてもやりがいを感じています。

開発部以外のこと

入社して驚いたことは、開発に関することだけではありません。

①フレックスタイム制

以前は 1 日 8 時間の勤務が決められている環境でした。
BABY JOB では月の合計勤務時間が満たせていれば、7:00 - 22:00 の間で、何時でも 出勤/退勤/休憩 をすることができます。

これは名ばかりの制度ではなく、例えば小さなお子さんのいらっしゃるエンジニアから「今日は登園に時間がかかったのでN時からの出勤にします」や「今日は授業参観のためN時からM時まで中抜けします」という連絡が柔軟にSlackで行われています。

子育ての都合で中抜け、退勤する方もいます!

また、退勤時間も自由が効くので、仕事の状態に合わせて早めに退勤する方もいます。毎週金曜日になると早くに退勤して趣味の時間に充てている方(開発部長)もいるようですね。

私はまだこの制度に慣れていなく(というか、この制度に頼ると起床と出勤時間がどんどん遅れそうなので...)基本的に9時〜18時勤務を守る自分ルールを設けていますが、プライベートの時間でできることが増えるので、いろいろと妄想だけ膨らんでいます笑

②子育てしたことないけど大丈夫?

入社前に唯一、不安だったことは... 私自身に子育ての経験がなかったことです(笑)

プロダクトごとに必要なドメイン知識は異なり、それぞれ参画後に知識を身につける必要があります。
BABY JOB のプロダクトは子育てに関するものばかりであることから、子育ての経験がないとプロダクトチームメンバーで話が合わないのではと心配していました。

しかし、入社して4ヶ月経った現在でも、そういった経験の差で困ったことはありません。
チームメンバーにも質問しやすい雰囲気があるので、わからないことはいつでも聞くことができます。

一応組織に早く溶け込めるよう、Slackのアイコン掲示を始めました笑

今後取り組みたいこと

さきほど「やることがたくさんある」と述べました。
最後に今後私がどのようなことを BABY JOB でやっていきたいかについて触れようと思います。

①課題解決の提案を実行できる強いチームづくり

保育園探しのプラットフォーム「えんさがそっ♪」はローンチからまだ2年近くしか経っていない新しいサービスです。

どんどん新しい機能を追加していきたいところですが、ただ思いつきで機能を増やすだけでは強いプロダクトにならないだけではなく将来的な負債になってしまいます。

そのため、ビジネスサイドのメンバーからの情報をはじめ、様々な情報をもとに、ユーザが困っている課題を把握し、「課題を解決する手段としての機能」を提案できるチームを作りたいと考えています。
(入社して数ヶ月のペーペーが何を言っているんだと思われるかもですが笑)

ユーザの課題にフォーカスしたチームができれば、仕様策定から実装まで一気通貫して素早く実行できるチームが実現できるでしょう。

このようなチームは素早く様々なことを考え実行し、間違っていたら訂正することができるので、えんさがそっ♪のスピード感あるリリースサイクルと合わせて、ビジネス的にも強いプロダクトに成長させることができると考えています。

②設計/実装に関するノウハウを身につけたい

前述の強いチームを作るためには、自分自身も足りない分野の知識を身につける必要があります。

そのためには、まずはあまり経験が積めていないソフトウェア設計や、実装に関するタスクをこなしていきたいと考えています。
知識だけでなく、経験が伴った状態で、次のステップに進めるような状態を整えたいと思います。

③チームの改善/マネジメントへチャレンジ

プロダクトが大きくなるにつれ、チーム自体も変わらなければなりません。
その時求められている状態や、あるべき姿、今できる姿を意識しながら、チームと一緒に変わっていけるようになりたいと考えています。

それと同時に、自身のなりたいエンジニア像の一つであるマネジメントへの挑戦も積極的に行いたいと考えています。
BABY JOB では、今まで足りていなかった実装方面の経験も得ることで、実装担当の考えもわかる理想のマネージャーになれると期待しています。

さいごに

私の場合、自分のなりたいエンジニア像と価値観が合うかどうかで転職先を決めました。
また、偏った経験を是正することができるよう、プロダクト全体に携われるかどうかも注視していました。

BABY JOB はこのような面で、自身のキャリア的にも、技術的にもやりがいがある組織だと感じています。

この記事を読んで弊社のことを少しでも良いなと思って下さった方は、以下の採用サイトを覗いてみてもらえると嬉しいです!

X(旧Twitter)アカウント( @YKanoh65 )のフォローやDMでの相談もお待ちしております!

手ぶら登園サービスサイト
えんさがそっ♪サービスサイト

最後までお読みいただき、ありがとうございました!
感想もお待ちしています!