表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
新卒エンジニア、観察ノートを開く(上巻) 観察を、始める  作者: 音無 凪


この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

PR
22/37

第21話「凪の夜、レビューを書く」(インタールード③)

この物語はフィクションであり、登場する人物、団体、地名、企業名等はすべて架空のものです。実在のいかなる存在とも関係ありません。

※ この話は白瀬凪の視点で描かれています。第9話の蒼太のPRに、20件以上のレビューを書いた夜の話です。


 五月の下旬、水曜日の夜八時前。


 フロアの灯りは、半分くらいに落とされていた。窓際の島と、入り口付近の島は無人。電源を切られたディスプレイが、街の灯りの薄い光を反射していた。


 残っているのは、私と、組込みチームの林さんと、受託の別チームの誰か一人。それだけだった。


 ……静かだ。


 胸の内で、つぶやいた。


 ヨキエルは原則として、二十二時以降の残業を禁じている。緊急の障害対応や、納期が現実化したリリースのリカバリでなければ、部長承認なしには夜十時を過ぎて残れない。村瀬社長と遠野CTOが、繰り返し全社会議で言ってきた方針。私はこの方針を、ありがたく思っていた。


 私の今夜の残業は、九時すぎまで。それは事前に諏訪マネージャーにも伝えてある。「桐谷くんの初めての本格的なPRを、今夜のうちに、ちゃんと見たい」と言ったら、諏訪さんは「うん、十時までに終わらせて、明日に持ち越さないでね」と頷いてくれた。


 その範囲で、私は仕事を仕上げる。


 ……桐谷くんのPR、今夜、見る。


 もう一度、そう決めた。


 桐谷蒼太、入社二ヶ月目の新卒エンジニア。


 今朝、彼が初めて私に出してきたレビュー依頼のPR。コードの差分、八十行ほど。テストケース、六本。


 今日午前中、業務の合間に私はその差分をざっと開いてみた。最初の数行を読み、すぐにこれは丁寧に見るべきものだと判断した。


 桐谷くんのコードは悪くなかった。むしろ新卒二ヶ月目としては、十分書けているレベルだった。


 でも、悪くないと見過ごすことが、私のレビューの目的ではなかった。


 彼がこれから三年、五年、十年、エンジニアとしてコードを書き続けていくとしたら、最初の本格的なPRで何を伝えるか。


 それを考えると、ざっと見て、LGTM、というわけにはいかなかった。


 業務の合間に断片的に読むのもよくない。集中できる時間にちゃんと見たかった。


 だから今日、業務時間中は会議、別の案件のレビュー、自分のコードの作成、ドキュメントの更新、それらを順番に片付けてきた。十八時の定時のあとも、別件の仕上げが続いた。それも終えた今からの一時間あまりが、桐谷くんのPRを集中して見るための時間。


 


 私は席を立った。


 給湯室まで歩く。


 給湯室の棚の隅に、私の名前のシールを貼った小さなジャスミンティーの袋が置いてある。地元の母が送ってくれた、お茶の葉のひとつ。会社で集中したい時、私はこれを淹れる。


 マグカップにティーバッグを入れて、お湯を注いだ。立ちのぼる湯気にジャスミンの香りが乗った。


 


 自席に戻った。


 マグカップを机の端、MacBook Proのキーボードから少しだけ離した位置に置いた。


 MacBook Proの画面。


 桐谷くんのPRのページを開く。


 最初に説明文を読む。


 ……桐谷くん、説明文、丁寧に書いている。


 胸の内で、軽く頷く。


 「何を変えたか」「なぜそうしたか」「テストはどう書いたか」。


 書き方の形式が、私のConfluenceドキュメントの説明文の書き方と似ている。たぶん桐谷くんは、私の書いたドキュメントを参考にしている。


 ……良い、習慣。


 そう、口の中でつぶやく。


 次にコードの差分を開く。


 ファイルが四つ。それぞれ変更行数は二十行ほど。合計八十行ほどの変更。


 最初のファイルから一行ずつ読む。


 二行目で私はペンを取った。


 いや、ペンはいらない。代わりにレビュー画面のコメント機能を開く。


 最初のコメント。


 「`tmp` という変数名は、何を一時保存しているのか読む人に伝わらないと思います。例えば `pendingOrders` や `unprocessedItems` のように内容を示す名前にした方が、後から読み返した時に分かりやすいです」


 書いて保存。


 ……変数名。


 桐谷くんに「悪い」と言いたいわけではない。彼の `tmp` という選び方はたぶん、コードの中で一時的に何かを保持する、という意図を表していた。それは分かる。


 でも、半年後、桐谷くん自身が自分のコードを見返した時、`tmp` の中身をすぐに思い出せるか。


 たぶん、思い出せない。


 だから、今変える。


 次のコメント。


 メソッドの分割について。


 「このメソッド、八十行近くあります。読みやすさのために三つくらいに分割できると思います。例えば、入力検証、ビジネスロジック、結果出力、で分けるとそれぞれの責務が明確になります」


 書いて保存。


 ……単一責任の原則、という言葉は敢えて使わなかった。


 桐谷くんはたぶんその用語を知っている。けれど用語でぱっと分かった気になるよりは、具体的な分割の例を見せた方が身につく。


 次のコメント。


 異常系のテストについて。


 「テストケース、正常系は六本あって十分です。ただ異常系のテストがありません。例えば、入力が空の時、入力が極端に長い時、入力に不正な文字が含まれている時、それぞれのテストを書いておくと後の保守性が、ぐっと上がります」


 書いて保存。


 ……保守性。


 この言葉が桐谷くんに響くかどうかは、分からない。新卒二ヶ月目で保守性と言われても、まだ実感はたぶん薄い。


 でも、書く。


 いつか桐谷くんが五年目、十年目になった時、この一行を思い出してくれるかもしれないから。


 ジャスミンティーをひと口、飲む。


 画面の時計を見る。


 夜の八時十五分。


 まだ四件目。


 ……まだ、たくさん、書くことがある。


 胸の内でつぶやいて、私は続ける。


 五件目、エラーハンドリングについて。


 六件目、命名規則。


 七件目、ログの出力方法。


 八件目、設定ファイルの扱い。


 九件目、コメントの書き方。


 十件目、データの永続化のタイミング。


 十一件目、トランザクションの扱い。


 見る観点は、決めている。


 命名。テスト。エラー処理。構造。ログ。設定。書く順番は、コードの上から下へ。読む人がコードと突き合わせやすいのは、その順だから。ただ、見落としがないかどうかは、最後に観点の側から数え直す。気分で見ると、気分の分だけ、穴があく。


 社内の誰かが、私のレビューは観点で照らしてくる、と噂しているのを知っている。いい噂だと思う。観点が知られれば、出す側は二周目から、先回りができる。先回りされるために、私は観点を変えない。


 書きながら私は、自分の新人時代を思い出していた。


 ……六年前。


 私がヨキエルに新卒で入った頃。


 配属されたのは別のチーム。今はもう組織再編でなくなった、自社サービスの別のチーム。


 マネージャーは当時四十代の男性だった。


 その人は優しい人と、社内で思われていた。声がいつも穏やかで、新人にも丁寧に接してくれた。


 でも、コードレビューはしなかった。


 私が入社して最初の三ヶ月、私の出したぜんぶのPRが「LGTM」のたった一行だけで承認されていた。


 時々、絵文字がついていた。


 ……あの絵文字、誰が見ても、笑顔の絵文字だった。


 その絵文字を思い出して、私は軽く目を伏せる。


 三ヶ月、誰も私のコードをちゃんと見ていなかった。


 私は自分のコードが正しいのか、間違っているのか、分からなかった。


 でも、皆、笑顔で「白瀬さん、いいコード書くね!」と言ってくれた。


 ……私は信じてしまった。


 半年後、本番で小さな障害が起きた。


 私のコードが原因だった。


 幸い被害は小さかった。けれどその時初めて私は、自分のコードがちゃんと見られていなかった、ということを知った。


 マネージャーに聞いた。


 「私のコード、ちゃんと、レビュー、されてました?」


 マネージャーは笑顔のまま、こう言った。


 「白瀬さんのコード、信頼してたから」


 ……信頼。


 その言葉の本当の意味を、私はその時初めて理解した。


 「LGTM!」の絵文字二つというのは、「あなたを見ていません」という意味だった。


 だから私は、書く側に回った日から、一つだけ決めている。見たなら、見た分だけ、跡を残す。見ていないなら、承認のボタンを押さない。LGTMという四文字を使う日は、四文字の後ろに、ちゃんと中身がある日だけ。


 優しさと見過ごしは、似ていてまったく違う。


 六年前の自分が、今の桐谷くんとほぼ同じ立場だった。


 桐谷くんはたぶん、もう気づいている。


 社員食堂の給湯室の前で、別のチームの先輩二人が私の話をしているのを桐谷くんが聞いているのを、私は廊下でたまたま見た。


 桐谷くんはたぶんその日から、「LGTM!」と、私の二十二件を対比し始めている。


 ……だから、私は書く。


 そう胸で念じて、私は続ける。


 十二件目、十三件目、十四件目。


 書きながら私はもう一つ、思い出していた。


 半年後の本番障害の後、別のシニアエンジニアの先輩が、私の席に来てくれた。


 その先輩はもうヨキエルを退職している。今は東京の別の会社でテックリードをしていると聞く。


 その人が私にこう、言ってくれた。


 「白瀬さん、これからは私がレビューする。一行ずつ見る。たくさんコメント書く。それは白瀬さんを責めるためじゃない。白瀬さんが五年後、十年後、もっといいエンジニアになるため」


 ……一行ずつ、見る。


 その言葉を、胸の内でなぞる。


 その人の最初のレビューはPR一件あたり、三十件以上のコメントだった。最初は辛かった。自分のコードがこんなにも未熟なのかと、毎日、軽くショックを受けていた。


 でも、半年続けて、私のコードは変わった。一年続けて、私の書き方は根本から変わった。


 その先輩が退職する時、私にこう言った。


 「白瀬さん、君がこれから書くドキュメントが、誰かを助けると思う」


 ……誰かを、助ける。


 その言葉が、私のヨキエルでの軸になった。


 今、私のConfluenceのドキュメントの作者欄、ランキング、一位。


 書くたびに私は、その先輩のことを思い出している。


 画面の時計を見る。


 夜の八時五十二分。


 もう二十件目。


 ……もう少し、ある。


 そうつぶやいて、私は続ける。


 二十一件目、二十二件目。書き終わって画面の時計を見る。


 夜の九時、二十分。


 二十二件、合計。


 最後のサマリ、コメントを書く。


 「桐谷くん、初めての本格的なPR、おつかれさまでした。コメント、たくさん書きました。一気に対応するのは大変だと思うので、優先度の高いものからゆっくり対応してください。分からないことがあれば、いつでも聞いてください」


 書いて保存。


 MacBook Proの作業を終えて、画面を閉じる前に、私はもうひとつだけ確認した。Confluenceの私の個人スペースに、今夜のレビューで気づいた共通点をひとことだけ追記した。「変数名・分割・異常系・エラーハンドリング、この四つは新卒の初回PRで毎回出る」と、一行だけ。これは社内のシステム、社内のネットワーク。家からは触れない場所。だから書くなら、今、ここで。


 書き終えて、MacBook Proを閉じた。


 マグカップの中のジャスミンティーは、最後のひと口分だけ残っていた。冷めていた。それを飲み干した。


 ……桐谷くん、明日、これを見て、何を思うんだろう。


 ぼんやりと、そう思った。


 ショックを受けるかもしれない。落ち込むかもしれない。


 でも、桐谷くんはたぶん、ちゃんと対応してくれる。


 なぜそう思ったのかは、自分でも分からない。けれど彼のPRの説明文の書き方を見て、私はそう感じていた。


 桐谷くんは観察する人だ。


 観察する人はレビューに、ちゃんと向き合える。


 ……次のPRも、書く。


 そう、決めた。


 これは私の選択。


 六年前、私の先輩が、私に書いてくれた。


 今度は私が書く。


 その先輩がもうヨキエルにいなくても。


 


 マグカップを給湯室で洗って、棚に戻した。


 MacBook Proをロッカーに入れて、鍵をかけた。


 退社時刻、夜の九時三十五分。深夜残業のラインの、二十五分前。私はそれを確認して、フロアの自分の席の灯りを落とした。


 受付のセンサーライトが、私の通過を感知して、ぱっと点いて消えた。


 外に出ると、五月下旬の夜の空気が、ふわっと私を包んだ。


 バス停まで歩く五分。バスに揺られる二十分。降りた停留所から自宅のマンションまで、徒歩で五分。


 マンションは川沿いの静かな通りにある、古い建物。私の部屋は三階、東向きの1LDK。


 


 部屋の鍵を開けて中に入った。


 玄関で靴を脱ぐ。


 廊下に置いた段ボールの隅に、母から先週送られてきた小さな箱が、まだそのまま積んであった。中身は、地元の岩のりとお茶の葉。岩のり、私が小さい頃からお雑煮に必ず入っていた、実家の味だった。


 箱の上に貼られたメモを、私はもう一度読んだ。


 「凪、お正月、帰ってこなくていいの?」


 母の字、だった。


 ……今年も、たぶん帰らない。


 胸の内で、そうつぶやいた。新人時代の最初の三ヶ月、私が地元を離れてこの街にひとりで来て、誰にも見られないままコードを書いていた頃、母には何も言えなかった。あの頃から私は、年末年始は母の前ではなくこの部屋で過ごすようになっていた。母はそれを、たぶん察している。それでも毎年、岩のりを送ってくる。


 あとでLINEで一行返そうと、胸の内で決めた。


 いつもの順番で部屋着に着替えた。シャワーは寝る前。


 


 机の上、紙のノートを開いた。これは私の個人のノート。会社のシステムにも、業務PCにも触れない、紙だけの場所。


 ペンを取って一行、書いた。


 今夜、桐谷くんに二十二件、書いた。


 書いてから、その一行をしばらく見ていた。


 もう一つ、思っていることがあった。


 Confluenceの私の個人スペースには「失敗記録」というページの束を、私は今も書き続けている。最初のページは六年前、あの本番障害の翌日に書いた。以来、何かを学んだ夜、何かを間違えた朝、何かを後悔した昼休みのたびに、私は薄い記録を一行ずつ、重ねてきた。六年で、四百ページを少し超えた。誰にも見せていない。書く場所は社内のシステム。書くのは社内にいる時だけ。明日の昼休み、忘れずに今夜の一行を、あちらにも残しておこう。


 書く場所は、私の中で三つに分けている。


 チームAのConfluenceには、本番障害が起きるたびに「振り返り」ページを置く。これはチーム全員のためのページ。原因と対策を一行ずつ並べる場所。三年分以上、ぽつ、ぽつ、ぽつ、と並んでいる。


 Confluenceの個人スペースの「失敗記録」は、誰にも見せないページ。書くのは、その夜の私自身の手の温度や、迷った半秒や、後悔の輪郭。これは私のためのページ。社内のシステムだから、社内でしか書けない。


 そして家のこの紙のノート。これは更にもう一段、外には出ない場所。私の中の、いちばん奥の場所。


 三つは別の場所にあるけれど、書く理由はたぶん同じ場所から出ている。


 桐谷くんに渡した二十二件も、たぶん、その四百ページの延長線上にある。


 紙のノートを閉じた。


 シャワーを浴びて、寝る支度をした。


 明日、桐谷くんは私のコメントを読んで、修正版を出してくる。


 その時、私はまた画面を開いて彼の修正版を見る。


 そしてたぶん、こう書く。


 「修正、良いと思います」


 「ありがとうございます」


 二行、書く。


 短い二行で十分。


 桐谷くんがそれを読んだ時、何かを感じてくれたら、それで私の役割は、ひとつ果たされる。


 部屋の灯りを消した。


 窓の外、五月下旬の夜が静かに深まっていった。


 


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