見出し画像

【月次報告】エンジニアになって4ヶ月が経ちました

こんにちは、しゅんです。エンジニアになって4ヶ月が経ちました。今月は精神的にも肉体的にも辛い経験をしたので技術的な話は少ないかもしれませんが最後までお付き合いいただけますと幸いです。

本当ならどれだけ自分が成長できたか、エンジニアになってどのくらい楽しいのか、良い面のみを記事に書きたいものですが、いつか振り返った時にこんなことがあったなと見つめ直せるように赤裸々にお伝えしていきたいと思います。

※エンジニアになって3ヶ月目の記事も投稿しておりますのでお時間ありましたらぜひご覧ください。

■エンジニアになって4ヶ月が経ちました

・4ヶ月目の概要

8月第4週目までは冠婚サービス(Vue3, Nuxt2, TypeScript)のプロジェクトにアサインされていたのですが、炎上案件(Vue2, Nuxt2, TypeScript, Firebase)に急遽、配置転換されていました。技術スタック的にはどれも触れたことがあったのでキャッチアップには時間が掛からなかったのですが、とにかく短納期すぎて時間が足りないこと足りないこと、、

後述しますが3週間休みなし連勤の末、精神的に追い詰められて1週間ほど休みをもらっていました。運良く本格的な鬱になる前にフロントDMから声をかけてもらえたので、そこで初めてSOSを出してアサインが取り消しに。結果として1週間の休み程度で済みましたが、動けなくなるほど追い詰められたのは初めての経験でした。

・技術面に関して

技術的には実務でのFirebaseに触れられたことに関してプラスに感じました。今までは個人開発で簡単なCROD操作しかしていませんでしたが、Firestoreのデータ設計や、ReferenceやSnapshotの型がどうして存在するのか、Service層やRepository層への切り分け方など、FirestoreとGCSの処理に関して力がつきました。

また、冠婚サービスに引き続きTypeScriptの実装に触れられたこともよかったと思います。いまいちまだ使い心地が悪いのですが、これに関しては使っていく中で慣れてくるものなのかなと思っています。引き続き自己学習も進めていきます。目下ジェネリクスをうまく使いこなしたいです。

■炎上案件で潰れました

自分なりにどうして潰れたのか分析してみました。一部公開すると特定される可能性もあるのでぼかしますが以下3点が挙げられると思います。

・炎上案件がいつ終わるか全く見えなかった

次のフェーズの案件も受注してしまっているとのことで炎上案件が完全に終わるのが全く見えず絶望的でした。

第1フェーズのサービスをリリースしたら運用保守をして終わりではなく、すぐに第2フェーズの機能追加の実装しながら第1フェーズにリリースしたサービスのメンテ、運用保守も並行して行うとのことだったので、ゴールが見えないマラソンを走っている感じでした。

稼働時間が長かった

前職で長時間労働は慣れているから大丈夫かと思っていましたが、休みなしで連続して働くという経験は初めてだったので「プライベートがない」状態に対して知らず知らずにストレスを溜めていったのだと思います。

また、会社の泊まり込みや始発帰りも連勤の中で何回かあったので肉体的にも疲労を感じていました。

マネジメントが良くなかった

自分ではプロジェクトを管理できないし、PMが多忙なのを重々承知したうえで、他責にするのも大変恐縮なのですがこれが一番ダメージが大きかったと思います。

PMの「なんで実装できないの?」「もっと早く終わると思った」「いつできる?(理由なしに聞くだけ聞いて、PMの想定より遅いと「もっと早く終わると思ってた。」と言われ、答えた期間内に終わらないと「なんで実装できないの?」と言われる。)」という言葉が非常に効きました。

上記をミーティング中にみんなの前で言って詰めたり、誰かに見える場所に呼び出して怒る(怒られている)姿を見ているのも精神的にしんどかったです。

たとえ怒られているのが自分でなくても気分は良くないしチームの雰囲気も悪くなるのでやめて欲しかったです。

■炎上案件で生き残るために実践したこと

結果として潰れたのですが、こんな状況の中でも実践していたことがあります。前職で学び、それ以来継続しているものなのですが、HPOS(High Performance Operation System)という思考法です。

