Skip to content
arrow_backBack to Insights
Essay· 10 min read

The Brand Moved. The Code Didn't.

Every company eventually repositions. Marketing updates the website in days. Sales starts pitching the new story in weeks. The codebase is still what it was yesterday. Here's how to close the gap between what your company says it is and what the software actually does.

The board meeting ended at 4 PM on a Thursday. By Friday morning, the company was "enterprise-ready."

Not the software. The narrative. The CEO updated the investor deck. Marketing rewrote the homepage. Sales started qualifying larger accounts. The analyst briefing got rescheduled to emphasize the new positioning. Within two weeks, every external-facing surface of the company reflected the new identity.

The codebase didn't get the memo. It was still a product built for teams of five, with shared admin credentials, no audit logging, and a single-tenant architecture that stored everything in one Postgres instance. The distance between what the company claimed to be and what the software actually did was enormous, invisible, and growing every day the sales team kept pitching.

This is not a hypothetical. If you've worked in software for more than a few years, you've lived through some version of it. "We're AI-first now." "We're privacy-first." "We're a platform, not a tool." The words change. The pattern doesn't.

Everyone agrees. Nobody agrees on what.

Five teams hear enterprise-ready and each interprets it as a different set of requirements

The gap is bad. What's worse is that every team interprets the new identity through their own lens, and nobody realizes they're building toward different destinations.

When the CEO says "we're enterprise-ready," here's what each team hears:

Sales hears SSO and audit logs, because that's what comes up on procurement checklists. Product hears multi-tenancy and role-based access, because that's what large customers request in discovery calls. Engineering hears rate limiting, SLAs, and infrastructure hardening, because that's what breaks when you go from 50 concurrent users to 5,000. Compliance hears SOC 2 Type II and data residency, because that's what the security questionnaire asks. The CEO hears all of the above, delivered by next quarter, because the board is expecting enterprise revenue by Q3.

None of these interpretations are wrong. Each team is seeing a real slice of what "enterprise-ready" requires. The problem is that nobody wrote down the full picture in a form that reconciles these perspectives. There's no shared document that says "enterprise-ready means these specific capabilities, in this priority order, with these constraints." There's a slide deck and a Slack announcement and a lot of enthusiasm.

Six months later, the software is half-enterprise-ready in five different directions and fully enterprise-ready in none. SSO works but only for SAML, not OIDC. Multi-tenancy exists at the application layer but not the database layer. Audit logging covers API calls but not data exports. Three teams built overlapping permission systems because nobody coordinated on RBAC. The security questionnaire is 60% complete, and the remaining 40% requires architectural changes nobody scoped.

The synthesis problem

Traditionally, closing this gap required a specific kind of person: a VP of Engineering or a principal architect who could sit in a room with sales, product, engineering, compliance, and the CEO, absorb all five interpretations, and synthesize them into a single coherent roadmap.

That synthesis process was brutal. It happened in planning meetings, in hallway conversations, in late-night Slack threads. The architect would produce a roadmap. Teams would negotiate scope. Tickets would be filed. Estimates would be wrong. Dependencies would surface mid-sprint. Six months in, you'd discover that the data residency requirement conflicted with the multi-tenancy approach two teams had already built, and one of them had to start over.

This is the pattern that a Deepak Gupta analysis of SaaS enterprise transitions documented: companies that go through an enterprise readiness transition typically dedicate roughly 30% of engineering resources for a full year before seeing meaningful enterprise revenue. The return justifies it (average contract values increase 5x, sales cycles shorten by 40%), but the investment is a year of engineering bandwidth spent reconciling a new identity against an existing codebase. Manually.

The manual synthesis fails in predictable ways. The architect becomes a bottleneck, because every team needs their attention and there aren't enough hours. The roadmap captures what was known at planning time, but requirements shift as the sales team learns what enterprise buyers actually need. Three months into execution, the roadmap is stale and the architect is spending more time renegotiating scope than making decisions.

