jonnifyagile agents
jonnify / Agile Agent Workflow / A1 · Why / A1.06 / A1.06.2 · Zero to production

A1.06 · Meet the project: Portal · dive 2

Zero to production

Zero is an empty repository plus the one given branded-id store. Production is a deployed, supervised, multi-surface, observable Portal — reached only when every required rung has shipped.

Production is not “the code is written.” It is the set of properties a running system must have for students to depend on it: deployed, supervised, multi-surface, observable, reliable. Switch the view on the right to see what zero has and lacks, and what production demands.

Zero vs production · switch the endpoint

the Portal at this endpoint empty repository the branded-id store generate/1 · decode/1 has: one component, one surface (a test call) lacks: deployed · supervised · multi-surface · observable production is a set of properties, not a moment
Zero: an empty repository plus the one given branded-id store. It has one component and one surface (a test call). It lacks every production property — not deployed, not supervised, one surface only, not observable.

What “zero” is and what “production” demands

Zero is the smallest honest starting point: an empty repository and the single given component — the branded-id store. The store mints and decodes a typed id, and that is the whole system. Nothing is deployed, nothing is supervised, nothing is observed, and there is one surface: a function call inside a test.

Production is a deployed, supervised, multi-surface Portal: the store, an event-sourced engine behind one facade, a Phoenix web app, a Telegram bot, and a student dashboard. The word names a set of properties a running system must have, not a moment the code reaches. To call the Portal production, it must be deployed where students reach it, supervised so a failed part is restarted, multi-surface so it is reachable on more than one surface, observable so a failure is visible, and reliable as a consequence of the first four.

zero
An empty repository plus the one given branded-id store. One component, one surface (a test call); no deployment, supervision, or observability.
production
A deployed, supervised, multi-surface, observable Portal: store, engine behind one facade, Phoenix web, Telegram bot, dashboard.
property
A condition a running system must hold — deployed, supervised, multi-surface, observable, reliable — not a line of code that exists.
the gap
The distance from zero to production, measured as the required properties still absent. Closed rung by rung (the next section).

The OTP supervision that makes “supervised” true is taught by the companion /elixir course; this course cites it, it does not re-teach it.

The gap is closed rung by rung

The distance from zero to production is not crossed in one leap. Each production property is its own thin rung — deploy the store, supervise it, add the web surface, add the bot, add the dashboard, make each observable — and production is reached only when every required rung has shipped. A single attempt to deliver the whole platform at once is the big-bang failure mode (A1.01.2): the work is unprovable until the end, so it is unprovable for too long.

Step through the rungs to fill the production-readiness bar. The readout shows how many rungs have shipped, what fraction that is, the next rung still owed, and whether production is reached. Production turns on at the last rung, not part-way: an almost-deployed, half-supervised Portal is not in production.

Production-readiness · ship the required rungs

0 / 6
production-readiness · six required rungs deploy supervise web bot dashboard observable not in production · 0 of 6 rungs shipped
0 of 6 required rungs shipped (0%). Next rung: deploy the store. Production is reached only when all 6 have shipped — the gap is crossed by thin increments, not one leap.

Production turns on at the last rung, not part-way — the gap from zero is crossed by thin increments, and an almost-deployed Portal is not in production.

Zero to production on the Portal

At zero, the only thing that works is the store, exercised in a test. It mints a typed id and decodes it back — one component, one surface, no deployment. Every production property is absent.

# Zero: the whole system is the branded-id store, called in a test.
id = Portal.ID.generate(:user)        # => "USR0NbAb1xcFCy"
decoded = Portal.ID.decode(id)
decoded.type                          # => :user
decoded.timestamp                     # the embedded mint time

# Production: the store is one of five components — engine behind one facade,
# Phoenix web, Telegram bot, dashboard — deployed, supervised, observable.
# Each property is its own rung; production is reached when every rung has shipped.

To reach production, each property is added as its own thin rung. Deploy the store; supervise it so a failed part is restarted; add the Phoenix web surface; add the Telegram bot; add the student dashboard; make each surface observable. Production is reached when every required rung has shipped — the same thin-increment discipline the whole course argues, run on one project end to end.

The principle

Define the finish line as properties a running system must hold, then close the distance with thin increments. Production is reached only when every required property is present — not in one leap.

On the Portal

Zero is the empty repo plus the store; production is the deployed, supervised, multi-surface, observable Portal — and each property (deploy, supervise, web, bot, dashboard, observable) is its own rung.

Production is a set of properties, not a moment; the gap from zero is crossed rung by rung, and the Portal carries that crossing end to end.

Recap — two endpoints, one thin-increment crossing

Zero is an empty repository plus the one given branded-id store: one component, one surface, no deployment. Production is a deployed, supervised, multi-surface, observable Portal — the store, the engine behind one facade, the Phoenix web app, the Telegram bot, and the dashboard. Production names a set of properties, not a moment, and the gap between the endpoints is closed rung by rung, reached only when every required rung has shipped. The next dive isolates the unit of that crossing: one rung at a time.

Next in A1.06: A1.06.3 · One rung at a time — the single thin increment that moves the Portal one step toward production, built and proven before the next.

References

Primary sources for production as a set of properties reached by thin increments, and where it connects in the course.

Sources

Related in this course