How much customer satisfaction is good enough? Of course, the long- term goal should be 100% ”total customer satisfaction. However, there are specific business questions that need better answers. Should my company invest $2,000,000 to improve satisfaction from 85% to 90%? Given that my company's customer satisfaction is at 95%, should I invest another million dollars to improve it or should I do this later?
The key to answering questions such as these lies in the relationship between customer satisfaction and market share. The basic assumption is that satisfied customers continue to purchase products from the same company and dissatisfied customers will buy from other companies. Therefore, as long as market competition exists, customer satisfaction is key to customer loyalty. Even if a company has no direct competitors , customers may purchase substitute products if they are dissatisfied with that company's products. Even in monopoly markets, customer dissatisfaction encourages the development and emergence of competition. Studies and actual cases in business have lent strong support to this assumption.
Assuming that satisfied customers will remain customers of the company, Babich (1992) studied the "how good is good enough" question based on a simplified model of customer satisfaction and market share that contains only three companies: A, B, and C. Therefore, when customers are dissatisfied with company A, they choose company B or C, and so forth. Babich further assumed that the distribution of dissatisfied customers among the alternative suppliers is in proportion to the suppliers' current market share. Babich then determined the algorithm for the market shares of the three companies at time t + 1 as follows :
where:
A = number of A customers
B = number of B customers
C = number of C customers
G = number of new customers to market
x = dissatisfaction level with A products
y = dissatisfaction level with B products
z = dissatisfaction level with C products
t = time
Based on this model, Babich computed the market shares of the three companies assuming satisfaction levels of 95%, 91%, and 90% for A, B, and C, respectively, over a number of time periods. The calculations also assume equal initial market share. As shown in Figure 14.5 (A), after 12 time periods the 95% satisfaction prod-uct (company A) would basically own the market. However, had the satisfaction levels of companies B and C been 98% and 99%, respectively, and company A's satisfaction level remained at 95%, company A's product would have had less than 10% market share in 24 time periods, as shown in Figure 14.5(B).
Figure 14.5. Satisfaction Levels and Market Share
From "Customer Satisfaction: How Good Is Good Enough?" by Pete Babich. Quality Progress , December 1992. Copyright 1992 American Society for Quality. Reprinted with permission.
From Babich's simple model and examples, the answer to the "how good is good enough" is obvious: You have to be better than your competitors. Therefore, it is important to measure not only one's customer satisfaction level, but also the satisfaction level of one's competitors. Indeed, many companies have been doing exactly that.
Finally, we emphasize that measuring and analyzing customer satisfaction is but one element of customer satisfaction management. A good customer satisfaction management process must form a closed loop of measurement, analysis, and actions. While it is not the intent of this chapter to cover the customer satisfaction management process, we recommend that such a process cover at least the following elements:
Measure and monitor the overall customer satisfaction over time, one's own as well as key competitors'.
Perform analyses on specific satisfaction dimensions, quality attributes of the products and their strengths, weaknesses, prioritization, and other relevant issues.
Perform root cause analysis to identify inhibitors for each dimension and attribute.
Set satisfaction targets (overall and specific) by taking competitors' satisfaction levels into consideration.
Formulate and implement action plans based on the above.
Recommendations for Small Organizations
Total quality management (TQM) literature recommends three key elements of a good customer satisfaction management program: a postpurchase call back program, a complaint management process, and a customer satisfaction survey program. Although in this chapter we focus on the last element, many companies practice all three elements. Implementing any of the programs requires resources. Our view of the order of importance of the three elements is that complaint management is the most important, followed by postpurchase call back, and then overall satisfaction surveys. The first two are immediate and important to customer's transaction experience, and the last one is for systematic quality and business improvement.
Besides measuring customer satisfaction, perhaps more relevant to software engineers is the roles customers can play in software development. Development teams should leverage the benefits of customer involvement for better quality and customer satisfaction. Following are some scenarios of customer involvement that a team can leverage throughout the software development process. With the exception of large-scale customer beta programs, these processes and programs can be implemented by large and small organizations. For small organizations that don't have a customer focus program in place, I strongly recommend integrating one or more of these practices into their development process.
Requirements: Good requirements-gathering and analysis techniques always involve the users closely. For long-term product strategy, customer advisory councils usually provide good directions. For Extreme Programming (XP), customer involvement is regarded as so important that an onsite customer is part of the development team and is responsible for domain expertise and acceptance testing. For object-oriented processes in general, the role of use cases in requirements analysis is another illustration of the importance of user involvement.
Design: The prototyping approach is a good way to get customers' feedback and to ensure that the product satisfies requirements. In recent years , some companies use the term user-centered design (UCD) to signify the heavy user involvement in their design process.
Functional verification test (FVT): Customer testing can start early, when FVT is near completion.This early customer testing is not a beta program, and is called a hackers' invitational or customer invitational program. A selected small number of customer experts who know the product well are invited to the vendor's development laboratory to test the new function and to attempt to break the system.
Customerlike testing: Unit tests and functional verification tests are normally for functional defect removal. For product-level testing or system testing, which are normally conducted by an independent test team, many software organizations adopt a customerlike testing strategy. The testing environments and the test scenarios simulate customer operations, and therefore offer the chance to find latent defects that are likely to be encountered by customers.
Internal Beta, or eating one's own cooking: When product development is about complete, and independent testing about to start, the development organization can put the product into production mode running its own business operations. This strategy puts the development team into the customer's shoes and can really motivates the team's quality focus.
Customer beta: This is a broad-based customer validation program. It usually starts when final testing is about done and before the product is released to the market. The product has to be at a fairly good quality level at this stage. The main purpose is to get customer validation and feedback for further improvement. Customer beta programs should not be used as an extended development phase as a major activity for defect removals.
Special inbound customer testing: Unlike the broad-based beta programs, this strategy is to invite a small set of one's core customers to the development laboratory to test applications before releasing the product to the market. This approach focuses on depth, and is relevant for a small set of customers who depend on the software for their mission-critical business applications.