In fact, when you go live, your software shouldn’t be “done.” If it is, you’ve done something wrong.
You see, in the history of software, there’s never been such a thing as a piece of software that launched without bugs. Think of your favorite, most used platforms. Gmail. Facebook. Salesforce. All are brimming with bugs. Every day a user writes into their contact forms about a bug they discovered, and while a lot of them are PEBKAC errors, a lot of them are legitimate bugs. And the ticket tracker logs them, someone triages them, and, eventually, most of them will be corrected.
But before that happens, some new feature will be added, or an existing feature will be modified (‘member when Facebook separated out the messages app from the FB mobile app?), and that will create a whole new series of bugs.
The thing is, these great software developers and tech minds have learned this lesson. They know that being on the market and buggy is better than being off the market and perfect. And the bottom line is no code base is perfect or done. Software, in a very real way, is alive. It is constantly changing, learning new ways of interacting with users and other programs. The more users you have, the more suggestions for improvements you will get, and some of those suggestions won’t even be crazy.
Rather than trying to anticipate your user’s every need, why not let them tell you what they need. Build something simple, something you think adds value to the existing software market, and release it to the world. Your users, no matter who they are, from cube drones to hipsters, will be full of suggestions on how you can improve the platform to make it more user-friendly, integrate it with other useful apps, and trim away the fat. People love providing feedback on software, and you don’t even really have to prompt them to do so. Just give them an anonymous way to get in touch with you, and they’ll do so.
So if you find yourself stuck in a cycle of testing and release, assuming none of the bug discoveries make the app fundamentally unusable, think about setting that app free. You can track down bugs indefinitely. You can always think of new useful features, but nothing beats free QA. And if your app is a solid idea, you’ll have enough ideas inside a month of regular use to keep you busy with improvements and make your product even better than you expected.