Ask HN: How do I deal with not being able to build products
However, in the past 10 years, I haven't build a single product that was shippable, I've had plenty of ideas, many that I just didn't execute because I often overthink things.
My usual flow goes something like: 1. Come up with an idea for a product, and be really excited about it 2. Do some basic research and start planning 3. Start development 4. Quickly obsess over every tiny UI detail 5. Start second guessing the product 6. Find an existing product that's closely related 7. Give up
I've had ideas written down for years, only to see someone else build it, and be reasonably successful.
It's not that I'm a bad developer, I've shipped many products while working for different companies. It seems to be that when I'm on my own, I just can't seem to do it. I feel like I've wasted 10 years messing around, and it's really bringing me down.
Has anyone else been in a similar situation, how did you deal with it?
51 comments
[ 3.9 ms ] story [ 85.4 ms ] thread2. Find a pain point in an area you understand or have experience etc, then talk to people about if it is something worth solving for them before you ever build something. Don't build until you have multiple people say it is worth it and ask when they can have it/demo it pay for it etc.
3. Build the simple version, one that is almost embarrassing in simplicity but is reliable and not bug ridden. The simple version must solve a key pain point and then get it in one or more client(s) hands for testing and refinement.
4. Keep refining 1 thing in the product at a time. Listen to clients but do not chase features only. Chasing features is a sure way to die by a thousand cuts, be selective on features that solve the need and which a client is actually paying for or using. I've had lots of customers say we need this feature or we can't buy, then you do it and they either still don't buy or never use the feature and drop you in 3 months. Be weary of this.
5. Stop second guessing so much. We all have doubt but the reason so many young people succeed early on in getting a product out is they don't have combined experiences telling them all the stuff that shouldn't work. As we age we see all the failures of the past and can let it cloud our drive and vision, you need to actively ignore this at some level but not stupidly so. At the same time the most successful founders are usually a little older who took that youthful inquisitiveness/naiveté forward but with life lessons on how not to shoot themselves in the foot.
From what I've seen people very rarely recognize problems they have that have potential software solutions. If this weren't the case why aren't there websites where people are posting problems they need solved and HN posts titled "Please solve this..." ?
I have a friend who runs an SME and some time ago I sent him an email with some very general ideas about categories of problems I might be able to help him solve. I never got a response to that email (though I continue to be in contact with him on other subjects).
It isn't that you can't guess a product and sell it, the chances just get lower and lower unless it is a pain point you know affects people willing to pay for it. Or you have significant R&D funds and you can spend them to iterate to a solution.
I've got a notebook I keep of issues/ideas I hear people complain/talk about and I explore topics with people when I can to see what might be interesting & real. I have tons of ideas in there, likely 90% (or more) would be fun to build but be worthless as a business or even a side project (at least right now). That's why talking to people is so critical.
If you have a good idea take it to potential clients and try to sell it, if they bite then you potentially have something, but do that before you build a whole system.
The reason why I say this too is I've tried to start a side project based on something I thought was important and it was depressing when no one saw what I saw (outside of friends who gave friend type validation) and then that killed my interest. But instead when you go to 20 businesses and 10-15 say yes that would be good and it is worth $XXX to me each day/week/month/quarter or whatever then you have motivation to keep working it. Getting some form of validation is motivating to most people, so it helps keep you moving even when things aren't going great.
How exactly is emailing/texting/phoning different from "talking to people" ?
This question seems particularly significant in the covid era when opportunities for face to face contact are a bit limited. Also, as for me personally, I have a major mobility related disability so getting around much in physical space is now very difficult.
> One thing you can do, and I used, was I was consulting as a way to identify problems in spaces I was active in and had knowledge around.
Yes, I've always suspected that getting good ideas about a problem domain usually requires you to actually be doing some kind of work in that field.
> I have tons of ideas in there, likely 90% (or more) would be fun to build but be worthless as a business or even a side project (at least right now). That's why talking to people is so critical.
What is it that makes 90% of the ideas worthless ? Is it just too small a market, not impactful enough to the bottom line, or do you have other criteria for making that call ?
I do think with Covid using video has become so much more natural you could use that and keep peoples focus better. But for me I always found that you are the least important person they are talking to until you show them you are worth talking to. Sounds harsh but sales sucks for that, and pre-sales exploration (e.g. business dev) can be even harder at first. So a lot of times being in person is the best way I've found, maybe others have found other ways. FWIW, I've used all kinds of ways to get peoples attention as well, buying them lunch, sending lunch to their team in exchange for an hour of their time etc. I've found if you give them something people feel more obligated to give you their dedicated time, so it can help, and if you have mobility restrictions it might be worth experimenting here.
As for most of the ideas, most boil down to who the clients would be, what the cost to develop is, what they would be willing to pay and how much support and on-going maintenance it would take to make it profitable. Some combination of those is the root cause most stay as an idea until there is some situation that can show a path forward. One of my personal biggest mistakes I had to overcome was I would create a product and not consider the training, maintenance and support costs early on. To a certain point that is ok, especially if you have funding, but if bootstrapped it can be a much larger factor in your plan (especially if you dislike doing support). With scale/funding you can bring those costs in line pretty quick as you grow but if you are bootstrapped it can be much harder.
Programming is the same. It's the doorway to lots of different hobbies and careers, but most people have no clue exactly how many doors it opens. They grossly overestimate the easy part of building software (writing code) and undervalue domain expertise. In other words, it would be easier for a lawyer to learn to build software than for a software dev to study law.
How to find this out:
- Pay attention in everyday life to what people say about products they use
- Read the comments on Facebook ads for products
- Read reviews
- Join Facebook groups and forums for specific niches that interest you, see what people are struggling to achieve with existing tools
I also agree that it is sometimes easier/better to improve on something that is already in the market that has proven need but just isn't hitting the mark totally. Though this can be hard cause sometimes there are really valid reasons it isn't hitting the mark and moving people off a platform can be hard even if it is flawed. Also another challenge here is you may have to hit feature parity before people are willing to try your new solution, which can take a lot more time and effort, but not always.
Why do you want to do a full-time job PLUS a side project?
What kind of life is that? You would work most of your waking hours. That is not the kind of possible future that motivates one to push through.
When it comes to the product, this is very much true. I second guess all my ideas, even the ones that other people have build successfully.
Your subconscious mind is not motivated by the product.
Tens of thousands of great products are created each year. Your subconscious mind does not care if there is one more or not.
It is motivated by how good of a life you will have.
If it imagines "more sitting in front of a computer and typing into a keyboard" it will not get excited.
I'm not scared of doing the work, or putting in the hours.
Maybe the fear isn't in doing the work, but in doing the work and still failing?
Also, all the stuff everyone else said. Get customers first. Build the MVP not the final draft of the product, etc.
A couple other things that I do is to sit on an idea for at least a month before I start building. A lot of times I run out of energy for an idea before I even start (this helps filter out the ideas that I don't really want to work on). And I also really like to pick projects that I think I can create an MVP in less than 2 weeks. If it takes 6 months to build an MVP, then I am far more likely to run out of energy and question if this is really want I want to be working on.
Just thinking about it right now, I've been setting on an idea for nearly two years, and I'm honestly still very excited about it. I've tried to build and MVP for it, but after about a week I went through the same cycle again. That was nearly 6 months ago, and nearly every day I think about this idea, and it still excites me.
I've seen multiple people build the same product, and they're all doing well, and I honestly believe I can pull this of in the city that I'm in. (It's more of a localized product)
1. Find someone with whom you can share your goal/passion. It does not have to be a business partner right away. You will find a lot of communities on the web for people working on your project, for small start-up businesses, etc. Maybe it will give you some motivation.
2. Accept that there are tons of similar products globally, and some will be successful and some will not. Besides, even if a product on the market is similar to yours, it doesn't mean that you can't beat it.
3. Remember that the process of creating a product, introducing it to the market, and further development is complex and often takes a long time to get the results you want. Don't give up in the early stages!
4. Learn. Observe how creating products and introducing them to the market looks like for others. See what they fail to do and learn what they are doing right. It is also worth establishing closer contact with such people. You can get valuable advice from them (you may even find that some of them have had similar problems to yours).
Then, find a semi-technical "business accountability person" (could be a CEO) that has a vested interest in keeping you on track.
Sure it's a balance of "keeping it loosey goosey and fun" and "wow this just feels like another JIRA tracked corporate project" when you get non-technical people involved, but that balance can be half the fun.
Also, you don't have to come up with the idea yourself necessarily. There are hundreds of non-technical founders vying for technical cofounders with 10 years of experience.
My one actionable piece of advice: do more hackathons (especially Web3 ones)
I'm just now about to launch my first self-made production project after four years, and it wouldn't have happened if I hadn't had a kind of accountability partner.
I met my business partner in a Chainlink Hackathon last year. We were working on the same thing, I liked his team, so we fused. He's kept me on track ever since as we enter seed financing, and I like to think I've perhaps kept the technicals on track as CTO.
I think you might actually be right about that, now that I think about it...
My experience was something like this: I had a small niche website while having a job. This website was making less than $50/mo from ads. When I quit my job to start an online business, I wanted to make something new, a community. But I had no experience with that type of website. Not only did I spend a lot of time (12 months) building the "product", but I also had no idea how to market it and no idea how to make money from it. Eventually, I started making small websites again, similar to the one I already had. I used the same platform, so a new "product" was ready in less than 3 months, sometimes less than a month. Surprisingly, at least to me, these small websites grew bigger and bigger, so they have become my source of income.
After all of this, the lesson for me was to stick to what works and what I can do.
Regarding point 6, I also have that problem, so I try to see if I can offer something more, different or if I can remix it. If not, I move on. I don't find it satisfactory to just clone an existing product.
As was mentioned above I think building something you can use yourself daily (or regularly) helps. When I my side project that’s where o get excited about continuing to develop it.
And as you mentioned in your post I’d recommend not “obsess[ing] over every UI” detail. Might be a good idea to just make it ugly/imperfect for V1 intentionally?
Really just try to add the basic functionality MVP style. And since you’re using it regularly you will find little features you really think are necessary or bugs throughout the day to add to your list of things to do on your next planned programming session.
And I’d recommend picking only one side project and sticking to it, only one is important so you see more progress quicker and sticking to it is important because sometimes you just need to keep doing it to finish v1. Then you’ll have that as a milestone.
Ideas are exciting, especially in the beginning. When you decide to work on a product, you are giving up on an endless amount of new (read: temporarily more exciting) ideas that come up to you as a creative person. This is a tough choice to be made, have you made this choice?
What does success look like to you? Is it the ability to work on what you like? If so, any kind of commitment to work on one product is going to be a difficult.
Also, you mentioned second guessing due to competition. You may notice that in any field there are many products which seem, like you said, "closely related". Thats because they only look similar from the outside. In reality they have something different about each of them, something significant enough for their makers and for the market. For example, they may be focusing on different aspect of the same problem or may be targeted at a different stakeholder or reach the same customers in a different way. Learning to find this differentiation in existing products might help you see more clearly where your product is unique.
When you shipped things at companies... maybe half the time you were actually excited and half the time you figured if you don't work you'll get fired. So there is a system in place to keep you working even when you aren't especially motivated.
So what are some systems or tricks you can put in place? A person to work with helps. Working on something really tiny and just getting it out there helps build momentum. What other things have worked in your life to get you moving? Setting a specific time every day to work for 30 minutes might help.
To repeat - it's not a you thing, it's a general problem. Figure tricks and systems to help you.
I have 3 side projects that are on limbo. One of them is stuck because I am feeling technically challenged. Another one depends on the completion of the third project. Third project is stuck because I think I should finish the first project entirely then move to this project.
But here is what I am doing and get this, I built another project over couple of weekends that is 99% finish. Why did I do that? Simple answer is that I wanted to get my sideproject-building-juices flowing. I wanted to see if I had the ability to build something from scratch and ship it out FULLY FINISHED.
The scope was brutally limited and that meant that I couldn't simply add features to it. I intentionally choose solutions that I knew can never be scalable and extensible. And I also promised myself I won't spend a dime on it and I won't expect anything beyond upvotes in a Show HN post.
So what I built? A opinionated news link aggregator. There is no way it could scalable, marketable or profitable. The goal is getting a bookmark and 3+ upvotes. Period. I am more proud of the development story of the story rather than the project itself. (I am unironically using Google Sheets for my backend).
TLDR: Build a something that can be shipped in under 3 days.
- CSS: Using classless minimalist framework>> Tuft.css
- DB/CMS: Google Sheets. I unironically use Google Sheets as CMS. Tons of reasons. Deserves it's own standalone comment.
- Helper APIs: Reddit, Google Spreadsheet. Super easy to understand.
- Two python programs to generate JSON files. JSON > Static HTML Files created with a Template Engine, Jinja 2 (Not frameworks). Static files are uploaded to github > hosted on netlify.
- Goatcounter, a minimalist web analytics platform.
- Todo: Python scripts will be transferred to RPI on a cronjob, Goatcounter click events need to be added, need to work on the about me section, remove unused CSS.
-----
Now, the site doesn't look that good. 95% of the job was done using Python which I just enjoy writing. The project balances barebones of web development vs writability of code. Using a template engine as supposed to a framework, this approach should be more popular. Google Sheets is extremely dynamic solution as a CMS, nobody can mess it up.
The tools I have chose virtually limits my scope. I can't help but being preachy about this, I enjoyed my time doing this so much.
https://medium.com/swlh/5-reasons-your-side-project-never-be...
I got over it by religiously plotting out the final steps to release, and then ticking them off 1 by 1. I find it useful to give myself an "official release date" and then trim features off the list so that I can meet that date.
You need discipline to do this, and you need to be able to look at your app or whatever it is critically, with a user who is not you in mind. You don't need to be in this frame of mind all the time, just in those final weeks as you prepare to go live.
The final weeks can be boring to a degree, but as you tick all those dull tasks off the list and near the finish it can get exiting and build up a very real sense of achievement.
Of course, none of the above determines whether your app will be successful or not. That's a whole different thing. But if you never release, it absolutely, 100%, will not be successful.
On a side-note, even though you don't mention having analysis paralysis at your step 3 & 4, something that held me back during pre-development was always trying to decide which language to use and which libraries/frameworks to go for. I've heard this from my peers as well, so I thought I'd mention that as well.
My solution to this problem is to treat the language and tools I'm most familiar with as if they are the only ones that exist in the universe. I learned this from retro game hackathons that apply artificial limits on color palette, sprites, available memory size etc. For some reason, I'm much more creative when a set of these decisions are already made, in this case by my past-self.
When I want to just play, learn, experiment with things I can choose whatever I want. But when it's building a product by myself, then I always apply plenty of artificial limitations from day 0.
In the past, I have tried a lot of silly ideas. Recently, I shipped a web app but marketing scares me so I currently have 1 user other than myself. Here are my unsolicited tips that a younger self would have found useful:
- Stick with building software, since that's something I am good at. Not e-commerce, podcasting or becoming a Youtuber.
- Build something that fixes a problem that you yourself have. At the very least, you have one customer after you ship.
- Build small bits of features every day or at a semi-regular interval at your choosing. I did this and was amazed at the progress made after 1-2 months.
- Keep the infrastructure simple in the beginning. For example, rather than paying $x/mo for an email with my custom domain, I use an email alias such as forwardemail.net or simplelogin.io. Use as many services with generous free tiers as possible.
- Stop worrying about similar products out there until after you ship yours. I personally have stopped trying to look for similar products (or tune them out when I see one) and focus on my own instead.
I'll plug an idea if I may - I have been thinking about starting a chat group with other developers working on side projects. I myself am a solo dev looking for support (while also working a full-time day job). If this is something that you or others in this thread are interested, please let me know. My contact info is in my profile. I have tried searching on hn for such support groups without much success; there have been interest in the past but they are many years ago.
This is my thread https://news.ycombinator.com/item?id=25911355
I launched it very early with lot of "hacky" feature(and still nowsadays).
Few thing to help you shipped:
- Choose something you are super and very familiar. This is your product, not your play ground to experiment - Have your friend use it from day one. It forces you to roll up your sleeve and fix bugs - Weekly sync
If you want, hit me up at vinh@mailwip.com and I can do a weekly sync 15mins with you.
I think you are asking the wrong question. From where I sit you have a discipline and consistency problem. Not a “I can’t build a product” problem.
Building anything in life takes time and patience. The reason you never finish anything is you don’t have those traits developed.
For all these years, what you have done is played with technology and learned new things. You didn’t actually try to build a product.
While the first is very valuable, it’s completely different than the second.