Skip links
Split-screen of technical diagrams translating to business charts with bridge

The Engineer’s Guide to Working with Non-Technical Stakeholders

The most impactful skill a software engineer can develop is not a programming language, a framework, or an architectural pattern. It is the ability to communicate effectively with people who do not write code. I have watched brilliant engineers build the wrong thing because they could not extract real requirements from a business stakeholder. I have seen mediocre engineers ship enormous business value because they understood what the VP of Sales actually needed, not just what she asked for. After 15 years of building software and running a consultancy where every single project involves direct collaboration with non-technical clients, here is what I have learned about bridging this gap.

Article Overview

The Engineer's Guide to Working with Non-Technical Stakeh…

9 sections · Reading flow

01
The Fundamental Translation Problem
02
Requirement Extraction: Ask Why Five Times
03
Estimation: Communicate Uncertainty, Not False…
04
Technical Decisions: Lead with Business Impact
05
Saying No (And When to Say It)
06
Status Updates: The 30-Second Rule
07
Demos Over Documents
08
The Empathy Practice
09
The Uncomfortable Truth

HARBOR SOFTWARE · Engineering Insights

The Fundamental Translation Problem

Engineers and non-technical stakeholders are not speaking different dialects of the same language. They are operating in fundamentally different mental models. An engineer thinks in systems: inputs, outputs, state transitions, edge cases, failure modes, performance characteristics, and maintenance burden. A stakeholder thinks in outcomes: revenue generated, time saved, risk reduced, customers retained, competitive position improved.

When a stakeholder says “We need a dashboard,” they are not describing a technical artifact. They are describing a desired outcome: “I want to understand what is happening in my business without asking someone to pull data for me every time I have a question.” The engineer who builds exactly what was literally requested (a dashboard with charts and filters) might completely miss what was actually needed. Maybe the stakeholder never opens dashboards. Maybe what they really need is a daily email summary with the three numbers that matter most. Maybe they need a Slack bot that answers natural language questions about the data. The dashboard was a solution hypothesis, not the actual need.

The translation problem runs in both directions. When an engineer says “We need to refactor the authentication module,” the stakeholder hears “Engineers want to rewrite working code for reasons they cannot explain in terms I understand, and it will take two weeks during which no new features ship.” What the engineer actually means is “Login failures have increased from 0.1% to 2.3% over the past quarter because of accumulated technical debt in this module. If we do not address it now, we project login failures will reach 5% next quarter, which will directly impact our activation metric and cost us an estimated $180K in lost conversions.” Same underlying reality, completely different framing. The first framing gets rejected. The second gets a green light and a thank-you for the heads-up.

Requirement Extraction: Ask Why Five Times

The Toyota Production System’s “Five Whys” technique is the single most effective requirement extraction tool I have ever used. When a stakeholder makes a request, ask why until you reach the underlying business outcome. Most feature requests are solutions, not problems. Your job is to find the problem.

  • Request: “We need to add a PDF export button to the reports page.”
  • Why? “So our account managers can share reports with clients.”
  • Why do they need to share reports that way? “Clients want to see their performance metrics monthly.”
  • Why can’t clients see the metrics themselves? “We don’t have client-facing accounts in the system.”
  • Why not? “We never built that feature. It wasn’t prioritized.”
  • Actual need: Client-facing read-only accounts with a branded report view would solve the root problem, eliminate the account manager bottleneck (they spend 3 hours/month per client on manual report distribution), improve client satisfaction (self-service access instead of waiting for monthly emails), and provide better analytics (you can see which reports clients actually look at).

This does not mean the PDF export is always wrong. Sometimes after five whys, the original request is genuinely the right solution. A quick PDF export might be the right 2-day fix while client-facing accounts is the right 6-week project for next quarter. But 60% of the time, the underlying problem is significantly different from the proposed solution, and the five-whys process surfaces a better approach that the engineer would never have discovered by executing the original request as specified.

How to ask without being annoying

