個人開発の最大の敵は、技術力不足でも時間不足でもない。「機能を追加したくなる衝動」だ。
全部記録すれば、完璧な分析ができるはず
初期のワンダフには、とにかく大量の入力項目があった。ティーショットだけでも、クラブ、球筋(5種類)、ミスの種類、結果(フェアウェイ・ラフ・バンカー・OB等)、自己判定。全ショットに対してこれだけある。
1ホールの入力に6タップ × 4〜5ショット。18ホールで400タップ以上。冷静に計算して、青ざめた。
「記憶に残らないデータ」は無意味
最初に削ったのは、セカンド以降の球筋だ。ティーショットの球筋は覚えている。「右に大きく曲がった」とか。でもセカンドの球筋は?正直、覚えていない。
覚えていないことを入力させても、データの信頼性は低い。分析に使えないデータを集めるために、ユーザーの時間を奪っている。本末転倒だ。
コードを消すときの痛み
一番つらいのは、動いているコードを消す瞬間だ。球筋の選択UIも、結果選択のロジックも、ちゃんと動いていた。時間をかけて作ったものだ。
Gitのログには残っているとわかっていても、Deleteキーを押す手が震える。「もしかしたら後で必要になるかも」という声が頭の中で響く。
でも消した。消したら、アプリが軽くなった。物理的にも、精神的にも。
「あると便利」な機能と、「ないと困る」機能は違う。個人開発では、後者だけを残す勇気が必要だ。
「足し算」より「引き算」の開発
機能を追加するのは楽しい。削るのはつらい。でも、使いやすいアプリは「引き算」でできている。
今でも「これも記録したい」という欲求はある。でも新機能を追加する前に必ず「これがないと、ユーザーは本当に困るか?」と自問する。答えがNoなら、追加しない。