User Avatar

Founder and CTO of Macopedia - a 100% bootstrapped web agency. Writing about e-commerce, challenges of digital transformation, and software development.

Saying NO To The Customer Is Part Of Being A Professional Software Developer

"What are your professional boundaries as a software developer in relation to the customer?"

"Tell me about the situation when you refused a request from the customer" I like to ask such a question when recruiting programmers. Every healthy relationship requires boundaries. Being aware of them and able to enforce them is part of the software craft.

Imagine a customer asking a car mechanic to change the engine oil. But instead of the motor oil, he wants the mechanic to use sunflower oil. "It will be cheaper," he says.

What would the mechanic respond? Would he fulfill the customer's request? Isn't the customer always right?

No mechanic would agree to that. It's clear using the wrong oil would be unprofessional, against the craft.

Yet, It's common for developers, to obey the professional boundaries. Please don't get me wrong, I know It's often done out of good intentions in order to please the customer.

Being professional means refusing to work on unclear tickets

An example from daily life:

Sometimes customers want to rush a ticket that is unclear on the expected outcome, has an unresolved blocker, has ambiguous descriptions, or has no description at all.

Starting working on it will not end well, as it's impossible to fulfill expectations that are not clear.

It's not enough to just say "NO".

Be friendly and proactive.

Propose a solution. Maybe a call to clarify the scope would help, perhaps writing down acceptance criteria will clear expectations, or maybe some research is needed before this ticket can be tackled.

Without knowing what are the boundaries of being professional you end up working hard on things customer didn't want/expect or like.

To make a customer happy long term, you shouldn't always try to please him short-term.

What else do you consider a professional boundary in software development?