見出し画像

6年目エンジニアの生存戦略 - DXを突き進めるスーパーエンジニアを目指して

はじめまして、令和トラベル、バックエンドエンジニアの飯沼です。
かんたんに海外旅行を予約できるアプリ『NEWT(ニュート)』と、裏側を支える旅行管理システムを開発しています。

「NEWT 1week Calendar」と題して「#私のあたらしいxx編」というテーマでリレー形式で記事を書いてまいります。本日は、事業開発(BizDev)の須郷さんからバトンを受け取り、Day 2の記事として「#私のあたらしいエンジニアとしての生存戦略」をテーマに書かせていただきます。

※現時点では8年目になりますが、6年目に目標と戦略を見直した結果、今も熱意を持って仕事に取り組めている、という話なのでタイトルは6年目としています。

5年目以降のエンジニアは難しいお年頃だと思っていて、それ以前は何をやっても自分自身にとって新しく刺激的で、それだけでも動機になっていたけど、学べば学ぶほど新鮮さは感じなくなり、同じようなことを繰り返しはじめてしまったと感じる方もいらっしゃるのではないでしょうか?

当時の私もそれに近い状態で、都度課題を見つけてはステップアップしていくような川下り型のキャリアを歩んできた私にとっての次の目標が見つからなくなってしまいました。この時に目標と戦略を見直して熱意を取り戻した話です。

技術以外の考えをこういった場でオープンにするのはおそらく初めてで、大変気が引けますが、同じような状況の方にとって少しでも参考になればと思い、勇気を出して共有したいと思います。

それでは本題に入ります。


私がバックエンドエンジニアになるまで

2017年、エンジニア2年目のときの本棚の一等地
機械学習とWebアプリケーション開発を身につけようとしていた

私の最初の仕事は求職サイトのフリーワード検索の最適化で、求職者が求めているであろう求人情報を目が留まる上位に表示するために検索ログ分析や、最適化アルゴリズムの実装・検証をしていました。

よく、T字型人材を目指しなさいと言われることがあると思いますが、当時は専門性は高いけど周辺の技術のことは分からない、社会人としても世間知らずでT型には程遠い非常に細いI型で、プロダクト開発に貢献できる方法は非常に限定的でした
※T型人材とは、特定の分野を極めながら、専門外においいても幅広い知見を持っている人材のこと

その後、上司から勧められて飲食店などの店舗で利用するシフト管理のSaaSプロダクト開発にバックエンドエンジニアとして関わらせてもらいました。最初はシニアレベルのエンジニアにサポートしてもらいながらリアルタイムチャット機能の設計・実装から始まり、5年程掛けてローンチからエンハンス、インフラのEOL対応などさまざまフェーズのプロダクト開発で多くの学習機会に恵まれ、一般的なWebアプリケーション開発から安定運用までを実践できるようになりました。

6年目の危機感

何気なく足を運んだ本屋で面白そうな本を見つけてメモ代わりにとった写真
学ぶことは無限にあるが、方向性に悩み始める

バックエンドの開発に関わっている時は、作って終わりではなく、その後の運用や機能拡張を通して、作り方が良かったどうか振り返って次に活かす、というサイクルを繰り返すことで多くの学びを得られたと実感しています。やっているうちに、「こうあるべき」という考えやプラクティスが出来上がってきて、最終的には一プロダクトのバックエンド領域のテックリードの役割を担わせてもらうようになりました。

テックリードとしては少数の社員と常駐パートナー多数という構成のなか、バックエンド全体の設計、誰でも一定の品質で開発ができるような開発環境の整備(フレームワークなどの共有的な設定やCI/CDの設定など)や他メンバーのサポートの仕事がメインでした。

特に開発環境に関してはいくつかのプロジェクトを通して改善を重ねた結果、自分の中では型が出来てしまって、もう自分がやらなくても良いなと思える状態になりました。見る人が見ればいくらでも改善の余地はありますが、同じリソースを割くのであればもっと別の方法の方がプロダクトの成長に貢献できるのではないかと考えるようになったのです。

また、フロントエンド、インフラ、セキュリティなどさまざまなスペシャリストと一緒に働く度に自分の仕事の範囲が非常に狭く、限られたものだと自覚させられました。サービスに求められる品質が高く、それを支える技術も高度化しているので專門分化するのは組織にとって合理的なことです。
しかし、個人としては同じように分業化された環境じゃないと価値を発揮できなくなる(≒ 違うフェーズ・規模の会社ではやっていけない)リスクがあるのではないかと漠然とした危機感を感じるようになりました。

そして、一度立ち止まって、自分のモチベーションを探り、今後どこを目指していくかを考えました。

Step 1: 自分のモチベーションを探る

私がエンジニアになったのは「大学で学んでいた自然言語処理や機械学習が面白くて、実世界で役立てたいと考えたからです」と、表向きはこのように話してましたが、内心は、実世界で実践できなかったら他に目立った強みはないし、クビになるんじゃないかと、誰からも必要とされない恐怖心から、1年目は毎日何かしら価値のあるアウトプットをしようと必死でした。

