お首が長いのよお首が長いのよ

チラシの裏よりお届けするソフトウェアエンジニアとして成長したい人のためのブログ

2024-09-19

新規事業に1年携わって実感した 「エンジニアの成長方法」とは

な、なんだって?😧
土日は休日?😨
ふ、ふざけるな✊😡💢
できる社会人なら土日も出勤☝️😉✨
労働基準法ギリギリの出勤で圧倒的成長💪😤
先週に引き続き今週、来週の土日も働かせてくれる会社に圧倒的感謝🙏🙏🙏

某コピペより

はじめに

2024年9月で、今の会社で始まった新規事業案件に携わって1年が経過しました。正確には5月頃から水面下で動き始めてたりというのはあったのですが、正式な所属として今のフラッグシッププロダクトの開発から外れたのが9月でした。

私について軽く自己紹介

私は 2022年にソフトウェアエンジニアに社内転職しました。2023年秋の時点ではちょうど経験1年半といった感じです。(ややこしいですが、記事を書いている2024年の今は 2年半ほど経験しています) 社内転職する前は、カスタマーサクセスとして今の会社に入社し、リーダー、マネジメントを経験してから本当にやりたい事ってやっぱエンジニアリングだよねと思い、社内転職しました。

社内転職に関する話は、こちらの Zenn にまとめてありますので、よかったらご覧ください。

実務未経験でエンジニアにジョブチェンした地獄の半年を振り返る 

どんな事業で、どんな組織からスタートしたのか?

事業内容

正式に表に出ているわけではない(LPなどお披露目しているものが無い)ため、具体的な内容は伏せますが、ChatGPT をはじめとする LLM を活用した SaaS 事業 です。

会社のフラッグシッププロダクトはWebサイトを含めたありとあらゆるモノを多言語化するプロダクト・プラットフォームですが、私が携わっているプロダクトは、その先にある新しい価値を提供するものです。

コンパウンドでサービスを提供しています。

組織について

最初期は 社長直下に、Company COO / PMO / エンジニア 2名(私含む) という構成で、途中からデザイナーを業務委託で迎えたり、営業メンバーを迎えたりしました。

現在は社長含めて合計6名のメンバーで構成されています。

私の役割

技術的な部分で落ちているボールはすべて、私がやるというスタンスで動いていたので、3つぐらい仮面をつけていました。

  • テックリード
  • プロダクトオーナー
  • エンジニアリングマネージャー

ある時はテックリードとして爆速で開発を進め、ある時はプロダクトオーナーとしてデザイナーとコミュニケーションを取り、ある時はエンジニアリングマネージャーとしてメンバーの成長を促し、といった感じでした。

私が最初期にやり始めたこと

ずばり稟議を書くところからでした(笑)。うろ覚えですが、AWS アカウントやドメインの取得、GitHubアカウントに新たなOrganizationを作成するといったまっさらな状態からのスタートでした

それとは別にローカルの開発環境を構築し始め、AWS アカウントの準備ができたら即デプロイできるように・・・といった形で進めていました。

上述の通りコンパウンドなので、インフラの構築やプロダクトの初期開発など初めてのことだらけかつ、メンバーも少ないためかなり苦労しました。

圧倒的成長をするためにしたこと

かなり短いスパンでプロダクトをポコポコ生やさなければいけない・・・・!という状況なため、私自身のスキルを底上げしないと追いつけないと感じていました。 具体的にはこんな感じのことをやってました。

  • 毎月1〜2万円分ぐらい技術書を購入して読み漁った
  • UI/UXを学んだり、デザイナーとコミュニケーションを取るようになった
  • テックリードとしての働き方を意識し始めた

毎月1〜2万円分ぐらい技術書を購入して読み漁った

元々技術書を読むのは好きでしたが、足りないと感じているスキルの幅がかなり広くなったため、書店に行っては片っ端から買って読んでいました。 どんな本を買ったかなどのレビュー等はまた別記事にして書いていこうかと思いますが、Python ソフトウェア設計 エンジニアリングマネージャー スタッフエンジニア セキュリティ エクストリームプログラミング関連 UI/UX プロダクトマネジメント DevOps・・・と、ジャンルを挙げるだけでもキリがないですね。

もちろん、すべての本を最初から最後まで読んだわけではなく、目次をみて必要そうな章だけ読んだり、読み終わった本を何度も読み返したりしていました。中には勢いで買ってパラ読みだけしてメルカリに放流・・・なんてこともあります。

自己投資と割り切っていたので、お金をかけることには抵抗がなかったです。

このブログでは書き溜めてる読書メモを少しずつ公開していきたいなと思っていて、それが私と同じように圧倒的成長したいエンジニアの助けになればと考えています。ぜひお楽しみに。

UI/UXを学んだり、デザイナーとコミュニケーションを取るようになった

UI/UX については、本を読んだり、YouTube を見たり、デザイナーと考え方を共有したりして理解を深めるようにしました。

