Years ago, I read a blog post about “The Awesome Curve” … It appears to have been lost in the sands of time that is the internet.
So, let me tell you about it. I’ll also diverge from the original and give my own 2¢.
Products are a fickle beast. Your users will leave you at the drop of a hat and take their wallets with them. Why? Because your product is usually water in a desert. Some products are the bottled water, and some products are the markets to sell bottled water.
Generally, most products tend to have the following lifetime:

The Hack
Almost every product I’ve ever seen starts it’s life as some kind of “hack job” or “proof of concept,” if you will. There’s usually no real world customers at this phase and things just kind of “exist” on the developer’s machines.
It’s important that the developers get this experience with the problems the product must solve and get their hands dirty.
Buggy as Hell
When a product first ships, it’s usually got some nasty little bugs hiding out. Some of the first customers are usually at the door and trying to use the software. These customers might be a closed beta group, or in-house “dogfooding”.
Awesome Sauce
The product takes off and makes considerable money/utilization. This is the place you want to stay forever… but, you can’t. It’s a fact.
Nope.
You served bottled water in a desert. People needed you to solve a problem, but now they aren’t thirsty anymore. They’re hungry, tired and want something that tastes better than water … or maybe, they just want their water to be more reliable. In other words, you solved the problem “just good enough”, but someone, somewhere, is solving it better than you.
Hacking The Awesome Curve
In order to hack it, we’ll need to hack it. Once we start approaching the top of the curve, we should start hacking a new product to replace the one that is just becoming awesome. It would look something like this:
That’s right, I’m suggesting starting your design over from scratch with all the things you’ve learned making a product awesome and what you’ve learned from your customers. It’s crazy talk … but look at Gmail. I mean, just look at it…



Meanwhile, they learned from their customers and reimagined email. People use email as a todo list of sorts. And thus, Inbox was born:
Windows has done similar things, with complete rewrites of the kernel once or twice.
Don’t Go Rewrite Everything
This isn’t a case for rewriting your software, this is a case for rethinking your software. What problems you were originally trying to solve may no longer be a “thirst” that your users have. You may have quenched it with version 1, and competitors are showing up with gatorade and hot dogs.
Throw everything out and reboot. Reuse what you can and start with a hack, just like you did for version 1…