第37話「先輩、すごいですね」
火曜の朝、田中美咲は会社の最寄り駅で改札を出た。空には薄い灰色の雲がかかり、二日続いた雨の名残で、歩道のあちこちに水たまりが残っていた。
九時の朝会の前、田中は自分のデスクで新着のSlackを流し読みしていた。
オフィスは中規模オフィスビルの七階、開放感のあるレイアウト。エンジニアチームのデスクが島状に並んでいる。火曜の朝にしては、出社が遅い人が多かった。雨のせいだろう。
田中はコーヒーを一口飲んでから、ノートとペンを持って会議エリアへ歩いた。
バックエンドチーム十名が、円形に並ぶ椅子に座っていく。中央に立つテックリードの酒井慶が、プロジェクターのリモコンを手にしていた。グレーのフリースに、ジーンズ。三十四歳、入社十一年目。
画面に、先週リリースした検索機能改修のレビュー結果が映された。
「先週の検索機能、レビューを総括します。設計がきれいに整理されていたので、問題なし、マージして運用に乗りました。お疲れさまでした」
メンバーが頷く。
田中も頷きながら、ノートに「設計、整理、即運用」とメモした。意味は分かっていない。「設計がきれい」とは、具体的に何が整理されていたか。マージされたコードを開けば分かるのだろうが、田中はまだ、その差分を読んでいなかった。
「ただ、一点。エラー処理の方針について、今後の新規追加は、こちらのテンプレートに揃えてください」
酒井が画面を切り替えた。テンプレートのコードが映る。
田中は内容を見るより先に、口を開いた。
「酒井さん、本当によく分かりますね、すごいですね」
他のメンバーは、表情を変えなかった。
ただ、隣の同期、小林拓海だけが、田中のほうを一瞬見て、それから視線を画面に戻した。
朝会は九時十五分に終わった。
*
自分のデスクに戻って、田中はメールとSlackを順に開いた。プルリクエストのレビュー依頼が三件、外部APIの仕様変更通知、それから経理から月次経費精算の催促。
田中はレビュー依頼を後回しにして、自分のJiraチケットを開いた。今期の担当——「商品マスタ取り込みバッチの月次更新」。
三年前から続いている仕事だった。卸業者のシステムから商品データを取り込んで、自社のデータベースに反映するスクリプト。月の一日と十五日の深夜にバッチを動かす。最初は先輩のコードをコピペして書いた。今は自分で書けるが、ロジックは三年前と変わっていない。
「田中さん、おはようございます」
近くを通りかかった先輩エンジニアの中島が、コーヒーを片手に声をかけた。三十歳、田中より二期上。バックエンドチームでは中堅だ。
田中は顔を上げた。
「あ、中島さん、おはようございます。いま、データ取り込みのバッチ書いてました」
「お疲れさま。最近、外部APIのレートリミット、変わったの知ってる?」
「え、変わったんですか」
「うん、先週から。毎分百リクエストから、毎分三十に。バッチ動かすときは、間引かないと止まる」
田中は驚いた顔をした。
「そうなんですね。中島さん、本当によく知ってますね、すごいですね」
中島は、ちょっと笑ってから自分の席に戻った。
田中はその場で外部APIの仕様書を開いた。レートリミットの変更が、確かに書かれていた。先週、Slackの#announcements に通知が流れていたが、田中は読み飛ばしていた。
*
昼休み、社員食堂で田中は同期の小林とランチを取った。
「拓海、最近どう?」
「うん、新機能のリード、けっこう大変。データベース設計、二週間悩んでる」
「すごいね、リードなんて」
「ありがと」
田中は唐揚げ定食を食べながら、自分のチケットの話をしようとして、やめた。月次バッチの話は、もう何度も同じことを話している気がした。
代わりに、新機能のリードを任された同期を、漠然と羨ましく思った。羨ましく思って、それで終わった。
「データベース設計って、どこで悩むの?」と聞きかけて、田中は唇を閉じた。聞いたところで、おそらく自分には理解できない。
午後の仕事は、Jiraチケットを少し進めて、Slackで質問を一件投げて、外部APIのレートリミットを反映する修正を入れて、それで終わった。コミットは、二行。
三時前、中島から自分のプルリクエストにレビューコメントが返ってきた。指摘の整理が丁寧だった。田中はSlackで「中島さん、レビューありがとうございます。指摘の整理、本当によく分かりやすくて、すごいですね」と返信した。送信ボタンを押した直後、中島が「了解」とだけ返してきた。
*
午後三時、酒井からSlackで個別メッセージが来た。
「田中さん、十六時から会議室Cで、二十分だけ評価面談をお願いします。今期の振り返りです」
田中は了解と返信して、会議室の予約状況を確認した。
四時、会議室C。
酒井が先に来ていた。手元にはノートパソコンが一台。
田中は向かいに座って、両手を膝に揃えた。
「田中さん、今期もお疲れさま」
「ありがとうございます」
「率直に話すよ。今期の評価は、来期に向けた話をするためのものだ」
「はい」
「君のコードは、レビューで毎回、同じ指摘を受けている。命名、テスト、エラーハンドリング、ログ。三年連続で、同じ五項目だ」
田中は黙って酒井の顔を見ていた。
「君は三年目だけど、業務範囲は一年目と変わっていない。月次バッチ、データ移行のスクリプト、それから障害の一次対応。そこから一歩も外に出ていない」
田中は何かを言おうとして、言葉が出てこなかった。
「率直に言うと、田中さんは、誰でもできるレベルの仕事しかしていない」
田中の頭の中で、酒井の声が、もう一度、輪郭をなぞるように繰り返された。
誰でもできるレベル。
その言葉が、田中の三年間を、外側から削ぎ落とそうとしているように感じられた。
「お言葉を返すようですが」
田中は、できるだけ平らな声で言った。
「私だって、毎日きちんと働いています。バッチを止めたことはないですし、障害対応も、夜遅くまでやったこと、何度もあります」
「働いているのは知っている」
酒井はノートパソコンの画面を一度閉じた。
「だが、君の業務は、君がやらなくても回る。今年入った新卒の堀内さんが、君と同じレベルの仕事を、君より少ない時間でこなしている」
田中の目の前で、何かが薄く閉じる音がした。
「それを、変えてほしいんだ」
酒井はもう一度ノートパソコンを開いた。
「具体的には、来期、新機能のサブリードを田中さんに任せたいと思っている。設計から運用まで、最後まで責任を持って動いてほしい」
「……」
「どうかな」
「分かりました」
田中はそれだけ言った。
二十分の面談が終わった。
酒井がノートパソコンを閉じて、立ち上がった。田中は少し遅れて、椅子から立ち上がった。
会議室のドアに手をかけたとき、田中の手のひらがほんの少し、震えていた。
会議室Cを出てデスクに戻ると、メンバーは普通に仕事をしていた。中島は別案件のレビューをしている。小林はモニターに向かって、何かを書き続けている。
田中は自分の席に座って、Jiraチケットを再開しようとしたが、画面の文字がうまく目に入ってこない。
画面を閉じてトイレに立った。鏡の前で、深呼吸を二回した。
*
六時、定時。
田中は自分のデスクから、すぐに帰り支度を始めた。
小林に「ちょっと飲み行く?」とSlackで送った。返信は十秒で来た。「ごめん、今夜は予定」。
田中はスマホを開いて、大学時代のグループLINEを開いた。「金曜、誰か飲める?」と短く打った。
既読が二つ、すぐについた。
森田由佳「行ける! 最近どう?」
藤本翔「いいよ。何時から?」
田中は「七時、銀座あたり」と返信して、駅へ歩き始めた。
雨が止んで、夕方の道路に水たまりが残っていた。コンビニの自動ドアの開閉音が、何度も背中の後ろで鳴っていた。
地下鉄の階段を降りるとき、湿った空気が顔に当たった。プラットフォームで、誰かのイヤホンから漏れた音楽が、田中の隣でかすかに流れていた。曲名は分からなかった。
電車を待ちながら、田中は酒井の言葉をもう一度、頭の中で再生した。
誰でもできるレベルの仕事しかしていない。
失礼すぎる、と思った。
怒りで、目の奥がわずかに熱くなった。
帰宅して、ベッドに座ったままスマホで自分のSNSを開いた。「IT勤め、三年目」のプロフィール。最後の投稿は二週間前——「忙しすぎて死にそう」。
今夜の評価面談を、ここに書きたかった。
書いたら、少しは楽になる気がした。
でも、書けば、誰かに見られる。
誰かに「それは事実だよ」と言われたら、もう、立ち直れない気がした。
田中はスマホを閉じて布団に倒れ込んだ。
目を閉じても、酒井の声だけが、明るく整った会議室Cの中に残っていた。
壁の時計が、十時を回る音を立てた。三年間、自分が書いてきたコードが、画面の向こうに、ぼんやり浮かんで消えた。




