A couple of years back my friend and I had a brilliant idea: we were going to make it easier to order food online. Our initial premise lay mainly in the idea that you could pre-order food online and then go to pick it up and skip the queue. All you had to do was show a QR code at the counter to prove that the order was yours and you could pick it up. It was, and still is, a nifty idea. I coded on the solution for not too long, certainly not longer than two months if I recall correctly. When I had the technical prototype finished, I left it with my friend, who had the intention of contacting some of the local businesses to see if they would like to try it out. This, due to too much disinterest on both our parts, never happened.
A couple of weeks later, at those same local shops we were intending to target, suddenly there were stickers of a new online food ordering website called Just-eat. They had just launched as well and were a couple of months ahead of us. Their website, offering online menus for local shops, was very similar to ours in idea. There were differences in idea, in that we were targeting people who would pick up their food, whereas they went for the delivery market. I'd say that technically, our idea was superior in that it offered better order validation (and the web applet QR code reader tech is still something I've never seen anywhere else). But none of that is of any importance compared to being the first to market.
In retrospect though, and this is really the thing I want to highlight, not all was lost had we not given up at that point. Sure, our competition had a headstart, but we just saw that as validation that our idea "would have been" good and forgot about it, when what we should have done is realize that our idea is good and continue working on it, trying to grab a piece of the market. I saw 'we', but I really mean myself. It's the responsibility of anyone doing a startup to ignore other people and do what he himself thinks is right, kicking reason to the curb and believing in the impossible.
I do not have a sense for marketing. Every once in a while I force myself to venture out in the area of marketing and explore around a bit, but I always find myself out of my element and quickly go back to my technical treehouse. I wouldn't say that I am incapable of doing marketing, it's just that if I could choose what I would want to do in the future, marketing would not be on my list. I think it's mostly because of this that I have trouble recognizing which ideas to stick to, and which ideas to drop.
When in doubt, fall back on something you know. Something you're enthusiastic about. I've asked myself this question in many forms. At my current job at Potato, if I could do anything I wanted on my current project, what would I improve? Given any programming project without restrictions, what kind of project, what kind of software would I choose write? The first question is the easiest because it's the most narrowly defined. I would work on improving the quality of our code by refactoring it, re-architecturing it, and providing regular code and performance metrics to our team. That seems to be something that I genuinely enjoy doing. I love working with databases and big data, and twisting the code so I get exactly what I want out of it.
Since I've got my professional pleasures fairly well-defined on the small scale, perhaps it would be interesting to scale these ideas up a little. I think it's fundamentally a bad idea for me to work on something that I do not enjoy doing for a long time. I work best when focusing on a core product.
Startup people always say that getting an idea is the easy part; execution is what matters most. For me it's the exact opposite. I've pretty much managed to successfully execute every single idea I tried (at least technically), but I've never truly believed in an idea enough to commit myself to it fully. Despite that, I do believe I will find one. The one true idea is out there for me, and I will find it. Eventually.