Sure, it’s theoretically possible to create bug-free high-tech products. That is, products that seem “bug-free” to the user when they:
- are used exactly as intended by their creator
- are used by users who are only looking for a common and strict subset of the product’s prescribed functionality
- are always used in the same, well-known environment
- are intuitive or their use is completely understood by the user
But is it commercially feasible to make them bug-free? Can you keep up with the market when differentiation is virtually unsustainable, if even achievable, while trying to discover and repair 100% of the potential failures in a complex product? I can’t imagine how this would work.
A guy who came to work for me once had just come out of a software development gig at NASA. At the time, NASA believed that an experienced engineer could produce only 3 lines of fully-debugged code per day. It’d be difficult to find commercial success without thousands of developers at that rate. Even that didn’t prevent NASA from plowing the 1999 Mars Climate Orbiter deep into the surface of the Red Planet as a result of a screw up that had one team working in English units and another working in metric ones.
Of course, the discussion of whether or not the creation of bug-free products can or should happen is a big one. One which I neither have the capability no inclination to address in this post. What I want to talk about, though, is the sales impact of bugs. Bugs found by customers during key evaluation and decision-making moments create the biggest barrier to effective selling there is. When the customer finds problems with your product while making a decision to purchase, renew, upgrade or simply add more to what they’ve purchased preciously, the sales person not only loses their ability to hold the line on sales terms, but they may get caught in a quagmire of having to deal with the bugs instead of closing up the deal and moving on to a new customer, virtually killing sales productivity.
So, even if we accept the fact that most high-tech products are bound to have some bugs, it’s critical for any company doing development to at least make the product appear bug free and limit the chances of the user finding bugs at critical times or in critical places – the most important of those being during the sales cycle.
Yeah, yeah, yeah, you purists out there don’t like thinking about it this way, although from a corporate standpoint, it may the biggest issue. You’re saying that it’s about the technology, the product, the elegance of the solution. That’s all nice, but if you plan on making money with your product, it better have great curb appeal. And, there’s nothing quite like your baby failing miserably during an eval to get your customer to search for a competing solution quickly.
Think about a spreadsheet that shows off one, single math flaw in testing. Will the customer ever trust it again? What about the blood pressure monitor that reads 50 points too low once in a while or a GPS receiver that loses it’s satellite connection intermittently (perhaps while guiding a cruise missile?). These bugs create unrecoverable sales issues. Pack it up and head back to the office because that customer will never write you a check.
I’m not saying here that your product can be crap once the user has paid for it. When the user encounters problems, which they inevitably will do after purchase, you need to support the hell out of them and get the bugs addressed as quickly as possible. My point is simply that in terms of priorities, eliminating bugs that are likely to be found during the sales process is a higher priority.
Thus, it’s critical that after making sure that your product does all the important stuff you claim it does, you wring out sales prevention issues as a top priority before delivering it to customers. It’s not hard to do, but it does take extra effort in terms of preparation and fortitude to prevent the knee-jerk reaction of shipping a product as soon as it meets the most basic quality criteria. Here are the minimum steps required to make sure that the product helps sales, not hinders them.
- First, eat your own dog food. Use the “completed” product exactly like the customer will use it during the evaluation. Think about the mistakes they’ll make along the way and how they will deviate from the prescribed route and flow of how the product is supposed to be used. Build an environment in which your product can be regression tested the way the user will try to break it and pound it to death.
- Then, if you have customer support or field engineering people, use them to route out problems. These people are the closest to the customer, so they usually have a better sense for how the product will be used than the engineering team. The idea is not complete and thorough testing, the idea is to find all the problems that new user will likely hit as they ramp up quickly. Key areas to test are not only functional errors, but speed and capacity. During this period, these employees should rule – don’t let anxious engineering or marketing people wave them off. If they say it’s a problem, it likely is one.
- Then and only then, beta test it at your most friendly existing customers (if there are no existing customers, have your employees on site when the prospective customer is trying it out). Ask them to involve novices who don’t have a preconceived notion for how the product should be used. Love them and care for them. Make their effort worth their while – give them free product or another gift of some real, perceived value in return for the efforts.
- Don’t forget to use Sales 101. Understand what’s important to the customer and how they plan on testing the product. If there are known issues that are in the process of being resolved, disclose them and ask the customer to test these areas at a later date. Set clear expectations about what the new product is supposed to do and how it’s supposed to do it. If the customer expects something that they don’t get, there will be a problem.
- Finally, as new customers run into problems, jump all over them fast. If the problems aren’t too severe, you can blow them away with your support. Sometimes, great support will overcome some of the issues that occur when bugs are encountered.
Remember, there are always bugs. There are the ones you find and the ones you don’t (some of these being later discovered by your customers). The more effort you put into loading up the first category, the easier it will be to sell your product (duh). Once a customer has adopted your product, it’s much easier to make them happy and to work around issues they encounter. You’ll never get the opportunity to to this, though, if they haven’t become a customer in the first place.