Acceptances as proof

Given, When, Then, checked on every platform. The promise behind each screen, and the gaps between platforms.

An acceptance is a testable promise written the classic way: Given a context, When something happens, Then this is true. It hangs off the screens and flows it covers, so every view carries the promises that define "done" for it.

Each acceptance has a column per platform. That's where the truth shows up: the matrix lines up every promise against web, iOS, Android and friends, and the parity gaps jump out. No more "it's shipped" when it's shipped on one platform out of three.

Once a view is covered by acceptances, its delivery is read from them, not from a hand-set field. Rollups become acceptance-aware: a flow is only as live as the promises inside it.

And you don't have to tick boxes by hand. When a pull request fulfils an acceptance, it can move that acceptance forward on the right platform, so the graph keeps pace with the code.

Journal