Read more of this story at Slashdot.
Read more of this story at Slashdot.
Boris Cherny, who runs Claude Code, told Business Insider in May that the phrase āvibe codingā had started to annoy him, and that he’d gone looking for a better one. He’s not the only one who’s annoyed.
The term itself doesnāt actually annoy me, though. I think vibe coding is a really good name: It describes a specific way of using AI tools, and in development work, names that mean something specific are important. What annoys me is when people confuse vibe coding, intentionally or otherwise, with any kind of work where you write code with AI. That confusion points to a deeper problem: Weāve been using a lot of different names for a lot of different things, and we arenāt always precise about which is which. I think we need to fix that, and thatās what this article is about: making the case that the name weāre looking for is āAI-driven developmentā (or AIDD).
The case for this name comes from the familiar āX-driven developmentā pattern, because I think it really fits here. Software engineering already has a pattern for naming ways of working it takes seriously: test-driven development, behavior-driven development, domain-driven design. The name tells you what the work is organized around, and the suffix carries an expectation along with it: Thereās a discipline attached, with standards, not just a style. Put āAIā in that slot and the name does the same job. AI-driven development says that building software has reorganized itself around AI, and it says it in the vocabulary we already use for the disciplines we hold ourselves to. It puts this way of working in the same family as test-driven and behavior-driven development, and thatās exactly the company it should be keeping.
Honestly, AI-driven development is a name thatās been sitting in plain sight, and Iāve been using it in my own writing for a while. It covers everything we do when we build software with AI, and I do mean everything. Vibe coding is just one part of how we work with AI to build software. Thereās also figuring out what to build, writing it down, checking what comes back, and standing behind what ships, and AI is in the middle of all of that now. Whatever we call this way of working, it has to cover the development, not just the coding. Now, Iām obviously not a neutral party here, but I also donāt really have anything to gain; naming is really important, and I think we need a good name for what it is that weāre doing.
But Iāll admit up front that the name has a problem baked into it, and I want to deal with that head on. I recently ran into Addy Osmani at Foo Camp, and ran the AI-driven development name by him. He pointed out that building software with AI is really a range of practices that runs from vibe coding at one end to agentic engineering at the other. That rang true with me right away. It also highlighted the real problem Iām trying to solve, because it means Iām proposing one name for a whole range of very different ways of working. Can one name honestly cover ways of working that different? It took me a while to work that out, and Iāll come back to it at the end.
I feel like the name AI-driven development really makes sense once you can see whatās wrong with the names weāve got, so Iāll start there.
Before I pick these names apart, itās worth saying why any of this matters. Naming sits at the core of programming: A thing isnāt real until you can refer to it, and referring to things is most of what we do. Thereās an old line, usually credited to the Netscape engineer Phil Karlton, that there are only two hard things in computer science: cache invalidation and naming things. Itās stuck around for decades because itās true (well, maybe one or two other hard things have emerged since then, but itās the thought that counts). We take naming a variable seriously, so we should take naming our whole discipline at least as seriously, because a poorly chosen name sticks.
So let me take the names weāve been using one at a time: what each one actually names, what it gets right, and what it leaves out.
Vibe coding is an exploratory, prompt-first approach to software development where developers rapidly prompt, get code, and iterate. Andrej Karpathy, one of the founders of OpenAI, coined the term, which I think is really useful because it describes the way a lot of developers first work with AI and code.
Now, let me be clear about something: Iām in favor of vibe coding, and I teach it as a really effectiveāand, more importantly, creative!āway to generate a lot of code. But developers who rely entirely on vibe coding lose touch with their code because they let the AI make all of the decisions: not just specific technical decisions, but also about the architecture and the overall direction of the project. When that happens, they often end up building something that isnāt quite what they intended. When you have to create a product that needs to do a really specific thing (which describes most professional software development), relying exclusively on vibe coding can leave you with a product that doesnāt actually meet its requirements. Thatās part of the reason I developed the Sens-AI Framework, which teaches developers when to shift their approach away from vibe coding, step back to do more research, and apply more critical thinking to what the AI is producing.
This is where the confusion I opened with does its damage (and Iām not sure whether itās what bothered Cherny): When vibe coding gets used as the name for the whole job, developers will often assume that itās absolutely fine to trust the AI to take over, and that whatever comes out of the AI is the end of the project. In other words, the name sets the bar: If the work is just vibes, then vibes are good enough, and āgood enoughā is how you end up with a pile of code nobody actually checked before shipping. So I consider vibe coding a useful technique, but it falls short as an entire way of working.
Vibe coding also has a built-in limit, and I learned it the way most lessons stick, by getting burned. AI is very good at writing code that looks right and isnāt. I once vibe-coded a little bus-tracker app for the B69 near me in Park Slope (I told that story in āAI Code Review Only Catches Half of Your Bugsā), and it worked on the first try, except the AI had picked the wrong stop ID and I sat there watching it predict a bus going the opposite direction. The code was correct. It did the wrong thing. Vibe coding got me a working app in minutes, and it had nothing to say about whether the app was right. That part was on me.
These two names belong in the same section because one basically grew out of the other. They describe the same job, getting the right work out of the model, at two very different scales.
Prompt engineering came first, and for a while it was a very big deal. It was seen as the core AI skill, and more than that, it even became its own job title: Companies posted prompt-engineer roles with eye-popping salaries, training courses appeared everywhere, and plenty of people reoriented their careers around it. The premise made sense because how you ask an AI for something changes what you get back. And specifically for people using AI to generate code, when you ask for code in a vague way, you donāt get vague code: you get code that does the wrong thing, because the AI fills in every blank you left, and itās unlikely to fill them all in the way you meant. That isnāt hallucination. Itās the AI generating exactly what we asked it to. Give the model context about your project, constraints it has to respect, and a clear description of the behavior you need, and you get something you can actually use. Prompt engineering is the name for doing all of that deliberately.
But while prompt engineering is a real skill, people are no longer enamored with the name, precisely because of the mode of work that it implies: To most people, engineering a prompt means doing one request at a time. When the AI responds to the prompt, you evaluate the response and write the next one. That one-request-at-a-time style is exactly whatās changing about the whole way we interact with AI, and itās probably why many AI engineers have grown to dislike the term. Peter Steinberger, the PSPDFKit founder who went on to build the open source agent OpenClaw, posted a line that traveled fast: You shouldnāt be prompting your coding agents anymore, you should be designing loops that prompt your agents. That was a shot straight at prompt engineering.
Whatās pushing developers past one-request-at-a-time prompting is the sheer number of agents they can now run. About a month after complaining about the term āvibe coding,ā Cherny told Fortune that he doesnāt write code by hand anymore, and that on a busy day heās directing thousands of agents, or tens of thousands, at once. You canāt type prompts fast enough to direct ten thousand agents.
Loop engineering is the name Addy Osmani gave the new skill that Cherny and Steinberger were pointing at: He wrote up the pattern and gave it a real architecture. Instead of typing each instruction yourself, you build the system that produces the instructions: a loop that dispatches work to your agents, checks what comes back, and feeds them the next task over and over, without you in the middle of every exchange. The relationship between the two names is simple. Loop engineering is prompt engineering at scale; the prompts donāt go away, they just stop being typed by you. Itās tempting to oversell that because a well-built loop really does run with very little human intervention. But somebody still has to decide what ārightā looks like, and the loop canāt do that part.
I think loop engineering is a good name and an accurate one. Designing the loop that drives the agent is a real skill, and we need a word for it. But it names the machinery, and machinery has a failure mode: Put an AI agent in a loop with nothing in it that can tell it no, and it generates, checks its own work, decides the work is good, and generates more. Thereās no outside signal, so it ends up agreeing with itself on repeat. A well-designed loop makes agents productive. It canāt tell you whether all that machinery turns out working software or another confident pile of slop, and I want a name that covers that part too.
Cherny said that he asked Claude for a replacement for āvibe codingā and got āagentic engineering,ā and while that didnāt settle the issue, it was an interesting response from Claude. The term didnāt come from Claude, though: Andrej Karpathy had coined it a few months earlier, almost exactly a year after he coined vibe coding, when he declared his own earlier term obsolete. Thatās how fast these names are moving. The guy who named vibe coding has already replaced it.
Agentic engineering is an accurate name for what it describes: youāre not writing the code yourself, youāre directing the agents that do. Itās also a bit of a mouthful, and it isnāt immediately obvious to someone who doesnāt already know what it refers to. A number of people have told me they donāt particularly like it. I find it perfectly fine, and it does a solid job of describing that kind of work. You could even argue that loop engineering is a form of agentic engineering, and that prompt engineering is technically a simpler form of it. But vibe coding really isnāt, because itās not engineering at all. Thatās one more reason I think we need an umbrella name thatās friendly, descriptive, and easily recognizable.
The term also points at something real about where this work is heading: Agentic engineering is turning engineers into managers.
Many years ago I worked for a manager who didnāt care, at all, about the quality of the code we shipped. He wanted it out the door the moment it looked even remotely viable, and he was notorious for telling us to stop testing and ship. He used to ask why we had to wait two weeks for the testers to finish, and Iād tell him it takes time to test code. Then heād ask whether we could just cut some of the tests, and Iād ask him, āWhich part of the software are you okay shipping broken?ā
That attitude came back to bite us more than once. One time we sent an entire feature out to the client basically untested, and a bug went straight to users. The same manager who kept telling us to skip the testing then called a long, miserable meeting to demand to know why a bug had gotten out. Iāll spare you the full drama, which mostly came down to a QA lead getting pressured to lie about what happened and pin it back on the development team. He didnāt care about quality, but he cared enormously about making sure the blame for a quality problem landed on someone who wasnāt him.
The reason Iām telling a story that happened years before AI could write a line of code is the blame. The important part of that story, and the reason it belongs in this article, is how accountability got managed: My managerās whole system depended on having someone to pin a quality problem on. Directing agents puts you in that managerās position, responsible for a teamās output, except the blame-shifting move is gone.
Itās really tempting to think of a fleet of AI agents as your team. You can even give one of them the QA lead role. But when a broken feature goes out, you canāt blame the QA agent, because āwell, the AI screwed upā isnāt available to you: Youāre responsible for the AI. You decided how much checking the work got before it went out, and the client with the broken feature isnāt going to accept āthe AI wrote that partā as an answer, any more than pinning our untested feature on a QA lead fixed anything for our users. Cherny can manage tens of thousands of agents, but he canāt hand the responsibility for what they ship down to the agents, because an agent canāt hold it. Directing a swarm is a management job, and a manager owns the teamās output. The accountability doesnāt transfer, because at the end of the line thereās no one left to transfer it to.
Blame is worth dwelling on, because accountability is the part of this work that no name on the range captures. The loop-and-agent model works, but it only works with somebody making decisions about what right is. Agentic engineering describes the agents and the engineering just fine, but somebody still has to own what the agents ship, and thatās the part I want the umbrella name to carry.
Thereās one more name I want to cover, and itās the one with the oldest roots: spec-driven development. The name means pretty much what it says: You start by writing a spec, a description of what the software needs to do, along with things like acceptance criteria and tests, and the work isnāt done until the code actually does what the spec says. It comes from the same family as test-driven and behavior-driven development, where you write the tests first and the code has to make them pass.
Spec-driven development got a serious promotion when AI made generating code nearly free (although if youāre a CIO staring at your token bill, you might disagree, possibly with some extremely salty language). When code is cheap to generate, most of the cost of building software moves to checking whether what got generated is right. The AI fills the generate step, the verification decides what survives, and a human owns the verification.
It also picks up where prompt engineering leaves off. A while back I wrote that prompt engineering is really requirements engineering, because a good prompt is mostly a clear description of what the software has to do. Spec-driven development is where that idea was always headed: Write the requirement down before the AI generates, and the work has a standard to meet from the start.
So thatās the whole range, and every name on it is doing honest work. Whether AI-driven development is a good name for all of it comes down to whether itās describing something real: an actual discipline, with actual practices, and a person whoās on the hook for the result. The rest of this article is about that discipline.
So how do these approaches actually play out when youāre building something real? For me, wherever the work lands on the range, it comes down to a few moves I keep coming back to.
Write the spec or the contract before the generation, not after. When the agent has something concrete to satisfy, acceptance criteria, a typed interface, a failing test, the work has a standard to meet. When it doesnāt, the AI decides for itself what done looks like.
Put a second opinion in the process. I run code review across multiple models, because they fail differently, and a finding one model is sure about is often one the others missed entirely. A reviewer gives the work something that can say no.
Give your defects a shared vocabulary. The Quality Playbook leans on the difference between code thatās wrong against the spec, code thatās correct but does the wrong thing, and behavior nobody specified at all. Those are different failures with different fixes, and you canāt verify against a standard you canāt name. This is old quality-engineering ground, and Iāve written enough about the software crisis and applying quality engineering to AI coding that Iām on board with taking old ideas and bringing them back. One of the best of those old ideas comes from Joseph Juran, one of the founders of quality engineering: Quality runs in a chain from what the user needs all the way to what the product does, and every link in that chain is a place verification has to happen.
And keep a human in the judgment seat. The Sens-AI habits Iāve written about are mostly about fault-finding: looking at what the AI produced and asking whatās wrong with it, going down a level and then another to find the root, instead of trusting it because it ran. That habit is the part of the discipline only a person can supply, and itās the hardest part to automate, which is why it matters most.
Skip all of that and you get the thing thatās giving open source maintainers everywhere heartburn: what the Wall Street Journal now calls āvibe slop,ā confident, finished-looking output with nothing underneath it. Slop is exactly what generation produces when nothing in the process can push back.
Now I can come back to the question I left hanging at the beginning: Can one name honestly cover ways of working that different? AI-driven development is an umbrella term, and any name that broad comes with a requirement it has to satisfy before people will accept it, because a name that blindly covers everything names nothing. A name that truly covers everything is another matter. I sat with that requirement for a while, because itās real, and because the specific names donāt face it. Vibe coding names one way of working. Loop engineering names another. An umbrella over both of them, plus everything in between, had better be able to say what stays the same underneath it.
What stays the same is that somebody owns the result. When I vibe-coded my bus tracker, nobody was going to catch that wrong stop ID but me. When Cherny directs tens of thousands of agents, nobody owns what they ship but him. The verification changes with the stakes. A throwaway prototype gets my eyeballs and a shrug, and production code gets specs, reviews, defect taxonomies, the whole quality-engineering playbook I keep writing about. How much checking the work needs is a decision you make over and over, project by project, sometimes hour by hour. Who stands behind the work is not a decision you get to make. Itās there at every point on the range.
Look at how much of that range the names we already have cover, and what each one actually names:
Every one of those is real, and every one of them names a piece of the work. What none of them names is the whole thing the pieces add up to, and thatās the job AI-driven development does: Itās the umbrella over all five. The name doesnāt pick a spot on the range; it names the thing thatās true everywhere on it: the AI generates, and a human owns the result.
Thatās also what makes the name likely to last (assuming, of course, that Iām able to convince people to start using it, which I hope I can, because I think itās a good term). Vibe coding, loop engineering, and agentic engineering all describe how this works right now, and the machinery is changing monthly. Some of the pieces under the umbrella will get replaced, and the new pieces will get names of their own. The umbrella wonāt have to change when they do, because the thing it names isnāt the machinery. The ā-driven developmentā names have already shown they age well: test-driven development has meant the same thing for more than twenty years.
Agentic engineering is real, and so is loop engineering; if youāre directing agents, learn them both. Vibe coding is real too, and Iāll keep teaching it. AI-driven development is the name for the whole thing, and it earns its ā-drivenā the same way test-driven and behavior-driven development did: thereās a discipline attached, and somebody owns the result. AI made generating code almost free. It didnāt make being responsible for the code free, and being responsible for it is still the job.
A rogue OpenAI agent allegedly hacks Hugging Face, the React Compiler lands in Rust, and a fresh Rust full-stack framework ships. Scott, Wes, and CJ also dig into Anthropicās $1.5B copyright settlement, Claude Opus 5, and the campaign to kill the cookie banner.
Syntax: X Instagram Tiktok LinkedIn Threads
Wes: X Instagram Tiktok LinkedIn Threads
Scott: X Instagram Tiktok LinkedIn Threads
Randy: X Instagram YouTube Threads
Read the full Show Notes and search through the world's largest audio library on Agile and Scrum directly on the Scrum Master Toolbox Podcast website: http://bit.ly/SMTP_ShowNotes.
Ā
"I didn't really acknowledge that the team is important, or what a team needs. I thought I was only focusing on getting the job done." - Havva Sevay
Ā
When Havva took her first Scrum Master job, she knew the framework cold and she was highly motivated. So she did exactly what the framework told her to doāand failed. Frustrated, she kept asking herself the same question: why did I fail? I really did my best. The turning point came from a mentor who asked her something she hadn't considered: did you ever think about what the team needed? In this episode, Havva walks us through the slow, honest work of realizing she had been judging instead of listening, pushing instead of stepping back. Her mentor introduced her to active listeningāwriting down what people actually said, not her interpretation of itāand to the discipline of silence. Becoming a better Scrum Master, she learned, is an everyday process that takes its time. We also explore how she stayed grounded: taking courses outside her bubble, networking, and learning from other people's experience.
Ā
Self-reflection Question: When you face a team problem, are you observing what is actually happening, or are you already judging and rushing to the next step?
Ā
[The Scrum Master Toolbox Podcast Recommends]
Angela thought she was just there to coach a team. But now, she's caught in the middle of a corporate espionage drama that could make or break the future of digital banking. Can she help the team regain their mojo and outwit their rivals, or will the competition crush their ambitions? As alliances shift and the pressure builds, one thing becomes clear: this isn't just about the productāit's about the people.
Ā
šØ Will Angela's coaching be enough? Find out in Shift: From Product to Peopleāthe gripping story of high-stakes innovation and corporate intrigue.
Ā
Ā
[The Scrum Master Toolbox Podcast Recommends]
Ā
About Havva Sevay
Ā
Havva is a people-focused organizational development expert with a Master's in Business Administration and certification as a Scrum Master. She empowers teams and leaders through agile methodologies, modern leadership, and a strong feedback culture, fostering psychological safety and collaboration. Passionate about HR initiatives, Havva shapes people strategies, enhances employee experience, and drives inclusive, high-performing workplaces built on trust and engagement.
Ā
You can link with Havva Sevay on LinkedIn.
In this episode, James and Frank dive deep into GitHub's biggest release in years: Stacked Pull Requests. Learn how this long-awaited feature finally solves the challenge of managing massive, complex code changes by breaking them into smaller, independently reviewable chunks while maintaining dependenciesāplus discover how Merge Queues work alongside this innovation to streamline workflows in high-velocity projects.
āā Review Us āā
Machine transcription available on http://mergeconflict.fm
Links:
I am posting this here in the hopes that a Microsoft MVP or employee may see it, verify the issue, and report it to the right people at Microsoft.
We have a fairly significant LOB application with the front-end hosted in Access and the back-end hosted in SharePoint Online lists. This application has been working well for several years.
Sometime in the past few weeks (last known good date was June 23), a change in either Access or SharePoint (or maybe the Windows OneDrive sync client) seems to have broken integration between the products.
When the modern cache format is enabled (the default), all SharePoint calculated columns unexpectedly show errors, as shown here (in a fresh database where I imported just one list from our site as a test):
Naturally, this completely borks the application, with VB code throwing errors at startup.
Using the legacy cache format, or disabling caching altogether, seems to restore functionality--(though this would come at a cost to performance):
But there is a major caveat to this. Other functionality is apparently broken. We have straightforward update queries, for example, the hang indefinitely in these modes, rendering this an unacceptable work-around.
I have been able to replicate this on several different PCs. Also, on several different SharePoint sites in our tenant.
Currently, this is blocking work for us, and we are hoping to see it resolved as soon as possible. If anyone with knowledge of the right people at Microsoft to call attention to this, we would be grateful for any help.
I am using the Access forum because the last time I tried to get help from SharePoint Online support for an Access-related query issue using SP list data, they had no idea what I was talking about.
(Also, for Access database experts: please do not suggest that we avoid using calculated columns in SharePoint lists. This is a hybrid app with most of our users working with data strictly through SharePoint, and SharePoint views do not support the same features as queries do in Access. Making use of these SharePoint features are essential for these users.)
Our Access version: MicrosoftĀ® AccessĀ® for Microsoft 365 MSO (Version 2607 Build 16.0.20228.20124) 64-bit
Thank you in advance for any help.