Why Great Developers Keep Getting Fired for Doing What You Asked
- Belinda Anderton
- Sep 17
- 9 min read
There's a peculiar ritual in ecommerce that happens with metronomic regularity: every 12-18 months, a brand fires their development agency and hires a new one. The outgoing agency "wasn't delivering." The incoming agency promises they actually understand ecommerce. Eighteen months later, the cycle repeats.
I've watched this carousel spin for six years now, and I need to tell you something: your developers aren't the problem. Your best developers, the ones who could actually solve your coordination nightmares, are sitting in implementation meetings wondering why nobody will tell them what the warehouse team is doing, or how merchandising actually manages inventory, or what data marketing needs that they're not getting.
You're firing people for building exactly what you asked them to build, when the real problem is that you asked for the wrong thing and didn't give them enough information to tell you that.
What Great Developers Actually Want to Know
When you brief a development agency, you typically tell them the technical requirements: "We need to integrate our ESP with our POS," or "We need custom checkout functionality," or "Our analytics implementation is broken."
Here's what great developers are thinking during that briefing:
What's the merchandising team's workflow for managing product data?
How does the warehouse team currently handle inventory updates?
What reports is the finance team actually running?
Where are the manual processes happening that nobody's telling me about?
What happens when this system and that system both try to update the same data?
They're not asking these questions to be difficult. They're asking because they've built enough ecommerce systems to know that the technical problem you described isn't the actual problem. The actual problem is lurking in the coordination gaps you didn't mention because you didn't think they were relevant to "a technical project."
Great developers want more information, not less. They want to understand your operations because that's how they build things that actually work. But most brands treat this curiosity as scope creep or "getting too involved in business decisions."
The Coordination Problem Masquerading as a Technical Problem
Here's what actually happens in most development projects:
Marketing briefs the project manager on what they need. The project manager writes a spec. The spec goes to the development agency. The agency builds it. Marketing is thrilled. Merchandising discovers that the new system requires them to manually tag every product in a way that conflicts with how they've organized their catalog for the past five years. Customer service can't access the data they need. Finance's reporting breaks.
Everyone blames the developers.
But the developers built exactly what was in the spec. The spec was based on one team's incomplete understanding of a multi-team problem. The developers probably even asked questions about how other teams would interact with the system. They were told "don't worry about that" or "that's not in scope."
Your developers aren't failing to deliver. They're being set up to fail by being excluded from the conversations that would let them understand what they're actually building and why.
The Myth of the Technical Solution
Development agencies are optimizing for what they can control: clean code, scalable architecture, timely delivery. These are good things. These are necessary things. But they're also insufficient for solving your actual problem.
Because your business problem isn't "we need a custom Shopify app." Your business problem is "marketing needs attribution data that merchandising controls but doesn't know marketing needs, customer service needs order history that lives in three different systems, and finance needs revenue recognition that depends on warehouse processes nobody documented."
The agency builds exactly what you asked for. The code is beautiful. The architecture is sound. It works perfectly. And it solves nothing, because what you asked for was based on marketing's incomplete understanding of a problem that spans marketing, merchandising, warehouse operations, customer service, and finance.
What Great Developers See That You Don't
Good developers write clean code. Great developers see the coordination gaps in your operations before they write a single line.
When you tell a great developer "we need to track conversion attribution," they're already thinking:
Where does product data actually originate, and how many systems touch it before it hits the website?
When someone from merchandising "updates" a product, what systems does that touch, and in what order?
If marketing tags a product for a campaign, does that conflict with how merchandising has already categorized it?
What happens when inventory goes to zero—does the site remove the product, or keep it with an "out of stock" message, and how does that affect attribution tracking?
When finance reconciles revenue, are they using the same order timestamps as marketing's conversion tracking?
These aren't tangential questions. These are the questions that determine whether your attribution system will work or whether it will produce beautiful dashboards full of meaningless numbers.
Great developers want to know about your warehouse operations because they know that "add to cart" means nothing if the inventory system has a 15-minute delay and you're running flash sales. They want to know about your merchandising workflow because they know that any tagging system that doesn't fit into that workflow will be ignored. They want to know about your customer service processes because they know that's where all your edge cases live.
You think they're asking too many questions. They think you're not giving them enough information to do their job properly.
Why You Keep Firing Good Developers
You fire the agency. You hire a new one. You tell them about all the mistakes the last agency made. They nod sympathetically and promise they're different.
And they are different: they'll ask better questions, use different frameworks, have different opinions about architecture. But they'll run into the exact same coordination problems, because you're going to brief them the same way.
You're going to tell them what you want built. You're not going to tell them:
How your merchandising team's product taxonomy actually works
That your warehouse has a manual process for handling backorders that nobody documented
That marketing and finance define "revenue" differently and both need to be right
That customer service has been maintaining their own shadow database in Excel because the POS doesn't give them what they need
That the last three "quick fixes" created dependencies nobody mapped
The new agency will also build what you asked for without talking to merchandising. They'll implement tracking that breaks when inventory systems update. They'll create beautiful features that conflict with existing workflows. They'll deliver on time and on spec while solving the wrong problem.
Not because they're bad developers. Because you hired them to implement solutions to problems you only partially understand, and you didn't give them the information they'd need to fill in the gaps.
The Real Cost of Agency Churn
Let's talk about what this carousel actually costs you, because it's not just the agency fees.
Every agency transition means:
Knowledge loss (the outgoing agency understood your weird edge cases)
Technical debt (the new agency rebuilds rather than maintains)
Integration fragmentation (each agency makes different architectural choices)
Timeline delays (onboarding, discovery, the inevitable "why did they build it this way?")
Team demoralization (your internal team has seen this movie before)
More insidiously, each cycle reinforces the idea that the problem is external, that you just need to find the right agency, the one that "gets it." This prevents you from addressing the actual problem: your teams don't have a shared understanding of what needs to be built or why.
What Actually Works (and Why You're Probably Not Doing It)
I'm not going to tell you to stop using development agencies. Good agencies are invaluable. Great agencies can see around corners you didn't know existed. But they can only do that if you stop treating them like code monkeys and start treating them like the strategic partners they're trying to be.
Before you hire (or fire) your next development partner, try this:
Bring your developers into the room with all your teams. Not after marketing has decided what to build. Not after you've written the spec. At the beginning, when you're still figuring out what the actual problem is. Have marketing explain what they're trying to measure, have merchandising explain their workflow constraints, have customer service explain what information they need. Let your developers ask questions. Let them map the dependencies. Let them tell you which of your assumptions about "what should be easy" are wrong.
Great developers want to know what your warehouse is doing. Of course they do. The more they understand about your operations, the better they can build systems that actually work within those operations instead of against them.
Map the actual data flows before anyone writes a single line of code. Not the data flows you wish you had. The ones that exist right now, including the manual exports and the Excel files someone emails around and the Slack messages that serve as your source of truth. Your developers need to understand this reality. They're not judging you for it (every ecommerce operation has these gaps). They're trying to build something that works with your reality, not some idealized version of it.
When developers ask "how does this currently work," they're not questioning your competence. They're doing reconnaissance so they don't build something that requires you to completely restructure your operations to use it.
Let your developers tell you what won't work. This is the most important one. When a developer says "this approach is going to create maintenance problems" or "this will require manual intervention every time X happens" or "this conflicts with how your inventory system works," listen to them. They're not being difficult. They're not trying to upsell you on a bigger project. They're trying to save you from building something that will create more problems than it solves.
The developers who push back on your requirements aren't the bad ones. They're the good ones. The bad ones just build what you asked for, collect their fee, and leave you with a beautiful system that doesn't actually work in your operations.
Define success across teams, not within them. "Marketing can track attribution" is not success if it requires merchandising to manually tag products in a way that breaks their existing workflow. Success is "all teams can do their jobs better with less manual work." Your developers can help you figure out what that looks like, but only if they understand what all those jobs actually entail.
Give your development agency a seat at the strategy table. This is where most brands get it backwards. You brief the agency on what to build, they build it, and then you're surprised when it doesn't solve your problem. Good development agencies can tell you the best way to build what you need.
Great development agencies can tell you that what you think you need won't actually solve your problem, and here's what will. But they can only do that if you bring them into the conversation before you've already decided on the solution.
Your developers see patterns across implementations that you don't. They know which technical approaches create ongoing maintenance nightmares and which ones scale. They understand what's actually feasible given your existing infrastructure. If you're only using them to execute on decisions you've already made, you're paying for their worst skill and ignoring their best one.
The Uncomfortable Truth
Agency churn happens because you keep hiring developers to implement solutions to problems you haven't fully diagnosed, and then you fire them when the solutions don't work.
The developers you're firing probably knew it wouldn't work. They probably asked questions that would have revealed the gaps in your thinking. They were probably told those questions were out of scope, or that they should just focus on the technical requirements, or that they didn't need to understand the business context.
You keep hiring agencies to build technical solutions because that feels concrete and controllable. You can spec it, budget it, timeline it. Bringing developers into messy cross-functional strategy conversations feels risky. What if they don't understand the business? What if they slow things down? What if they're wrong?
But here's what I've learned watching this carousel spin: great developers are almost never wrong about what won't work. They've seen too many implementations, across too many businesses, with too many edge cases. When they tell you something will create problems, they're usually right. When they ask questions about seemingly unrelated parts of your operations, it's because they can see the dependencies you can't.
The agency churn cycle breaks when you stop treating developers as implementers and start treating them as partners who can help you understand your own coordination problems. Give them access to all your teams. Give them the full operational context. Let them ask uncomfortable questions. Let them tell you when your plan won't work.
Your next agency won't solve your coordination problems by writing better code. They'll solve them by helping you see the problems clearly enough to coordinate differently. But only if you let them.
The technical solutions get much simpler once someone actually understands what needs to be coordinated. Usually, that someone is your developer. You just have to let them do their job. P.S. I'm a great developer - and always ask the uncomfortable questions.



Comments