どうしようもなさの効用 ― 完成を捨てたら手が止まらなくなった

#1316min

バグは永遠に出る。完成は来ない。それを受け入れた瞬間、開発が速くなった。希望のフォーマットを「未来の完成」から「今日の1ミリ」に変えた話。

#開発哲学#メンタルモデル#継続バグとの共存反復開発受容

どうしようもない

バグを直した。
Prevボタンが前のカードに戻れない。レベルアップしたカードがリストから消えるから、戻ったつもりが無関係なカードが出る。
直した。履歴スタックを追加して、ちゃんと「さっきのカード」に戻れるようにした。
で、次のバグが出る。

毎日同じことが起きる

朝:問題を見つける。 昼:直す。 夕方:別の問題を見つける。 夜:直す。 翌朝:また別の問題。
これを繰り返している。半年以上。
「完成」が来ない。

完成しないことについて

最初は焦っていた。「あと少しで完成する」「来週には」「来月には」。
来月は来なかった。正確には、来月は来たけど「完成」は来なかった。
アプリは使えるようになった。毎日使ってる。フレーズを復習して、レベルを上げて、ガチャを回して、ジャーナルを書いて。機能してる。
でも「完成」していない。たぶん永遠にしない。

どうしようもなさの発見

ある日、これに名前をつけた。どうしようもなさ。
バグは出続ける。新しい機能を追加するたびに新しい問題が生まれる。ユーザー(自分しかいないけど)の使い方は予想通りにいかない。
これは能力の問題じゃない。サボりの問題でもない。
ソフトウェアが本質的にそういうもの。
庭の草むしりと同じ。全部抜いても来週にはまた生えてる。草を全部抜き終わることがゴールだったら、永遠に達成できない。

諦めたら速くなった

面白いことが起きた。
「完成」を諦めた瞬間、開発が速くなった。
理由は単純。「あと何個直せば完成する」を考えなくなったから。目の前のバグを直す。それだけ。今日のやつを直す。明日のやつは明日直す。
完成がゴールだったときは、残りのバグの数を数えて絶望してた。
完成を捨てたら、1個直すたびに前進してる実感だけが残った。
どうしようもなさを受け入れたら、手が止まらなくなった。

生産的な絶望

これは鬱じゃない。投げ出してもいない。
朝起きてコード書いて、バグ直して、機能追加して、ジャーナル書いてる。何もやめてない。
ただ「いつか全部うまくいく」を信じるのをやめた。
代わりに「今日やれることをやる」だけが残った。希望を捨てたんじゃなくて、希望のフォーマットを変えた。
「未来に完成する」から「今日1ミリ進む」へ。
パチンコ式で言えば:777が出ることを期待してベットしてたのを、1SP入るだけで十分だと思えるようになった。

どうしようもないけど、どうにかなってる

6ヶ月前の自分に言っても信じないだろう。
「完成しないよ」「バグは永遠に出るよ」「でもそれでいいよ」
いいわけないだろ、って言うだろうな。
でも今日もPrevボタンを直した。明日も何か直す。
どうしようもないけど、どうにかなってる。
これが俺の答え。