個人開発の記録です。JRの「観測所」を作って約1週間。観察のチェックリストが、ほぼ埋まりました。今回はその終盤に出てきた、今週いちばんの発見の話です。主役は、たった1つの中途半端な数字でした。

Contents

まず結論

ある駅・ある方向の列車の検出率が、「約7割」という数字で出てきました。高くもなく、低くもない、なんとも座りの悪い数字です。これを放置せずに分解したら——「10割の集団」と「0割の集団」の合算でした。

今週の学びを一行にすると、こうなります。

中途半端な数字は、たいてい「混ざっている」。
平均のまま眺めず、集団に割ってみる。

「約7割」を、そのままにしなかった

観察の仕上げとして、主要な駅ごとに「列車をどれだけ捕捉できているか」を検収していました。ほとんどの駅はほぼ10割。ところが1か所だけ、約7割という数字が出たのです。

ここで「まあ7割なら悪くないか」と流すこともできました。でも、このブログで繰り返してきた型があります。「分からない」を2種類に分けた話。「高得点の内訳」を見た話。どちらも教訓は同じで、ひとまとめの数字は、性質の違うものを混ぜて隠していることがある、ということでした。

だから今回も、7割を構成している列車を1本ずつ調べました。すると、きれいに2つの集団に割れたのです。

  • その駅から先へ進んでいく列車:検出率 ほぼ10割
  • その駅が終点の列車(そこで運行を終える便):検出率 0割

7割の正体は、「7割がた見えている」ではなく、「全部見える集団と、全く見えない集団が、7:3で混ざっていた」でした。平均という数字が、いかに実態を隠すか。教科書で読んだ話が、自分のデータで目の前に現れた瞬間でした。

弱点の正体は「駅」ではなく「列車の運命」だった

この分解には、続きがあります。同じ「全く見えない」パターンを、他の場所でも確認していくと、共通点が浮かびました。見えないのは特定のではなく、「その場所で運行を終える列車」だったのです。終点に到着する瞬間の報告が、データの仕様として上がってこない——そういう癖が、データ源そのものにありました。

つまり弱点は「どこで測るか」の問題ではなく、「その列車がそこで終わるか、先へ進むか」という列車側の運命に紐づいていた。ラベル(駅名)ではなく実体(運用パターン)で捉え直す——前回の「同一性は名前でなく実体で」と、同じ型がまた出てきました。

そして朗報:弱点は、急所を外れていた

ここからが、今週いちばん嬉しかった部分です。「終点に着く列車が見えない」という弱点は、一見致命的に思えます。でも、アプリの目的に照らして考え直すと、景色が変わりました。

このアプリの核は「今来た電車に乗るか、次を待つか」の判断です。では、その判断をしたい利用者が乗るのは、どんな列車か。——定義上、必ず「自分の目的地まで先へ進む列車」です。目前の駅止まりの便に「乗るか待つか」で迷う人はいません。その先へ行く人だからこそ迷うのです。

そして「先へ進む列車」の検出率は、ほぼ10割。つまり、構造的な弱点は、アプリの核となる機能の急所を、きれいに外れていました。見えない部分は「予測対象外」と正直に表示すればいい(ソフトは正直に壊れるべき、の実践です)。弱点の正体を突き止めたことが、むしろ「JR版はやれる」という確信を補強した——調べる前より、調べた後のほうが安心できる。検収とは本来こういうものなのだと思います。

観察フェーズが、閉じ始めた

この検収を最後に、観察のチェックリストはほぼ埋まりました。約1週間、アプリを1行も書かずに記録だけしてきた成果として、「JR版が何のアプリになるべきか」の輪郭が、数字の側から浮かび上がってきています。どの場面に価値があり、どこが構造的に見えず、何を正直に諦めるべきか——器を先に作らなかったからこそ、要件のほうがデータから立ち上がってきた、という手応えがあります。

いっぽう浅草線は、「店じまい」

並行して、前作の浅草線アプリはこの週、記録の棚卸しを終えて「店じまい」しました。やることリストは空。残っているのは全部「待ち」です。

店じまいと言っても、止めるわけではありません。むしろ逆で、私が数日離れても、乱れが来たらアプリが勝手に録っておいてくれる状態になった、ということです。発見ノートは12項目まで育ちました。「私が見ていなくても働き続ける」——Mac miniが届いた日に願った形に、前作はたどり着いたことになります。

おわりに ── 数字を「割ってみる」勇気

振り返ると、この数週間で価値のあった発見は、ほとんど同じ動作から生まれています。ひとまとめの数字を、そのまま信じずに、割ってみる。判定不能を2つに割った。高得点をサービス問題と難問に割った。そして今週、7割を10割と0割に割った。

割ってみるのは、少し勇気がいります。都合の悪いものが出てくるかもしれないからです。でも経験上、出てきた「都合の悪いもの」は、毎回それ以上の価値を連れてきました。今回など、弱点の正体がそのまま「やれる」の根拠になったのですから。

観察が閉じたら、次はいよいよ要件——「何を作るか」を言葉にする段階です。データが教えてくれたことを、どこまで素直に設計に写せるか。次の記事は、たぶんその話になります。


個人開発 / 観測フェーズ / データ検収 / JR

このブログでは、ローカルLLM・Aider・個人開発の試行錯誤をそのまま記録しています。