やまけんの技術ブログ

新卒エンジニアの日記

新卒エンジニア 1年を振り返る。

早いもので、新卒でエンジニアになってから1年が経ちました。

記録として、一年でどのようなことを感じたのかを書いておきます。 (個人の感想ですので、温かい目で見てください🥺)

配属した当時

自分の配属されたサービスは、非常にユーザー規模の大きいサービスでした。

最初に、セットアップしたい際に非常に複雑なディレクトリ構造とファイル数でほんとに訳が分からなかったことを覚えています。

ほかにも、ドメイン知識、アーキテクチャの理解やgitのルール、複数のツールなど非常に情報にあふれており非常に混乱しました。

できたこと・学びになったこと

・技術的な面での成長
設計内容から実装を行うことや、git, githubの細かい機能の使用方法など始めた当初と比べると多少できるようになったかなと思います。

・運用
日々、運用のエラーやバグが発見されたりなど運用の対応を行いました。 もちろん、全てのエラーを見るわけではないですが各担当ドメインについて確認します。 既に、原因が確認されているエラー対応への効率化や実際にユーザーのログを見て対応が必要なのかどうかを判断するなど非常に学びになりました。

・技術的負債
サービスを開発・運用していると技術的負債はつきものですが、実際に大きくアーキテクチャを変えたりリファクタリングする経験はありませんでした。 実際、サービスローンチ初期に作成されたものなどは仕様書がなく、実装者も退職しているケースも珍しくありません。 コードベースで解読して、パターンや構造などを洗い出しながらリファクタリングしていかなくてはなりません。 新規開発以上に設計や計画などを行ってから実装する必要があると学びました。

できなかったこと・学びきれていないこと

ドメイン知識、ビジネス的な観点
実際、まだ自分が詳細まで知っているドメインが少ないのが現実です。 また、契約などビジネス的な観点がまだまだキャッチアップできないないなど個人的な課題はまだまだあります。 プロダクトがどの方向へ進んでいくのかなどを知ることでより開発するときなどに生きる気がしています。

・詳細な技術的な理解
抽象的なアーキテクチャの理解や構成は少しずつ理解できてきてはいます。 ただ、実装時にどのような点に気を付ける必要があるのかなどはまだまだ課題が残っていると感じています。

・インプット方法
実装、調査などこれまで経験のないドメインなどに触れる機会があります。 デバッグや確認をしているとついつい時間がかかってしまっているのが現実です。 最低限の、要点を決める、どのくらいの緊急度なのかなど基本的なところをしっかり定義して実行する必要があるなと感じています。ここは、社会人としては当たり前のことかもしれませんがつい焦ってしまうのでテンプレのようなものを用意して対応しようと思っています。


上記で、自分個人的な振り返りを行いました。
下記では、大規模なサービスの開発環境について振り返りを行います。

メリット

・優秀な人が多い。
日々、優秀な人が多いなと感じることが多いです。 技術的な負債や、設計、レビューなどの意思決定やインシデント時の対応など非常にすごいなと感じることが多いです。自分も意思決定への観点などが甘い部分も多いので、なるほどなあ~と思ってみていることが多いというのが正直なところです。 少しでも学びになるよう、キャッチアップを行っています。

・上長やチームがサポートしてくれる。
私のチームには、非常に経験のあるチームの方が多いです。 聞くと大体教えてくれますし、相談も乗ってくれるので非常にありがたいです。 実際、エンジニア経験が10年以上ある方が多いので自分の力不足を感じることが多いですが日々直庭させていただいています。

デメリット

・新規開発が少ない。
技術的な負債を解消に工数を使っているのもありますが新規機能開発を行うことが少ないです。 実際、作ってしまうと運用コストが上がってしまうので安易に作ることができません。 もちろん、規模が小さいサービスも検討はすると思いますが規模が大きくなると実装を進める前の調査やコストなどの点で開発までのハードルは大きくなります。

・設計や意思決定をする箇所が少ない。
もちろん、自分の経験が少ない、スキル面も乏しいのもありますが基本的にウォーターフォールの形になるため、メンバーは設計をもとに詳細設計、実装を行うことがほとんどです。 設計にチャレンジすることは、少ないため経験として積みずらいなと感じています。

・影響範囲が大きい。 実際に、バグや設計ミスなどが後で見つかることがありますが既存部分に大きな手を加えると影響範囲が大きくなりテストや実装に大幅な工数がかかってしまいます。 設計時に、工数がある程度決められているため根本的なリファクタリングを行うというよりは工数を最小限に抑えれる実装になってしまいます。

これから

配属から一年たちましたが、エンジニアとしてまだまだ力不足を感じます。 より成果を出せるように頑張っていきたいと思っています。 個人的には、もう少しこのまま大きい規模のサービスに触れその後、PMF前後のサービスで開発したいと思っているので配属の異動や転職なども考えていきたいです。