新入社員に伝えたい5つのこと

2 min read読了の目安(約2200字

はじめに

年始なので新入社員の方の応援記事でも書こうかなと思いました。
私もまだまだ未熟なので、自戒の念も込めて書いてます。

コードレビューって何をしているの?

私も新入社員のころは先輩のコードレビューってどんなところを見られているのか気になってました。参考までに私がコードレビューでどのようなポイントを見ているのかを紹介します。

  • 必要な機能が実装されているか
    • 例えば、3つの機能を実装する必要がある場合、2つしか実装されていない場合があるので、その辺を確認
  • リファクタリング出来そうなところはないか
    • 変数名が分かりにくい場合や、同じ処理が複数個所に存在する場合は、修正する方針をコメントしたりします
  • ざっと眺めて理解できない箇所はないか
    • パッと見でわからないロジックにはコメントで補足しましょう
  • (時間があれば)内容をプルしてローカルで確認
    • リンターのチェックや参照元の関数との整合を確認します
    • フロントエンドのコードの場合は、Console logに警告やエラーがないかをチェック

ざっくりですがこんなところでしょうか。注意点として、レビュー時には動作確認は実施しません(私の場合は)。なので、単体テストは実装者が責任をもって実施してください。
コードレビューはレビューする人もされる方もお互い誠意をもって対応しましょう。プルリク時の説明は可能な限り書いた方が親切です(が時間的な面もあるので適材適所で、、、)。

割り切りも大切

納期は守るべきですが、想定外のことも起きます。想定外のことが起きた際に「いや、これどう考えても無理やん」と割り切って、先輩に相談しましょう。上司から無茶振りされた場合は、難しい根拠を明示して代替案を上司とすり合わせましょう。すべてのことを完璧にこなすことは無理です。自分ができること、自分の能力では出来なことを考えて、割り切りましょう。
お客様の言葉は絶対ではありません。できないことを言われた場合は、お客様にできない理由を説明してお互いが納得する解決策を探しましょう。なんでも「はい」と答えていると自分もチームも疲弊していきます。

その親切心、自己満足ではないですか?

システムを作る以上、お客様に満足してほしい、という気持ちはとてもよく分かります。この機能も付けたらより便利になるのではないか、この部分のボタンの動きを工夫したらより使いやすくなるのではないか。より良いものを追い求めると、当然時間がかかります。時間がかかるということは費用が発生しているということです
ただ、もう少し俯瞰して考えるとその親切心、自己満足になってませんか?お客様が望む以上のものを作るのはいいのですが、最終的に収支は黒字になってますか?会社員として働く以上、お客様に満足して頂くことも大切ですが、利益を出すことが前提であることを忘れていませんか?

この辺りはバランスが難しいところで、新入社員の時はあまり意識しなくてもいいかもしれません。非機能要件をどのようにするのか、ということも関係してきます。なので、見積もり時にある程度考慮する必要があると思ってます。
非機能要件については下記記事が詳しいですのでもしよければ参照ください。
非機能要件の定義

自分を守る方法も考えよう

業務をしているとトラブルが起きることは当たり前です。その際に自分を守ることができるかどうかが重要です。例えば、お客様と電話で話をして内容の合意を取った場合、必ずメールで上司にもCCをつけてお客様にメールを送りましょう。
自分は今この作業をしています、ということをチーム内で共有しましょう。
言った、言っていないというトラブルは日常的に発生するので、トラブルが起きた場合によりどころとなるエビデンスを残すことを意識しましょう。

※ただし、あまりこれをやりすぎると雰囲気が悪くなるので、ほどほどにしていたい方がいいかなと思います。

納品後には何が待ってる?そう、保守とメンテです

上司「そういえば、2か月前に納品したシステムのあそこの部分の仕様ってどうなってたっけ?」
自分「えっ。コードを見ないと分かりません。」

上司「そういえば、あの資料ってお客様に渡してたっけ?どの資料を渡しているのか管理できてる?」
自分「。。。メールを見ないと分かりません。」

上司「今動いてるのって、どのコミットのコードだっけ?masterの状態であってるよね?」
自分「。。。。。。。。。」

上司「ここの部分の実装って誰が担当したんだっけ?」
自分「あ、それは退職したAさんですね。」
上司「(。´・ω・)ん?」
自分「ガクガク((( ;゚Д゚)))ブルブル」

プログラマをしていると、コードを書くことがメインと思いがちですが、実はコードを書く以外の作業もたくさんあります。設計とか仕様書作成とか、テストとか。とりあえずコードを書いておけばよい、というスタンスだと後々自分の首を絞めることになりますのでご注意を。本来は上司がハンドリングするべきところかもしれませんが、新入社員の時から意識しておくとよいかと思います。

最後に

コロナの影響で新入社員の方はこれまで以上に大変だと思います。この記事が少しでもお役に立てれば幸いです。