この記事が良かったら
「チップをリクエスト」で著者にチップの受け取り設定をお願いできます

個人開発をはじめてから、ずっと怖れていたことがありました。「アップデートで何かを壊してしまう日」のことです。 機能を追加するのはうれしいのに、公開ボタンを押す瞬間はいつも少しだけ心臓が跳ねます。テストしたはずだから大丈夫、と自分に言い聞かせながら、それでもどこかで「もし」と考えて…
この記事が良かったら
「チップをリクエスト」で著者にチップの受け取り設定をお願いできます
個人開発をはじめてから、ずっと怖れていたことがありました。「アップデートで何かを壊してしまう日」のことです。 機能を追加するのはうれしいのに、公開ボタンを押す瞬間はいつも少しだけ心臓が跳ねます。テストしたはずだから大丈夫、と自分に言い聞かせながら、それでもどこかで「もし」と考えている自分がいます。 その「もし」が現実になったのが、今年の春のことでした。今日はその日のことを、できるだけ正直に書いてみようと思います。失敗談というより、あの経験が私に教えてくれたことを。
その日のアップデートは、そんなに大きな変更ではありませんでした。データを扱う部分の処理を少し整理して、表示まわりのバグをいくつか修正した、いわゆる「地味な改善リリース」です。大きな新機能はなく、むしろ使いやすくなるはずでした。
テストも一通りやりました。自分でいくつかのパターンを試して、見た目の確認もして。平日の昼間にそっと公開ボタンを押して、Xに「アップデートしました」と短く投稿しました。反応は控えめだったけれど、それはいつものこと。気にしないようにして、そのまま別の作業に移りました。
問題が起きたのは、その日の夕方でした。
アプリの問い合わせフォームに、メッセージが届いていました。「今日からデータが正しく表示されなくなりました」という内容で、スクリーンショットも添付されていました。
画面を見た瞬間、胃がぐっと重くなりました。「あ、やった」と思うより早く、体が緊張するのがわかりました。落ち着いてスクリーンショットを確認すると、確かにおかしな表示になっています。日付を見ると、私がアップデートをした直後から起きていることは明らかでした。
問い合わせを読んでから数秒、私は動けませんでした。「すぐに直さなければ」という気持ちと、「どこがいけなかったんだろう」という混乱が同時にやってきて、何から手をつければいいかわからなくなるあの感じです。
とりあえず深呼吸をして、自分でもアプリを開いてみました。同じ状況を再現しようとして……再現できました。やっぱりおかしい。今日の変更と関係がある部分を頭の中で整理しながら、一つひとつ確認していきます。
三十分ほど調べていたところで、原因がわかりました。整理したつもりの処理の中に、特定の条件のときだけ正しく動かない箇所があったのです。自分でテストしたときは、たまたまその条件に当たらなかっただけでした。
「ああ、そういうことか」と口に出したとき、怒りよりも恥ずかしさの方が強かったです。見落としていた自分への情けなさと、使ってくれているユーザーへの申し訳なさが、ぐちゃぐちゃに混ざった感じ。でも今は落ち込む時間じゃない、と思って修正作業を進めました。
修正自体は、原因がわかってからはそう時間がかかりませんでした。問題のある箇所を直して、もう一度確認して、修正版を公開しました。時計を見ると、最初のメッセージから一時間ちょっと経っていました。
でも正直に言うと、修正よりも返信を書く方がずっと難しかったです。
謝罪メッセージって、書き方に悩みます。丁寧すぎると言い訳がましく見えるし、短すぎると誠意が伝わらない気がする。「本当に申し訳ありませんでした」という気持ちは本物なのに、文字にするとどうも薄く感じてしまいます。
最終的に送った返信は、シンプルな文章でした。ご報告いただいたこと、今日のアップデートで不具合を混入させてしまったこと、現在は修正済みであること、ご不便をおかけして大変申し訳なかったこと。それだけを、できるだけ素直な言葉で書きました。
言い訳は書きませんでした。テストが不十分だったという内情も書きませんでした。そういう話は、聞かれていないし、聞かれても不要だと思ったからです。ただ謝って、直したことを伝えて、これからも使ってほしいという気持ちを添えました。
送信ボタンを押したあと、少し呼吸が楽になった気がしました。
送ったのが夜だったので、返信が来たのは翌朝でした。
「ありがとうございます、直ってました!毎日使っているのでびっくりしましたが、素早い対応助かりました」
……読んで、最初に思ったのは「毎日使っている」という言葉でした。
このアプリ、毎日使ってくれている人がいる。
当たり前のことかもしれないけれど、個人開発をしていると、実際に使われているかどうかって、意外とよくわからないんです。アクセス数やダウンロード数は数字として見えますが、「誰かの日常に入り込んでいる」という実感はなかなか持てない。それが、このメッセージで初めてはっきりと感じられた気がしました。
バグを出してしまったことは、間違いなく失敗です。でも、その失敗がなければ、このメッセージは届かなかったとも思います。
問い合わせを送ってくれるということは、それだけそのアプリを使い続けようとしているということです。問題があったとき、「使うのをやめよう」ではなく「伝えよう」と思ってくれたということです。それがどれほどありがたいことか、このとき初めてちゃんとわかりました。
不具合をゼロにしたいという気持ちは今も変わりません。でも「誰かが使っている」という事実は、バグが出なければ意識することが少なかったかもしれない。壊してしまった日に、ちゃんと使われていたことを知った。なんだか皮肉で、でも不思議と大切な時間でした。
個人開発は、リリースしてからも全部ひとりです。設計も、実装も、テストも、そして不具合が出たときの対応も。チームならば誰かに相談したり、分担したりできますが、ひとりでやっているとすべてが自分にかかってきます。
それが怖い、という話は開発者同士でよくします。何かあったとき、自分しか対応できない。そのプレッシャーはリリースするたびに少しずつ積み重なって、「また壊したらどうしよう」という気持ちにつながっていきます。
でもあの日、ユーザーからのメッセージを受け取って、対応して、「直りました」という返事をもらったとき、怖さとは別の感覚もありました。責任があるということは、それだけ意味のあるものを作っているということでもある。そういう感覚が、初めてちゃんと腑に落ちた瞬間でした。
「素早い対応助かりました」と書いてくださったとき、正直に言うと少しだけ複雑な気持ちもありました。「素早かったのは事実だけど、そもそも壊さなければよかった」という思いが残っていたから。
でも今は、もう少し柔らかく考えられるようになりました。完璧にリリースできることよりも、問題が起きたときにちゃんと向き合えることの方が、長く続けていくうえでは大切なのかもしれない。個人開発は一度きりではなくて、ずっと続いていくものだから。速さよりも、「逃げなかった」という事実の方が、自分には残りました。
あれから、アップデートの前にもう少し時間をかけるようにしました。完全に防げるわけじゃないけれど、自分なりの確認の順番を作って、一通り試してから公開するようにしています。それでもまたいつか、似たようなことが起きるかもしれない。でも、そのときどう動くかは、少しだけ自信を持てるようになった気がしています。
それと、問い合わせフォームを少し目立つ場所に移しました。何かあったとき、もっと気軽に連絡してほしいと思ったからです。バグの報告だけでなく、「こんな機能があると嬉しい」という声も受け取りやすくしたくて。
あの日のことを思い返すと、今でも少し胃が痛くなります。でも、あの一通のメッセージをもらったことは、個人開発をしていてよかったと思える出来事のひとつになっています。
壊してしまった日に、ちゃんとつながることができた。それで十分だったのかもしれない、と今は思っています。
これを読んでくださっている方も、似たような経験をしたことがあるかもしれません。あるいは、これから経験するかもしれない。そのとき、少しだけ「こういう日を乗り越えた人がいた」と思い出してもらえたなら、この記事を書いた意味があります。
一緒に、続けていきましょう。
Lily(@bokuwalily)― 個人開発者。AIと二人三脚で、iOSアプリやWebサービスを作っています