Home/Thoughts
Thoughts

They Were Both Right and the Product Was Still Broken

On the class of startup failure that has no villain - and the one person whose job it is to prevent it.

I was on a dev standup this week - one of those calls where you're watching someone share their screen, walking through GitHub branches, Slack screenshots, and environment variables - and about fifteen minutes in, a thought hit me that I couldn't shake.

Both of my developers had done exactly what they were supposed to do.

One had pushed his UI fixes to his branch. Ten hours ago. Clean commits. Everything addressed. The other had made his own set of changes - big ones, core ones - and pushed to main. Also correctly. Nobody skipped a step. Nobody cut a corner. Nobody blew off their responsibility.

And that morning, we'd gotten on a call with a potential client and couldn't even demo the software. The bug was sitting right there on the screen. We came across as unqualified. The lead was dead.

Two competent developers. One broken product. Zero villains.

That's the failure mode nobody talks about.

The Coordination Layer Problem

Here's what actually happened, mechanically: Developer A had fixes. Developer B had fixes. Developer A's fixes were based on the version of the code from two weeks ago - before Developer B's changes. They weren't working from the same base. So even after both of them pushed, the code couldn't be merged cleanly, and the deployed product still had the bug.

This is not a technical problem. This is a communication problem. And more specifically, it's a founder problem.

At no point did anyone sit down and say: "Before you start working on your branch, pull B's changes from last night." That instruction - simple, obvious in hindsight - never got given. Not because my developers were incompetent. Because I hadn't built the system that makes sure that instruction happens before anyone writes a line of code.

The coordination layer. That's what was missing. And the coordination layer is always, always the founder's job.

I'm not saying this to beat myself up. I'm saying it because I see this mistake destroy early-stage products constantly, and the founder almost always blames the wrong thing. They blame the developer. They blame the tech stack. They blame bad luck. They never look at the gap between the roles - who owns making sure Role A and Role B are actually synchronized before they go execute.

Nobody Is Managing the Space Between the Jobs

Think about what a coordination layer actually is. It's not a person, necessarily. It's a system. It's a process that answers: before work starts, who checks that everyone is working from the same version of reality?

In our case, there was no process. Developer A would get feedback, work on it, push. Developer B would get feedback, work on it, push. Both acting in good faith, both executing well - but doing it in parallel without anyone confirming they were starting from the same place.

When a lead dies because the product doesn't work, the instinct is to find the person who broke it. But what if no one broke it? What if the system just never ensured it would be whole in the first place?

That's the situation I was in. And I owned it. I told my team that on the call. We had this client meeting that morning. We couldn't show the software. We're lighting leads on fire every day this bug exists. The urgency of that isn't on the developers - they're moving fast. The urgency of getting the coordination right is on me.

The Pen File That Only One Person Had

There's another layer to this that I think illustrates the problem even more sharply.

We've got a third developer - call him K - who had an injury that morning. Bike accident. He was okay enough to text, but he wasn't on the call. And it turned out that the one file we needed to actually deploy the fix - a credentials file, specific to our server instance - only K had access to it. Nobody else could generate a fresh one without him.

So even after my developer pushed clean, working code to GitHub, we couldn't deploy it. Because the key that opens the door to production was sitting on K's machine and K was at urgent care.

Again - whose fault is this? K's? He got hit by a car. Mine? Probably. Because at some point, a founder needs to look at their infrastructure and ask: what happens if the one person who has access to X is unavailable? Is there a documented backup? Is there a process for rotating credentials? Is there a second person who can generate what we need?

These are not developer questions. These are founder questions. The developers execute. The founder architects the system that makes execution resilient.

I'm not at the stage yet where I've built all of that out. That's honest. But sitting on that call, watching my developer try to explain that we couldn't push because we were waiting on an injured teammate who had the only copy of a credentials file - I made a mental note. This is on me to fix. Not him. Me.

Free Download: 7-Figure Offer Builder

Drop your email and get instant access.

By entering your email you agree to receive daily emails from Alex Berman and can unsubscribe at any time.

You're in! Here's your download:

Access Now →

What I've Learned the Hard Way About Building Products

A while back, I wrote a post-mortem about a SaaS I tried to build. A course I'd sold - took in real money from real students - and then couldn't deliver the product because I couldn't get the software to actually work. We'd get in rooms with multi-million-dollar companies who wanted what we were building, and we couldn't demo it. The software didn't function. Sound familiar?

The thing I wrote in that post-mortem that stuck with me: my weakness wasn't sales. I can close. My weakness wasn't marketing. I can generate leads. My weakness was product. Building software is like building a house - if you don't know construction, you don't know what questions to ask, you don't know when the contractor is doing it wrong, and you don't know how to set up the coordination between the electrician and the plumber so they're not undoing each other's work.

That analogy kept coming back to me on this call. Because that's exactly what coordination failure looks like when you zoom out. Developer A is the electrician. Developer B is the plumber. If nobody runs the job site, they'll both do excellent work that doesn't fit together.

The founder runs the job site. Not by writing the code. By building the process that makes sure the people writing the code are working from the same blueprint.

What "Building the Coordination Layer" Actually Looks Like

On this particular call, we ended up talking about exactly that. Not in abstract terms - in concrete ones. What does the coordination layer look like for a small dev team?

A few things we landed on:

