Show original
Enjoyed this article?
Use "Request tipping" to ask the author to set up tip receiving.

AI translation
7 Things I'm Glad I Didn't Do in Solo Development Last summer, Lily spent 9 months releasing a single app. "It's still not finished," "I want to polish it a bit more," "I can't stop worrying about this UI"—repeating excuses like these, I think what I was really afraid of was putting it out into the world. Being seen...
Enjoyed this article?
Use "Request tipping" to ask the author to set up tip receiving.
Last summer, Lily spent 9 months releasing a single app.
"It's not finished yet," "Let me polish it a bit more," "I can't stop worrying about this UI"—I kept making excuses like these, but I think the real reason was fear. Fear of putting it out into the world. Fear of being seen.
When I finally released it, the user response was honestly underwhelming. But that experience taught me so much. There's plenty of talk about what to do. But today, I want to talk about what not to do—the habits that drained my time and mental energy throughout my journey in personal development.
I was definitely doing this in the beginning.
"It's not ready to show yet," "Let me tidy it up a bit more," I'd think, continuing to build alone. Three months later, when I finally showed it to a friend, they immediately asked, "Do you really need this feature?"
That feature was the one I'd spent the most time on.
I think the problem with perfectionism is that it lets you avoid the fact that you might be pursuing perfection in the wrong direction. Showing it early gets you feedback like "this is off" or "this would be better." Perfectionism activates when you're afraid to receive that feedback.
Now I'm conscious about "shipping at an embarrassingly early stage." Even if it's still rough around the edges, iterating based on reactions is 100 times faster than polishing alone without showing anyone.
I once spent weeks trying to build "something vaguely useful."
When your target user is "someone vaguely busy" or "someone who uses their phone a lot," you're not actually helping anyone. Trying to cater to a vague imagined user causes features to keep piling up, and you lose sight of what the app is supposed to do.
When I decided "I'm building this for this specific person," the confusion finally disappeared.
When I started building something based on a friend's comment—"I'm struggling with this kind of thing"—I could decide on specifications without hesitation. I wasn't afraid to cut features. When you have a reason like "this person doesn't need it," decision-making becomes surprisingly simple.
Building without knowing who it's for is like walking without a map.
When I first started personal development, I was desperate to try new frameworks and tools. Choosing based on the motivation of "let's use that trendy thing" led to sparse documentation and getting stuck when hitting bugs with no information available.
The worst was when I used a beta-version library for the core part of the app. The API changed in a breaking way midway through, and weeks of work went to waste.
In other words, I was getting satisfied with the technology selection itself. There was definitely a part of me that was intoxicated by "myself using interesting technology."
My current standard is "use something boring enough to be mature, with plenty of information available." I explore new technologies as a hobby, but I don't use them in products I want to release. Technology is just a means—a tool for what I want to build.
I've had the experience of starting to "look for similar services" and realizing 4 hours had passed. Multiple times.
Competitive research itself isn't bad. But the more I researched, the more I'd think "it already exists," "they have more features," "their design is completely different," and my motivation to build would drain away.
What's really scary is that research makes your own idea "look faded."
"This idea is already being done by someone"—but thinking about it, that's obvious. The existence of a competing service also means there's demand for that problem. My reason for wanting to build it, my own perspective, my understanding of my users. I found it much more constructive to focus on those things.
Once I decided to "research competitors for only 30 minutes," I was able to move forward.
"This would be convenient too," "Maybe I need that feature," "I should add notifications"—there was a time when I tried to include everything in the first version.
As a result, I couldn't release for months.
The number of features and user satisfaction don't correlate. Rather, the more unused features pile up, the more your truly important features get buried. What users initially want is often just something simple that solves one problem.
Now I ask myself: "If this was the only feature, would there still be people who'd use it?" If the answer is yes, I release in that minimal state first. Features I want to add are considered after release, when they're actually requested.
Cutting features isn't compromise—it's prioritization. Once I realized that, the barrier to release dropped significantly.
There was a time when I pursued design perfection despite not being good at design.
I'd try dozens of color combinations, swap fonts around, and get bothered by a single pixel's misalignment. Before I knew it, I'd spent the whole day on design.
I think the problem was that I was pouring resources into something I couldn't control. Design sense doesn't develop overnight. Yet I was trying to compete on design.
Now I set "simple and clean" as the minimum bar and focus on functionality and copy. I've lost my resistance to using existing UI components as-is. For personal development, design should be "unobtrusive"—that's about right.
Personal development is solitary work. Especially when you hit a wall.
I once spent 5 hours stuck on "why won't this work," nearly giving up. The next day, I sent a message to a friend: "I'm stuck on this kind of problem." They gave me the solution in 10 minutes.
It's not just stuck problems. Just talking about "I'm building this" gets you unexpected feedback. Sometimes people say "I want that." When building itself becomes painful, talking to someone can help you keep going.
I thought "they might not understand," so I stayed quiet, but people are surprisingly interested in listening. Since I started showing up at personal developer communities, the loneliness has eased considerably.
Just talking to someone—that alone can help you keep going.
Looking back, almost everything I'm glad I didn't do was either "trying to make it perfect" or "being too scared to move."
Not making something perfect before moving, but moving while approaching perfection. Once I got into that cycle, personal development finally became fun.
Even now, I sometimes want to include everything, want to polish without showing anyone. When that side of me shows up, I try to notice: "Ah, I'm getting scared again."
If someone reads this article and thinks "that's so relatable," I'd be happy. Let's move forward together, little by little.
Lily (@bokuwalily)— Personal developer. Building iOS apps and web services in tandem with AI.
去年の夏、Lilyはひとつのアプリをリリースするのに9ヶ月かけた。
「まだ完成していない」「もう少しだけ磨いてから」「ここのUIがどうしても気になる」——そういう言い訳を繰り返しながら、本当は怖かったのだと思う。世に出すことが。見られることが。
公開したときのユーザー反応は正直、あんまりだった。でも、その経験で気づいたことがたくさんあった。やることの話はたくさんある。でも、今日はやらなくてよかったことを話したい。個人開発を続けてきた中で、時間と精神力を削った習慣たちの話。
最初のころは絶対にこれをやっていた。
「まだ見せられる状態じゃない」「もう少し整えてから」と思いながら、ひとりで作り続ける。3ヶ月後に「よし、見てもらおう」と差し出したら、友人に開口一番「この機能って必要なの?」と言われてしまった。
その機能、一番時間かけて作ったやつだった。
完璧主義の問題は、完璧を目指す方向が間違っているかもしれない、という事実から目を背けさせてくれることだと思う。早く見せると「ここが違う」「こっちのほうがいい」というフィードバックをもらえる。完璧主義は、そのフィードバックを受け取るのが怖いときに発動する。
今は「恥ずかしいくらいのタイミングで出す」を意識している。まだちょっと荒削りでも、反応を見ながら育てるほうが、誰にも見せないまま磨き続けるより100倍早い。
「なんとなく便利そうなもの」を作ろうとして、何週間も溶かしたことがある。
ターゲットが「なんとなく忙しい人」だったり「スマホをよく使う人」だったりする段階では、実際には誰のためにもなっていない。漠然とした想定ユーザーに合わせようとすると、機能が増え続けて、何がしたいアプリなのかわからなくなる。
「この人のためだけに作る」と決めたとき、初めて迷いが消えた。
知り合いのフリーランサーが「こういうの困ってる」と言った言葉から作り始めたものは、迷いなく仕様が決められた。機能を削ることも怖くなかった。「この人にはいらないから」という理由があると、意思決定が驚くほどシンプルになる。
誰のためかわからないまま作り続けることは、地図なしで歩き続けることに似ている。
個人開発を始めたころ、新しいフレームワークやツールを試したくて仕方なかった。「最近話題のアレを使おう」という動機で選ぶと、ドキュメントが少なかったり、バグを踏んだときに情報がなくて詰まったりした。
一番やらかしたのは、アプリの核心部分に当時まだベータ版のライブラリを使ったとき。途中でAPIが破壊的に変わって、数週間の作業が無駄になった。
つまり、技術の選定で満足してしまっていた。「面白い技術を使ってる自分」に酔っていた部分が確実にある。
今の基準は「つまらないくらい枯れていて、情報が多いものを使う」。新しい技術は趣味として触るけど、リリースしたいプロダクトには使わない。技術はあくまで手段で、作りたいもののための道具にすぎない。
「似たようなサービスを探してみよう」と思って調べ始めたら、気づいたら4時間経っていた経験が何度もある。
競合調査そのものは悪くない。でも、調べれば調べるほど「もうあるんだな」「向こうは機能が多い」「デザインが全然違う」と思い始めて、作る気が削がれていく。
本当に怖いのは、調査によって自分のアイデアが「色あせて見えてくる」ことだ。
「このアイデアはもう誰かがやってる」——でも、よく考えると当たり前のことで、既存サービスがあるということはその課題に需要があるということでもある。自分が作りたい理由、自分なりの視点、自分のユーザーへの解像度。そこに集中したほうがずっと建設的だった。
競合は「30分だけ調べる」と決めてから、前に進めるようになった。
「これもあると便利」「あの機能も必要かも」「通知機能も入れたい」——全部を最初のバージョンに入れようとしていた時期がある。
結果、何ヶ月経ってもリリースできなかった。
機能の数と、ユーザーの満足度は比例しない。むしろ、使われない機能が増えるほど、本当に大切な機能が埋もれていく。ユーザーが最初に求めているのは、たったひとつの問題を解決してくれるシンプルなものだったりする。
今は「もしこれしか機能がなかったとして、それでも使ってくれる人がいるか?」を問いかけるようにしている。答えがYESなら、その最小限の状態でまず出す。追加したい機能は、リリース後に本当に求められてから考える。
機能を削ることは、妥協じゃなくて優先順位をつけることだと気づいてから、リリースのハードルがぐっと下がった。
デザインが得意じゃないのに、デザインで完璧を目指そうとしていた時期があった。
色の組み合わせを何十パターンも試して、フォントをとっかえひっかえして、1ピクセルのズレが気になって。気づいたら一日デザインに費やしていた。
問題なのは、自分がコントロールできないものにリソースを注ぎすぎていたことだと思う。デザインのセンスは一朝一夕で身につかない。それなのに、デザインで勝負しようとしていた。
今は「シンプルで清潔感がある」を最低ラインにして、あとは機能と文章に集中している。既成のUIコンポーネントをそのまま使うことに抵抗がなくなった。個人開発のデザインは「邪魔をしない」くらいでちょうどいい。
個人開発は孤独な作業だ。特に、壁にぶつかったとき。
「なんでこれが動かないんだろう」と5時間悩んで、諦めかけたことがある。翌日、友人にLINEで「こういう問題で詰まってる」と送ったら、10分で解決策を教えてもらえた。
詰まった問題だけじゃない。「こういうものを作ってる」と話すだけで、思わぬフィードバックをもらえることがある。「それ欲しい」と言ってもらえることもある。作ること自体が苦しくなったとき、誰かに話すと続けられることもある。
「話してもわかってもらえないかも」と思って黙っていたけど、意外とみんな興味を持って聞いてくれる。個人開発者のコミュニティに顔を出し始めてから、孤独感がかなりやわらいだ。
誰かに話すこと、それだけで続けられることがある。
振り返ると、やらなくてよかったことのほとんどは「完璧にしようとしていた」か「怖くて手が止まっていた」かのどちらかだった。
完璧なものを作ってから動く、ではなく、動きながら完璧に近づける。そういうサイクルに乗れたとき、初めて個人開発が楽しくなった。
今でも時々、全部入れたくなるし、誰にも見せないまま磨きたくなる。そういう自分が顔を出してきたら、「あ、また怖くなってるな」と気づくようにしている。
誰かのこの記事が「あるある」と思えるものだったら嬉しい。一緒に、ちょっとずつ前に進みましょう。
Lily(@bokuwalily)― 個人開発者。AIと二人三脚で、iOSアプリやWebサービスを作っています