I enjoyed Mitchell Ashley’s post about his joy when QA found the first bug in a new product. It’s an unfakeable sign that your software is far enough along to be testable and that you’ve got a system in place for testing it. As he says, there’s always bugs, and if you aren’t finding them early then you’re not looking right. That always leads to a very nasty time at the end of the development cycle.
Along similar lines, the best way to tell if released software has potential is whether anyone complains. I’m not advocating deliberately annoying your customers, but all software has problems. If nobody complains, it doesn’t mean it’s perfect, it just means nobody sees enough value in the software to want to see it fixed. It’s a serious investment of time to complain, almost everybody will just keep quiet and stop using an application that has a serious flaw. Someone who complains must really care and believe in what you’re trying to do. I love being at the point where you get complaints, it means you’ve created something people feel passionately about. Most software never gets that far.
It’s also great motivation for the team when they know that there’s a real person out there who will be delighted by the latest bug fix because it addresses their problem. Anything you can do to reinforce a relationship between engineers and passionate users pays massive dividends in innovation. User groups and site visits are great for this. Otherwise it’s too easy to lose sight of the goal of what you’re doing in the fog of technical details. Looking at which complaints you’re addressing with your engineering is a great way of ensuring you’re actually doing something that will be useful for your customers.