Know Your Customer
Every business or software project represents a long process of communication between a customer and an implementer. No one will deny that the implementer has a significant impact on the final result of the projects. However, it is the customer who dictates the requirements, and it is up to the customer to say “yes“ or “no“ in the end. So, it is crucial to know your customer, understand him, and organize work accurately to achieve the best results.
Understand The Customer
Understanding of the customer you are working with is the first and the most obvious requirement. You should not only understand what he wants, but also what he means.
There is a common situation when a customer assumes that you have all the information and experience he has, which is not true. To overcome this issue you should have basic knowledge of customer's business and a good understanding of use cases you are working with. You may also need to analyze the customer's current state of business to find bottlenecks and be ready to resolve them.
Another common issue is the language barrier. Most customers speak English fluently, but there are exceptions. For example, if a customer needs a local market solution, he does not require that. In such a case, there should be a person who can understand and adequately translate requirements. It is even better if somebody from your team speaks the customer's native language.
There are situations when the customer may work via a proxy company or representative. Sometimes it is acceptable, but in many cases may lead to missed information or lost context. It is better to maintain direct contact with a customer to have a full and clear understanding of his thoughts and needs.
Provide Multiple Options
There is a best practice to give a customer many options or many alternative approaches to solve his problems. You need to describe each approach's pros and cons and explain when and how to use them. It is even better to show a customer proof of concept (prototype) to demonstrate each of the options in action.
A customer may need an advisory too. It is your responsibility to advise on the best way to solve his problems and provide full information. Having experience in the discussed area helps a lot as you may immediately demonstrate already built solution and show it in action.
Some customers already have a full picture of the required flow. In this case, you should check all the scenarios, including positive, negative, and edge cases, to guarantee that the customer will receive what he wants.
Customer Is King
You have to remember that your main goal is to make the customer happy no matter what. It requires excellent communication and technical skills, experience in the business area, and many other skills.
One of the essential aspects of keeping your customer happy is maintenance and support. You need to check all issues and complaints from the customer, address them quickly, and inform the customer about the results. Some problems may be technical, while the human factor may cause others. If the customer made a mistake need to deal with consequences and prevent such a scenario in the future.
It is also good to be proactive and ask the customer about the issues and possible improvements regularly. You may discover a lot of new cases and general information by doing that, and it also shows the customer that you are interested in his success. Only then the happy and satisfied customer may provide positive feedback and share his experience with other customers all over the world.