見出し画像

エンジニアになって1ヶ月経ったので簡単に振り返り

先日書いた「未経験からエンジニアにジョブチェンジするまでの話をしよう」を多くの方が読んでくださり、反応いただけたこと、ありがとうございました。
https://note.com/aion_isse/n/nfdb17456e1ea

2023年5月10日にエンジニアになって1ヶ月経ったので、簡単な1ヶ月の振り返りを行ってみました。
(記事書いてたのに忘れててこのタイミングの公開になってしまったw)

所々、使ってるワードが違う部分があるかもしれませんが、ご容赦ください。そして、指摘点があればコメントか何かで教えていただけますと幸いです。

意識していたこと

エンジニアになっての最初の1ヶ月で、意識的に行おうと考えていたことは以下3つです。

  1. 何事もスピード感を持って行うこと

  2. 考えても分からなかった問題に直面した時には15分以内にヘルプを出すこと

  3. チームへ少しでも早く溶け込めるようにコミュニケーションを密に取ること

それぞれ簡単な具体例というか、当時自分の頭の中で考えていたことを書いておきます。


1. 何事もスピード感を持って行うこと

 入社したて且つエンジニアになったばかりなので、キャッチアップの速度を早めることもそうですし、slackでのコミュニケーションもそうですが、とにかくスピード感を持って動くことを意識しようと思っていました。

そのスピード感の中でも最も大切なのは、開発の速度を上げることです。

サービスを使ってくださるユーザーさんに価値を届けるためには、開発の速度を上げることが最も重要だと思っており、そのために自分がやらなければならないのは、1週間のスプリント(アジャイル開発の用語)を巻きで達成することだと考えていました。

それが結果的に自分のエンジニアとしてのスキルを上げていくと考えていますし、スピード感を意識すること以外にできることは少ないと思っていました。


2. 考えても分からなかった問題に直面した時には15分以内にヘルプを出すこと

言うまでもありませんが、自分一人で開発している時や勉強している時とは違い、エンジニアとして働かせていただいている以上、成果を出す必要があります。

解決できない何かに詰まって悩んでいる時間も、自分に対する給料は発生しているわけです。

自分のところで止まっているボールがあった場合には、それがチーム全体の開発スピードを落としてしまう可能性だってあります。

一方でエンジニアになったばかりだと、分かることより分からないことの方が多い、というのが当たり前の状況かなと思っていました。
(初めて社会人になった時も同じで分からないことだらけだった為)

ただし、ただただ「分かりません」と言うだけでは、「何が分からないのか、どこまで調べたのか、何を解決したいのか」を伝えられない。

そのため、「15分は自分で足掻いてみる、それでも分からなかったらすぐに聞く」というアクションを取ることを意識していました。


3. チームへ少しでも早く溶け込めるようにコミュニケーションを密に取ること

成果を出すチームは良い雰囲気を持っているが、新しく入った人間も含めて一人一人が考えていることをきちんと発信することがチームの心理的安全性を高め、良い雰囲気を作ると考えています。

少しでも早く開発できるようになる、ユーザーさんに価値を届けられるようになるためには、分からないことをすぐに質問できる関係やチームの雰囲気を作ることが重要です。

そのために、まず最初の1ヶ月間はチームメンバーとのコミュニケーションを意識的に密に取る、そして信頼関係を築くということを意識しようと考えていました。


振り返り

1. とにかく吐き出すことと学ぶことの反復

実は最初の環境構築から詰まりまくりでしたw

そんな時でも、くよくよと悩んでいる時間が勿体ないので、timesと呼ばれるslackの分報で自分の思考の整理も含めてとにかく発言しました。

「今から〇〇やる」
「エラーでた、これなんだろう(エラーメッセージ)」

こんな感じに思考と現状を垂れ流しにして、どうしても分からない時には「目的」と共にチームメンバーへヘルプを求めていました。

実装についても、自力で解決できなかった部分に関してはその現象をチームメンバーに聞いて解消した後に、自分の頭の中で問題と解決策を整理して、次回以降同じ問題に直面した時には自力で乗り越えられるようにするためのアクションを取っていました。

知らなかったことを一つずつ自分の血肉にするためには、この方法が最も適しているのでは?と考えていたのでやってみた、という感じです。

結果的に似たような問題に直面した時に、自分でまとめたことを参考にしながら自身で開発できるようになっているので、すごく効果があるのではと思っています。


2. コードを自分の言葉で言語化する

既存コードを見ても何をしているのか分からない、というのが最初に直面した壁でした。

それでは仕事にならないので、自分が担当するissue周辺のコードやER図を見て、

「このテーブルは何のテーブルなのか?」
「あのテーブルとの関係性はどうなっているのか?」
「このメソッドは何をしているのか?」

などなど、一つ一つ言語化していきました。

そうすることで、それぞれのクラスやメソッドの責務/振る舞い等を把握することができて、どのように動いているのかを知れたと思っています。


3. ハイコンテキストすぎるコミュニケーション

「考えても分からなかった問題に直面した時には15分以内にヘルプを出すこと」を意識して最初の1ヶ月を過ごし、それは遂行できたものの、かなりハイコンテキストなコミュニケーションになっていたのでは、というのが反省点。

目的: 「何をやろうとしているか」
やったこと: 「その目的に対して何をやったのか」
結果: 「やったことに対してどういう結果が得られたのか」
原因の解釈: 自分はこの結果に対してどう考えているか、わかったと思っていること、まだわからないこと等

こういったフォーマットに沿って質問できたらよかったものの、それができてないが故にかなりハイコンテキストなコミュニケーションになってしまい、前提の認識が揃わないまま話が進んでしまったことがありました。

前提の認識が揃っていない場合、本来進みたい方向に進めないのは当たり前のことなので、失敗したなと感じています。


4. 全てを把握しようとしてしまっていた

プロダクトのコード全てを理解しようとしていたのも反省点です。

新規プロダクトのバックエンド(Ruby on Rails)開発に関わらせていただいているということもあり、コードの全て把握しようとしてしまっていました。

新規プロダクトとはいえ、ファイルもコードもたくさんあったので、今考えると全て把握するのはハードルが高いということが分かりますが、最初は気合いだけでここを実行しようとしてしまっていました。

どうしたら良いか先輩に相談した結果、まずは自分の担当するissueに関連する機能周辺のコードから着実に理解することが大事というアドバイスをいただき、そこから方針を変更しました。

エンジニアになったばかりで全てのコードを把握しようとするのは無謀だったなというのが反省点です。


まとめ

エンジニアになってからの1ヶ月は本当にあっという間に過ぎ去りました。

最初の1ヶ月で25PRを作成することができました。
まだまだ軽微な修正/機能開発がメインではありますが、自分の書いたコードが本番環境に反映され、ユーザーへの価値提供に繋がったことは非常に嬉しい経験でした。

チームメンバーとも多くのコミュニケーションを取ることができ、とても楽しく開発できています。

スピード感を持ってアクションを繰り返し続けることができ、良いこともたくさんあったものの、同じくらい反省点もありました。

まだまだ自分の力ではできないことが多く、既存のコードや仕様/挙動の細かい部分に関する理解が追いついていないことを強く感じていますが、今は「分からないことが出てきたらとにかく一つ一つ解消する」ということを徹底したいと思います。

2ヶ月目も自分の中で意識的に行うことは考えているので、1ヶ月目の反省を活かして取り組んでいきます!

ちょっと長くなってしまいましたが、この振り返りもまた良い言語化/思考の整理になりました。

定期的に書こうと思っているので、もし良ければまた読んであげてくださいw

この記事が参加している募集

#振り返りnote

86,560件

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