How much should you fight your client's bad ideas
As a software developer, it is not uncommon to find yourself in a situation where you are asked to implement something you don’t think is a good idea. It can be something you would implement in a different way, or even something you would not implement at all.
In my opinion, there are two different scenarios:
- You don’t agree with your client’s (or boss’) idea, but you can’t be certain about it. Things can be done in different ways, circumstances are never exactly the same, and you cannot know for sure if the way you would do things is actually better than the way your client wants to do things.
- You are pretty sure that what your client is asking is a bad idea. You have seen the same approach several times in the past, and it has always failed. There is little chance that it will turn out differently in this particular case.
In the first case scenario, I think it is easy to choose the right course of action: you can expose your opinion as clearly as possible, explaining what you would do if it was your call, underlining at the same time that their approach is also an option. Explain that is difficult to know which one is best, show the pros and cons that you see in both paths, and let the client choose between them. After all, it is the client who is investing his money in the project. He is the one risking something –the one who has a chance of success and failure–, and it makes total sense for him to pick whatever he thinks is best.
In these cases, you are simply airing your expert opinion, and helping your client to make a more informed decision. If he chooses to reject your suggestion, it is okay, he might be right. You probably think he is not, but you can’t feel bad about it, because you can’t actually be sure. Quite often, there is no way of determining which of the two paths would have been a better choice.
But what happens in the second case scenario? You are witnessing your client making a decision that you know is utterly wrong. You have seen something similar in the past, perhaps several times, perhaps you were the one taking the wrong decision. What to do then?
Well, on the one hand, once you have exposed your opinion, or even insisted on it, there is probably no moral or legal reason to do more than that. You, as an expert, have an opinion, your client does not agree with it; it is his money, he decides. We are not talking about a life or death decision –like… children’s vaccinations, or building a bridge that is going to fall down–, it is probably just a bad business decision. You can simply continue with your work, following your client’s wishes. Who knows, maybe he’s right in this particular case…
However, I don’t think that approach is ever a good idea. Here the reasoning:
If your expertise, formed after years of facing similar situations, says that your client is making a mistake, you might be wrong… but it is more likely that you are right.
If, after emphatically explaining your points against his approach, your client –who has less experience than you– insists in following his personal opinion, he will likely behave in the same way in similar situations in the future.
A project directed by someone that systematically takes wrong decisions, has a strong tendency to fail.
And what’s the problem –for you– with the project failing? After all, you are being paid, and you have been doing your best. Everything is okay…
Well, I think you can experience at least these two problems:
When a project fails because of wrong technical/business decisions –relevant technical decisions are also business decisions– it doesn’t matter how much you fought them, some clients will never think is their fault. Driven by frustration, some of them will blame you. When there is so much at stake (not only money, but also hope, time, pride…) it’s just human to look for a scapegoat if things turn out wrong. And even if there is no moral or legal reason to blame you, it is not a pleasant situation.
And most important, as a developer you can basically use your hours in two different ways, when working for a client: 1) earning money and building something you will be proud of; or 2) just earning money. Number 1 is way better.
So… How much should you fight your client’s bad ideas? Well… That depends on your personality. You may be a person that only feels comfortable explaining things once (you may think it impolite to repeat your reasoning twice). Or a person that feels okay trying a second time. Or even a person that is stubborn and patient enough to insist on explaining something a third time, in a different way. That doesn’t really matter so much. What really matters is that, whenever you find yourself doing something your expertise says is wrong, it’s probably a good sign that you are not at the right place anymore.
If you can choose, always choose to build something you will feel proud of in the future. It sounds a bit like “always choose to be Batman”… but, well, both are good pieces of advice.