Let’s start the upcoming year off right by realizing that the attitude of “The customer is always right” can be detrimental to business. It pits employees against customers and ultimately management. This attitude gives an unfair advantage the most outspoken and abrasive customers creating a hostile environment for employees, managers, and other customers. The corollary to the customer is NOT always right is that they are NEVER wrong. Remember they are still the customer and the idea here is to bridge the gap between what they expect and the company performance.
Some ways to bridge this gap include listening first and asking questions later. Too many times we as developers feel we know the solution and jump to asking questions or explaining without hearing what the customer wants. Own up to your mistakes, but only your mistakes. If the complaint is about something you or the company screwed up, take responsibility and work toward a solution. If the complaint is not about something that is your fault do not take the responsibility for the error but still work toward a solution. Lastly, outline how you will make things right for the customer. Show them you are on it and what they can expect going forward.
As developers we may not have direct access to customers of the company but that does not mean we don’t have customers of our own. Who your customers are will depend on your role in the company. As a full-time employee your customers include anyone within the company using your code, customers purchasing products made by your company, managers, and future developers and employees of the company. Contractors are in a similar position but they have the added customer of the company itself that contracted with them. Freelance developers deal directly with the external customer by providing a service to them. Their customers may also include the customers for the company that purchases their services or product.
Now that we have looked at who the customer may be depending on your situation, we’ll look at a situation that might come up in working with the customer. When the customer asks for the impossible. This is frequently represented with conflict between designers and developers . Many times designers will know what is and is not possible but maybe not what is not probable. As in they may know that their design can be done however they may not know the costs in time, manpower, and technical debt involved. This is where as developers we can step in and defeat the stereotype by instead of saying it can’t be done we listen to what the designer is trying to accomplish then work with them to achieve that goal. Set yourself up as the developer that works with them and they will come to you with questions about what is possible when designing. This sets you up as a valuable resource for the company and reduces the frustration for both you and your customer, in this case the designer.