The Workplace Stack Exchange is a question and answer site for members of the workforce navigating the professional setting. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm a software developer. A part of the application I'm currently working on if distributing big amounts of money to the clients of my customer.

In the application the users (employees of my customer) have to decide and choose which client gets a certain amount. Based on the information in the system the application could make and educated guess which client is the correct one. But as the information might be wrong or incorrect I can't be 100% certain.

Now the customer has requested to pre-select the most probable client, so the user only has to click OK, instead of selecting the client first, if the application guessed correctly.

I fear, that, if I implement this, some user would always just click OK, instead of thinking whether the selected client is correct or not. Which would lead to thousands of Euros transferred to the wrong clients.

Knowing my customer, he won't listen to my argument. So my only options are implementing this possibly harmful change, or lying the customer, telling him, that this is technically impossible.

Is it professional/ethical to lie to a customer to protect them for harming themselves, if they don't listen to an argument, in this or other scenarios?

share|improve this question
2  
"I fear, that, if I implement this, some user would always just click OK..." - why not suggest an alternative. For example, some systems dealing with money ask the user to confirm by retyping the number (the amount to be transferred) on the screen to confirm. This way it is harder to "accidentally" transfer a large sum by one stray mouse click. – Brandin 2 hours ago
14  
You aren't being paid to lie. And telling a client that something is "technically impossible" makes you look stupid. – WorkerDrone 2 hours ago
24  
You should write to your client that some users might just click OK without thinking. Don't just tell them. You'll have a proof that the client was informed of the issue. – Alexandre Vaillancourt 2 hours ago
7  
@raznagul if you want to find a good alternative that is little work but less error-prone, consider asking such on [ux]. They might come up with something good. – Erik 1 hour ago
1  
@raznagul There is clearly a trade-off here that the customer needs to understand and should have a choice about. Too easy, and there are chances for errors. Too hard, and it is not good either. For the "OK" button approach, you could also look at the Firefox approach to dealing with this issue when installing plugins. The user can press OK to confirm, but must wait a certain amount of time to avoid too quicly confirming (e.g. if there is a malicious plugin). It is pretty easy but not so easy to do accidentally. – Brandin 1 hour ago
up vote 14 down vote accepted

You should never lie to a customer. For that matter it is generally not a good idea to lie to anyone but that is a broader ethical issue for further consideration in a different venue.

Trying to say that it is "impossible for the programming" to make the likely choice guess would stand out as so obviously wrong that you should not even go there. If the customer can surmise the scenario from the data at hand then it is possible for a program to be written to come to the same conclusions.

In my work when I encounter similar situations I will normally implement what the customer desires but will also help them see that there may need to be additional steps taken to reduce mistakes. In this scenario the customer is suggesting something that will improve work flow productivity. This can help save time pawing through a customer list dialog to manually select the specific one. On the other hand once the commit is made to post the transaction the programming could note that the auto filled field choice has been used and that the amount total is large and then pop up an "are you sure" confirmation that shows pertinent data. A quick click of confirmation hardly interrupts the work flow at all.

So in conclusion - work with the customer to find good solutions instead of trying to make your own judgements of what is right or wrong with their ideas.

share|improve this answer

It's not professional to lie to your client to protect them from harming themselves. Your client is not a child, they are an adult and are expected to be allowed to make their own decisions in life. Including ones that will cost them reputation, money, or their company.

Think about it if it were professional/ethical to do this. Would you want your doctor to lie to you about the risks of smoking to "protect you from yourself"? Would you want your mechanic to lie to you about the risks of not fixing your broken watchamacallit to "protect you from yourself"?

I think you would want it to be your own, informed decision. And I think your client will want the same.

share|improve this answer
    
+1, definitely should tell them the risks so they can make an informed decision, then leave the decision up to them. – mikeazo 2 hours ago
30  
...and get their response in writing. CYA and make sure that when that particular failure mode rears its head you have a legal "I told you so". – Jared Smith 2 hours ago
1  
+1 IT people, in general, tend to be highly intelligent, so there is a tendency to be dismissive of the abilities of others. We have to remember that we can't make decisions for others based on the fact that we are smart. Our job, however is to propose and develop solutions, not to make decisions for others. – Richard U 1 hour ago

The professionally/ethically correct way of doing this would be to accurately inform your customer about all risks. Then let him or her weight these risks and let them make an informed decision. You are not in the business of making risk assessments or business decisions. That's their job. You don't want them to tell you how to program, don't tell them how to do their job either.

