Guides  /  Rollout and delivery

What does discovery find in an existing system?

Answer

Discovery finds what an existing system does, from its documents, its code, its production behaviour and the people who run it. Every fact is recorded as a finding with the evidence behind it, and a person confirms each finding before anything is built on it.

Akka Specify builds a specification only from confirmed findings. Every requirement cites the finding it rests on, so every line of the specification rests on evidence.

The mechanism

Discovery reads the sources and runs the system.

Discovery gathers everything that says what the system should do: user requirements, the support tickets of past years, an analysis of peers and rivals, and the existing system itself. For an existing system, the sources include its documents and spreadsheets, its code, its production behaviour and the people who run it.

A probe is a check that runs the original system and records what it does. Probes find the routes and the data, the services the system calls, and how it behaves over a sequence of calls, over time and across the range of an input. A fact a probe exercised is stronger than a fact read in the code, and each finding records which kind it is.

What each finding records

Each finding says how strongly it is known.

InspectedThe fact was read in the source, such as a rate table or a line of code.
DocumentedThe fact comes from a document or from a person who runs the system.
ExercisedA probe ran the system and observed the fact, and the finding names the probe.
UnresolvableNo source settles the fact, so an owner decides it.
What happens next

Conflicts between the sources become decisions an owner signs.

Analysis lines the sources up and lists every place they disagree, such as a document and production applying two rules in a different order. Each conflict becomes a decision with an owner and a date, signed before any code is written.

The confirmed findings and the signed decisions feed the specification. The original system then becomes the answer key that the rebuild is checked against on every build.

Questions

Related questions.

Who confirms a finding?

A person who knows the system confirms each finding. A finding stays observed until it is confirmed, and the specification cannot rest on it before then.

Does discovery need access to production?

Discovery can read the source alone, run a copy of the system, or compare the original with a running rebuild. Each finding records which of these produced it.

Is discovery only for existing systems?

Discovery runs for a new idea too. Discovery for a new idea reads the user requirements, past support tickets and an analysis of peers and rivals, which suggests capabilities that make sense for the enterprise.

On Akka. Discovery, findings, probes and owner decisions are capabilities of Akka Specify.