Back to Insights
Culture

A Good Software Team Should Be Comfortable Telling You Something You Don't Want to Hear

A Good Software Team Should Be Comfortable Telling You Something You Don't Want to Hear

The easiest client relationship is one where every request gets a yes. The more valuable relationship is one where the engineering team is willing to challenge assumptions when the evidence says something different.

Ashish Kondhalkar
Ashish Kondhalkar Founder & CTO

A software company can make money by saying yes to everything.

Yes, we can build it.

Yes, we can finish it by that date.

Yes, we can add that feature.

Yes, we can rebuild the entire system.

Sometimes that's exactly what a client wants to hear.

It isn't always what they need to hear.

Good engineering includes disagreement

Suppose a client wants to rebuild a system from scratch.

After investigating it, the engineering team discovers that most of the problems are concentrated in three areas.

The honest recommendation might be:

“We don't think you should rebuild the entire system.”

That's not the easiest thing to say.

But it may be the right thing to say.

Clients don't always have the full technical picture

That's normal.

A business owner knows the business.

A product manager understands the users.

An operations team understands the workflow.

An engineer understands the technical consequences.

Each person sees a different part of the problem.

The software team's job isn't simply to execute instructions.

It should also bring technical judgment into the conversation.

Sometimes the answer is “not yet”

Maybe the requested feature is useful eventually.

But the system isn't ready for it.

Maybe the underlying data needs cleaning first.

Maybe the architecture needs a small improvement.

Maybe another dependency needs to be resolved.

Building the feature immediately could create more problems.

A good team should be able to say:

“Let's fix this first.”

Sometimes the answer is “no”

Not every idea deserves to become software.

If a feature adds complexity without meaningful value, someone should say so.

If a deadline creates unreasonable technical risk, someone should explain it.

If a proposed architecture is unnecessarily complicated, someone should challenge it.

If a complete rewrite isn't justified, someone should say that too.

That's part of the job.

Trust comes from honesty

You don't build a strong client relationship by agreeing with everything.

You build it by being willing to explain your reasoning.

That doesn't mean being argumentative.

It means being clear.

“Here's what we found.”

“Here's what we recommend.”

“Here's what we think could go wrong.”

“Here's another option.”

Then the business can make an informed decision.

The best team isn't the one that says yes fastest

It's the one that helps you make better decisions.

Sometimes that means building exactly what you asked for.

Sometimes it means changing the approach.

Sometimes it means doing less.

Sometimes it means stopping altogether.

Software is expensive enough without paying someone to blindly execute decisions that should have been challenged.

A good engineering team should be comfortable saying what it actually believes.

Even when the answer isn't the one you hoped to hear.

Tags engineering partnership, honesty, software consulting, decision making