megamouthの葬列

長い旅路の終わり

潰れたほうがいいようなマイナーなサービスと世界の守護者

CRMならSalesforce、勤怠管理ならfreee、在庫管理ならスマレジ。SaaSの世界にも代表選手はいて、その機能や安定性を思えばリーズナブルな価格で提供されている。それでなくとも、業界5位ぐらいまではそこそこ使いやすく、よくメンテナンスされたサービスを使える時代だ。

だが、どこにでも光が当たらない場所があるように、地図に載らない村があって、忘れられたサービスが存在する。数社しか使っていない受発注システム、特定の業界のニッチな慣習のためだけに作られた顧客管理ツールのことだ。

それらは総じて使いづらく、最近のサービスが当然のようにサポートしている機能が存在しないことも多々あって、めっぽう、古くさい。もしあなたが、古いmac osのaquaテーマや*1、Tableタグの二重線を見たいと願ったなら、きっとこれらのサービスが要望に応えてくれるだろう。

なぜ、そんなサービスが存在し続けるのか。

一つは、ユーザーである中小企業の「業務フローが硬直化している」からだ。新しい担当者が聖域に踏み込むような決断をしない限り、昨日と同じ今日が繰り返される。そして、その種の決断ができる人間は、そもそもそんな会社にはいない。この世界では、変化はリスクであり、停滞は安定なのである。

もう一つは、そこで奇妙な「均衡」が成り立っていることだ。このようなマイナーなサービスを維持する事業者にスケールメリットは存在しないのだが、その分システム運用コストは抑えられている(なにしろバージョンアップも何もしないことにしているシステムなのだ)。問題は使う側だが、事務員の手数が数十手増えたところで、そんなコストは全体予算にかき消されてしまう。サービスを維持するための僅かなコストと、非効率な業務が生み出す見えない損失。その天秤が、絶妙なバランスで釣り合ってしまっている。
彼らも「業務プロセスの硬直化そのものがサンクコストで、リスクだ」という、お題目を知らないわけではないが、だからといって何か手を打てるわけではないので、知らないと同じことなのだ。

では、その安泰な村のインフラを、誰が守っているのか。

答えは僕だ。「いけてるサービスを作る側に回れなかった」人間だ。

景気が良くなれば、腕のいいエンジニアはもっと輝ける場所へと去っていく。後に残されるのは、誰も触りたがらないレガシーシステムと、何かを諦めた顔をした営業担当者だ。そのシステムは市場をぐるぐる回り、やがて僕のような「ゴミ拾いのエンジニア」の元にやってくるというわけだ。
ついこの間も、そういったシステムのパフォーマンス問題を解決した。slow_queryログを有効にして、書き出されたクエリをコピペしてEXPLAINした結果をAIに読み込ませるだけの簡単なお仕事だ。いくつかのどう考えても必要なINDEXを張っただけで、前の画面に戻るためにユーザーが待機する時間は平均10秒から2秒まで短縮した。みんな、感謝して欲しい。そもそも前の画面に戻る度に再フェッチする必要があるのかと言われれば、どう考えてもないんだけどな。
僕のような場末のエンジニアは、ガラスの上から落っこちてきた、そういう仕事で食い繋ぐしかない。これは使命感でもなければ、職人技への誇りでもない。ただのババ抜きだと感じている。

さて、こうした「作業」をやっていると、自分がやっていることは、果たして「正しい」のだろうか、というナイーブな考えが浮かぶ、このサービスがもし明日「死んだ」ら、どうなるんだろう?

どう考えても、長期的に見れば、その死は「善」だ。

ユーザー企業は数ヶ月の混乱の末に、業務の変革を迫られるだろう。硬直化は終わり、淀みには流れが生まれる。ステークホルダー達が、一丸になって取り組むことで、不必要なプロセスは抹消され、事務員は快適なReactフロントエンドを画面を操って定時に帰れるようになる。それは彼らにとって、ささやかだが確実な前進の筈だ。つまるところ、僕が延命させているのは、彼らの未来を蝕む小さな病巣に他ならない。

困るのは、仕事を失う僕だけだろう。いや、ババ抜きのカードが一つ消えるだけなのだから、僕ですら困らないのかもしれない。
ならば、僕がやった仕事の価値とは一体何なのだろう。 日々の労働は、小さな悪を存続させ、大いなる善の到来を遅らせるためだけにある。
これこそが、「マイナーなサービスを保守する空しさ」の正体だ。価値が不在であること。むしろ、価値がマイナスであることに加担しているという、静かな虚無感がある。


ただ、ここまで書いた上で自分が、エンジニアの陥穽の一つに落ちてることがわかった。今作った格言を聞いてほしい「技術的に可能は不可能」だ。

例えばクライアントがSalesforceに移行することにしたとする、社長がゴルフの最中に、DXとはSalesforceのことだと聞きかじったせいだ。僕らが愛した薄いMySQLラッパーシステムは僕ごと放棄され、様々な業務を厳格なフローで制御するプロジェクトが始まる。

会議室に集められた各担当者はなぜか最初から怒っている。余計な仕事を増やすな、という態度が椅子の座り方から伝わってきて、哀れなセールスマネージャーは愛想笑いを浮かべるしかない。Excelと内線電話と、どこかに眠っていたOracleデータベースシステムのCSV出力との突合が始まり、会計士は絶句する。

システムは無事に完成するかもしれないし、完成しないかもしれない、あるいは完成したことにされるかもしれない。後に残るのは、絶対に後戻りができない、承認ボタンの順方向フローと、社長が滅多に開くことのない奇怪なダッシュボードだけだ、ということになるのかもしれない。

もちろん上手くやる方法はある、バラ色の未来は「技術的には可能」だ。しかし、そのための人的リソースと予算が、簡単に見いだせないのも事実で、中途半端にやれば今より状況が悪化することだって十分にあり得る、というわけだ。


そう考えると、僕のような「ババ抜きの敗者」の役割も変わってくる。

僕は、単に古いシステムの延命に加担しているのではない。来るべき「審判の日」を、破滅的なカタストロフィを、か細い指で必死に先延ばしにしている存在なのではないか。

もしそうなら、この無価値に見える労働にも、ダムの決壊を遅らせるような、悲壮な「正当性」が生まれる。 だが、問題は、そのダムがどれほど巨大で、亀裂がどれほど深刻なのかを、誰も知らないことだ。
なにしろ変革のコストを見積もる人間が、どこにもいないのだ。皆、自分が毎日何を保守しているのか、その本当の意味を理解しないまま作業を続けている。

先延ばしにしているのは、数ヶ月の業務混乱か、それとも会社の倒産か。

さらに論理を飛躍させると、 「審判の日」を待ちながら、その日を先延ばしにするためにだけ存在するシステム。それは、目の前のマイナーなサービスだけの話だろうか? 老朽化した社会インフラ、複雑怪奇な金融システム、社内政治と慣習だけで回る大企業、少子高齢化という名の国家レベルの技術的負債。この世界全体が、いつか必ず訪れるカタストロフィを、無数の「保守作業」によって先延ばしにしているだけなのではないか。

そう考えると、僕たちが対峙しているのは、単なるjQueryのコードではない。世界の縮図だ。 僕の空しさは、個人的なものではなく、この世界の構造的な空しさそのものなのだ。審判の日が来るまで、僕は自分が何をしているのかもわからぬまま、キーボードを叩き続けるし、それは特段、僕に限った話ではないのかもしれない。

そこまで考て、ようやく僕は、このレガシーシステムの厳かな画面遷移を、PHPコードを愛おしく感じることができるのだった。