What Comes After TDD and BDD? Introducing Context Driven Development (CDD)
Every few years, a new practice reshapes how we build software. Some ideas stick because they help us work better together.
Test Driven Development (TDD) made testing the first step, so we could catch problems early and design better code. It paid off by reducing the cost of defects found late in the process.
Behavior Driven Development (BDD) gave us a shared language for what the system should do, keeping product and engineering aligned. It helped avoid expensive rework by catching misunderstandings before they reached the build stage.
Both practices worked because they made critical thinking visible earlier, and they reduced waste in the process.
Today, we’re facing a new shift.
AI is in the loop. We’re writing, reviewing, and reasoning with tools that depend on understanding why the work exists, not just what it does. At the same time, teams are moving faster than ever, and traditional documentation struggles to keep up.
We need a way to keep our assumptions, constraints, and decisions close to the code. Something structured, lightweight, and version controlled. Something that helps people and tools stay aligned as the work evolves.
It’s the same idea behind Connected Understanding, the first principle of the Connected Engineering Method: build shared understanding before solving the problem.
Now we need to bring that principle back into the codebase and make it part of how we work.
I’m calling this Context Driven Development (CDD).
What is CDD?
Context Driven Development is the practice of creating structured, in-repo documentation, but that’s only where it starts.
The goal is to give everyone involved in building software a shared, version-controlled source of truth. When context is clear, current, and close to the code, engineers, product managers, QA, and AI tools all benefit.
It’s about keeping everyone aligned as the work evolves.
- For engineers, that means understanding the problem before writing the solution.
- For product, it means being part of the technical conversation, not just reacting to the outcome.
- For QA, it means testing against intent, not just requirements.
- And for AI assistants, it means making suggestions that reflect how the system is supposed to work, not just how it happens to be written.
This isn’t about duplicating Jira tickets or writing documentation no one reads. It’s about capturing the assumptions, constraints, dependencies, and decisions that shape the work and keeping that context available as the code changes.
If the Connected Engineering Method is about building shared understanding before jumping into solutions, then Context Driven Development brings that understanding into the technical workflow where it can do real work.
It turns human insight into a durable part of the system. It lives in the repo, moves with the code, and stays available for the next decision, the next contributor, or the next tool in the loop.
Why Now?
Modern AI tools like Cursor and Copilot work best when they understand the intent behind your code. They’re not just autocomplete. They are trying to reason through your decisions.
But without context, they hallucinate.
Without structure, they guess.
Without a clear signal, they lose the thread.
Context Driven Development helps prevent that.
It keeps the reasoning close to the work, version controlled and ready to use. Not just by your teammates, but by the tools that are building with you.
What Comes Next
In the next post, I’ll show you what it looks like to implement Context Driven Development in practice. We’ll use a real-world example from an earlier blog on AI hallucinations and customer support coaching.
If you’ve read that piece, you’ll remember we broke down a repeatable pattern to help language models stay grounded in source material, validated by human judgment, and designed for feedback.
Next, we’ll take that concept and build out the supporting documentation as if we were applying CDD from the start. We’ll show where the problem statement lives, how decisions and constraints are captured, and how the context stays available for both humans and AI.
Until then, I’d love to hear from you:
Is your team already feeling the need for this shift?
Are you writing your docs for humans, for tools, or for both?
Want to learn more? Stay tuned, or follow along at connectedengineeringmethod.com