Engineers who ask “why” without social grace come across as questioning the stakeholder’s judgment, which shuts down the conversation immediately. The key is framing your questions as trying to build the best possible solution, not as skepticism about the request. Here are specific phrasings that consistently work well in practice:

  • “I want to make sure I build exactly what you need. Help me understand the workflow: when a user hits this feature, what were they doing right before, and what will they do right after?”
  • “What is the most frustrating part of the current process? If I can understand the pain point, I might be able to solve it more completely.”
  • “If we could solve this problem perfectly with no technical constraints, what would the user’s ideal experience look like?”
  • “Is there a workaround people use today for this? Understanding the workaround often helps me design a better solution.”
  • “Who are the top 3 users who would benefit from this? Can I talk to one of them for 15 minutes?”

That last question is the most powerful. Direct access to the actual user (not the stakeholder’s interpretation of what the user needs) eliminates an entire layer of telephone-game distortion. When the stakeholder says “users want X” and the actual user says “I need Y,” you have just saved weeks of building the wrong thing.

Estimation: Communicate Uncertainty, Not False Precision

The question every engineer dreads: “How long will this take?” Most engineers respond with a single number (“about two weeks”) which is interpreted as a commitment. When it takes three weeks because of an unanticipated integration complexity, trust erodes. The stakeholder thinks the engineer either did not plan well or is not working efficiently. The engineer thinks the stakeholder does not understand that software estimation is inherently uncertain. Both are frustrated, and neither is entirely wrong.

The better approach is to communicate a range with confidence levels and specific risk factors:

Instead of: "It'll take about 2 weeks."

Say: "If the payment provider's sandbox API matches their 
documentation, 8 working days. That's the likely case based 
on their API quality for other endpoints. If we hit 
integration issues (their sandbox returns different error 
codes than documented, which happened on the last project 
I used their API for), 15 working days. Worst case, if we 
discover their sandbox doesn't match production behavior 
and we need to coordinate testing with their support team, 
20 working days.

I'd plan for 15 and budget for 20. I'll check in after 
day 3 when I'll have completed the initial integration and 
will know which scenario we're in."

This approach delivers three benefits. First, the stakeholder can plan around the likely case (15 days) while knowing the risk (20 days) and the best case (8 days). Second, if you finish in 10 days, you massively exceed expectations rather than merely meeting them. Third, if it takes 18 days, you already set that expectation at the outset and provided early warning at day 3. Nobody is surprised, and nobody’s trust is damaged.

The critical addition is the proactive check-in commitment: “I’ll check in after day 3.” Non-technical stakeholders do not fear that things take longer than expected. They fear surprise. Their biggest frustration is learning about a delay on the day of the deadline rather than two weeks before, because a late surprise eliminates their ability to adjust plans, communicate to their stakeholders, or consider alternatives. Proactive communication about timeline risks builds more trust than accurate estimates. An engineer who overestimates but communicates proactively is trusted more than an engineer who estimates accurately but only reports problems at the last minute.

Technical Decisions: Lead with Business Impact

When you need stakeholder buy-in for technical decisions (refactoring, infrastructure changes, technology migrations, security improvements), never lead with the technical rationale. The stakeholder does not have the context to evaluate technical arguments, so they default to skepticism (“this sounds expensive and risky”). Lead with the business impact and use the technical explanation as supporting evidence only if asked.

The wrong way

“We need to migrate from a monolithic architecture to microservices. Our current codebase has high coupling and low cohesion, which makes deployments risky because any change can affect unrelated modules. The database is becoming a bottleneck because all services share a single PostgreSQL instance with 200+ tables. We should use Kubernetes for orchestration and implement an event-driven architecture with Kafka for inter-service communication.”

The stakeholder hears: “Expensive rewrite. Risky migration. Long timeline. Seven jargon words I do not understand. Engineers want to play with new technology.”

The right way

“Right now, every time we deploy a change to the checkout flow, there is a 15% chance it breaks the inventory display because they are tangled together in the code. Last quarter, that caused 3 incidents totaling 6 hours of downtime and an estimated $42,000 in lost sales. I want to separate these two systems so we can ship checkout improvements weekly instead of monthly, without risking inventory or product display at all. The project takes 8 weeks with 2 engineers and eliminates that entire class of outage. Based on last quarter’s incident rate, it pays for itself in avoided downtime within 4 months.”

Same proposal. The second version connects every technical point to a business outcome: downtime cost, deployment velocity, risk elimination, and payback period. A stakeholder can evaluate this proposal because it is framed in their mental model.

The ROI frame

