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

夜中の2時ごろ、スマートフォンを手に取ることがあります。眠れないから、という理由のこともあれば、なんとなく気になって確認してしまう、という夜もあります。画面を開くと、ユーザーからのメッセージが届いていたり、自分のサービスのエラーログが気になってしまったり。開かなければよかったのか…
この記事が良かったら
「チップをリクエスト」で著者にチップの受け取り設定をお願いできます
夜中の2時ごろ、スマートフォンを手に取ることがあります。眠れないから、という理由のこともあれば、なんとなく気になって確認してしまう、という夜もあります。画面を開くと、ユーザーからのメッセージが届いていたり、自分のサービスのエラーログが気になってしまったり。開かなければよかったのかもしれない、と思いながら、それでも開いてしまいます。 個人でサービスを作って動かしている方なら、この感覚を少しわかってもらえるかもしれません。誰かが何かに困っているかもしれない。サービスが止まっているかもしれない。誰かが起こしてくれるわけでもなく、気づいてくれる仲間もいない。ひとりで作って、ひとりで守っている。その孤独と、どこか澄んだ充実感が、深夜の画面の前には混じり合っています。 このエッセイは、バグを深夜に直して、誰も起きていない時間帯にそっとアップデートを出した夜のことを書きます。気づかれなかったかもしれない。それでもその静けさの中に、確かに何かがありました。無名の責任感と、小さな誇りについて、正直に書いてみようと思います。
個人開発のサービスを公開してから、しばらく経ちます。Lilyが作って動かしているのは、ユーザーの入力を受け取って処理し、結果を返すタイプの自動化ツールです。仕事の合間に開発して、週末に触って、少しずつ育ててきました。小さいけれど、動いている。それが今のところ、一番の達成感です。
そのサービスを運用しながら、ひとつ気づいたことがあります。Lilyが寝ている間も、サービスは動き続けているということです。
当たり前のようでいて、これが実感としてわかるまで、少し時間がかかりました。夜中にリクエストが来ている。朝に確認すると処理が回っている。ユーザーはそれぞれのタイムゾーンで、それぞれの時間に使ってくれています。誰かの仕事の流れに組み込まれているのかもしれない。そう思うと、自分が作ったものへの眼差しが少し変わりました。守るべきものがある、という感覚が生まれた、と言えばいいでしょうか。
公開するまでは、「動くかどうか」だけを考えていました。テストを書いて、確認して、エラーがなければ出す。でも実際に人が使い始めると、想定外のことが次々と起きます。使い方の違い、データの形式の差、タイミングの問題。「動くかどうか」ではなく、「誰かの文脈の中で、ちゃんと機能するかどうか」が問われるようになります。
リリース後の方が、ずっと仕事が多い。それはわかっていたつもりでしたが、実際に経験してみると、想像よりずっと深い話でした。
ある夜、メッセージが届きました。「処理が途中で止まっているみたいです」という内容でした。
確認してみると、確かに止まっていました。Lilyは何日も気づいていなかったのです。ログを遡ると、3日前から発生していました。その間、何件かのリクエストが正常に完了していませんでした。
最初に感じたのは、焦りよりも、恥ずかしさに近いものでした。自分のサービスで何が起きているか、把握できていなかった。そのことが、じんわりと重くのしかかってきました。
具体的に何が起きていたかというと、外部のAPIを呼び出す部分で、タイムアウトのしきい値が短すぎたのです。平常時は問題ありませんでしたが、APIの応答が重くなる時間帯に、処理がそのまま中断されていました。エラーとして記録はされていましたが、Lilyに通知が届く設定にはなっていませんでした。ログを見れば気づけたはずの問題を、Lilyは見ていなかったのです。
数字で言うと、その3日間で届いたリクエストのうち、約18%が処理未完了のまま終わっていました。ユーザーの側からすれば、5件に1件近くが「何も起きなかった」状態です。
これは、かなりこたえました。バグそのものより、「知らなかった」ことが。
原因がわかってからの作業は、比較的早く終わりました。タイムアウト値を30秒から120秒に変更し、合わせてリトライの回数を1回から3回に増やしました。さらに、処理が失敗したときにLilyへ通知が届くよう、アラート設定も追加しました。設定ファイルの中の2箇所を書き換えて、1行追加するだけの作業でした。
その変更を眺めて、「なんだ、これだけか」と思いました。たった数行を変えるだけで、防げていた失敗でした。でもその数行に気づくには、失敗して、報告を受けて、ログを掘って、原因を特定する時間が必要でした。問題は、コードの中だけにあったのではなく、Lilyの「確認していなかった」という習慣の中にもあったのだと思います。
修正が終わったのは、午前1時を過ぎていました。テストを走らせて、ログを確認して、問題がないと確かめてから、デプロイを実行しました。
そのとき、通知音はしませんでした。誰かにリリースを知らせるわけでもなく、SNSに投稿するわけでもなく。画面の端にデプロイ完了のメッセージが出て、それで終わりです。しんとした部屋で、一人でその文字を見ていました。
翌日、処理完了率を確認しました。18%だったエラー率が、0%になっていました。数字としては大きな変化ですが、それを知っているのは今のところ、Lilyだけです。
リリースが誰にも気づかれなかったことを、最初は少し寂しく感じました。頑張ったのに、という気持ちが、正直なかったと言えば嘘になります。
でも少し経ってから、別のことを思いました。ユーザーが何も言ってこないのは、多くの場合「普通に動いている」からです。不満があれば声が届く。沈黙は、問題がないことのサインでもある。あの修正がなければ、誰かの作業は今も止まったままだったかもしれません。気づかれないまま機能することが、サービスとして正しい姿なのかもしれない、と思いました。
「誰かのアプリを守っている」という言い方は、少し大げさかもしれません。Lilyが作っているのは、大きなプロダクトではありません。使ってくれている人も、まだ多くはありません。
それでも、あの深夜の修正には「守る」という言葉が合う気がします。アップデートログには記録されない作業。リリースノートに書かれるほどでもない変更。でも誰かの使用体験を、静かに元の状態に戻す作業。そこには、個人開発特有の責任感があります。
チームがあれば誰かに報告します。でも個人開発では、問題を発見して、原因を特定して、修正して、リリースして、確認するまでのすべてを、一人でやります。派手さはありません。称えてくれる人もいません。でも、それをやり遂げたという感覚は、他のどんな作業にもないものがあります。
このエッセイを書こうと思ったのは、その深夜の作業のあとに、「誰かに話したい気持ち」があったからです。でも、すぐに話せる相手が思い浮かびませんでした。
技術的なことを話せる人はいます。でも「深夜にバグを直してひっそりとデプロイした、その静けさの中にあった何かを伝えたい」という話は、少し違います。同じように個人でサービスを作っている人なら、わかってくれるかもしれない。そう思って、書くことにしました。
誇りというのは、誰かに認められることで生まれるとは限らないと思います。自分が正しいと思うことをして、その結果が確認できたとき、静かに、でも確かに、何かが積み上がる感覚があります。Lilyにとって、あの深夜の修正はそういうものでした。
完璧なサービスを作れているわけではありません。今も、気づいていない問題がどこかにあるかもしれません。でも問題が起きたとき、ちゃんと向き合って、直す。それを続けることが、個人開発者としての誠実さだとLilyは思っています。
深夜のデプロイから数日が経ちました。あのユーザーから、また連絡がありました。「最近ちゃんと動いています」という短いメッセージです。
それだけです。でも、それで十分でした。
個人開発は、孤独な仕事です。誰も見ていない時間に作業して、誰も気づかない変更を出す。でもそのひとつひとつが、誰かの体験に小さく影響しています。その積み重ねが、サービスへの信頼になっていくのだと思います。
眠れない夜があっても、深夜に画面を開いてしまう夜があっても、それはたぶん、あなたがそのサービスのことを本気で考えているからです。誰も見ていなくても、こっそり更新を押す。そういう夜が、ちゃんとサービスを支えています。
今夜もどこかで、誰かが深夜に画面を開いているかもしれません。その静かな作業が、誰かの明日を少しだけよくしている。Lilyはそう信じながら、今日も続けていきます。
Lily(@bokuwalily)― 個人開発者。AIと二人三脚で、iOSアプリやWebサービスを作っています
🎁 最後まで読んでくれたあなたへ、無料の特典があります: LINEで「自動化」と送って受け取る(実装テンプレ7本)
Lily(@bokuwalily)― 個人開発者 / AI導入・業務自動化のコンサルタント。AIと二人三脚でiOSアプリやWebサービスを作りながら、企業のAI導入と自動化の相談を受けています
🖥️ 制作物・記事 → bokuwalily.com
🐙 OSS → github.com/bokuwalily
🌍 最新情報・お問い合わせ → X @bokuwalily