← Graph

Development with axioms

talk 24 connections

Martin Gamsjaeger's wroclove.rb 2019 talk setting the stage for Markus Schirp's Mutant talk that follows. Presents the axiom-driven development process used by a small fully-remote team that communicates only in writing (no standups, no video). Motivation: minimize bugs, minimize downtime, minimize time spent thinking about simple things, learn as a team every day, share responsibility, satisfy clients. Defines vocabulary: axiom (universally-accepted truth), assumption (derived from axioms), transformation (any commit-level update to system artifacts), regression (anything putting the system in a worse state, not just a bug), atomic (cannot be made smaller), check (tests = automated checks, reviews = manual checks, flag = failed manual check). Core axioms: clients hate bugs; clients love progress; redundant semantics provide no value (the master axiom everything boils down to); inconsistency provides no value; human attention varies over time; automation reduces need for human attention; required semantics change over time; tools aren't perfect but we can imagine a perfect one (so reviewers should flag everything a perfect tool would flag); you can never fully know the client's required semantics; your mental model of the project is probably wrong. Derived assumptions: well-defined process increases team performance; automated checks preferred over reviews; push constraints down as deep as possible (into the DB with check constraints, constraint triggers); reject invalid input as early as possible; never self-censor on reviews. Introduces five commit transformations with a guideline priority order: remove, fix, refactor, change, add — plus synonyms (move, rename, upgrade, downgrade). Commit messages must start with one of these verbs or CI rejects them. Priority is a guideline tie-broken by functional dependencies; refactorings are the only lookahead transformation (justified by enabling the next transformation). Enforced constraints: redundant semantics must be eliminated; test coverage must not regress; known bugs take priority; every commit must be an improvement, atomic, pass all checks, and be independently deployable (continuous deployment, zero downtime on merge); every deploy must be reviewer-approved; everything a perfect tool would flag must be flagged; no 'just in case' code. Q&A covers move vs refactoring, the years-long evolution of the process with Markus Schirp and team leader Dan Kubb, and distinguishing fix/change from remove/add under the atomic-commit discipline.

type
talk
year
2019
talk Development with axioms
about
The talk presents the methodology of axiom-driven development.
talk Development with axioms
about
Introduces the five commit transformations and their priority.
talk Development with axioms
about
Atomic Commit concept
Atomicity is a core principle enforced on every commit.
talk Development with axioms
about
Defines regression broadly as anything leaving the system in a worse state.
talk Development with axioms
about
Defines the team's vocabulary for automated tests, manual reviews and flags.
talk Development with axioms
about
Frames Schirp's upcoming mutation-testing talk as how to remove redundant semantics automatically.
talk Development with axioms
about
Mutant tool
Points to Mutant as the tool that helps remove redundant semantics in Ruby, teed up for Schirp's follow-on talk.
asked_at
Development with axioms talk
Audience question during Q&A.
asked_at
Development with axioms talk
Audience question during Q&A.
asked_at
Development with axioms talk
Audience question during Q&A.
authored
Development with axioms talk
Gamsjaeger delivered this talk.
from_talk
Development with axioms talk
Master axiom articulated in the talk.
from_talk
Development with axioms talk
Axiom articulated in the talk, focused on style.
from_talk
Development with axioms talk
Core enforced constraint described in the talk.
from_talk
Development with axioms talk
Recommendation derived from the 'mental model will change' axiom.
from_talk
Development with axioms talk
Complementary recommendation from the talk.
from_talk
Development with axioms talk
Review-discipline recommendation stated in the talk.
from_talk
Development with axioms talk
Review-discipline recommendation derived from the 'imagine a perfect tool' axiom.
from_talk
Development with axioms talk
CI constraint described in the talk.
talk Development with axioms
presented_at
Talk given at wroclove.rb 2019, immediately before Schirp's Mutant talk.
talk Development with axioms
related_to
Gamsjaeger explicitly sets the stage for Schirp's Mutant talk, which follows immediately.
related_to
Development with axioms talk
Schirp opens by referencing 'Martin's talk' on automatable checks and frames mutation testing as a 'derived check' building on it.
person Markus Schirp
related_to
Development with axioms talk
Schirp is Gamsjaeger's close friend and teammate and a key co-author of the axiom-driven process described in the talk.
person Dan Kubb
related_to
Development with axioms talk
Gamsjaeger credits team leader Dan Kubb as a driving force behind the years-long refinement of the axiom-driven process.

Provenance

Created
2026-04-17 16:17 seed
Read by
29 extractions