For any technical initiative that requires stakeholder approval, prepare these four numbers: cost (engineering time + any infrastructure cost), benefit (quantified: revenue protected, time saved, incidents prevented), payback period (when does the benefit exceed the cost), and risk of inaction (what happens if we do not do this). If you cannot quantify the benefit or articulate the risk of inaction, either the initiative is not important enough to prioritize, or you do not yet understand the business impact well enough to make the case. In either situation, go back and do more research before asking for approval.

Saying No (And When to Say It)

Engineers need to say no more often, but they need to do it correctly. A flat “no” without explanation damages relationships and makes you look uncooperative. A “yes” to everything makes you look unreliable when you cannot deliver on all your commitments. The correct approach is what I call the “acknowledged no with alternatives”:

  1. Acknowledge the goal. Show that you understand what they are trying to achieve. “I understand we want to launch the new pricing page before the conference next Thursday.”
  2. Explain the constraint specifically. Not vaguely (“it’s complicated”) but specifically (“The pricing page requires integration with the billing system. Our billing provider’s API changes require a security review that takes 2 weeks, and we cannot skip it because it processes credit card data.”).
  3. Offer concrete alternatives. “Here are two options. Option A: we launch a static pricing page now (1 day of work, ready by Tuesday) and add the live billing integration after the conference. Users can see prices but need to contact sales to purchase, which is fine for conference leads. Option B: we use our existing payment link as a temporary checkout, embedded in the pricing page. This takes 2 days, is ready by Wednesday, and lets users purchase immediately, but the checkout flow won’t be branded.”
  4. Let them choose. “Which approach works best for the conference goal? Or if neither is acceptable, let me know what constraint I’m missing and I’ll think of other options.”

This positions you as a problem solver, not a blocker. The stakeholder gets to make the trade-off decision with full information, which is exactly what they want. They do not want to make technical decisions (“should we use the API or a static page?”). They want to make business decisions (“is a branded checkout more important than launching 2 days earlier?”). Your job is to present the trade-offs in business terms and let them choose.

Status Updates: The 30-Second Rule

Every status update to a non-technical stakeholder should be comprehensible in 30 seconds. If they need to ask follow-up questions to understand the status, your update was too complicated or too vague. The format we use at Harbor Software for all client-facing status updates:

