真理という名の仕様変更
「この仕様、いつ決まったの?」
真理の声が、少しだけ尖っていた。
月曜の朝、週次ミーティングのSlackチャンネルに投稿された新しいフロント要件。
それを読み終えた瞬間、私たちの表情は、ほぼ同時に曇った。
「ボタンの挙動、仕様書から変わってる……。アニメーション付きで、動的ラベルって、え……?」
「誰かが気軽にできるよね?って言ったんだろうな」
真理が冷静に言いながら、キーボードを打つ指だけは明らかに苛立っている。
「ちょっと見た目のところだからって軽く言うけど、フロントエンドは常に地雷原なんだよね」
私は苦笑して頷いた。
「たった1クリックに命かけてるの、エンジニアだけだもんね」
「ほんとそれ」
====
真理──佐倉真理。
私とは大学時代からの付き合いだ。
デザイン専攻の傍ら、HTMLとCSSを遊びで触っていた彼女は、突然JavaScriptにハマって、気づけば私よりコードを書いていた。
出会った頃の彼女は、少し不器用で、すぐ顔に出るタイプだった。
だけど、どんなにトラブルが起きても、一度たりとも「投げ出す」って言葉を使ったことがなかった。
「凛、ちょっと来て。あの人、またUI変更言ってきた」
「仕様、Fixしてたんじゃないの?」
「Fix?それ、食べられる?」
大学時代の、そんなやり取りをふと思い出した。
====
昼休み。
私と真理は、屋上にある喫煙スペースのベンチに座っていた。
もちろんタバコは吸わない。風が通るから、気分転換にはちょうどいい。
「……仕様変更って、なんでああも突然なんだろうね」
「うん。風邪と上司の気分は、いつも急変する」
真理は、空を見上げたままぽつりと言った。
「……この前さ、昔いたチームの子から連絡きて」
「へぇ?」
「あの頃、佐倉さんがいちばん怖かったですって言われた」
「……まぁ、否定はできないかも」
「ひどくない!? でもわかる。私、当時めっちゃギスギスしてた」
私は何も言わなかった。真理の過去は、少しだけ知っている。
「その時、毎日のように仕様が変わってね。上から今日中に直してって言われて、作っても、翌朝にはやっぱ違ったって。それを、半年。半年間、仕様に踊らされて、誰からもフォローされなかった」
真理の声が少しだけ震えていた。
「だから私、変わったんだよ。ちゃんと戦えるように、私のコードを守るように。技術があれば、仕様変更に呑まれないって──思ったから」
私は何も言わずに、隣で風を感じていた。
真理の強さは、経験から来ている。
でもそれは、痛みの裏返しでもあった。
====
午後の開発。
Slackには、翔太が真理に質問するやり取りが続いていた。
このコンポーネントって、props受けてから再描画される条件って何ですか?
stateで管理してる部分、読み込んでから別処理してる。ちょっとロジック追ってみて
あ、すみません、自分が触ったところで壊してました
気づいたなら直して。あとテスト書いといて
……うん。これでもだいぶ優しくなった方だ。
少し前の真理なら、「これで動くと思ったの?」ってストレートに言ってた。
翔太も、そんな彼女に対して怯えなくなっているのが、ちょっと誇らしい。
====
夕方。
真理が自席からふと声をかけてきた。
「凛。あんた、まだ優しい世界、目指してんの?」
「……うん。できればね。仕様変更も、怒鳴り声も、誰かの苛立ちも、全部整理して吸収できるコード。そういうの、書きたいと思ってる」
「理想論だね」
「でも、真理もそうだったでしょ? 一度はそう思ったこと」
真理は小さく笑った。
「……あんた、変わんないね。昔から変数にも感情があるとか言ってたもんな」
「変数名は人格だよ。flagって名前、今でも許せない」
「お前が言うと笑えないから困るんだよな」
私は笑いながら、真理を見た。
「でも、私が諦めそうなとき、真理は怒ってた。仕様に流されるなって、踏みとどまらせてくれた」
「……ま、結果的にはあんたが正しかったかもね」
====
その夜。
リポジトリに、真理からのプルリクが上がった。
タイトルは、「仕様変更に負けないUI:第一弾」
添えられたコメントには、こんな一文があった。
昔の私が、今の私にレビューしてくる気がして怖かったです。でも、書きました
私はそのプルリクに「Approve」を返し、こうコメントした。
仕様は変わっても、真理は変わらない。それでいいと思う