McKinsey found that 70% of the software powering Fortune 500 companies was developed 20 or more years ago. Those companies have been through multiple repositionings. The code carries the sediment of every identity the company has ever claimed to be, and none of those identities were formally declared or fully reconciled.

The gap has a shape. You just can't see it.

Here's what's frustrating: the gap between declared identity and actual implementation is knowable. It's not ambiguous. It's not a matter of opinion. Either the endpoints require authentication or they don't. Either the data stores encrypt at rest or they don't. Either the API responses include audit logging or they don't.

But nobody can see the gap, because there's no declared identity to diff against. The "enterprise-ready" goal lives in slide decks, OKRs, Jira epics, and people's heads. It's scattered across a dozen artifacts that don't compose into a single queryable truth. When the VP of Eng asks "how far are we from enterprise-ready?" the answer is always a feeling, never a number.

The 2025 DORA Report found the same structural problem at the individual level: AI coding tools boost individual output (21% more tasks completed, 98% more pull requests merged), but organizational delivery metrics stay flat. The report describes this as "localized pockets of productivity lost to downstream chaos." Each developer moves faster. The organization doesn't move at all, because nobody can see the whole picture, and local optimizations don't compose into organizational progress.

A repositioning intensifies this. Teams sprint in parallel, each interpreting the new identity through their own context. Individual velocity goes up. Organizational coherence goes down. The faster each team moves, the faster the interpretations diverge.

What changes with a declared identity

Now consider a different approach. Instead of a slide deck and a Slack announcement, the repositioning becomes a set of specific, declared constraints.

"All customer-facing endpoints require authentication." "All data stores handling PII require encryption at rest." "All API responses require structured audit logging." "Multi-tenancy is a first-class architectural concern; no service may assume a single-tenant data model." "Role-based access control follows a single permission model across all services."

These are not aspirational statements. They are identity mutations: changes to the declared definition of what the software is and what it must honor. They're specific enough that you can check whether the code satisfies them. They're shared across every team, so sales, product, engineering, and compliance are all reading the same constraints.

This is the DNA layer in its most practical form. Not an abstract architecture diagram. A version-controlled, machine-readable declaration of what the software should be, updated to reflect the repositioning.

The diff becomes a number

The enterprise-ready delta measured as a dashboard showing alignment percentages across auth, encryption, logging, and multi-tenancy

The moment you declare the identity, the gap gets a shape.

200 customer-facing endpoints, 47 don't require authentication. 12 data stores handling PII, 3 aren't encrypted at rest. 85 API responses, 29 don't include audit logging. 4 services assume a single-tenant data model. 3 separate permission implementations, none of which match the declared RBAC model.

That's not a feeling. It's a delta. Leadership can see it. Engineering can prioritize it. The board presentation can include it. The sales team can give honest timelines because the timeline is a function of how fast you close a measurable gap, not how optimistic the project manager is feeling.

Prioritizing the delta becomes a planning discipline. Which gaps carry regulatory deadlines? Which ones block the largest enterprise deals? Which ones are cheap to close and which require architectural changes? The identity layer gives you the denominator that traditional roadmaps never have: the total scope of the repositioning, expressed as a diff between declared identity and current implementation.

Token spend replaces headcount

In the traditional model, closing the gap between your stated identity and your actual software is a headcount problem. You need engineers to audit the code, plan the changes, write the fixes, review each other's fixes, and verify nothing broke. The enterprise readiness playbook says 30% of engineering for a year. For a 50-person engineering team, that's 15 engineers doing nothing but catching up to a slide deck.

With a declared identity layer that agents can read, closing the gap becomes a function of token spend and agent coaching. The identity layer declares the constraints. Background agents scan the codebase, find every file and function that doesn't comply, and start generating changes. CI agents validate every incoming change against the declared identity. The gap closes continuously, not in sprints.