Prepare a statement where it it clear that you see that risk, in simple terms so they can understand it. If you want to underline the importance of this risk, you can try to make them sign off on it. Have them write something like "I read and understood this risk, I want it implemented anyway."

If the only risk is the business losing money, then this is all you can or should do. It's probably a whole different can of worms if the business owner is risking something that does not belong to him (for example client's health), but that is a different question and should go to a legal professional.

share|improve this answer
2  
Yes, a risk assessment is professional, lying isn't – Kilisi 2 hours ago
4  
"Have them write something like...", that feels childish. You definitely what to document that this was their decision, but making them write this out, I'm not so sure. – mikeazo 2 hours ago
8  
@mikeazo Have you ever been in that position? Bosses have told me "Did I say that? I cannot remember. I never said that." more often than I care to remember. You can document all you want, but it's only their own words that will make them remember. It does not need to be written in the blood of their firstborn. A simple email replying to the risk saying "I know, do it anyway." is perfectly fine. As long as they wrote them. – nvoigt 2 hours ago
1  
Sound advice, and the only professional option. Simply implementing it will allow for the nightmare scenario he envisions. Lying will make him look foolish or incompetent down the line when what he claims to be impossible is shown not to be. Doing a risk analysis, putting it in writing, and having the client acknowledge the risk is the only thing that protects him both legally and professionally. Excellent answer. – Richard U 1 hour ago
1  
It is critical that he acknowledge the risk in writing. There is potential for legal issues to arise from this and you must protect yourself. Further by asking for a written confirmation that he is fully aware of the risk, many people will realize that they could be in legal trouble if the risk happens. I have seen this approach make people back off of particularly stupid ideas when they found out they would own the risk. – HLGEM 51 mins ago

You already explained the risks to the customer and the customer insisted that you do things their way.

Do it their way. In this case, go by the Golden Rule: he who has the gold makes the rules. The customer pays for your services and as long as they pay, your services is what they get. This transactional relationship ends the minute the customer stops paying.

You are the customer's contractor. You are not the customer's baby sitter or parent. Customers have the right to over ride your objections and make their own wrong headed decisions. Object for the record, and go into CYA mode by documenting your objection.

DO NOT ever lie to the customer for whatever reason, because if your lie ever gets documented, it will pursue you where ever you go. Your personal and professional credibility will be shot and this will impact on your ability to make a living.

Protecting people from themselves is just not worth it, especially if the result will be that you will be blamed for anything that goes wrong. And the more you defend yourself, the more dodgy you look no matter how good or sound your arguments are. You are not a missionary, you are not a do-gooder and you are not in the business of saving souls. Forget it.

share|improve this answer

This is not your call to make. Maybe the client has well-trained employees which a taught to pay attention. Maybe the error is not as catastrophic as you imagine (e.g. my bank gives me 12 hours to reverse any transaction I make, and unusually important transfers may take several days to clear). Don't assume your client is stupid to the point you need to protect him from himself.

Informing your client about the problem was a good thing to do. Better yet, you may suggest solutions which in your opinion may reduce the risk. For example, you can suggest that the program presents a list where clients are sorted by relevance, but the user still has to click on the first row to confirm. But you'll have to let him decide.

Ultimately, you can't sell someone a gun and make sure they won't shoot themselves in the foot. Selling bad guns is not a recipe for safety.

share|improve this answer

No, it's not okay to lie, because your reputation is important. Guard it with your life. Reputation has to do with things that you do, but also things that you allow your client to do that may cost you later on, in terms of professional liability.

You can't be forced to do the work. Remember that.

You can also specify the conditions under which you'll be willing to do the work. In this case, you have a high-risk feature that your client wants to be done in a certain way. To an extent, that's fine. Your client's not asking for anything illegal or unethical - just stupid. So here's what you do:

  • Functional requirements. YOU document the specific functionality that the client is requesting, as you understand it.
  • Risk assessment. Again, YOU document the potential risks that you foresee that the client may encounter once this system goes live
  • Waiver. This is the important part. Before you do the work, have your client sign a waiver of liability for anything that goes wrong as a result of you implementing the functionality requirements you outlined in the first step. It should indemnify - specifically: you, by name; any others in your company working on this piece, by name; the company; your insurance company (I'm assuming you have insurance!) against any legal claims. Have your waiver reviewed by an attorney and make sure it's airtight. Don't do the work unless the client signs off.

If you skip these critical steps, you may be open to a lot of financial exposure as a result.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.