How to communicate with clients effectively: 4 tips for Developers
As a developer it’s been an interesting journey learning how to build great relationships with clients.
Our role by its very nature is not client facing but opportunities do arise where we need to communicate with our clients and this is where many developers can learn a lot.
One thing is for sure, I’ve learned to tune down the tech-talk when talking to clients and tune in to what they really want, but this is not all. I will start with a short story which I think sums up the relationship perfectly, and then share four tips for building a smooth client and developer relationship.
A hot air balloon, a person, a respectful relationship
A man is flying in a hot air balloon and realises he is lost. He reduces height and spots a person down below. He lowers the balloon further and shouts:
“Excuse me, can you tell me where I am?”
The person below says: “Yes, you’re in a hot air balloon, hovering 30 feet above this field.”
“You must be in IT”, say the balloonist.
“I am” replies the person. “How did you know?”
“Well” says the balloonist, “everything you have told me is technically correct, but it’s no use to anyone.”
The person below says: “Well, you must be a manager”.
“I am” replies the balloonist, “but how did you know that?”
“Well”, says the person, “you don’t know where you are, or where you’re going, but you expect me to be able to help. You’re in the exact same position you were before we met, but now it’s somehow my fault”
This is an old joke that illustrates how the relationship between a client and a developer can often unfold. I think for any kind of relationship, communication and understanding plays an important role.
Bridging the communication gap
For developers, client involvement can vary depending on the development methods. In Agile development, customer collaboration is important to get proper product requirements. However, clients often do not understand the tech-talk of developers so it is hard for them to participate. But it is also often not a good thing to have clients talk directly to developers as developers can be brutally honest in some situations.
For this reason the project manager or project lead will usually take on the role of key liaison between the client and developers, however opportunities do arise where developers are put in a position where they need to communicate with clients.
Four tips to build a smooth client and developer relationship
As a developer, I have been involved in multiple Agile sprints as well as client meetings and over time I have gathered 4 key learnings that help me to maintain a successful relationship with clients:
1. Get to know the client’s interests and their vision
It’s likely that you will spend many hours with the client during the projects. Understanding their needs and working styles not only improve communication efficiency but also helps you plan your implementation in the most effective way.
2. Be pro-active in giving advice to clients
Contact with clients can be fun and educational especially when talking with their end users. There have been occasions where I have spent days and sometime months working on client sites, during which time I have gained insights around how they use the software and also, how their users might be using your software in unexpected ways. There are plenty of opportunities to share some good advice and educate the client if there is a better way of doing something.
3. Be transparent
Q: What should you do when some tasks take longer than expected?
A: Be transparent
Some projects can get complicated and that is part of our job. There is nothing wrong with working a little bit longer to produce quality work as long as you explain why it is taking longer. In some situations, when the team is big, it is best to be transparent with your project manager or project lead.
4. Be willing to say 'no'
A software developer should always provide his or her best advice on any project. Like any good craftsman, it is best to warn the customer when their requirement is not going to produce the desired result. Let them know your reasons and try to find another, better solution to present to them.
To sum up, managing expectations and ensuring you really know what your client wants is important. Often the client is not as fluent in technical language and so it’s important to tune down the tech speak. Last but not least, if you are going to tell the client 'no' on something, be prepared to explain why.
|Quan Tran, Developer, Speedwell