There are a lot of tools I built throughout the years and it was very hard to watch them die (or get neglected). I once posted a new project on reddit and received a lot of good feedback. The comments that gave me most hope were the ones that said: If you add X and Y features I will definitely pay for it.
I made a compilation of those comments with X, Y, Z and A, B, C features and went back to the drawing board. With blood, sweat and tears I built every single one of them. My product was now ready. I posted back the link on reddit and didn't receive a single vote. Maybe it was just bad timing. So I waited in the morning, same time I posted the first version, and posted it again. Not a single vote, and I wasn't even caught in the Spam filter. Starting to feel desperate, I went back to send messages to those who asked for these features in the first place. None of them responded yet they were still very active on reddit. What happened? I built just what they asked for and they disappeared.
There is one more thing that I should have done but instead I told myself, if these people gave me good feedback in the first place, then there must be someone else that will think the same when exposed to my product. The project was up for a month and there was nothing but tumbleweed on the website.
So this is when I finally started doing the right thing:
Use the damn product.
There is nothing like eating your own dog food and sometimes it taste like shit. It turns out the tool was actually awful. It failed a lot. It had lots of bugs and wasn't that useful after all. It took using it as a customer to see it for what it really was.
It was the cold hard truth but I realized that I make shitty softwares with bugs. Here is the catch: Everyone does it. It's not just the little guy. Go check Microsoft (internet explorer), Apple (Maps), Google (buzz,wave), Yahoo (search), Most banks website, healthcare.gov just to name a few.
The problem is not whether your product is shitty or not; it is. What matters is that you know it and that you try to make it better. Nowadays when I am excited about a new tool, I still build it and make it publicly available. But I build it for myself and start using it. If it is useful to me first then maybe it can be of use to someone else.
So take that product that you are building. Yes the one you call your baby. I'm sorry to tell you but it sucks. But you can always try to make it better.
We don't know what the rest of the world need. We can always do a research and try to narrow it down as much as possible. However this is a difficult task and people's need change all the time. How about you solve a real problem you have. You can be your own first customer. Don't tackle a problem just because you think there is money in it. Have you ever heard someone who pretends to be a sports fan talk about sports? You just can't fake it.
Don't build something you don't care about. Eventually you will stop working on it because you don't care about it.
What you need is a software tester. We help you find bugs early on in the process so you don't have to spend a lot of blood, sweat and tearsin to a product that no one wants to use because it's buggy and unwanted. We can even help you make decisions to implement or not implement features.
I'm not sure you really understand "I make shitty software with bugs ... we all do" if you're only pointing to examples (MS IE, Apple Maps, etc.) that got skewered in the tech press for being among the worst.
The point is not that every company has at least one shitty program. The point is that all software is shitty. The pride and joy of Microsoft, Apple, Google, etc., are all shitty. I drive an old beat-up VW but in 10 years it has never failed to start when I turn the key. I use Google every day, too, and it's given me an error page this month. It's completely misinterpreted what I typed today. The best commercial software in the world today is still shittier than an average 20th century car.
@Gary the reason I provided this list is because these are big companies. It's to show that even the big ones still follow the rule.
Ibrahim, for all you know you just didn't get picked up by an outlet somewhere. A lot of the time press coverage is the difference between one project over another. Take Rejaw. This was a competitor to Twitter that was feature and code mature to Twitter. Jaiku was another competitor that had features and reliability that surpassed Twitter. Yet Twitter was the one getting all the press and everywhere that Twitter couldn't compete, bloggers were saying how this was an opportunity for the community to participate with Twitter and somehow having poor code was written as a positive. Once its competitors were summarily defeated Twitter kindly put the dev community on a leash and ultimately added picture and video which the other two had long before Twitter. Go figure.
What matters is that you learned from the experience. The other thing is sometimes people see cool stuff but if they don't actually need it in the moment, they're not necessarily going to buy it. This is why its good policy to be secure in your need for what you code because like art, it can take a while.
Hi Micheal, Thank you for your valuable input.
Although the title of this post sounds a little defeatist my intentions are quiet the contrary. It's OK for software to be shitty; it is its natural state. Just like you mentioned Twitter was by no mean the best. I remember those where the blue whale was something you would see everyday multiple times a day. But it didn't sink twitter down. Because the developers kept making incremental updates here and there it is more stable today.
It's not to say that they are at the end of the journey, but I am sure just a year from now the developers will still look at it and wonder how it was even possible for this code to be on production.
Let's hear your thoughts