この記事は弥生 Advent Calendar 2024の20日目の記事です。
はじめまして!今年2024年弥生に新卒入社した野溝と申します。
2024年10月に初回リリースされた「弥生証憑 Next」の開発チームに、エンジニアとして加わって早くも3か月が経ちました。今年の8月末にこのチームに配属されて以来、日々多くの学びと成長を実感しています。本日はそんな私が配属1ヵ月のタイミングで社内向けに発表した「新卒エンジニアは配属後1ヵ月間でどのようなフィードバックを受け、それをどのように改善していくのか」をリライトして、お届けします!
この内容は配属されてから約1ヵ月後に社内で行われた部門でのLT(Lightning Talks)大会で発表したものです。
「部門でのLT大会」とは……
- 毎月1回、開発本部・次世代本部合同で開催している会
- エントリーした人が、5分間のLTをする場
- LTのエントリー対象は、開発本部・次世代本部の「本部長、統括グループ長、CTO、フェロー、表彰委員長以外」の全社員
- LTは、「部内の技術啓蒙活動や、技術力を上げる為に活動を行った」または「お客様(社外・社内)視点で自身の製品開発や運用業務を行い、成果を部内に展開し、啓蒙活動を行った」ことについて
この内容を社内の人だけでなく、社外の人にも届けたい!と思ったのでリライトさせて頂くことにしました。
CONTENTS
- なぜこの内容で記事を書くのか
- どのようなタスクを行ったのか
- コードレビューを分類してみる
- 改善に向けて
- 伝えたいこと
- 雑談:配属後1ヵ月が経って感じたこと
- 雑談:LT大会に参加して感じたこと
1. なぜこの内容で記事を書くのか
記事の執筆理由ですが2つあります。
1つ目は私が受けたコードレビュー内容や心構えは、他の新卒エンジニアも同様に当てはまるのではないかと考えたからです。コードレビューの内容は先輩エンジニアの方々にとっては当然のことかもしれませんが、新卒エンジニアである自分にとってはそこから気が付くことが多くありました。もちろんこの記事が全ての新卒エンジニアに刺さるとは思っていませんが、少しでも多くの方の業務に役立てば嬉しいです。
2つ目はこのような記事が思いの外存在しないことに気づいたからです。新卒として入社したエンジニアの皆さんは、配属直後何に気を付ければ良いのか不安に思った場面はなかったでしょうか。そんなときに、新卒エンジニアの心構えを記載したこの内容が助けになると信じています!
2. どのようなタスクを行ったのか
コードレビューの内容をよりイメージしやすくするために、ここでタスクの概要を簡単にご紹介します。以下が配属後1ヵ月間で行ったタスク(一部)になります。
- ログアウト機能の新規実装
- C#/FastEndPointsを使ったWebAPIの新規作成
- WebAPIを呼び出すTypeScript/Remixを使用したフロントエンドの実装
- 開発環境で認証機能を提供するダミーサイトの修正
- ASP.NET Coreを使用したバックエンドの実装
- Blazorを使用したフロントエンドの実装
3. コードレビューを分類してみる
前置きが少々長くなりましたが、ここからが本題になります。先ほどのタスクに対するコードレビューを分類してみました。
1.コメント不足や不適切な命名(33%)
コメントが不十分 コード内での説明が足りず、他の開発者が理解しにくい状態になっている。
命名規則の不適切さ 変数名やメソッド名がその役割や内容に適していない。
2.エラーハンドリングやロジックの理解不足(23%)
エラーハンドリングの不足 例外処理が不十分で、予期しないエラーに対応できていない。
ロジックの理解不足 コードの追加や修正による影響範囲を正確に把握できていない。
3.技術的理解の不足(13%)
Reactの理解不足 コンポーネントの基本的な概念が理解できていない。
HTTP仕様の理解不足 headerやbodyに指定できる要素を正確に把握できていない。
4.その他(23%)
Gitの理解不足 コンフリクトの修正や、リベースなどの技術に対する理解が浅い。
コードの不適切な配置 必要であれば処理を関数としてまとめたり、ファイルを分けたりするなどの判断ができていない。
4. 改善に向けて
以上の内容を振り返ると、「3. 技術的理解の不足」は経験を積むことで改善されると思いますが、それ以外の項目は自分の意識次第で改善できそうです。そこでこれらの改善に向け次のような指針を定めました。
1. コード全体を正確に把握せよ
実装ではロジックの中心となるコードに集中しがちです。そのため別ファイルで定義された変数や関数の理解が曖昧なまま実装が進んでしまうことがありました。実装に関係するコード全体を正確に理解できるよう意識する必要があると思いました。
2. 実装目的を正しく理解せよ
チケット(タスクの説明)に記載された実装方針を理解したつもりになっていても、誤解していることはあるはずです。その誤解によって不適切な関数名や変数名を付けてしまうことがありました。理解に不安があるときは自分の理解不足を自覚し、適切に質問・確認を行うことが大切だと感じています。
3. リファクタリングを意識せよ
例えば一見軽微な修正でも、安易に該当箇所をベタ書きで修正することが好ましいとは限りません。処理のまとまりをメソッド化した方が良いときもあります。本当にその実装がベターなのか立ち止まって考える癖を付けたいです。
5. 伝えたいこと
冒頭の繰り返しになりますが、先ほど挙げたコードレビューの内容が全ての新卒エンジニアに当てはまると思っていません。また改善に向けた指針について、意識する必要がない方もいるかもしれません。一方でこの記事は多くの新卒エンジニアに当てはまる一般的なことを述べているとも思います。記事の内容を含め、皆さんも各々の指針をもって行動することで、より大きくエンジニアと成長できるのではないでしょうか。
6. 雑談:配属後1ヵ月が経って感じたこと
一言で言えば、入社してから最も成長を感じた1ヵ月間でした。というのも配属されてから、理解すべき内容が膨大だったからです。
まず技術的な観点で言えば、言語やインフラ、開発環境など多岐にわたる知識を吸収する必要がありました。配属前にプログラミング研修で基礎的なことは学んでいましたが、それは文字通り基礎的な知識に過ぎませんでした。また当然のことですがドメインの知識も学ぶ必要がありました。
このように書くと配属直後から勉強ばかりで大変という印象を抱かせてしまうかもしれませんが、新人ながらに配属まもなくプロダクトコードに触る機会をもらい、それを何とかやり遂げようとしたからこそ学習すべき量が多かったわけです。そのため、その過程は全く苦ではありませんでしたし反対に充実した毎日だったと振り返ることができます。
これらの知識をまだまだ吸収している過程ではありますが、特に詰め込んだ最初の1ヵ月間では自分の著しい成長を感じました。
7. 雑談:LT大会に参加して感じたこと
新卒エンジニアの中で1人目の部門でのLT大会登壇ということで、最初はエントリーするかどうかも迷っていたというのが正直なところです。
これまでオーディエンスとしてLT大会に参加する中で、先輩方が技術的な話を中心にされていることは知っていたので、正直このようなトピックで発表して良いのか不安でした。しかしいざ発表してみるとオーディエンスからの反応は良く、そのような不安は杞憂であったことに気づきました。
振り返ってみれば、今回のLTは自分が受けたコードレビューの内容をまとめてアウトプットする良い機会になりました。今後もアウトプットの機会として積極的に活用していければと思います!
弥生では、一緒に働く仲間を募集しています。