For decades, software development has been organized around a simple assumption: writing software is the hardest part of building software.
That assumption shaped nearly everything else. It shaped how projects were planned. How requirements were documented. How teams were structured. How work moved from product managers to designers, from designers to developers, and from developers to QA. It shaped how organizations thought about risk, governance, estimation, and delivery.
In many ways, the Software Development Lifecycle was designed around the economics of implementation. When writing software is expensive, it makes sense to spend significant time trying to ensure you're building the right thing before engineers begin writing code.
For years, that was a reasonable model. Today, one of its foundational assumptions is beginning to change.
Over the last decade, we've helped organizations modernize commerce platforms, build enterprise design systems, launch new digital products, and more recently, deliver AI-powered applications. From working with companies like Nike, Hims & Hers, Staples, Roche, and The North Face to rebuilding our own engineering practice around AI, one observation keeps surfacing:
The most expensive part of software development is becoming less about writing code, and more about everything surrounding it.
That doesn't mean coding no longer matters. It means the economics of software development are changing. And when the economics change, the operating model should too.
Faster Implementation Doesn't Automatically Mean Faster Delivery
Developers can now generate working prototypes in hours instead of days. They can refactor large sections of code, generate tests, explain unfamiliar systems, and move through implementation much faster than was possible only a few years ago.
If implementation was truly the primary constraint, we'd expect software delivery to accelerate at roughly the same pace.
But for many organizations, that isn't what's happening. Roadmaps still slip. Cross-functional alignment still takes time. Architecture decisions still require discussion. Reviews, governance, validation, deployment, and organizational coordination continue to shape how quickly ideas become production software.
In other words, software delivery remains complex even when writing code becomes dramatically easier.
The question isn't whether implementation has become faster. It clearly has. The more interesting question is why faster implementation hasn't translated into equally dramatic improvements in overall delivery. The answer may be that we've been measuring the wrong bottleneck.
For years, we treated implementation as the scarce resource. Today, implementation is becoming abundant. The scarce resource is increasingly clarity. Not clarity about how to write the code, but clarity about what should be built, why it matters, and whether it's solving the right problem in the first place.
For decades, we've invested enormous amounts of time, money, and process into optimizing the most expensive part of software development: writing code.
But what happens when writing code is no longer the most expensive part?
If the economics of building software change, shouldn't the way we build software change too? Most engineering teams are trying to use AI to accelerate a process that was designed before AI existed.
The real opportunity isn't to speed up the old process. It's to redesign it.
Software Delivery Has Always Been a System
Writing code has never existed in isolation.
Before implementation begins, teams need to understand the problem they're solving. They align stakeholders, make architectural decisions, define outcomes, prioritize competing work, and determine what success looks like.
After implementation, software still needs to be reviewed, tested, validated, deployed, monitored, and improved.
These activities aren't new. They've always been there.
For years, however, implementation consumed such a large proportion of the overall effort that these surrounding activities often felt secondary. As implementation becomes less expensive, those surrounding activities naturally become more visible. The bottleneck hasn't disappeared. It has moved. That's an important distinction.
Improving one part of a system doesn't automatically improve the performance of the entire system. In fact, accelerating one stage often reveals where the real constraints have been all along.
This is true in almost every complex system. Expanding a highway doesn't eliminate traffic; it simply moves congestion to the next interchange. Speeding up a factory doesn't increase output if the loading dock can't keep up. Software development is no different.
Implementation hasn't eliminated the bottleneck. It's simply moved it somewhere we weren't paying enough attention to before.
We've Seen This Pattern Before
This isn't the first time software engineering has gone through a shift like this.
Higher-level programming languages reduced the need to write machine code. Frameworks eliminated repetitive implementation work. Cloud platforms changed how infrastructure was provisioned and managed. Continuous integration and deployment reduced the cost of releasing software.
Every meaningful advance removed one constraint while exposing another.
Today's advances represent another step in that progression. They don't eliminate software development. They change where engineering effort creates the most value.
One of the easiest mistakes to make during a technological shift is assuming the new technology changes the work. More often, it changes where the work happens.
The Work That Still Determines Success
One of the lessons we've learned across hundreds of delivery engagements is that successful software projects rarely succeed because a team writes code faster.
Staples didn't reduce new product launch timelines from more than six months to under two months simply because developers typed faster. The transformation required changes to architecture, delivery practices, team workflows, and the way product and engineering collaborated.
When we built Nike's AI-powered shopping assistant, the initial proof of concept was delivered rapidly and the production system followed shortly after. But the speed wasn't the result of generating code alone. It came from aligning on the problem early, iterating with stakeholders, making architectural decisions quickly, and building governance into the system from the beginning.
Those projects reinforce the same idea. Implementation matters. But implementation alone rarely determines how quickly meaningful software reaches production.
In fact, the faster implementation becomes, the more every upstream decision gets amplified. A vague requirement that once wasted a week of engineering time can now generate hundreds of lines of perfectly correct code for the wrong problem.
Technology doesn't remove ambiguity. It scales it.
The Questions Worth Asking Are Changing
Much of today's conversation focuses on implementation. Which model writes better code? Which coding assistant saves the most time? How much more productive can developers become?
They're useful questions.
But they all assume that implementation remains the center of software development.
As implementation becomes increasingly efficient, a different set of questions begins to emerge.
How should teams decide what to build? How should humans and increasingly capable systems coordinate throughout delivery? How should software be validated? How should engineering organizations manage increasing amounts of generated code without increasing complexity?
These questions don't replace implementation. They become increasingly important because implementation is no longer the dominant constraint.
Perhaps that's the biggest shift of all. We're moving from an era where software development was organized around producing code to one where it's increasingly organized around producing understanding.
Beyond Coding
Every generation of software engineering inherits assumptions from the generation before it.
Many of today's delivery processes were designed for a world where writing software was the slowest, most expensive part of building software.
That world is changing. The organizations that benefit most won't simply adopt better coding tools. They'll recognize that a shift in the cost of implementation creates an opportunity to rethink the entire software development lifecycle. That's a much bigger conversation than coding. And it's one we believe the industry is only beginning to have.
If implementation is no longer the primary constraint, then what should software development be organized around instead?
That's the question we're exploring next.
Continue the Conversation
On August 20, we'll be taking this discussion further in our live webinar, Beyond Coding: Rethinking the Software Lifecycle for the AI Era.
We'll explore why many of today's software development practices were designed for a world where implementation was the primary constraint, and what replaces them now that assumption is beginning to change.
We'll also share how we're thinking about concepts like intent-driven development, semantic context, continuous validation, and AI-native software delivery, drawing on both our own engineering practice and the work we've done with organizations building modern software at scale.
If you're an engineering leader, architect, founder, or developer trying to understand what comes after AI coding assistants, we'd love to have you join us.