You don't need to hire 15 more engineers to "become enterprise-ready." You need to declare what enterprise-ready means, specifically and machine-readably, and allocate tokens to agents that reconcile the code against the declaration. The speed of convergence is tunable. Allocate more tokens, close the gap faster. The direction is shared because every agent reads the same identity.

This doesn't mean zero engineers. Someone has to review the agent-generated changes. Someone has to catch the cases where a constraint conflicts with an existing architectural decision. Someone has to decide that the audit logging requirement doesn't apply to health-check endpoints. The human role shifts from writing the code to coaching the agents, deciding which diffs matter, and resolving the ambiguity that the identity layer can't.

The human part is still the hard part

The identity layer doesn't make the hard decisions. A human still has to decide whether "enterprise-ready" means SOC 2 Type II or just SOC 2 Type I. Whether data residency outranks multi-tenancy when you can't do both in Q3. Whether the CEO hears that "all of the above by next quarter" is three quarters of work, not one.

Those decisions are the actual work of a repositioning. They're the conversations that happen in rooms where sales, product, engineering, and compliance have to argue about trade-offs until they reach a resolution. The identity layer doesn't replace those conversations. It encodes the outcomes. Once the decision is made, the propagation is measurable and continuous. The constraint gets declared. Agents propagate it. The delta becomes visible. Progress is tracked.

What changes is the cost of indecision. Today, a deferred decision sits in a backlog and nobody notices for months. With a declared identity, a missing constraint is a visible gap in the delta. The VP of Eng can point to it: "We haven't decided on data residency yet. That means 4 services remain unreconciled against the enterprise identity, and every week we defer, those services get further from where they need to be." The identity layer makes inaction visible. That alone changes the speed of decision-making.

The repositioning that doesn't end

Every company repositions more than once. "Enterprise-ready" becomes "AI-first" becomes "platform" becomes "privacy-first." Each repositioning is a new set of identity mutations. Each one creates a new delta between what the company says it is and what the code does.

In the traditional model, each repositioning is a new multi-quarter project. New roadmap, new planning sessions, new tickets, new bottleneck on the architect who has to synthesize again. The cost compounds because the code still carries the sediment of every previous repositioning, constraints that were half-implemented, patterns that were adopted by some services and not others.

With a declared identity layer, each repositioning is an evolution of the declaration. You don't start from scratch. The identity already encodes what the software is. The new repositioning adds, modifies, or removes constraints. Agents diff the updated identity against the code and show you the new delta. The infrastructure for closing the gap already exists. You're extending a system, not starting a project.

The teams that build this infrastructure after the first repositioning will handle the second one in a fraction of the time. The teams that don't will keep spending 30% of engineering for a year, every time the board changes the story.

The article you send after the board meeting

If you're a CTO or VP of Eng reading this, you probably recognize the moment. The board meeting just happened. The new positioning is locked. Marketing is already moving. Your CEO is excited. Your inbox is full of Slack threads where people are interpreting the new identity in seven different directions.

You have two options. Option one: absorb all the interpretations yourself, synthesize a roadmap over the next month, and spend the next year managing a scattered, manual effort to catch the code up to the narrative. You've done this before. You know how it ends.

Option two: declare the new identity. Write down what "enterprise-ready" actually means in specific, checkable constraints. Make it the same document that every team reads. Let agents diff the code against it and show you exactly how far you are. Close the gap continuously instead of quarterly. Know the number when the CEO asks.

Your company will reposition again. The gap between what the brand says and what the code does will reopen. The question is whether you have the infrastructure to see it, measure it, and close it, or whether you spend another year catching up to a slide deck.


The identity layer makes repositioning measurable. If the gap between what your company says and what your software does is the problem keeping you up at night, we'd like to hear from you.

terminal

The ribo.dev Team

Building the identity layer for software.

We use cookies to understand how you use ribo.dev and improve your experience.

Learn more in our Cookie Policy