WHAT: [One sentence describing what you're working on]
STATUS: [On track / At risk / Blocked]
BLOCKER (if any): [What's preventing progress + who can help]
NEXT: [What will be done by when]
RISK: [Any new risk identified since last update]

Example:
WHAT: Integrating the new payment provider for European 
customers.
STATUS: At risk (was: on track).
BLOCKER: Their sandbox API returns different error codes 
than their documentation specifies. I've emailed their 
support team and escalated through our account manager 
at 2pm today.
NEXT: If I hear back by Thursday, still on track for 
next Tuesday launch. If not, I'll implement defensive 
error handling for undocumented codes, which adds 3 
working days (new target: Friday the 18th).
RISK: None new.

Notice what is not in there: no mention of HTTP status codes, API versions, error parsing logic, retry mechanisms, or the specific technical implementation of “defensive error handling.” The stakeholder does not need those details. They need to know: are we on track? If not, why not? What are you doing about it? When will it be resolved? What do you need from me? Answer those five questions and stop talking. If they want technical details, they will ask.

The most common mistake engineers make in status updates is information asymmetry in the wrong direction: they share too much technical detail and too little business context. “I’m debugging a race condition in the payment webhook handler” tells the stakeholder nothing. “Payments are occasionally being recorded twice, which could result in double charges. I’ve identified the cause, the fix is in testing, and I’ll deploy it by end of day. No customers have been affected yet because the billing system catches duplicates downstream” tells them everything they need to know.

Demos Over Documents

Non-technical stakeholders learn by seeing, not by reading specifications. A 5-minute demo of a rough prototype communicates more than a 20-page requirements document. The document describes what you plan to build. The demo shows what you are building. The difference in stakeholder comprehension and engagement is dramatic. We follow this demonstration rhythm on every project:

  1. Day 2-3: Clickable prototype or wireframe. “This is what it will look like and how users will navigate through it. Nothing works yet, but you can see the flow.”
  2. Week 1: Working prototype with hardcoded data. “This is functional but with fake data. You can click through the full flow and see how each step works.”
  3. Week 2-3: Functional system with real data on staging. “This is working with your actual data on a test environment. Try it as if you were a real user and tell me what feels wrong.”
  4. Week 4+: Production-ready with edge cases handled. “This is ready for real users. Here are the 3 things I want you to verify before we launch.”

Each demo is an opportunity for course correction that is cheap to act on. The stakeholder sees something concrete and gives concrete, actionable feedback: “This is great, but the summary should be at the top, not below the chart” or “Users need to see the total before they see the breakdown.” That feedback at day 3 costs 20 minutes to implement. The exact same feedback at week 3 costs 2 days because you have already built the backend logic, tests, and styling around the original layout.

The demo rhythm also manages expectations naturally. When a stakeholder sees the prototype evolve from wireframe to working code to polished product over 4 weeks, they develop an intuitive understanding of what is possible within a timeframe. This makes future estimation conversations much easier because they have calibrated their expectations against observed progress rather than relying on abstract timelines.

The Empathy Practice

The meta-skill behind all of the techniques above is empathy: the ability to understand what the other person cares about, what they fear, what pressures they face, and what success looks like in their world. Stakeholders are not being difficult when they ask for the wrong thing. They are solving their problem with the tools and concepts they have. An executive who asks for “a dashboard” is using the only word they know for “give me visibility into my business.” A product manager who insists on a specific feature is responding to customer feedback filtered through their understanding of what is technically possible. Your job is to understand their problem at its root and solve it with your tools and expertise.

Three practices that build this empathy muscle:

  • Shadow a stakeholder for a day. Sit in their meetings, read their emails and Slack messages (with permission), see what they actually deal with hour by hour. You will discover that they spend 30% of their time in meetings where people ask them questions they cannot answer without data, 20% of their time manually compiling reports from 4 different tools, and 50% of their time on activities that have nothing to do with your product. This context transforms how you frame every technical proposal. Instead of “we should build a data pipeline,” you say “I noticed you spend 6 hours a week pulling data from Salesforce, HubSpot, and our analytics tool to prepare your Monday report. I can automate that. You’d get the report in your inbox every Monday at 7 AM with zero manual work.”
  • Ask about their metrics. What numbers do they report to their boss? What makes a good quarter for them? What keeps them up at night? When you understand their scorecard, you can connect your work to it. An engineering improvement that “reduces p99 latency by 40ms” is abstract. The same improvement framed as “reduces cart abandonment rate by 0.3%, which is $15K/month in recovered revenue” hits their scorecard directly.
  • Read their industry. If you build software for healthcare companies, read healthcare trade publications. If you build for e-commerce, understand unit economics, CAC, LTV, and basket size. If you build for finance, understand regulatory pressures and audit requirements. Domain knowledge transforms you from a coder who takes instructions into a technical partner who contributes to strategy. The gap between those two roles is a 2-3x difference in compensation and a 10x difference in career trajectory.

The Uncomfortable Truth

The engineers who rise fastest in their careers, who get promoted to senior and staff and principal levels, who get invited into strategy meetings and trusted with the most important projects, are not the ones who write the most elegant code or know the most obscure algorithms. They are the ones who combine solid technical skill with the ability to understand business problems, communicate effectively across the technical/non-technical divide, and consistently deliver solutions that generate measurable business outcomes.

Technical excellence is table stakes. By the time you are mid-career, everyone around you is technically competent. Communication and business acumen are the multipliers that differentiate a 1x contributor from a 10x contributor. A 10x engineer who cannot communicate effectively is, in terms of organizational impact, a 1x team member: they produce excellent code that someone else has to translate into business value. A 3x engineer who can bridge the gap between technology and business is a 10x contributor because every line of code they write is aimed at the right problem, framed in terms stakeholders understand, and delivered with the context needed for the organization to capture maximum value from it.

This is not a “soft skill.” Calling it that diminishes it. It is the highest-leverage engineering skill there is. Start practicing this week. Pick one stakeholder meeting and focus entirely on understanding the business outcome they are trying to achieve, not the feature they are requesting. Ask one “why” question using the phrasings above. Frame one technical update in terms of business impact instead of technical detail. The returns compound faster than you expect, and within 6 months you will wonder how you ever operated without this skill.

Leave a comment

Explore
Drag