When the French author Paul Valery said “A poem is never finished, only abandoned”. He could have been talking about any creative process. It’s a sentiment that still rings true today for app and game developers. The desire to perfect the software goes head-to-head with practical business concerns.
In the end, no project is ever bug-free when it ships, and the days of clearly marked finish lines are long gone, as developers continue to support software and add features well beyond the original release date. There are definite advantages to releasing early, but there’s a great deal of risk as well. The decision about when to ship is a thorny one.
The benefits of launching early
If you’re going to fail then it’s better to do it sooner, that way you’ve wasted less resources. This may not sound like a benefit, but if you continue to pour time, money, and effort into something that’s fundamentally flawed you’re going to be in for a horrible awakening when you do finally release it. Get the feedback you need early and there might be time to change direction, or just scrap it and start afresh.
Assuming it’s not a flop, the feedback you get will help guide the production. It will help you to focus on exactly what’s needed to meet people’s expectations. You’ll get a new perspective on the whole thing from your target audience, and that’s potentially the information you need to create something successful. You may also find that your customers are not who you thought they’d be.
It will motivate your team. When they develop in isolation there isn’t the same pressure. They can’t afford to leave a major bug in a live product. They have to go the extra mile as users hold them to a higher standard. Listening to user complaints about the bugs that annoy them most is like a form of triage for your development efforts.
Ultimately, and perhaps most importantly, you will be faster to market. This could mean the chance to build brand awareness before a competitor jumps in. It could be the difference between being labelled innovative and derivative. It could give you an edge.
Turn the ship around
It would be dangerous to suggest that shipping early is always the right thing to do. There are icebergs lurking out there that could sink you in an instant.
If your product just flat out doesn’t work then some people will try it once, hate it, and never return. They may spread their negative perceptions and this can be especially damaging if they are reviewing your product. It must be up to a decent standard before you release.
Often, time or money pressures will dictate that you ship when one or both run out. Just remember that it’s better to have a small core subset of working features than a big broken mess. Prioritize your feature list and bump the things you can’t deliver to a future iteration wish list.
If you can dispel the myth of a perfect finished product at the outset then you’ll be doing yourself a favor. Aim to put something usable together and then get that feedback loop rolling and work on improving it. QA departments and software developers can’t make the decision about when to ship and they shouldn’t be allowed to. It’s a business decision and it’s one of the trickiest ones you’ll ever have to make.