paint-brush
Consulting for Software Developers #1: Building trustby@krzysztof.czernek
645 reads
645 reads

Consulting for Software Developers #1: Building trust

by Krzysztof CzernekJuly 9th, 2018
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

<span>S</span>oftware 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.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Consulting for Software Developers #1: Building trust
Krzysztof Czernek HackerNoon profile picture

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.

Why would you want to consult others?

There’s a lot of reasons you might want to get better at consulting:

  • You feel like the project/product you’re working on could get much better, but you don’t feel like there’s space for you to discuss this,
  • You want to have more influence on the project, but the ideas you have are ignored,
  • You feel like a code monkey, and want your work to be more meaningful,
  • You want your client to be successful because you realize it’s the only way for you to be successful, or
  • You want to be a go-to person for all things tech in your client’s eyes, etc.

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.

How do I earn my client’s trust?

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:

  • You know a lot about their business,
  • You want them to be successful, and
  • You’re smart and reliable.

How do you do that? Here’s a couple of ideas.

Research your client

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:

  • Does your client have a company website? Great, check it out,
  • Read through their LinkedIn profile,
  • Any chance your client gave an interview, wrote an article, or a book? Go read it!

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”

Prepare for meetings

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.

Make small commitments and over-deliver

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:

  • “I’ll send you the details right after this meeting […]”
  • “I’ll do X first thing in the morning tomorrow[…]”

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”

Explain the process, make the risks known

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.

Keep the client up to date

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!

Do not care who gets the credit

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.

Always tell the truth

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”

Now, on to 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:

  • [ ] Do your research
  • [ ] Prepare for meetings
  • [ ] Make small commitments, over-deliver
  • [ ] Explain the process and the risks involved
  • [ ] Keep clients up to date
  • [ ] Don’t care who gets the credit
  • [ ] Always tell the truth

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.

Further reading

  • Gerald Weinberg, “The Secrets of Consulting”
  • Robert M. Galford, “The Trusted Advisor”
  • Doug Sandler, “Nice guys finish first”