Last month, I built a complete microservice in a single afternoon. Not a prototype. Not a proof-of-concept. A production-grade service with authentication, rate limiting, PostgreSQL integration, full test coverage, OpenAPI docs, and a CI/CD pipeline. Containerized, deployed, monitoring configured. The kind of thing that would have taken my team two to three sprints eighteen months ago.
I didn’t write most of the code. I wrote the plan.
And I think that moment—sitting there watching Claude Code churn through my architecture doc, implementing exactly what I’d specified while I reviewed each module—was the exact moment I realized the industry has already changed. We just haven’t processed it yet.
The Numbers Don’t Lie (But They Do Confuse)
Let me lay out the landscape, because it’s genuinely contradictory right now:
Anthropic—the company behind Claude, valued at $380 billion as of this week—published a study showing that AI-assisted coding “doesn’t show significant efficiency gains” and may impair developers’ understanding of their own codebases. Meanwhile, Y Combinator reported that 25% of startups in its Winter 2025 batch had codebases that were 95% AI-generated. Indian IT stocks lost $50 billion in market cap in February 2026 alone on fears that AI is replacing outsourced development. GPT-5.3 Codex just launched. Gemini 3 Deep Think can reason through multi-file architectural changes.
How do you reconcile “no efficiency gains” with “$50 billion in market value evaporating because AI is too efficient”?
The answer is embarrassingly simple: the tool isn’t the bottleneck. The plan is.
Key insight: AI doesn’t make bad plans faster. It makes good plans executable at near-zero marginal cost. The developers who aren’t seeing gains are the ones prompting without planning. The ones seeing 10x gains are the ones who spend 80% of their time on architecture, specs, and constraints—and 20% on execution.
The Death of Implementation Cost
I want to be precise about what’s happening, because the hype cycle makes everyone either a zealot or a denier. Here’s what I’m actually observing in my consulting work:
The cost of translating a clear specification into working code is approaching zero.
Not the cost of software. Not the cost of good software. The cost of the implementation step—the part where you take a well-defined plan and turn it into lines of code that compile and pass tests.
This is a critical distinction. Building software involves roughly five layers:
- Understanding the problem — What are we actually solving? For whom? What are the constraints?
- Designing the solution — Architecture, data models, API contracts, security boundaries, failure modes
- Implementing the code — Translating the design into working software
- Validating correctness — Testing, security review, performance profiling
- Operating in production — Deployment, monitoring, incident response, iteration
AI has made layer 3 nearly free. It has made modest improvements to layers 4 and 5. It has done almost nothing for layers 1 and 2.
And that’s the punchline: layers 1 and 2 are where the actual value lives. They always were. We just used to pretend that “senior engineer” meant “person who writes code faster.” It never did. It meant “person who knows what to build and how to structure it.”
Welcome to the Plan-Driven World
Here’s what my workflow looks like now, and I’m seeing similar patterns emerge across every competent team I work with:
Phase 1: The Specification (60-70% of total time)
Before I write a single prompt, I write a plan. Not a Jira ticket with three bullet points. A real specification:
## Service: Rate Limiter
### Purpose
Protect downstream APIs from abuse while allowing legitimate burst traffic.
### Architecture Decisions
- Token bucket algorithm (not sliding window — we need burst tolerance)
- Redis-backed (shared state across pods)
- Per-user AND per-endpoint limits
- Graceful degradation: if Redis is down, allow traffic (fail-open)
with local in-memory fallback
### Security Requirements
- No rate limit info in error responses (prevents enumeration)
- Admin override via signed JWT (not API key)
- Audit log for all limit changes
### API Contract
POST /api/v1/check-limit
Request: { "user_id": string, "endpoint": string, "weight": int }
Response: { "allowed": bool, "remaining": int, "reset_at": ISO8601 }
### Failure Modes
1. Redis connection lost → fall back to local cache, alert ops
2. Clock skew between pods → use Redis TIME, not local clock
3. Memory pressure → evict oldest buckets first (LRU)
### Non-Requirements
- We do NOT need distributed rate limiting across regions (yet)
- We do NOT need real-time dashboard (batch analytics is fine)
- We do NOT need webhook notifications on limit breach
That spec took me 45 minutes. Notice what it includes: architecture decisions with reasoning, security requirements, failure modes, and explicitly stated non-requirements. The non-requirements are just as important—they prevent the AI from over-engineering things you don’t need.
Phase 2: AI Implementation (10-15% of total time)
I feed the spec to Claude Code. Within minutes, I have a working implementation. Not perfect—but structurally correct. The architecture matches. The API contract matches. The failure modes are handled.
Phase 3: Review, Harden, Ship (20-25% of total time)
This is where my 12 years of experience actually matter. I review every security boundary. I stress-test the failure modes. I look for the things AI consistently gets wrong—auth edge cases, CORS configurations, input validation. I add the monitoring that the AI forgot about because monitoring isn’t in most training data.
Security note: The review phase is non-negotiable. I wrote extensively about why vibe coding is a security nightmare. The plan-driven approach works precisely because the plan includes security requirements that the AI must follow. Without the plan, AI defaults to insecure patterns. With the plan, you can verify compliance.
📚 Continue Reading
Sign in with your Google or Facebook account to read the full article.
It takes just 2 seconds!
Already have an account? Log in here

Leave a Reply