第91章 昔、いたんだよ
十一月の頭に古い案件の保守が回ってきた。
地方で問屋をやっているお客さんの受発注
まわりの仕組みだ。うちが預かってからもう
七年になる。表側は何度か作り直しているけ
れど、いちばん奥の伝票の番号を採番してい
るあたりだけは最初のころのまま残っていた。
動いているものは触らない。それは正しい判
断で、正しい判断の積み重なった場所がいち
ばん古くなる。
その奥を触ることになった。
開いて、三十秒で僕は変な顔をしたと思う。
コードのなかに、書いた覚えのない書き方
があった。うちの誰の手癖でもない。黒田さ
んの無駄のない詰め方でもないし、白石さん
の、あとから読む人のために余白を残す書き
方でもない。もっと言えば、うちの誰でもな
い人の初めて見る癖だった。
いちばん目を引いたのはJavaScri
ptの読み込ませ方だった。ふつうは・js
のファイルに書いて置いておき、画面から読
ませればいい。ところがそこではサーバー側
のPHPのなかから一行ずつ、文字として吐
き出していた。プログラムを画面に出す文章
と同じ扱いで流し込んでいる。
「うわ、なんすかこれ」
覗き込んだ田中くんがしばらく黙って、そ
れから笑い出した。
「意味あります? これ。・jsに置けばい
いじゃないっすか」
「そう思うよね」
「なんでわざわざPHPを通してるんすか。
しかも一行ずつ」
田中くんはそこから三十分、この一行ずつ
の話をしていた。何かの都合があったのかも
しれないという仮説がいくつか出た。・js
を置く場所に書き込みの権限がなかったんじゃ
ないか、と田中くん。それにしてはすぐ隣に
別の・jsが置いてある、と僕。通りかかっ
た白石さんまで足を止めて、しばらく画面を
見て、「昔の共用サーバーで、・jsが置け
ない設定だったのかな」とひとつ古い仮説を
出した。それから、コーヒーをひとくち飲ん
で、「……いや、それにしてはね」と自分で
引っ込めた。
誰の仮説もしっくり来なかった。
三人でひとしきり考えて、結局田中くんが
結論を出した。
「たぶんそれしか知らなかったんじゃないっ
すかね」
それがいちばんありそうだった。
僕はgitの履歴を辿った。うちは預かっ
た案件のリポジトリを消さない。引き継ぐ前
の分までそのまま残してある。コミットには
誰が、いつ、どこを、どう変えたかが名前と
時刻ごと残っている。作った人がいなくなっ
ても、それだけは残る。
辿っていくと、知らない名前が出てきた。
いくつもあった。ローマ字だけの素っ気な
いアカウント名。うちの誰でもない名前が七
年前から五年前あたりの層にぱらぱらと混ざっ
ている。
「これ外注さんっすかね」と田中くん。
「たぶんね」
そのなかの一人がなかなかの記録を持って
いた。半年のあいだにコミットが三つ。三つ
全部合わせても三十行に届かなかった。
「半年で三十行」田中くんは感心したように
言った。「僕それ午前中で終わっちゃいます
よ」
「まあ、外注さんはそういうこともあるよ」
そのころのことはあとで少しだけ聞いた。
世の中に仕事を頼めるサイトができて、腕の
いい人にも、そうでない人にも同じように声
をかけられるようになった時期があったのだ
という。手を挙げてくる人の顔は誰にも見え
ない。着手金だけ受け取って消える人がいて、
途中で連絡がつかなくなる人がいて、納期を
一度も守らないのに、こちらの設計の思想に
ついては誰よりも長く語ってくれる人がいた。
「地獄じゃないっすか」と田中くんは笑った。
僕も笑った。そこまでは笑える話だった。
---
もうひとつの名前はちょっと違った。
s-mizuno。その名前だけは他の外
注さんたちと違って、履歴のなかにずっとい
た。三年ぶん続いていた。
最初は僕も腹を立てていた。あのPHPか
ら一行ずつ吐き出すやり方を書いたのがs-
mizunoだったからだ。書き方が古いと
いうより、書き方を知らない人の書き方だっ
た。同じ処理が少し形を変えて、三か所に置
いてある。一か所直して、あとの二か所を忘
れたら、それだけで事故になる。
直しながら、僕はたぶん少し口のなかで文
句を言っていたと思う。
そのうちs-mizunoのコミットを古
い順に読むようになった。直す場所を決める
には、どういう順番でここに手が入ったかを
知るのが早い。
最初の一年ぶんには教わった跡があった。
コミットメッセージに「ご指摘の箇所を修
正」と書いてある。何度も出てくる。うんざ
りするほど出てくる。読んでいくうちに、僕
はそれが同じ指摘であることに気づいた。名
前のつけ方。同じことを二か所に書かないこ
と。半年のあいだに同じ直しが七回あった。
七回目のあとに、また同じ書き方で新しい場
所が増えていた。
途中からその「ご指摘」が消える。
消えたのは直せるようになったからではな
かった。触る場所がだんだん決まってくる。
表示する文言の差し替え。画面に出す注意書
き。年度が変わったときの日付の直し。指摘
のしようがない場所だけを触るようになって
いた。
中身のほうも途中から書いていない。どこ
かからまるごと持ってきている。持ってきた
元の名残がそのまま残っていた。この案件に
は出てくるはずのない言葉が変数の名前に入っ
ている。よその会社の、よその仕組みの言葉
だった。それが七年、そのままになっていた。
最後の一年はほとんど動きがなかった。月
に一件あるかないか。それも文言をひとつ差
し替えて、それだけだ。
そして、ある月のコミットを最後に、s-
mizunoは履歴から消えた。
「誰っすかこれ」と田中くんがまた軽く聞い
た。悪気はひとかけらもない。
僕は答えられなかった。
少し離れた席で、黒田さんが画面から目を
上げた。こちらを見たわけではなかった。た
だ、聞こえていたのは分かった。黒田さんは
何も言わずに立ち上がって、コーヒーのほう
へ歩いていった。そして、なかなか戻ってこ
なかった。
白石さんが一瞬だけ困った顔をした。それ
から、なんでもないように自分の画面に戻っ
た。
ハルカさんが何か言いかけて、やめた。こ
の人が言葉を飲むのを、僕はたぶん初めて見
た。
海老沢さんは腕を組んだまま、少しのあい
だ黙っていた。
「昔、いたんだよ」
それだけ言って、海老沢さんもそれ以上は
続けなかった。
---
その日の夕方、僕は自分の一年目のコード
を見にいった。
うちは履歴を消さない。つまり、僕がいち
ばん頼りなかったころのものもそのまま残っ
ている。