必死に頑張った結果、メンターのアツいサポートにもあって検索の分野で一定の成果を出すことができ、恐怖心というよりは、これからも誰かの役に立ち続けたいというポジティブな気持ちに変わっていきました。今でも基本は変わらずで、技術的な面白さよりも実利を生み出すものに意義を感じて全力で取り組むことができ、そこに貢献できないと感じるとやはり恐怖を感じます。

課題の一次情報からの距離も私にとっては重要です。それが本当に課題なのか?解決方法は妥当なのか?自分の中で納得しているときに本気になれました。せっかく作るものが価値を生み出さなかったら嫌ですからね。

これまではきっちり專門分化された組織構成のなかで他部署が整理したプロダクト仕様を実装していくような流れが多い状態でした。(プロジェクトによっては運良くそもそもの実現すべき事柄を整理するところから関われたこともありましたが)
そのなかで、技術的には実現可能だけど作るのにすごく時間が掛るようなものがあがってくるので、先送りするか、別の解決策にするかを考えるわけですが、一次情報から遠いと別の解決策の提案が難しく、せっかくそれまでに身につけてきた技術による問題解決能力を上手く活かせないのです。

Step 2:  社会からの需要と自分のWill/Canをフィットさせる

1週間のうち5日間も働くのですから、せっかくなら実利を生み出し意義を感じられる課題解決に納得感をもって関わり続けたいと思っています。そのためには問題解決の引き出しを増やし続け、課題解決に必要な存在であり続ける必要があります。

具体的な方向性については、社会一般で認知されている課題(需要)を対象とすることで、さまざまな業界で活かせる汎用性のある問題解決能力を身につけられるのではないかと考え、経産省のDX推進ガイドラインを参考にしました。

※ 当時の資料を見つけられなかったため、DX(デジタル・トランスフォーメーション)による企業価値向上のために必要な事項をまとめた、デジタルガバナンス・コード2.0からの引用です。

こうした時代変化の中で、持続的な企業価値の向上を図っていくためには、
① IT システムとビジネスを一体的に捉え、新たな価値創造に向けた戦略を描いていくこと
② デジタルの力を、効率化・省力化を目指したITによる既存ビジネスの改善にとどまらず、新たな収益につながる既存ビジネスの付加価値向上や新規デジタルビジネスの創出に振り向けること
ビジネスの持続性確保のため、IT システムについて技術的負債となることを防ぎ、計画的なパフォーマンス向上を図っていくこと
④ 必要な変革を行うため、IT 部門、DX 部門、事業部門、経営企画部門など組織横断的に取り組むこと
が重要であり、企業全体の組織構造や文化の改革、中長期的な投資を行う観点から、経営者の関与が不可欠なものである。

デジタルガバナンス・コード2.0 - 経済産業省

このような社会の需要に対して、私が貢献できること、出来るようになりたいことを次のように考えました。

  • ②、③:バックエンドエンジニアとしての実践経験を活かして効率化・自動化に貢献することができ、機械学習の知識でその先のレベルの価値向上に貢献できる。これからも様々な課題を通して引き出しを増やしていきたい。(深めたいCan)

  • ④:現場レベルでは、ドメインエキスパートと協業して本質的な問題解決に取り組むことだと捉えていて、業務を理解して課題を特定し、解決するところまで自分の役割を広げていきたい。技術的な問題に落とし込むのも重要なエンジニアリングスキルであり、この段階で不必要に複雑化しないことが長期的に価値を生み出し続けるシステムの安定性に大きく影響するからです。なお、PdMになるということではなくて、あくまでもエンジニアとして主体的に一次情報を求めて、ドメインエキスパート、PdMと上手く協業してもっと大きな成果を出せるようになる、というソフトスキルの強化を目指しています。(広げたいCan)

そんなことを考えている時に、デジタルの力で旅行体験をアップデートするという旅行業界のDXをミッション・ビジョンに定める令和トラベルとの縁を感じて、旅行業界で実践してみようと入社を決めました。

エンジニアとして成長するには、作って終わりじゃなくて、運用して繰り返し機能を追加してはじめて作りの正しさが分かり、その学びを活かしてまた作る、そのサイクルを何度も繰り返すことでより正しく作れるようになっていくと考えています。スタートアップというスピード感が求められる環境で、そのサイクルを素早く回していこうと考えたのです。

また、組織規模が小さく、ほぼ強制的に一次情報である課題と向き合える環境でありながら、情報共有はオープンに徹底的にやっていこうといった方針など、初期から規模拡大を想定した仕組みづくりにも魅力を感じました。

その後2年間どうだったか?

目標を見直し、環境を変えた結果どうだったか?いくつかの観点から振り返りたいと思います。

