What is new in .NET 11, and should you move from .NET 10?
A fair tour of .NET 11 and C# 15 as released on 10 November 2026, the breaking changes to read first, and a decision guide for production teams on .NET 10.
· 7 min readWhat BDD means for the person paying for the software: agreeing what it should do in plain sentences first, then keeping those sentences as proof.

Your developers have started saying "BDD" in meetings. Perhaps it came up in a proposal, or a supplier mentioned it while describing how they test. You nodded, and now you would like to know what it is before you agree to pay for it.
It's a fair question, and the answer is less technical than the name suggests. Behaviour-driven development, or BDD, is a way of agreeing in plain sentences what the software should do before anyone builds or changes it, and then keeping those sentences as tests that prove it still does. This article explains the idea, shows one small example, and lists what to ask a supplier.
Most disappointing software starts with a sentence that two people read differently.
"Invoices over a certain value need approval." The finance director hears one thing. The developer builds another. Nobody notices until the first invoice goes through that should have been stopped, or the first one is stopped that shouldn't have been. By then the software is built and the conversation is about who misunderstood whom.
BDD moves that conversation to the start. Before building, the people who know the business and the people who build the software sit down and work through concrete examples until they agree. That way the misunderstanding turns up while it still costs a conversation.
The examples are written in a simple, fixed shape. Each one says what the situation is (Given), what happens (When) and what should result (Then).
Here is an invented, generic example for an invoice approval rule:
Feature: Invoice approval
Scenario: A large invoice needs a second approver
Given the approval limit for one person is £5,000
And an invoice for £12,000 has been entered
When the first approver approves it
Then the invoice is still waiting for a second approver
Scenario: A small invoice needs only one approver
Given the approval limit for one person is £5,000
And an invoice for £800 has been entered
When the first approver approves it
Then the invoice is ready for payment
You can read that without any technical background, and that's the point. If the finance director reads the first scenario and says "actually, over £10,000 it should go to the finance director, not another approver", the specification has just caught a misunderstanding for the price of a sentence.
The notation has a name, Gherkin, and it's used by a family of tools that began with Cucumber. There are versions for most programming languages. You don't need to learn the syntax; you need to be able to read the result.
Over time the scenarios build up into a shared vocabulary. "Approver", "ready for payment" and "waiting for a second approver" mean the same thing to the business and to the engineers, because they were agreed together and written down. The Cucumber project describes BDD as working in three steps: discovery (structured conversations using real examples), formulation (writing those examples in a form that people and computers can both read) and automation (connecting each example to the software so it can be checked).
The third step is what separates BDD from a requirements document. A requirements document is correct on the day it's written and drifts from then on. A scenario that is connected to the software is run every time the software is changed. If someone alters the approval rule and breaks the agreed behaviour, the scenario fails and the change doesn't go out.
That's what people mean by living documentation: a description of what the system does that stays in step with the system, because it's run. For anyone who has inherited software with a ten-year-old specification nobody trusts, that is a real advantage.
You may also hear "TDD", test-driven development. It's a different tool for a different reader, and both are worth having.
A team can do either on its own, but the combination is the strongest: unit tests that keep the code sound, and behaviour scenarios that keep it doing what the organisation actually asked for. Our own method for software care is specification first, then automated tests, independent review and human sign-off, and written behaviour scenarios are a natural way to hold that specification.
This is where a business reader gains most. When software changes hands, the hardest thing to recover is intent: why does it do that, and is that deliberate? The code can tell you what happens. It rarely tells you whether it was meant to.
A set of readable scenarios is a record of intent. A new engineer can read what the system is supposed to do, run the scenarios, and see which of them pass today. If you are thinking about adding tests to code nobody dares change, behaviour scenarios are a natural next step once the safety net is in place. They also help an auditor, insurer or customer who asks how you know the software does what you say it does. "Here are the agreed examples, and here is the latest run" is a good answer.
It is not free, and it doesn't suit every piece of software.
You don't need to commit to anything to find out whether this suits you. Three small things to try:
If you'd like to know where your own system stands, including whether its important rules are written down anywhere, a software health audit is a good place to start, and our software care page explains how we look after systems once they're in good order.

A fair tour of .NET 11 and C# 15 as released on 10 November 2026, the breaking changes to read first, and a decision guide for production teams on .NET 10.
· 7 min read
As of 10 November 2026, .NET 8 and .NET 9 no longer get security fixes. What has changed, what has not, and a calm 30-day plan for software on them.
· 4 min read
How a non-technical owner can decide what comes first on a product roadmap: plain criteria, simple scoring, outcome-based thinking, and saying no with reasons.
· 6 min read