None of these are revolutionary. But most early-stage founders don't have them. They hire good developers and assume good developers will coordinate themselves. They won't. That's not a knock on developers - it's just not their job. It's yours.

The Lead That Died That Morning

Let me make this real for a second, because abstract process talk is easy to ignore.

We had a call that morning. A prospect. They were coming in to see the product. And when we got on that call, the bug was still there. We couldn't show them what we'd built. We came across as not ready. That lead didn't convert - and it wasn't because our product is bad. It was because a coordination failure between two branches of code meant the fix was done but not deployed.

That's a real cost. Every day a bug like that sits in production while you're actively running outbound, you're not just losing one lead - you're torching every lead that comes in during that window. The outbound is working. The meeting is booked. And then the product lets you down at the moment it matters most.

If you want to run outbound the right way - and that means actually booking meetings that convert - you can grab my top 5 cold email scripts here. But understand: scripts and sequences only get you to the demo. What happens at the demo is a product problem, and product problems are coordination problems.

Need Targeted Leads?

Search unlimited B2B contacts by title, industry, location, and company size. Export to CSV instantly. $149/month, free to try.

Try the Lead Database →

This Is Why Founders Can't Just Be Salespeople

I talk a lot about cold email. I talk a lot about outbound. I've helped generate hundreds of thousands of sales meetings. And the number one thing that kills the ROI on all of that outbound work? A product that isn't ready to be demoed when the meeting shows up.

You can be the best cold emailer in the world. You can build lists using ScraperCity's B2B database, run sequences through Smartlead or Instantly, personalize at scale with Clay, and book a meeting with a decision-maker at a multi-million-dollar company. And then show up to that meeting and have your chatbot throw an error and a CSS border missing from the left side of the widget.

The meeting didn't fail because of the outbound. The outbound worked. The meeting failed because the product wasn't production-ready, and the product wasn't production-ready because nobody was managing the coordination between the people building it.

That is a founder failure. And the faster you own that, the faster you can fix it.

The Specific Bugs, and Why I'm Talking About Them

I want to be specific about what we were looking at on this call, because the specifics matter. We were doing a UI review on a chatbot widget. Things we were fixing:

These are not massive engineering failures. They're polish issues. But polish issues, when you're trying to sell the product to someone who's evaluating it for the first time, are the difference between "I trust this" and "I don't trust this." A chatbot with a missing border line and a clipped button doesn't look like a finished product. It looks like a side project.

And when you're in a meeting with a company that could be a real client, looking like a side project is a deal-killer.

My developer fixed every single one of those things on the call, in real time, fast. The technical ability was there. What hadn't been there was the system to make sure those fixes got to production before the client meeting, not after.

A Word on the "Everyone Did Their Job" Failure Mode

The reason this failure mode is so dangerous is that it doesn't generate accountability. When someone clearly screws up - ships broken code, misses a deadline, loses a file - there's a clear chain: identify, address, fix. But when everyone did their job and the outcome is still bad? Founders tend to absorb that as bad luck, or as a one-time thing, and move on without building the system that prevents the next one.

Don't do that.

When your product breaks and you can't point at a single person who made a mistake - that's actually the most important failure to analyze, because it means you have a structural gap. You have roles that are executing correctly in isolation and failing in combination. And the only fix for that is to build the layer that connects the roles. Which is, again, a founder's job.

Not a developer's job. Not a project manager's job (you probably don't have one yet). Yours.

Free Download: 7-Figure Offer Builder

Drop your email and get instant access.

By entering your email you agree to receive daily emails from Alex Berman and can unsubscribe at any time.

You're in! Here's your download:

Access Now →

What I'm Doing About It

To close the loop: here's where we landed by the end of the call.

We're setting up Trello for clean task tracking. We're implementing the daily update log - a simple living document that replaces the daily standup and gives everyone visibility into what's in progress, what's been pushed, and what's blocked. We're mapping out a deployment sign-off process so nothing goes to the client-facing environment without being verified against the current main branch. And as soon as K is back and reachable, the first thing on the agenda is getting the credentials file documented, backed up, and accessible to more than one person.

None of this is glamorous. But it's the actual work of building a company that doesn't blow client meetings.

If you want to think about growth at a more strategic level - the full picture of how to build an agency or product business that scales without everything breaking when one person is unavailable - the 7-Figure Agency Blueprint is a good place to start.

And if you're at the stage where you want to think this through with me directly - not in a blog post but on a live call - that's what Galadon Gold is for. We work through exactly this kind of problem: the operational gaps, the coordination failures, the moments where you did everything right on the sales side and the product side let you down.

The One Thing to Take From This

If you're building a product right now - SaaS, agency tech, anything with developers - ask yourself one question:

If two of your developers are both working on the same product simultaneously, is there a documented process that guarantees they're working from the same version of the code before they start?

Not in theory. Not "they probably check with each other." A documented, verified process.

If the answer is no, you have a coordination layer problem. And the next client call you blow won't be because your developers are bad. It'll be because you haven't built the system that makes good developers work together.

That system is your job. Go build it.

Ready to Book More Meetings?

Get the exact scripts, templates, and frameworks Alex uses across all his companies.

By entering your email you agree to receive daily emails from Alex Berman and can unsubscribe at any time.

You're in! Here's your download:

Access Now →