The Managers' Guide № 132
AI, AI, and some AI
Anthropic to developers: Claude Code makes you more productive when building SaaS apps.
Anthropic to businesses: Our AI agents make SaaS apps obsolete.
Dare Obasanjo
Considering Spec Driven Development
- 🔄 Historical Context Matters — The author draws parallels between modern "spec-driven development" and Big Design Up Front (BDUF) from the 80s and 90s, which was largely abandoned as ineffective
- 🧪 TDD/BDD Are Already Spec-Driven — Test-Driven Development and Behavior-Driven Development are forms of specification-driven work, but with tight feedback loops and iterative approaches rather than upfront design
- ⚖️ The Key Distinction Is Feedback Loops — The difference between good and bad spec-driven approaches lies in whether they're done incrementally with constant verification or as massive upfront exercises
- 🤖 AI Agents Change The Game — Modern LLMs and development tools might make spec-driven development more viable than in previous decades, especially with humans staying in the loop for validation
- 🛡️ Safety Nets Are Essential — Success depends on having proper testing frameworks, code quality tools (SonarQube, Veracode), and validation mechanisms to catch generated code problems
- 🎯 Generate Tests, Not Just Code — The most promising approach seems to be using specs to generate tests first, then validating those tests with humans before generating implementation code
- 🔍 Visual Components Need Special Handling — UI elements can be generated from wireframes and validated in tools like Storybook, maintaining the human-in-the-loop principle
- 💡 Pragmatic Experimentation — The author advocates for trying new approaches while maintaining proven disciplines, recognizing that the current ecosystem of tools makes this worth exploring despite past failures
The Work Moved: What the AI Coding Debate Actually Agrees On
- 🔄 The work shifted, not disappeared. AI made code generation faster, but the effort moved upstream — into design, specs, guardrails, and reducing ambiguity. Organizations that didn't follow are stuck feeling like everything is "faster and worse at the same time."
- 📊 The productivity paradox is stark. 99% of devs report saving 10+ hours/week, yet workloads didn't shrink. Teams merged 98% more PRs but review times ballooned 91%. METR found experienced devs were 19% slower with AI — yet believed they were faster.
- 🧠 "Comprehension debt" is the silent killer. The risk isn't bad code — it's confident code in the wrong direction while teams understand less and less of their own systems. Review quietly becomes rubber-stamping, and no one notices until it's too late.
- 🐴 Watch for the "reverse centaur" trap. When a developer merges AI code they don't understand because tests passed and they're under pressure to ship, they're no longer overseeing the machine — they're providing the accountability surface for its mistakes.
- 🏗️ Guardrails first, agents second. The most bullish practitioner in the piece — running 20–30 agents simultaneously — built everything on tests, linting, CI gates, and type checking. Without that infrastructure, AI just amplifies your existing dysfunction at unprecedented speed.
- 🧩 Complexity is the human moat. AI nails a self-contained RingBuffer but falls apart on a simple CRM. The dividing line isn't "simple vs. hard" — it's interconnected concerns requiring multiple contexts. The key question for leaders: where does real complexity live, and do humans still own it?
The third golden age of software engineering
- 🏛️ Three golden ages defined — Grady Booch identifies software engineering's evolution through three distinct eras: algorithms (1940s-1970s), object-oriented abstractions (1970s-2000s), and systems (2000s-present)
- 🔄 History repeats with existential crises — Every major technological shift in software engineering has triggered fears of obsolescence, from compilers to higher-level languages, yet the profession has always evolved and grown
- 👶 Remarkably young field — Software engineering is barely 70 years old — the term "digital" wasn't coined until the late 1940s and "software" until the 1950s, providing perspective on current AI anxieties
- 🎯 AI as abstraction evolution, not replacement — Current AI coding tools represent another layer of abstraction similar to the shift from assembly to Fortran, where "your tools are changing, but your problems are not"
- 📚 Pattern recognition limitations — AI tools like Cursor and Claude excel at automating known patterns, especially web CRUD systems, but are trained mostly on problems "we have seen served over and over again"
- 🏗️ Infrastructure roles face disruption — Software delivery pipelines are identified as "low hanging fruit for automation" where AI agents can provide clear economic value, requiring professionals to re-skill
- 🧠 Deep foundations become critical — As the field accelerates, engineers without strong foundational knowledge and understanding of complex systems will struggle to keep pace
- 🌟 From friction to imagination — AI removes development constraints and costs, allowing engineers to redirect attention "upon imagination to build things that simply were not possible before"
- 🚀 Systems thinking over individual programming — The shift is moving from programs and apps to managing complex systems, requiring engineers who understand both technical and human forces at scale
- ✨ Time to soar, not fear — Grady's call to action: view this transformation as an opportunity to "leap and soar" rather than fall into an abyss of obsolescence
The Five Levels: from Spicy Autocomplete to the Dark Factory
- 🚗 Automation progression follows familiar patterns — Author maps AI coding evolution to NHTSA's five levels of driving automation, providing a framework to understand where teams are and where they're headed
- ⚡ Level 0-1: Still typing speed — Manual coding with occasional AI assistance for discrete tasks like unit tests or docstrings, but fundamentally unchanged workflow at human typing pace
- 🛣️ Level 2: The productivity sweet spot — Most "AI-native" developers live here, pairing with AI like a colleague in flow state, feeling more productive than ever but still fundamentally coding
- 👨💼 Level 3: From coder to manager — Developer becomes "human in the loop" reviewing endless diffs while AI does the senior development work — "for many people, this feels like things got worse"
- 📋 Level 4: Becoming the dreaded PM — No longer coding or managing development, just writing specs, arguing about requirements, and checking if tests pass after 12-hour cycles
- 🏭 Level 5: The Dark Factory — Complete automation where small teams (under 5 people) turn specs directly into software without human coding intervention — "nearly unbelievable" but likely the future
- 💰 Technical deflation reality check — Teams need to move beyond "typing faster" to actually capitalize on dramatically dropping code costs, but most struggle to progress past Level 2
Running 1:1s for Engineers
- 🎯 The real purpose of 1:1s — Coaching (regular feedback), holding regular time (catch issues early), and alignment (career growth + company goals) — not just status updates that could be Slack messages
- 📅 Schedule consistency is sacred — Weekly, same time, same day, treat as highest priority and resist moving them — the respect you show equals the respect you get back
- 📝 Use shared documentation — Notion doc with date headers and People/Product/Process sections, write things down visibly during the meeting to create accountability and show you're taking their work seriously
- 👥 "People" section starter: "How are things going with the team?" — Look for team dynamics and interpersonal issues; red flags include repeatedly mentioning same person negatively or vague "some people" complaints
- ⚙️ "Product" section: "What have you been working on last week?" — High-level work focus, not micromanaging tickets; red flag is consistently having nothing concrete to report
- 🔧 "Process" section: "Anything we can do to make you more productive or happier?" — Catch-all for tools, work-life balance, systemic issues; also good place for company updates and planting seeds about changes
- 🚀 Career conversations should feel special — Don't force career talk every week; when you deviate from routine for career-focused sessions, the change makes it feel important
- 🔒 Confidentiality and respect are non-negotiable — Never share notes with others, don't gossip about what people tell you, and don't mention things from one person's 1:1 to anyone else
- 📊 Follow up async, not during meetings — If you're constantly firefighting in 1:1s, you have upstream problems; use the shared doc for reminders and accountability
- 🔄 Routines create space for important stuff — Having a consistent script frees mental energy to actually listen and support people rather than figuring out what to discuss
That’s all for this week’s edition
I hope you liked it, and you’ve learned something — if you did, don’t forget to give a thumbs-up, add your thoughts as comments, and share this issue with your friends and network.
See you all next week 👋
Oh, and if someone forwarded this email to you, sign up if you found it useful 👇