Don’t Aim For Perfect: The Importance Of Iteration
Does the process above look familiar? If you’ve ever had a hand in developing and launching any sort of product or service, it more than likely does. Depending on the size and complexity of the project in question, this process can take weeks or months to cycle through fully, and in the most extreme cases, can take years. Think about that for a second… it can be months (or years!) from the point in time a decision has been made about the direction of a product or service, until the time it’s launched to the market. A lot can happen in that span. For one, the market — which has a tendency to change pretty quickly these days — may very well have shifted in the time you were off building your product. So even if the idea was great to begin with, and your execution in delivering it was flawless, you may have missed your opportunity by the time you actually launch it — either because someone else beat you to the punch or because the problem you originally set out to solve no longer exists.
And that’s all assuming that the idea was correct to begin with. Unfortunately, an all too common situation is that a company thinks they’ve come up with an idea to address a need in the market, sets out on the long journey of building and launching it, and only then finds out that the idea doesn’t resonate with customers. Maybe it’s because they misunderstood the need itself, or perhaps their execution on the idea simply didn’t make sense to the user, but in either case, the end result is a product or service with no viable market. That’s an expensive mistake to make when you consider the amount of time, effort and money that likely went into creating the solution over those long months or years.
To be fair, the desire to want to deliver a ‘perfect’ product to customers is entirely understandable. But the reality is that it’s virtually impossible to build the perfect solution right out of the gates, no matter how much research was done in advance, or how meticulous you were in the product development itself. Despite the best planning, you likely won’t know exactly what your customers want or need until they actually start using your product. Things you were certain they would love will be ignored, while seemingly small features will be the ones that they end up depending on most.
Given that so many of today’s product development methodologies were born out of processes designed around physical products, where quick iteration was not logistically or financially practical, it’s no surprise that many companies still default to a product life cycle that favors a substantial investment in up-front development. But of course, that’s not the world we live in anymore — new digital delivery models have paved the way for quick and continuous iteration. So by shifting the mindset from one of ‘perfection’ to one of iterative improvement, a company can dramatically increase it’s odds for success.
By quickly getting an early version of the product in the hands of your customers, you’ll be able to capitalize on the current market trends and you’ll get immediate feedback on what features your customers want and need. This allows you to prioritize future development efforts, and ensures your product can mature along with the market itself. So instead of the traditional development cycle outlined above, it can instead look something like this…
To be clear, I’m not suggesting you build and launch a product without first having validated the need for it, or having done some degree of user testing — I’ve spent plenty of time in the past talking about the crucial importance of both of those things. But all of that can be accomplished in a matter of weeks, if not days, meaning you can very quickly get to a point where you’re confident in the direction your team is heading.
The mantra of “failing fast” has become a bit of cliché these days, but for good reason. Better to fail fast and know in the near term whether or not you’re on the right track, then to fail slowly and only come to that realization much later on.