In this chapter
MiddleBrain combines two products: brAIn — knowledge from a domain and middleware — a model of application behaviour and a way to make it available to agents. I describe each separately because they answer different questions. We connected them to know what an application should do and how that relates to its code.
The two products we connected
| Product | What it contains | Which question it helps answer |
|---|---|---|
| brAIn | Domain knowledge: source materials, concepts, rules, rationales, and exceptions | What must this feature take into account to make sense in its domain? |
| Middleware | A model of application behaviour extracted from code and access to it for agents | How does the system work now, and what does the changed slice connect to? |
What does connecting knowledge with code give us?
For a new feature, we want to know what data, rules, and checks it needs and which application parts it can use. Domain knowledge helps define requirements; the code model shows what exists and where the change belongs.
For a reported defect, we compare expected behaviour from domain knowledge with what the application actually does. We do not treat code alone as proof that the result is correct. We return to source material and consult the conclusion with an expert.
I want knowledge to enter feature behaviour, not remain only in an agent’s answer. A person using the application should not have to reconstruct the expert’s whole practice to perform an action. A person developing the product also gets a concrete basis for work even if they do not yet know the domain.
What works for me today?
Middleware already works in one of our products and we are introducing it gradually to another. In the second, brAIn gives us the most today: recorded domain knowledge helps analyse features and reports. For known topics, we no longer start every expert conversation with the same questions. When checking a reported defect, we consult the conclusion with that expert.
This is still a developing solution. I am describing our experience; new cases, conflicting sources, and ambiguity need explanation from a person who knows the domain.