Software development jobs come in many different types and flavors. More often than not, you need to communicate with clients and/or stakeholders — unless you code just for fun and don’t need to make money.
I happen to work in a setting that puts me in front of the client a couple times a week — even though I spend 3/4 of my work-time coding. It didn’t take long until I realized I need to get good at working with clients as well as programming. For the last couple of years, I strived to beef up my consulting skills: get comfortable talking to clients, discover how to navigate the “business needs → code” continuum, and learn how to give sound technical advice.
I’d like to share a couple of lessons I’ve learned along the way — actionable tips I think you will find useful, whatever your background and current job description is.
There’s a lot of reasons you might want to get better at consulting:
Now, I’m going to strike your ego. You’ve been working on the same project for quite some time now. You’re smart. Don’t you think you might have interesting ideas on how to make the product/business work better? I’m positive your client thinks you might.
Whatever your reasons, I’m sure you would benefit from having more consulting tools in your toolbox. Before you get better at giving advice, though, you need to earn your client’s trust. That’s our focus for today — let’s think about ways one can go about building it.
Spoiler alert: there’s no magic formula to build trust, and it’s not like there’s an end to this process. They say it takes years to build it, and only seconds to break it. In order to gain trust of your client, you need to constantly reinforce the message that:
How do you do that? Here’s a couple of ideas.
This one can come to play before you even get to meet your client. You need to do your homework. Make sure you cover the following:
Read whatever you can find on the web about your client. Not only will it give you a better understanding of their business — it will also make it easier to talk to them.
“Make sure you’ve done absolutely all your homework on the client company, the client marketplace, and the client individual, and that it’s absolutely up to the minute. Even if you know them and their business cold, there is likelihood that there will be some news clip about your client that will have been published that very day.”
— Robert M. Galford, “The Trusted Advisor”
Before you meet with the client for the first time (or for any time, really), you want to get prepared. This will put the client at ease and will make the meeting more productive, and less stressful for you.
Read the agenda (or prepare one if there’s not one), revisit your notes from previous meetings, and make sure you have a note (at least a mental one) of the questions you want to ask and updates you want to give. You might remember something you had promised to do but then forgot. It’s not a good thing (which we’ll get to in a minute), but it’s better to at least admit it proactively.
The rule of thumb is to always assume that you’re going to be the only person prepared for the meeting and will have to run it. Of course, if that turns out to be the case, you’ll have a different problem on your hands — but hey! let’s be optimistic.
Also, don’t be late to your meetings with a client. You don’t want to be disrespectful.
To build trust, you want your clients to know you are a reliable professional. You can foster this by being transparent about actions you plan on taking and making sure you execute on them. Little promises go a long way, like:
Even if it feels a little bit unnatural at first, it helps reinforce a feeling of trustworthiness. Make sure you always do (at least) what you said you were going to do, when you said you were going to do it.
“If you promise to call your customer back in 5 minutes, call them back in 3 minutes. If you tell your prospect you are going to have a proposal delivered in 24 hours, get it to them in an hour.”
– Doug Sandler, “Nice guys finish first”
Your client might not know the ins and outs of the software development process — that’s why you need to assure them that you’ve got this covered. The degree to which you’ll have to explain stuff varies from client to client, of course, so you will need to experiment with different levels of abstraction and adjust accordingly.
For example, if your client hears “X will take Y days to finish”, they need to be aware it’s never a spot-on estimate — because software development is inherently complex and there’s a lot of uncertainty involved.
Unless you know the client, it is safe to start with the assumption that they know next to nothing about building software. Explaining the risks and managing expectations early makes for a smoother collaboration.
Just like over-delivering on small commitments, this one can help emphasize the transparency and integrity you want your client to see in you.
You promised your client to do something by the end of the day, but are running behind? Send them an update.
… But they don’t even need it before Wednesday anyway…? Doesn’t matter — send them a message.
You want your clients to feel you can be trusted and will deliver, or communicate early (and clearly) if something goes wrong. When in doubt, over-communicate!
This one is a bit difficult because of our egos. We want to make a difference, and we want to be noticed making a difference. Here is the hard part though. We need to acknowledge that, from the project’s success perspective, it doesn’t matter who gets the credit — as long as the job gets done.
There’s an old saying that puts it nicely, and goes something like this:
“It is amazing what you can accomplish if you do not care who gets the credit.”
— multiple people, including Father Strickland, Harry Truman, Charles Edward Montague, and others
It’s not easy to track down who is responsible for this quotation, which is kind of funny, right? Seems like the alleged authors all truly meant what they said.
I know it’s hard to admit you’ve screwed up big time, or that you don’t know something. I know you’d want your client to never find out. Here’s the deal, though: in case they do find out, it will take forever to repair the trust. This should go without saying — it’s always better to be upfront and admit your mistakes.
I’ll let someone wiser than me say it in a way that may be easier to remember:
“The trick of earning trust is to avoid all tricks”
— Gerald Weinberg, “The Secrets of Consulting”
I can’t be the only one who likes checking items off my “to do” list, can I? Let’s end with a checklist that you can refer to when trying to gauge if you’re doing a good job building trust. Here we go:
Now, for the last quote:
“Sincerity, the way we usually mean it, has to do with intentions; we assume it comes from within. But our clients have no way to observe sincerity except through external behaviors. From certain behaviors (attention paid, interest shown, advance work done, empathetic listening), we infer the internal state we call sincerity.”
— Robert M. Galford, “The Trusted Advisor”
I really hope this comes useful on your journey to become a better software developer/consultant.