私はプロダクトエンジニア *1として、一通り何でもやるのですがデザインだけは今まであまり触れたことがなく、MUI を使ってなんとなくそれっぽい画面を作ることぐらいしかできませんでした。 ただ、スプリントレビューで周りに見せてみると微妙な反応が感じられる事も時々あったため、自分1人で実装してもそこそこのモノが作れるようになることを意識していました。

デザイナーが作ってくれた画面を見て、なんでこのデザインになったのか、どういう意図があるのか、といったことを聞いたり、自分で考えてみたりしていました。

今では、デザインシステムも出来上がりつつあるため、あとは組み合わせて画面を構築するだけというシチュエーションが多いですがそれでも気を抜くと使いにくい画面ができてしまうので、気を引き締めています。

テックリードとしての働き方を意識し始めた

フラグシッププロダクトに携わっていた頃よりも小さいチームなので「テックリード」という概念が当てはまるかはわからないですが、以下はかなり優先度高くやっています。

  • 設計
  • コードレビュー
  • DevOpsの整備
  • パフォーマンスチューニング

などなど、チーム全体の底上げになるような事は何かを考えて仕事をしていたと思います。

Biz側と話し合って作っていくと決めた機能を早く届けるのが最優先になってしまいますが、いかに空いた時間を作って全体底上げの時間を作るかを意識していました。

日々の仕事で、駆け出しの頃は避けていたけど、今は避けてられない状況が成長に繋がったと思います。逆に言えば、駆け出しの頃でも積極的にこれらに挑戦すると、成長できるんじゃないかと思います。

もちろんできる事が少ない時は何からしたら良いかわからず手が出せないというジレンマもあると思いますが、少しずつでもいいし、自分で環境を構築してトライして安全に失敗するのもアリだと思います。

挫折したことと、そこから意識したこと

付ける仮面が多すぎて疲れた

挫折した、というか今も継続して苦労しているんですが、テックリードとしての仕事をするときはテックリード、プロダクトオーナーとしての仕事をするときはプロダクトオーナー、といった感じで仮面を付け替えていました。

しかし、それが続くと、どの仮面を付けているのかわからなくなり、自分が何をしているのかわからなくなってしまいました。

仮面を付けるといっても、広い目でみた時に目指すべき方向は一緒なのであまり気にしないようにしていますが、プロダクトの方向性そのものを考える時とプロダクトを作る時って全体をみるのか今目の前のものをみるのか、といった違いがあるのでその切り替えが難しいです。

摩擦が避けられない

チームメンバー全員が尖った才能、尖った性格の持ち主なので良い摩擦も悪い摩擦も多いです。ゴールは一緒なはずなのに、何から手をつけるのか、どう作っていくのかの議論で精神をすり減らす事もあります。

みなさんも経験あると思うんですが

「営業は『これが無いと売れない』と言ってくるけど、それ明らかに個会向け機能だし、今はそこにリソースを割くべきじゃないよね」
「とはいえ、今は売り上げを作らないと話にならない状況だし、どうしようかな・・・」
「でも、それが多いと何のためのプロダクトかビジョンが曖昧になっていくし、作る僕たちも疲れていくよね」

みたいな感じです。これに関しては「摩擦はあるもの」と割り切ったパワープレイで心を強く持っていこうと考えています。

上司や周りのメンバーと 「あの話し合いってどうだったと思う?」 と振り返って 「いや、あれはキリンさんが守りすぎだよ」 とか逆に 「あれでいいよ。もっとあんな感じでいこう」フィードバックをもらうことで、自分の考えを整理するようにしています。

1年前と比べてどう変わったか

いろいろあるのですが、まずひとつ目は「技術的負債についての考え方に変化が生まれた」です。

厳密に綺麗な設計を考えすぎず、技術的負債を積む事を許容できるようになったと思います。始める前は「なんだこの〇ソ設計は」と自分で自分を責めていた事もあったのですが、今では「技術的負債はその時取れる最適な選択だった」という理解に変わりました。 とはいえ、良い設計を突き詰めたり、テストをちゃんと書いたりする事は妥協しないほうが将来的には楽なので、その塩梅を考える力がついたんじゃないかなと思います。

そして、二つ目は「チーム全体の底上げに対する意識が高まった」です。

ソフトウェアエンジニア1年目〜2年目の頃は、自分のスキルアップに必死で、チーム全体の底上げに対する意識が低かったです。しかし、今はチーム全体の底上げに対する意識が高まり、自分のスキルアップはその一環として捉えるようになりました。 つまり他人を育てるのが自分を育てることに繋がるということです。

まとめ

1年間、ずっと背伸びをした状態だったので足がつったような感覚もありますが、それでも他のエンジニアに比べて「自分、成長できてるやん?」という自信が持てるようになりました。

今携わっているプロダクトは思い入れも強いし、これからもっとよくしていきたいので、早くみなさんが何らかの形でまだ見ぬプロダクトを使ってくれる日が来ることを楽しみにしています。

ありがとうございました。

/以上

よかったらシェアしてください!