Hello there. I’m Nikolay the Russian guy, and today I will tell you yet another story.
About seven years ago, when I was already a seasoned software developer, yet still just a software developer, a friend of a friend came to me with a brilliant product idea. Yes, let’s name him exactly like this: the «idea guy». He knew exactly what he had to do — and it would bring him lots and lots of money. Heck, if i owned just 5% of the business, it would bring me lots and lots of money. That’s how cool it was at the moment.
Alas, while the guy looked like he knew everything about the market — he clearly didn’t know shit about software development. So he asked his friend who was a so-so developer, and his friend said «no, I cannot do it — but I know a person who can». That’s how we met.
So we talked a bit, and I explained what and how exactly has to be implemented just to make the product up and running. Some first version, right. Just 3 to 4 months of intensive development. Naturally, the «idea guy» was generous enough to offer me a portion of his future business, which I respectfully declined. After all, I didn’t know shit about market at these days, just software development. So we agreed that I take care about the implementation, and he takes care about funding it with money from his ongoing business.
So I found a couple other guys, and we started to develop version one. Then at some point the «idea guy» came to me with a brilliant way to improve the future product. He was very anxious about it, and insisted that the new feature is essential for the business success. No competitor had it at that time, so it would blow the market over. And I … accepted.
I mean — yes, now I know that it was a fundamental mistake for any software development. Especially so for a software product development. You either get to the market as fast as humanly possible — or die in a series of constant improvements. And that was exactly what happened in the end.
New feature after new feature, improvement after improvement, redesigh upon redesign. Additional functionality, change of functionality. Additional logic, reworking of logic. After 1.5 years — yes, that’s right, a fucking year and a half — of neverending development I finally came to realization that it will indeed never end. Yeah, that was kinda slow, I know. Looking back, I seriously don’t understand how could I be so slow and stupid.
Anyhow, following the code of brutal honesty, I shared my concerns with the «idea guy», which he happily rebounced. «Don’t worry, we will get to the market when we’re ready — and when we do, we will tear it apart. We cannot tear it apart unless we’re ready, right?»
Well, I bet you already know what was torn apart in the end.
One more year have passed in constant argument, which never came to a conclusion. The product was never released, the competitors took the market by it’s balls, the need for a new product became negligible. There was no more sense in development, so everything stopped. And until this very day I feel deeply ashamed of this very important experience I had. On a good side of things, the «get to the market fast» thesis is burnt into the flesh of my heart.
So, can you follow Blizzard and release products based on their famous «it’s done when it’s done» policy? Sure, you can.
If you wish your new product to be a deadborn.