強みを活かせているか・伸ばせているか?

隔月の開発合宿の様子
日々の業務から離れ、未来に向けた技術検証を行っています

私が令和トラベルに入社したのは2021年1月で、コロナ禍で旅行者が少ない中、海外旅行需要が戻ったタイミングに向けてNEWTを開発しているところでした。まさにこれからプロダクトを作っていくフェーズで、これまでの経験で学んだことを最大限活かしてプロダクト価値向上に貢献できたのではないかと考えています。2つ事例を紹介したいと思います。

1つ目は「ポイント機能」の開発です。国内のサービスとしては一般的なので競合に追いつくレベルの貢献度ではあるものの、複雑な要件を満たしつつ、未来のユースケースへの拡張性や不具合の起きにくい作りを実現出来たと考えています。(正しかったと確信できるのはもう少し運用が必要)

2つ目は「パスポートの姓名のチェック」です。フライトの手配のためにパスポートに記載の姓名が必要になるのですが、入力誤りが多く、最悪飛行機に乗れないインシデントになるため人手でチェックしていました。これを機械学習でチェックして、お客様が入力誤りに気がつけるようにする機能です。

GPTが流行っている時代に、技術的には決して難しいわけではありません。重要なのは、現実世界の課題の一次情報を得て、そこに自分の持っている技術を当てはめて解決できたことだと考えています。

思いがけず伸ばせたスキルもありました。まだまだ改善の余地がありますが、課題の本質を見極め、作るべきものを小さくして速く届ける力です。大企業でのエンタープライズチックな開発に慣れてしまった私は、あらゆるエッジケースをサポートするような作りにしようとしてオーバーエンジニアリングしがちだったのです。MVP開発に慣れたほかメンバーと一緒に議論しながら開発する中で、発生頻度や問題の大きさを鑑みて、適当な落とし所を見つけられるようになってきたと思っています。

ドメインエキスパートとの協業は実現できているか?

ツアー企画メンバーとの打ち合わせの様子
DXにはドメインエキスパートの知識が欠かせません

令和トラベルには旅行業界のさまざまなドメインエキスパートが在籍しています。

  • フライト・ホテルの仕入れやそれを利用したツアーの企画

  • フライト・ホテルなどの手配 ※ 転職して知ったのですが、特に航空券の発券は複雑なのです。

  • カスタマーサポート(旅行前から旅行後まで)

エンジニアの役割としては、そんなドメインエキスパートたちの業務を自動化し、ミスなく確実にお客様が安心して旅行を楽しめる状態をつくることだと考えています。

具体的な関わり方としては、タイムゾーンをまたぐ日程や日数、人数、部屋割りで変化する複雑なツアーのデータモデルを考える際は、ツアー企画のメンバーに直接聞きながら整理したり、航空券の発券自動化の際は、発券までのステップが多く複雑で、10年以上発券業務に関わっているメンバーに業務内容を教えてもらって自動化を実現しました。

発券のスペシャリストとのSlackでのやりとり
発券のミスは重大インシデントに繋がるため、航空会社による違いなど細かな観点を丁寧にチェックする必要があった

こうして一次情報を得やすい環境だからこそ、本当に作るべきものを見極めて納得感を持って開発に取り組むことができ、創意工夫して打ち手を考える機会も多く楽しく仕事に向き合えていると感じています。

参考に、私とツアー企画メンバーのインタビュー記事を紹介します。

さいごに

以上、私が6年目に見直した目標とそれに向かう戦略、その結果を共有させていただきました。実際のところ、このような働き方が出来ているのは今の組織規模だから実現しやすいというのもあると思っています。この先は会社の成長とともに貢献の仕方を広げながら一歩ずつ成長できたらなと考えています。

モチベーションの源やWill/Canの方向性は人それぞれなので、参考になるエピソードを共有できたかは自信がありません!ただ、明確な目標が見えてないのであれば、一度立ち止まって、自分がどんなこと/環境で本気を出せるかを探り、また、誰の役に立ちたいかという需要ベースで考えるというのも一つの観点として試して頂けたらと思います。

今回は紹介しきれませんでしたが、海外旅行のDXは始まったばかりで、まだまだやるべきことがたくさんある状態です。何度も書いてますが、個人的には、DXの実現には技術力とドメインエキスパートとの協業が大変重要だと考えています。令和トラベルは、そんなDXの経験を得るのに最高の環境なので少しでも興味を持って頂けた方はぜひご連絡いただけると嬉しいです!

そして、明日のNEWT 1week Calendar Day3はコーポレート部門の小谷さんの記事です。私含めた多様なメンバーがいきいきとコラボレーションしながら仕事に打ち込めるのは、小谷さんのような方が制度、ルールを整備して環境を整えてくれているからです。そんな「働きやすい環境」をどんな思いで作り・支えているのかを書いてくれます。どうぞお楽しみに!

この記事が気に入ったらサポートをしてみませんか?