Expectations
The Problem
Every organisation operates on assumptions. A CISO assumes all IT services have an assigned owner. A compliance team assumes every employee has completed mandatory training. A platform team assumes all production namespaces have resource limits configured.
These assumptions are rarely written down, and when they are, nobody systematically checks whether they hold true. The gap between what people expect to be true and what is true is misalignment — and it causes compliance failures, security incidents, and operational surprises.
How WRIT Handles It
WRIT formalises these assumptions as expectations. An expectation has four components:
| Component | What It Answers | Example |
|---|---|---|
| Expector | Who holds this expectation? | The CISO |
| Partition | What is being measured? | All IT services, classified by whether they have an owner |
| Expect empty | What result means failure? | The is_false branch (services without an owner) |
| Expectee | Who is responsible for fixing it? | The service's designated owner lead |
In the DSL, this looks like:
expectation: "all_services_owned"
expector: "all_stakeholders" ? "id" = "CISO"
partition: "has_owner" of "all_it_services" of "it_service"
expect empty: "is_false"
expectee: SELF->"owner"
actions:
- "Contact GBGF leads to assign service owners"
step towards: "__CAMPAIGN__"
When evaluated, this expectation checks every IT service and classifies it:
- True — The service has an assigned owner. Expectation met.
- False — The service does not have an owner. An action is generated, directed at the person responsible.
- Unknown — The ownership data has not been collected. A question is generated, directed at the data source.
Worked Example
Consider a simple scenario with three IT services:
| Service | Owner |
|---|---|
| CRM System | Alice |
| Email Platform | (not assigned) |
| HR Portal | (data not collected) |
Evaluating the expectation "all services must have an owner":
| Service | Result | Outcome |
|---|---|---|
| CRM System | True | Expectation met. No action needed. |
| Email Platform | False | Action: "Assign an owner to Email Platform." |
| HR Portal | Unknown | Question: "Who owns HR Portal?" directed to the attestor. |
The distinction between "no owner assigned" (false — action) and "ownership data not collected" (unknown — question) is critical. They require different responses from different people.
Common Pitfalls
- Confusing false and unknown — A service with no owner is different from a service whose owner data has not been collected. The first requires assignment; the second requires data gathering.
- Expecting too broadly — An expectation should measure a specific, actionable partition branch. Expecting all five branches to behave a certain way usually means the expectation needs to be split.
- Missing the expectee — Every expectation needs someone responsible. If the expectee is unclear, the action cannot be directed to anyone useful.
What to Read Next
- Domains & Entities — How entity types and entity sets provide the vocabulary for expectations.
- Writing Expectations (DSL) — Full DSL syntax for expectations.
- Glossary: Expectation — Term definition.
WRIT Docs