第三話 未来の他人に向けた文章
三日目の朝、翔太は前夜ほとんど眠れなかった。
夢の中で、黒い画面に知らない文字列が流れていた。読めないはずなのに、なぜか意味だけがわかる夢だった。起きたときには内容の大半を忘れていたが、喉の奥に金属の味だけが残っていた。
会社へ向かう電車の中で、スマホのメモを読み返す。
自分で打ち込んだ謎の文言は、朝の光の下では急に安っぽく見えた。都市伝説を信じているみたいだ。翔太はアプリを閉じ、窓ガラスに映る自分の顔を見た。若い。眠そうで、何者でもない顔だった。
出社すると、木村はすでに席にいた。
机の上に紙コップの空き容器が二つ並んでいる。昨夜遅くまで残っていたのだろう。
「おはようございます」
「おはよう。眠そうだね」
「ちょっと復習してたら遅くなって」
嘘ではない。全部ではないだけだ。
木村は頷き、今日の課題を共有した。
午前中は昨日の修正に対する再レビュー。午後は小規模な新規機能の追加。さらに、午後の終わりにはチーム内レビューの見学もあるという。
「レビューって、人のコードに口出しする場だと思ってる人いるけど、半分は事故防止だから」
木村はそう言いながら、チャットにURLを送ってきた。
「読む人間のために書く。そこが抜けると、あとで誰かが死ぬほど困る」
“死ぬほど困る”という言い方が妙に生々しくて、翔太は少し笑えなかった。
この会社では、それが比喩では済まないのかもしれないと思った。
再レビューでは、昨日の指摘に加えて、別の問題も見つかった。
例外を握りつぶしていた箇所。変数のスコープが広すぎる箇所。処理の意図がコメントなしでは読みにくい箇所。翔太はひとつずつ直しながら、自分が“とりあえず動くもの”しかまだ書けていないことを思い知った。
「読む人のことって、そんなに考えなきゃだめですか」
気づくと、口から出ていた。
木村は少しだけ椅子を引いた。
叱るのではなく、ちゃんと聞こうとする姿勢だった。
「だめ、っていうより、考えないとあとで自分が困る。未来の自分も他人だからね」
「未来の自分も……」
「今日の自分が書いたコード、三か月後に見て一発で読める?」
翔太は答えられなかった。
専門学校のころに書いた課題を思い出す。提出直前に整えたソースを、一か月後に見返したとき、何を考えてその変数名を付けたのかすら思い出せなかったことがある。
木村は続けた。
「コードって、結局は文章なんだよ。機械はたしかに読むけど、機械は意味で困らない。困るのは人間。疲れてるときの人間、急いでるときの人間、責任を押しつけられたときの人間。そういう人が、読めるかどうか」
その言葉に、翔太は昨日の妙なコメントを思い出した。
ここでは門を開かないこと。
あれは読める。
少なくとも、忘れない。
だが、読めることと、意味が通ることは別だ。
「コメントって、どこまで書くべきですか」
「コードを読めばわかることは書かない。コードを読んでもわからない“なぜ”を書く」
木村は自分のモニターを指差しながら言った。
「何をしてるかはコードで示せる。でも、なぜそうしてるかは背景がいる。背景を残すのがコメント」
翔太はその説明を頭の中で反芻した。
何をではなく、なぜ。
自分にはまだ、そこが薄い。課題を解くときも、“先生が求める正解”に近づくことしか考えていなかった。だが仕事では、答えそのものより、そこへ至る文脈のほうが重要になるのかもしれない。
昼前、翔太は気になっていたファイルをもう一度開いた。
昨日見つけた、奇妙なコメントのある箇所だ。前後の処理を丁寧に読む。入力値を受け取り、特定条件で別処理へ分岐し、ログを書き込み、画面制御に戻す。表面的には何の変哲もない。コメントだけが異物だった。
そして、行末に気づく。
コメントの末尾に、修正者名や日付ではなく、見慣れない短い記号列が添えられていた。
// ここでは門を開かないこと 4b-17
仕様番号にしては形式が雑だ。
チケット番号だろうか。そう思って社内の管理表を検索する。該当なし。
「またそのファイル見てるの?」
いつの間にか、久保田が背後に立っていた。
翔太は少し驚いて振り向く。
「あ、はい。ちょっと気になって」
久保田は画面を覗き込み、
「ああ、この辺、昔の人のコードですよ」
と言った。
「昔の人?」
「今いない人。会社立ち上げの頃にいたらしいです。すごい人だったって聞いたことあるけど、詳しくは知らない」
「辞めたんですか」
「たぶん。木村さんなら知ってるんじゃないかな」
そう言って久保田は自分の席に戻った。
今いない人。
その言い方だけで、コードが急に遺物のように見えてくる。誰かがここで働き、何かを残し、いなくなった。そして自分が、その痕跡を今読んでいる。未来の他人に向けた文章。いや、これは過去の他人から届いた文章なのかもしれない。
午後のレビュー見学では、他の社員同士のやり取りが行われた。
指摘は容赦なかったが、感情的ではない。行番号。処理意図。テスト観点。影響範囲。議論はすべて具体から始まり、最後に運用上の落としどころへ着地する。その流れを見ていると、プログラムを書くことより、読むことのほうがずっと難しいのではないかと思えた。
レビューの終盤、木村があるコードを指して言った。
「これ、何をしてるかはわかる。でも、なぜこの実装になったかが見えない。背景が消えてる」
その言葉に、翔太の胸がわずかにざわついた。
背景が消えている。
それはコードだけの話ではない気がした。会社も、人も、たぶん同じだ。いまここにあるものは、何かの理由でこうなっている。その理由が失われたとき、残るのは動いているという事実だけだ。そして動いているものほど、下手に触れない。
定時後、翔太は思い切って木村に聞いた。
「昔ここにいた人で、変わったコメントを書く人、いましたか」
木村の手が一瞬止まった。
ほんの一瞬だけ。
「なんで?」
「ファイルに、ちょっと気になるコメントがあって」
「どんな」
翔太は躊躇ったが、画面を見せた。
木村はコメント欄を読み、数秒黙った。
その沈黙の長さで、翔太は何かを確信した。
木村は知っている。少なくとも、初めて見る反応ではない。
「……これ、どこで見つけた?」
木村の声は低かった。
責めているわけではない。だが、いつもの平静からわずかに外れていた。
「昨日、レビューのついでに」
木村はもう一度コメントを見つめ、それから画面を閉じるように言った。
「そのファイル、今日はそこまででいい」
「でも、まだ読めてなくて」
「いいから」
語気は強くなかった。
それでも逆らえない種類の言い方だった。
翔太はマウスから手を離した。
木村は少しだけ言葉を探すようにしてから、椅子に腰を下ろした。
「古いコードってね、たまに変な癖が残るんだよ。書いた本人にしかわからない言い回しとか、事情が切れた注意書きとか。深追いしないほうがいいこともある」
「それは、何か問題があるってことですか」
「問題っていうか……」
木村はそこで言葉を切った。
窓の外はすでに暗くなり始めている。蛍光灯の白さだけが室内を浮かせ、モニターの光が人の顔を平たく見せていた。
「佐藤君。君はまだ研修中だ」
「はい」
「だからまず、目の前のコードを読むことに集中して。過去の幽霊を追うのは、今じゃない」
幽霊。
木村がそう言ったことに、翔太はむしろ引っかかった。冗談で済ませるなら、もっと別の言い方があったはずだ。
「わかりました」
そう答えたものの、納得はしていなかった。
帰り道、駅前のガード下を歩きながら、翔太は自分の足音を聞いていた。
人混みの中にいるのに、妙に静かだった。木村の反応が頭から離れない。あのコメントには、たぶん会社の古い事情以上の何かがある。そして木村は、それを知っている。
ホームに立ち、電車を待つ。
向かいの線路の向こうに、夜の窓が並んでいる。光のひとつひとつに、それぞれ別の仕事と疲労と生活があるのだろうと思う。自分もそのひとつに入ったのだ、とようやく少しだけ実感する。
だがその実感の奥で、別の感覚が育ち始めていた。
この仕事は、ただ機械に命令を出すだけのものではない。
コードの向こう側には、読む他人がいる。書いた過去の他人もいる。
そして、まだ見えていない何かもいる。
電車が滑り込んでくる。
風が吹き、翔太のネクタイの先を揺らした。
彼はその夜、帰宅してから自分のノートの一番後ろのページに、ひとつだけ書き足した。
コードは未来の他人に向けた文章。
なら、過去の他人は何を残そうとしたのか。
書き終えたとき、部屋の片隅で、電源を落としたはずのノートPCの画面が一瞬だけ白く明滅した。
ほんの一瞬だった。見間違いかもしれない。だが、翔太はその光が消えるまで、息を止めていた。