簡単に言うと何事もポジティブに捉えるという思考法なのですが、意外とこれが追い詰められている状況では役に経ちました。

何故なら、ネガティブな状態が続くと集中力が切れやすくなったりモチベーションが上がらなかったりと仕事のパフォーマンスに少なからず支障が出るのを防げるからです。

以下、具体例です。

・炎上案件に放り込まれた
→実務でFirebaseを触れるの機会は滅多にないから他のフロントメンバーと差別化できる
・終電帰りが続いているせいで終バスに乗れない
→普段運動していないからいいんじゃないのか?
・ご飯を食べる時間がない
→お金が浮く、ダイエットにも役に立つ

HPOSって企業で取り入れられているくらいだから有名な思考法なのかなと改めて調べてみたのですが、特にヒットする記事もなく添付の本が多くヒットしました。古い考え方なのですかね?安いし読んでみようと思います。

■炎上案件で学んだこと①

・人間はどうやって潰れるのか

今でも鮮明に覚えていますが、上記の環境の中、潰れた理由としては「小さなミスが続いた」ことが原因でした。

リリース直前の緊張状態の中、2個連続してミスをしたのですがその後、急に体がだるくなり動けなくなりました。気持ちがぷつんと切れたというか、体が言うことを聞かなくなったのを覚えています。

今までの疲労、ストレスにきっかけがあると人は潰れるということを学びました。徐々に壊れていく。ではなく一気に壊れた感じですね。式にするとこんな感じ。

(肉体的疲労+精神的ストレス)×きっかけ=潰れる

ジェンガみたいなイメージでしょうか?ゲームを進めていくごとにジェンガの構造がスカスカになっていき1回のミスだけで全部崩れるあの感じです。

もし1〜2週間プラスして案件に携わった状態で「きっかけ」が起きていたら蓄積した疲労ストレスも1〜2週間分増えているので復帰するまでさらに時間を要したかもしれません。

今後もし同じような案件に携わったとして自分が潰れないように今回の経験をもとにセルフマネジメントできると思いました。

■炎上案件で学んだこと②

・実務4ヶ月目の未熟さ

炎上案件を通して自分の未熟さを痛感しました。「〇〇機能を実装してください」と言われたときに下記の有無でかなり悩まされたからです。

・実装する機能を知っているか/知っていないか
・実装する機能に必要な工程を想像できるか/できないか
・実際に実装したことがあるか/ないか

これらの有無が心の余裕にも繋がるし、もちろん実装も早くなります。今回の案件では上記を満たせず短納期の中、時間を要してしまったという自己嫌悪からストレスを抱え辛く感じたこともありました。

一方で自分よりも難しい実装に取り組まれていたフロントの先輩社員はもちろん離脱者はいませんでしたし、これが経験(引き出し)の差かと思い知らされました。

フロントDivに戻った後に先輩社員になんで炎上案件に携わっていた先輩たちは生き残っているのか質問してみましたが「それはコピペエンジニア(多くの実装を通して得た経験という抽象的な概念をコピペする(使い回す)ことができるエンジニア)だからだね〜」とのことでした。

なるほど納得。ちょっと含みが多すぎて笑いましたが、自分もコピペエンジニアを目指そうと強く思いました。

■最後に

炎上案件から復帰後、元いた冠婚サービスに戻ることになりました。一安心です。

炎上案件に携われたこと、現時点の自分の限界を知れたこと、何が足りないのか知れたこと。技術面以外で沢山のことを学べた4ヶ月目でした。

前職で先輩社員に口を酸っぱくして言われたのが「キャパを広げる」でした。今も仕事の教訓になっていて好きな言葉の一つです。実務4ヶ月目の限界を知ったということで現時点のキャパを知ることができたのでここからどのように広げていくのか試行錯誤していこうと思います。

まだまだ未熟ではありますが、この経験を経て来月の報告会でさらに成長した姿をお伝えできればと思います。いつもに比べると長文になってしまいましたが最後までご覧いただきありがとうございました。来月もどうぞよろしく願いいたします!

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