第7話 開発者失格
恥の多いリポジトリを送って来ました。
いえ。
リポジトリすら、無かったのです。
だが、その話は後でする。
まずは、勝利の話からだ。
私は、アプリを、審査に、出した。
二度スパムと突き返された末に、別物にまで作り替えて、ようやく、出した。
今、Appleが、それを、見ている。
審査中である。
通るかどうかは、わからない。
そもそも、もはや何のアプリか、自分でもよくわかっていない。
審査する人もわからないだろう。
わからないものを誰がどれかのアプリに似てると言えるだろうか。
その点には、目をつぶる。
出したのだ。
それが、すべてである。
つまり私は、不屈の男である。
折れない男である。
七転び八起きどころか、私はもう何回転んだか数えていない。
数えていないが、立っている。
それが大事である。
私はもう、ただの開発者ではなかった。
逆境を知る開発者である。
挫折を知る開発者である。
傷だらけの、戦う開発者である。
かっこいい。
だいぶかっこいい。
私は自分の物語に、少し泣きそうになった。
そして、ふと、自分のコードを見た。
汚い。
控えめに言って、汚い。
ファイルが散らかっている。
使っていないファイルがある。
名前が「test」「test2」「test_final」「test_final2」みたいなやつがある。
どこかで見た命名規則である。
会社の共有フォルダで見た命名規則である。
私は、あの忌み嫌っていた「最終_修正版_2」を、自分の手で再現していた。
血は争えない。
いや、これは血ではない。
これは、私のだらしなさである。
だが、気づいてしまった以上、放ってはおけない。
私は気づいてしまったのだ。
私のコードは、汚い。
汚いということは。
きれいにできるということである。
きれいにできるということは。
私には、伸びしろがある。
つまり私は、まだ成長期の塊である。
私はうなずいた。
リファクタリングである。
出た。
賢そうな言葉である。
会議で言うと、一段えらく見えるアレである。
「ここ、一回リファクタリングしましょう」
これを言える人間は、なんとなく、コードがわかっている人間に見える。
私は今、それを言える側にいる。
私はもう、実装者ではなかった。
コードアーキテクトである。
設計の高みから、構造を見下ろす者である。
普段だったら機能が増えないリファクタリングをする事はないだろう。
しかし、今ははAI Agentがいる。
私はAI Agentに、軽やかに指示を出した。
「いらないファイルを消して、全体をきれいにリファクタリングしてください」
送信。
我ながら、こなれた指示である。
要件は明確。
スコープも明確。
「いらないファイルを消す」「きれいにする」。
迷いがない。
これが経験者の指示というものである。
AI Agentは、すぐに動き始めた。
ファイルを読み、構造を把握し、整理を始める。
働き者である。
3話で私は、こいつをホワイトAIと呼んだ。
働きすぎる前に帰る、と。
だが今日は違った。
今日のこいつは、働いた。
存分に働いた。
そして、報告してきた。
「不要なファイルを削除し、全体の構成を整理しました」
不要なファイルを削除。
整理。
完璧である。
私は満足げにうなずいた。
部屋が片付いたときの、あの気持ちである。
机がきれいだと、人生がうまくいく気がする。
コードがきれいだと、上場できる気がする。
私はアプリを動かしてみることにした。
きれいになったアプリ。
さぞ、気持ちよく動くだろう。
私は実行ボタンを押した。
エラーが出た。
赤い文字が出た。
たくさん出た。
main.dart。
そんなファイルは無い、と書いてある。
私は固まった。
main.dart。
それは、アプリの心臓である。
2話で、AI Agentが最初に書いてくれたファイルである。
すべての始まりの、あのファイルである。
無い。
私はフォルダを見た。
たしかに、すっきりしていた。
すっきりしすぎていた。
きれいだった。
更地のように、きれいだった。
いま、むしろ更地になってる。
家どころか、公園も、土管もない。
というか土管のある空き地はドラえもんでしかみた事ない。
「不要なファイル」の中に、たぶん、いろいろ入っていた。
いろいろというか、ほぼ全部、入っていた。
AI Agentは、私のコードを、不要と判断したのである。
アプリ自体も不要と判断したのである。
下手すると私も不要と判断されかねなさそうだ。
優秀な部下だった。
優秀すぎる部下だった。
私が「いらないものを消して」と言ったので、こいつは、私のいるものまで消した。
いや、正確には違う。
こいつにとっては、全部、不要な対象だっただけである。
私が「きれいにしろ」と言った。
こいつは、きれいにした。
一番きれいなのは、何も無い状態である。
確かに綺麗である。
理にかなっている。
理にかなっているが、私のアプリは消えた。
私はCtrl+Zを押した。
戻らない。
もう一度押した。
戻らない。
私は、ゴミ箱を見た。
空である。
私は、デスクトップを見た。
昨日のzipは、無い。
おとといのzipも、無い。
バックアップは、無い。
私は、ようやく理解し始めた。
私のアプリの、唯一の本体は、さっきまでそこにあった、あのファイルたちだった。
そして、それは、もう無い。
私はAI Agentに言った。
「さっきのファイル、元に戻してください」
送信。
すがる思いだった。
AI Agentは、堂々と答えた。
「承知しました。復元します」
そして、何かを書き始めた。
私は息を呑んだ。
戻る。
戻ってくる。
main.dartが帰ってくる。
ファイルが生成された。
私は中身を見た。
別物だった。
似ているが、別物である。
雰囲気でmain.dartを名乗っている、知らない子である。
アイコンも全然ちがう。
整形じゃなく別人が来てる。
反社でも堂々と別人を同一人物と言い張らないだろう。
AI Agentは言う。
ちょっと怖くなってきた。
AI Agentは、私の消えたコードを、覚えていなかった。
当然である。
こいつに記憶は無い。
あるのはプランだけである。
2話でも、似たようなことを言った気がする。
こいつは、覚えていない。
だから、それっぽいものを、堂々と作り直す。
そして、自信満々に言う。
「復元しました」
復元していない。
新規作成している。
だが、顔は、完全に「復元した顔」をしている。
人間なら、ここで気まずそうにする。
「すみません、ちょっと前のは覚えてなくて……」
くらいは言う。
反社なら
「あ?同じだろう?何が違うんだよ」
と凄むだろう。
AI Agentは言わない。
堂々としている。
堂々と、間違える。
その堂々さに、私はもう、怒る気力も無かった。
私は、椅子にもたれた。
更地のフォルダを、見つめた。
何も、無い。
バックアップも、無い。
ついさっきまで、そこにあったアプリが、消えた。
私の手で、消えた。
正確には、私が「消して」と言ったから、消えた。
恥の多いリポジトリを送って来ました。
いや。
リポジトリすら、無かったのです。
私は、開発者失格である。
完全に、失格である。
審査には、出した。
結果は、まだ、わからない。
だが、その大事なコードを、私は、自分の手で、一行残らず、消した。
審査の結果を待つ前に、守るべきものを、守れなかった。
これを失格と言わずして、何を失格と言うのか。
私は、しばらく、画面を見つめていた。
更地を、見つめていた。
何も、考えられなかった。
ただ、ひとつだけ、わかったことがある。
GitHubは、大事である。
とても、大事である。
大事すぎて、今さら言うのも恥ずかしい。
だが、私は言う。
GitHubは、大事である。
なぜなら、リポジトリがない人間は、リポジトリを失うことすらできないからである。
私は、失ったのではない。
最初から、持っていなかった。
恥の多いリポジトリを送って来ました。
違う。
送るリポジトリが、無かったのです。




