Domain experts
Domain experts are the subject-matter experts of a business – the people who deeply understand the domain that a piece of software is intended to automate or support, but who are not necessarily software engineers themselves. They might be underwriters in an insurance system, clinicians in a healthcare system, or warehouse managers in a logistics system.
Domain experts are central to domain-driven design, where close, continuous collaboration between domain experts and technical experts is treated as a prerequisite for building an accurate domain model. The model is "discovered" through conversation with domain experts, not handed down from a requirements document written in isolation.
This collaboration also underpins the ubiquitous language – a shared vocabulary, agreed with domain experts, that is used consistently in conversation, documentation, and code, so that the terms developers use to name things map directly onto the terms the business already uses.
Domain experts are not the same as end users, although the two roles sometimes overlap. An end user interacts with the finished software. A domain expert understands the rules, exceptions, and nuances of the business process the software is modeling, whether or not they ever touch the software themselves.