Why you should contradict your client (and how to do it)

April 24, 2020 · 3 min read

Coffee mug on calendar Photo by Estée Janssens on Unsplash

Have you ever been frustrated because of your client? Most of us have.

Whether the client wants a feature that makes little sense or demands an impossible deadline. This can be exhausting.

You're not alone.

As software engineers, we like to treat our clients (or bosses) with care.

But your client isn't as fragile as you think. When you thoughtfully contradict them, you can improve your relationship with them. You may also (accidentally or on purpose) raise yourself a better client. One that discusses their ideas and thoughts openly with you, before they become hard requirements.

You can make it work.

Help them get the best solution

Your client asks for a feature that makes little sense. What do you do? This is a great opportunity to show that you not only execute tasks. Show that you think ahead. Make sure you thoroughly understand what they want. Understand why they want that feature. Then share your concerns and show alternative ways to reach their goals.

Your client will learn that you give them honest feedback. With time they will talk more and more openly with you about ideas they have. Because they know that you help them get the best solution.

When you contradict your client the right way (see below), it shows competency. Your client will learn to trust your expertize.

Bonus: with suitable explanations on your side, the client learns much more about software engineering than when you are silent. You raise them to become a better client this way.

The What

Some examples where you could contradict your client are:

  • Impossible feature requests Your client wants you to draw seven perpendicular lines.
  • Wrong prioritization Most prioritization should be up to your client. They're paying, after all. But when there are technical dependencies that you must complete before you do something else, voice your concerns. Also, help your client to find the most effective next step and avoid big design up front.
  • Non-optimal feature requests A client might ask you to use a red/green light to show if a process works correctly. This is a case where you need to tell them that some people can't see all colors.
  • Impossible deadlines When your client demands the impossible, tell them. Let them prioritize tasks by importance and commit to what seems reasonable. Not more.
  • Specific test coverage Code coverage can be a useful tool. But as a KPI it is a vanity metric. Tell them: "We can provide you the numbers, but won't commit to a specific coverage. We have better things to do than write useless tests only to increase coverage."

There are more situations. You're the expert. You know when there exists a better way.

How to best contradict your client

The next time your client asks for something that makes little sense, thoughtfully contradict them. Don't just say no. Do this instead: 1. Make sure you understand what they want. What to say:

  • "Could you explain in more detail what you think of?"
  • Then tell them what you understood in your own words.
  1. Make sure you understand why they want that. What to say:
  • "What do you want to achieve with this?"
  • "What about that result is important to you?"
  • "And why is that result important to you?"
  1. Clearly tell them what you think. What to say:
  • "This is not a good idea"
  • "There might be a better way to achieve what you want"
  1. Tell them why it isn't a good idea. What to say:
  • "Have you considered that ..."
  • "In our experience ..."
  1. Explain what to do instead. What to say:
  • "Our alternative would be to do ..."
  • "We can't X. But we can (try) Y."

Conclusion

Software engineering is craft, science, and art (link for each). But one of the most important aspects is client management.

Contradict your client. Manage their expectations. Prevent yourself (hopefully!) from building useless features and working under stress to make an impossible deadline.

Don't waste your time (and your client's) when you know a better way.