Semantic Anchors — Complete Reference

About Semantic Anchors

Two-hour live coding session with Johannes Rabauer and Ralf D. Müller (May 2026). Read Johannes' session summary on rabauer.dev.

What are Semantic Anchors?

Semantic anchors are well-defined terms, methodologies, and frameworks that serve as reference points when communicating with Large Language Models (LLMs). They act as shared vocabulary that triggers specific, contextually rich knowledge domains within an LLM’s training data.

Think of them as shortcuts to rich context - instead of explaining a complex methodology from scratch, you can invoke a semantic anchor and the LLM will activate its entire knowledge base about that concept.

Others have named the same idea. Matt Pocock calls them leading words: he contributes the principle and its reach, this catalog the curated list. Related Work & External Validation quotes his definition.

Example

Instead of saying:

"Write tests before writing code, use mocks to isolate dependencies, and design from the outside in."

You can say:

"Use TDD, London School approach."

The LLM understands this activates:

  • Mock-heavy testing methodology

  • Outside-in development approach

  • Interaction-based verification

  • The teachings of Steve Freeman and Nat Pryce

  • Designing through collaboration tests first

Why Use Semantic Anchors?

🎯 Precision

Semantic anchors provide unambiguous communication. When you reference "SOLID Principles," both you and the LLM understand exactly which five principles you mean.

🧠 Depth

A single semantic anchor can activate dozens of related concepts. "Domain-Driven Design" brings in bounded contexts, ubiquitous language, aggregates, value objects, and much more.

⚡ Efficiency

Instead of writing lengthy explanations, you can reference established methodologies that the LLM already knows deeply.

🔄 Consistency

Different people using the same semantic anchor will get similar, predictable results from the LLM, because the anchor refers to well-documented concepts.

Quality Criteria

Not every term makes a good semantic anchor. We maintain high quality standards:

Inclusion means precision, not endorsement. The catalog is a lexicon: an anchor’s presence means the term works as a precise pointer to a dense, well-documented concept — not that we recommend the practice. Where a method is contested or its current edition has drifted away from the training-data prior, the anchor says so in a Criticism or Current Status section with named, linked sources.

Precise

References a specific, established body of knowledge with clear boundaries.

✅ "Hexagonal Architecture" (specific architectural pattern)

❌ "Good architecture" (vague, subjective)

Rich

Activates multiple interconnected concepts, not just a single instruction.

✅ "Behavior-Driven Development" (scenarios, Gherkin, living documentation, outside-in)

❌ "Write tests" (single instruction, no depth)

Consistent

Different users invoking it get similar conceptual activation.

✅ "Test-Driven Development" (widely documented, consistent understanding)

❌ "Modern testing" (different interpretations)

Attributable

Can be traced to key proponents, publications, or documented standards.

✅ "arc42" (Gernot Starke, Peter Hruschka)

❌ "Best practices" (no specific source)

What is NOT a Semantic Anchor?

Not every well-known term qualifies as a semantic anchor. Understanding what doesn’t work helps clarify what does.

Common Counter-Examples

These terms are frequently used but lack the depth and definition required for semantic anchors:

❌ Not a Semantic Anchor Why Not?

"TLDR"

Underspecified instruction with no defined structure or methodology. Just means "be brief" without any framework for how.

"ELI5" (Explain Like I’m 5)

Vague target level with no pedagogical framework. What does "5-year-old level" mean technically? No consistent interpretation.

"Keep it short"

Pure directive with no conceptual depth. It’s an instruction, not a methodology.

"Best practices"

Too vague and not attributable. Whose best practices? Based on what research or authority?

"Modern approach"

Ambiguous and inconsistent. "Modern" means different things to different people and changes over time.

"Make it simple"

No reference to specific simplification frameworks (unlike KISS principle or Occam’s Razor which are semantic anchors).

Comparison: Good vs. Bad

Details

Example 1: Testing Instructions

❌ Bad: "Write good tests"

Problem

Vague instruction, no methodology

Result

Inconsistent interpretations

✅ Good: "Test-Driven Development, London School"

Activates

Mock-heavy testing, outside-in design, interaction-based verification

Proponents

Steve Freeman, Nat Pryce

Result

Consistent, rich implementation


Example 2: Communication Style

❌ Bad: "Keep it short"

Problem

No structure, just a preference

Result

Arbitrary length decisions

✅ Good: "Pyramid Principle"

Activates

Start with conclusion, group ideas, logical ordering

Proponent

Barbara Minto

Result

Structured, repeatable communication pattern


Example 3: Code Quality

❌ Bad: "Best practices"

Problem

Not attributable, no specific practices

Result

Everyone has different "best practices"

✅ Good: "SOLID Principles"

Activates

Five specific design principles (SRP, OCP, LSP, ISP, DIP)

Proponents

Robert C. Martin

Result

Concrete, testable guidelines

The Key Difference

Semantic Anchors activate rich, interconnected knowledge domains from the LLM’s training data.

Simple Instructions just tell the LLM what to do, without providing conceptual framework or methodology.

Think of semantic anchors as nouns (methodologies, frameworks, principles) rather than verbs (instructions, directives).

Testing a Potential Anchor

To see whether a term could work as an anchor, ask an LLM:

What concepts do you associate with '<your term>'?

If the response includes:

  • ✅ Multiple interconnected concepts

  • ✅ Key proponents or publications

  • ✅ Specific techniques or practices

  • ✅ Clear scope and boundaries

→ It’s likely a good semantic anchor!

If the response is:

  • ❌ Just a simple definition

  • ❌ No attributed source

  • ❌ Vague or inconsistent interpretations

  • ❌ Just instructions without depth

→ It’s probably not a semantic anchor.

How to Use This Catalog

Browse by Category

The catalog is organized into 15 categories:

  • Communication & Presentation

  • Creative Writing & Storytelling

  • Design Principles & Patterns

  • Development Workflow

  • Dialogue & Interaction Patterns

  • Documentation Practices

  • Knowledge Management

  • Meta (about this catalog itself)

  • Problem-Solving Methodologies

  • Requirements Engineering

  • Software Architecture

  • Statistical Methods & Process Monitoring

  • Strategic Planning & Decision Making

  • Testing & Quality Practices

  • UX & Visual Design

Filter by Role

Select your professional role to see anchors most relevant to you:

  • Software Developer / Engineer

  • Software Architect

  • QA Engineer / Tester

  • DevOps Engineer

  • Product Owner / Product Manager

  • Business Analyst / Requirements Engineer

  • Technical Writer / Documentation Specialist

  • UX Designer / Researcher

  • Data Scientist / Statistician

  • Consultant / Coach

  • Team Lead / Engineering Manager

  • Educator / Trainer

Use the full-text search to find anchors by:

  • Title (highest priority)

  • Proponents and key people

  • Tags and keywords

  • Content and descriptions

Using Semantic Anchors with LLMs

In Prompts

Reference semantic anchors directly in your prompts:

"Refactor this code following SOLID Principles."

"Design this API using RESTful constraints as defined by Roy Fielding."

"Write these scenarios in Gherkin format per Behavior-Driven Development."

In Context Setup

Set up your LLM conversation with semantic anchors:

I'm working on a project where we follow:
- Test-Driven Development (TDD, Chicago School)
- Hexagonal Architecture
- Domain-Driven Design
- SOLID Principles

Please keep these in mind when suggesting code changes.

In Code Reviews

Ask the LLM to review code against specific methodologies:

Review this code for violations of:
- Single Responsibility Principle
- Dependency Inversion Principle
- Law of Demeter

Testing Recognition

Before relying on a semantic anchor, test if the LLM recognizes it:

What concepts do you associate with 'MECE'?

If the LLM provides accurate, detailed information, it’s safe to use that anchor.

Independent thinkers have arrived at the same idea, and practitioners have validated the framing.

Matt Pocock — "Leading Words". Pocock has since written the idea down, in the writing-for-agents reference of his skills repository (MIT): a leading word is "a compact concept already in the model’s pretraining (tight, red, tracer bullet) that the agent thinks with while running the document", and "it anchors twice: execution in the body, invocation in the pointer". He had put it on video first, in "Building Great Agent Skills: The Missing Manual" (the "Steering" segment, from ~11:54), where he describes leading words as: specific terms that pack dense meaning to steer an agent’s behaviour and reasoning trace. It is the same core idea as a Semantic Anchor, reached independently — one dense term instead of a long instruction. The difference is scope: Pocock’s framing steers an agent while you author skills; this catalog is a curated, shared vocabulary organized by an anchor / contract / skill taxonomy.

Lynn Cole — "Prompting with pre-computed priors". Systems architect Lynn Cole coined this three-word framing for why anchors work, quote-sharing the catalog on LinkedIn (2026-06-03): "When I talk about prompting with pre-computed priors, this is basically what I’m talking about." A well-known term does not describe a concept — it conditions the model toward a dense region its training already built, so a few tokens buy rich, consistent activation.

Contributing

We welcome proposals for new semantic anchors! See our Contributing Guide for details on:

  • How to propose a new anchor

  • Quality criteria and testing methodology

  • Automated validation with GitHub Copilot

  • The review and publication process

Click Propose New Anchor to get started!

About This Project

Semantic Anchors is an open-source catalog maintained by the LLM Coding community. The project aims to:

  • Document effective communication patterns with LLMs

  • Establish shared vocabulary for AI-assisted development

  • Provide a curated, quality-controlled reference

  • Enable more precise and efficient human-AI collaboration

Technology

  • Website: Vite + Vanilla JavaScript

  • Styling: Tailwind CSS

  • Content: AsciiDoc

  • Visualization: Card Grid with category organization

  • Hosting: GitHub Pages

  • Automation: GitHub Actions + Copilot

License

This project is open source. See the LICENSE file for details.

Source Code

View the source, report issues, or contribute:

Privacy

This site is privacy-friendly by design: no cookies, no advertising, no cross-site tracking.

  • Analytics: anonymous, aggregated page-view counts via GoatCounter. It is cookieless, stores no IP addresses, and collects no personal data. The counting script is self-hosted (first-party); only the aggregated hit is sent to GoatCounter.

  • YouTube: embedded videos load only after you click play, so YouTube is not contacted until you consent.

  • Hosting: the site is served as static files via GitHub Pages.

Because no personal data is collected and no cookies are set, no consent banner is required.


Ready to explore? Browse the catalog →

Communication & Presentation

4MAT

Details
Full Name

4MAT System of Instruction

Also known as

4MAT Learning Cycle, McCarthy’s 4MAT

Core Concepts:

Why

Establish relevance and motivation first. Why should the audience care? Connect the topic to their experience, problems, or goals before introducing new information.

What

Present the facts, concepts, and structure. The core content — definitions, models, theory, how the pieces fit together.

How

Show practical application. Demonstrate usage, walk through examples, let the audience try it hands-on. Translate theory into skill.

What If

Explore extension, variation, and transfer. What happens at the edges? How does this apply to new situations? Encourage creative application and critical questioning.

Four-quadrant cycle

The order matters — why before what prevents "so what?" disengagement; how before what-if prevents premature abstraction.

Left-right brain modes

Each quadrant alternates between reflective observation and active experimentation, engaging different cognitive styles in one flow.

Four learner types

Innovative (Why), Analytic (What), Common Sense (How), Dynamic (What If) — every presentation serves all four instead of only the "analytic learner" that default lecture formats assume.

Key Proponents

Bernice McCarthy ("The 4MAT System: Teaching to Learning Styles with Right/Left Mode Techniques", 1980; "About Learning", 1996)

When to Use:

  • Structuring training sessions, workshops, or technical presentations

  • Writing tutorials, explainers, or onboarding documentation

  • Designing conference talks that engage both practitioners and theorists

  • Planning educational content across the motivation-to-mastery arc

  • LLM prompting for instructional material: "Explain X using the 4MAT cycle"

  • Pyramid Principle - Top-down structure for written communication; complements 4MAT which is experience-first

  • Feynman Technique - Self-directed learning; 4MAT is teacher-directed instructional design

  • Diátaxis Framework - Documentation types (tutorial/how-to/reference/explanation) map loosely to 4MAT quadrants

Criticism:

  • 4MAT rests on learning-styles theory, and the matching claim lacks empirical support: Pashler, McDaniel, Rohrer & Bjork, "Learning Styles: Concepts and Evidence" (Psychological Science in the Public Interest, 2008) found virtually no valid evidence that teaching matched to a diagnosed learning style improves outcomes

  • Paul Kirschner, "Stop propagating the learning styles myth" (Computers & Education, 2017) — nearly all studies claiming supporting evidence fail basic criteria of scientific validity

  • The common defense: 4MAT’s Why/What/How/What-If cycle works as a lesson-sequencing device that every learner moves through — a reading that survives even when the underlying learning-styles claim is dropped

AIDA Model

Details
Full Name

Attention, Interest, Desire, Action

Also known as

AIDA Funnel, Hierarchy of Effects (AIDA branch); variants: AIDAS (+Satisfaction), AIDCA / AIDCAS (+Conviction), AIDA-R (+Retention)

Core Concepts:

Attention

First capture awareness — a headline, hook, or visual that makes the audience stop and notice. Nothing else works until this stage lands.

Interest

Hold engagement by making the message relevant — speak to the reader’s problem, curiosity, or benefit so they keep reading.

Desire

Create wanting — turn "this is relevant" into "I want this" through benefits, proof, emotion, and addressing objections.

Action

Prompt a single, clear next step — the call to action (buy, sign up, reply). Without an explicit ask, the funnel leaks at the end.

A sequential funnel

The stages are ordered and narrowing — each filters the audience to the next. The model’s value is forcing copy to do each job in turn rather than jumping to the ask.

A hierarchy-of-effects model

AIDA is the best-known member of a family of step-models describing how persuasion moves a person from unaware to converted; it is a heuristic, not a measured cognitive law.

Key Proponents

Commonly attributed to E. St. Elmo Lewis (1898), an American advertising advocate; popularised in 20th-century advertising and sales literature

When to Use:

  • Structuring marketing copy, landing pages, ads, cold emails, or pitch openings

  • Reviewing a draft for a missing stage — most often a weak hook (Attention) or an absent call to action (Action)

  • LLM prompting for persuasive text: "Write this product announcement using the AIDA model"

  • Sequencing a sales conversation from hook to close

When NOT to Use:

  • Informational or reference writing where persuasion is not the goal — use BLUF or the Inverted Pyramid instead

  • As a measured model of buyer psychology — it is a copywriting heuristic, not validated cognitive science

  • Long, relationship-based B2B sales, where multi-touch journeys outgrow a single linear funnel

  • Inverted Pyramid Style - News structure front-loads the full story; AIDA deliberately withholds the ask until Desire is built

  • Pyramid Principle - Logical top-down argument for clarity; AIDA is an emotional persuasion sequence for conversion

  • BLUF (Bottom Line Up Front) - Leads with the conclusion; the opposite move to AIDA, which earns the conclusion across four stages

Criticism:

  • Robert Heath & Paul Feldwick, "Fifty years using the wrong model of advertising" (International Journal of Market Research, 2008) — the rational, sequential persuasion model behind AIDA misrepresents how advertising actually works: largely through emotional, low-attention processing rather than attentive information processing

  • Demetrios Vakratsas & Tim Ambler, "How Advertising Works: What Do We Really Know?" (Journal of Marketing, 1999) — reviewing over 250 studies, they found little empirical support for any fixed hierarchy of effects and recommended abandoning the hierarchy concept as a planning assumption

  • The model’s age is part of the critique: AIDA originates around 1898, pre-dating formal marketing science, yet still dominates campaign planning — precisely the persistence Heath and Feldwick criticize

Big Five (OCEAN) Personality Traits

Details
Full Name

Big Five Personality Traits / Five-Factor Model (FFM)

Also known as

OCEAN, Five-Factor Model (FFM), the Big Five, CANOE

Core Concepts:

Five Broad Dimensions (OCEAN)

The model describes personality along five continuous, largely independent dimensions:

  • Openness to experience — imagination, curiosity, preference for novelty vs. routine and convention

  • Conscientiousness — organisation, dependability, self-discipline vs. spontaneity and carelessness

  • Extraversion — sociability, assertiveness, energy drawn from the outer world vs. reserve

  • Agreeableness — compassion, cooperation, trust vs. antagonism and skepticism

  • Neuroticism (vs. Emotional Stability) — proneness to anxiety, moodiness, emotional reactivity vs. calm

Continuous Traits, Not Types

Each dimension is a spectrum a person scores high or low on; the model deliberately does not sort people into discrete types (contrast MBTI’s 16 boxes).

Facets

Each factor decomposes into narrower facets (e.g., Conscientiousness → order, dutifulness, self-discipline, achievement-striving), giving finer-grained profiles.

Lexical Hypothesis

The five factors emerged empirically via the lexical hypothesis — the idea that the most important personality differences become encoded as single words in language — through factor analysis of trait adjectives.

Two Lineages, One Model

Lewis Goldberg’s "Big Five" (lexical, adjective-based) and Costa & McCrae’s Five-Factor Model (questionnaire-based, the NEO-PI-R) converge on the same five dimensions; OCEAN is the shared mnemonic.

Predictive Use

Trait scores correlate — modestly but consistently — with outcomes such as job performance (especially Conscientiousness), well-being, and academic achievement.

Key Proponents

Lewis R. Goldberg (coined "Big Five", early 1980s); Paul T. Costa & Robert R. McCrae (Five-Factor Model / NEO-PI-R). Early lexical roots: Tupes & Christal (1961).

When to Use:

For reliable activation, name the model and the task — "profile this persona along the five OCEAN dimensions" — rather than the bare term.

  • Building richer, evidence-based user personas in UX research (score along OCEAN instead of inventing ad-hoc traits)

  • Tailoring communication or messaging to a described audience’s trait profile

  • Reasoning about team composition and likely friction (e.g., high- vs. low-Conscientiousness pairings)

  • Coaching and self-reflection grounded in a validated trait vocabulary

  • Structuring qualitative analysis of interview or survey text into comparable trait dimensions

Common Misunderstandings:

  • ❌ "Big Five sorts people into types" — it describes continuous traits, not categories

  • ❌ "Scores are fixed" — traits are relatively stable in adulthood but shift across the lifespan

  • ❌ "It explains why someone behaves as they do" — the model is descriptive and predictive, not causal

  • ✓ "Big Five is the empirically dominant trait model" — it is, which is why it is the usual scientific benchmark against MBTI and DISC

Criticism:

  • Michael Gurven et al., "How Universal Is the Big Five?", Journal of Personality and Social Psychology 104(2) (2013) — the five-factor structure failed to replicate among the Tsimane of the Bolivian Amazon; a two-factor "prosociality / industriousness" structure fit better, challenging the model’s claimed universality. The evidence base is heavily WEIRD (Western, Educated, Industrialized, Rich, Democratic).

  • The model is descriptive, not explanatory: derived from the lexical hypothesis and factor analysis, it names covarying traits without a causal theory of their origin.

Current Status:

  • Still the dominant, most empirically validated trait model in academic psychology, and the standard scientific benchmark against which other personality instruments are judged. The main structured challenger is the six-factor HEXACO model (Ashton & Lee), which adds Honesty-Humility. The prior most training data serves is the five-factor OCEAN model.

Bloom’s Taxonomy

Details
Full Name

Taxonomy of Educational Objectives, Cognitive Domain (Revised 2001)

Also known as

Bloom’s Revised Taxonomy; Anderson & Krathwohl Taxonomy

Core Concepts:

Six cognitive levels

A hierarchy of what a learner can do with knowledge, from lower-order to higher-order — Remember, Understand, Apply, Analyze, Evaluate, Create. Higher levels presuppose the lower ones.

Remember

Retrieve facts from memory — recall, recognise, list, name. The floor, not the goal.

Understand

Construct meaning — explain in one’s own words, summarise, paraphrase, give an example. Understanding is not yet mastery.

Apply

Use knowledge in a new situation — execute, implement, solve a fresh case. The first level that proves transfer beyond the example taught.

Analyze

Break a whole into parts and see how they relate — differentiate, attribute, find the edge cases, trace cause to effect.

Evaluate

Judge against criteria — critique, weigh trade-offs, defend a decision.

Create

Assemble parts into something new — design, build, generate a working solution.

Action verbs per level

Each level has its own measurable verbs, which is what turns a vague aim ("understand recursion") into a testable objective ("implement a recursive traversal", "analyse why this base case prevents infinite recursion").

The 2001 revision

Anderson & Krathwohl turned Bloom’s 1956 nouns into verbs and reordered the top two (the original ended Synthesis → Evaluation; the revision ends Evaluate → Create). They also added a second axis — the knowledge dimension (factual, conceptual, procedural, metacognitive) — yielding a two-dimensional taxonomy table.

A heuristic, not a law

The hierarchy is a design aid, not a strict ladder — real tasks mix levels, and Evaluate-vs-Create ordering is debated. Its value is forcing assessment above mere recall, not literal sequencing.

Key Proponents

Benjamin Bloom et al. ("Taxonomy of Educational Objectives", 1956); Lorin Anderson & David Krathwohl ("A Taxonomy for Learning, Teaching, and Assessing", 2001 revision)

When to Use:

  • Writing learning objectives so they name a verifiable cognitive level, not a vague "know about"

  • Designing assessments and quizzes that target higher-order thinking (Apply, Analyze) instead of recall

  • Defining what "demonstrated understanding" means — set the gate at Apply/Analyze, not Remember

  • Reviewing training material or documentation for whether it only informs or also builds skill

  • LLM prompting: "Write quiz questions at the Apply and Analyze levels of Bloom’s Taxonomy"

When NOT to Use:

  • As a rigid linear sequence every lesson must climb in order — it is a design lens, not a script

  • For affective or motor learning — the cognitive taxonomy does not cover attitudes (affective domain) or physical skills (psychomotor domain)

  • 4MAT — 4MAT sequences a lesson (Why/What/How/What-If); Bloom grades the cognitive level each step targets

  • Feynman Technique — explaining-it-back is a concrete check at the Understand level; Bloom names the levels above it

  • Socratic Method — questioning drives learners up the levels; Bloom labels where they are

  • Diátaxis Framework — documentation types map loosely to cognitive levels (tutorial → Apply, explanation → Understand)

Current Status:

  • Two versions circulate: the original 1956 framework (Bloom et al.) uses nouns — Knowledge, Comprehension, Application, Analysis, Synthesis, Evaluation — while the 2001 revision described above uses verbs and puts Create at the top. The standard citable summary of the differences is Krathwohl, "A Revision of Bloom’s Taxonomy: An Overview" (Theory Into Practice 41(4), 2002)

  • An LLM’s training-data prior plausibly blends both versions — material on each is abundant, and many secondary sources mix the level names — so an unqualified "Bloom’s Taxonomy" can anchor to either category set

  • Name the version explicitly: "revised Bloom’s taxonomy (Anderson/Krathwohl 2001)" or "original Bloom’s taxonomy (1956)"

BLUF (Bottom Line Up Front)

Details
Full Name

BLUF (Bottom Line Up Front)

Also known as

Direct Answer Format, Conclusion-First Communication

Core Concepts:

Conclusion First

State the main point, decision, or recommendation immediately

Inverted Pyramid

Most important information first, supporting details follow

Action Orientation

Lead with what needs to happen or what was decided

Busy Reader Optimization

Enable time-pressed readers to get key information instantly

Supporting Evidence Follows

Detailed rationale, data, and background come after the conclusion

Scannable Structure

Clear hierarchy enables readers to stop at their needed depth

Clarity Over Suspense

No narrative buildup or delayed conclusions

One Sentence First

Ideally, the BLUF itself is a single, clear sentence

Key Proponents

US Military (Army writing standards), adopted broadly in business and government

Historical Context

Standardized in military communication where rapid decision-making is critical; now standard in business writing (McKinsey, consulting, executive communication)

When to Use:

  • Executive summaries and briefings

  • Status reports to leadership

  • Email to busy stakeholders

  • Incident reports requiring immediate action

  • Any high-stakes communication where the reader needs the conclusion first

  • Technical documentation for time-constrained readers

Relationship to Other Anchors:

  • Related to Pyramid Principle but more narrowly focused on conclusion-first structure

  • Complements MECE by providing the organizational principle for grouped information

  • Contrasts with narrative or exploratory writing styles

    Counter-example

    Academic papers (which build to conclusions) or storytelling (which uses suspense)

Crisis and Emergency Risk Communication (CERC)

Details
Full Name

Crisis and Emergency Risk Communication

Also known as

CERC — but see Common Misunderstandings: the bare acronym does not carry the meaning

Core Concepts:

  • Be First. An information vacuum does not stay empty. Communicating early, with a timestamp and an explicit account of what is not yet known, beats waiting for a complete picture.

  • Be Right. Accuracy over completeness: separate what is confirmed from what is unknown from what is being investigated, and commit in advance to correcting what turns out wrong.

  • Be Credible. Honesty and consistency over reassurance. Admitting uncertainty preserves the standing you will need for the next message.

  • Express Empathy. Name the disruption and the distress before explaining the cause. People who feel unacknowledged stop reading.

  • Promote Action. Give something concrete and feasible to do. Action restores a sense of control and displaces speculation.

  • Show Respect. Address the audience as capable adults. Dismissing concerns as irrational forfeits the trust the other five principles are spending.

  • Communication under uncertainty is the design premise. The framework assumes you must speak before the facts are in — which is exactly the situation a status update during an unresolved incident is written in.

  • The crisis has a lifecycle. Preparation, initial reaction, maintenance, resolution, evaluation. What the audience needs, and therefore what the message should carry, differs by phase.

When to Use:

  • Writing the first public statement about an incident whose cause is not yet known

  • Status pages, customer notifications and internal updates while an outage is still unresolved

  • Security disclosures, where the temptation to wait for certainty is strongest and most costly

  • Preparing the communication plan before the incident, which is the phase the framework treats as primary

Common Misunderstandings:

  • Using the bare acronym. "CERC" alone is not reliable vocabulary. Asked without context, a frontier model returns India’s Central Electricity Regulatory Commission, Canada Excellence Research Chairs and a coastal engineering centre before it reaches this framework — and in our measurement it did not reach it at all. Spell the name out. The prior-test register carries the evidence.

  • Reading "Be First" as speed over accuracy. It is first with what is known, including the fact that little is. The two principles constrain each other rather than compete.

  • Treating empathy as a tone. It is a content requirement — naming the concrete effect on the reader — not a softer register applied to the same sentences.

Criticism:

  • The framework has almost never been tested, and that is the central objection. Ann Neville Miller, Chad Collins, Lindsay Neuberger, Andrew Todd, Timothy L. Sellnow and Laura Boutemen, "Being First, Being Right, and Being Credible Since 2002: A Systematic Review of Crisis and Emergency Risk Communication (CERC) Research", Journal of International Crisis and Risk Communication Research (19 March 2021). They record the charge — CERC "has been criticized as lacking the coherence and unity necessary to serve as a framework for research" — and then measure it: "A total of 4,471 articles in 20 languages were screened, 400 full texts examined, and 19 articles included in the research and theory analysis, of which one tested tenets of the CERC model." Their conclusion: "CERC has rarely been theoretically tested, and we argue that reformulation of the propositions is necessary for empirical support of the model to proceed." The framework is distilled practice, not an empirically established model, and it should be named as such.

  • Its own custodian departed from it in the crisis that mattered most. Molly A. Sauer, Shaun Truelove, Amelia K. Gerste and Rupali J. Limaye organise their analysis of the US COVID-19 response around the six principles and find the credibility principle broken by the CDC itself. On the revised school-reopening guidance of late July 2020: "This perceived bowing to political pressure, rather than relying on scientific rigor, was another blow to the CDC’s credibility." "A Failure to Communicate? How Public Messaging Has Strained the COVID-19 Response in the United States", Health Security 19(1), 65—​74 (18 February 2021). This is evidence about institutions under pressure rather than about the principles — and it is the case every reader will have in mind.

  • No citable German-language criticism was found, and no pass was run in French, Spanish, Chinese, Japanese or Korean. Given that the systematic review above screened 20 languages and still found near-nothing, thinness is plausible here rather than merely unmeasured — but the honest statement remains: absent in our search.

Current Status:

  • There is no single current edition of the manual. The CDC now serves it as per-chapter PDFs with different years: Introduction to CERC (2018), The Psychology of a Crisis (2019), Messages and Audiences (2018), Community Engagement (2018), Crisis Communication Plans (2014), Spokesperson (2014), Working with the Media (2014). Manual index, page date stamp 20 November 2024. Citing "the 2018 edition" is therefore only partly right.

  • Older CERC links are probably stale. The content moved to the /cerc/php/…​ URL scheme in the 2024 site reorganisation. The six-principle set itself appears in current CDC material carrying 2024 date stamps, so the framework is live rather than archived.

  • The model paper. Reynolds B, Seeger MW, "Crisis and emergency risk communication as an integrative model", Journal of Health Communication 10(1), 43—​55 (2005). Attribution is split in practice and worth keeping split: the integrative model paper is Reynolds and Seeger; the manual, the training programme and the six-principle formulation are the CDC’s as an institution.

  • Whether the principle wording drifted between the 2012, 2014 and 2018 chapter generations we did not establish. The chapter structure demonstrably changed; the six principles appear stable, which is an observation and not a verified continuity.

Curse of Knowledge

Details
Also known as

Curse of Expertise, Knowledge Gap Bias

Core Concepts:

Knowing makes un-knowing impossible

Once you understand something, you cannot easily reconstruct what it was like not to know it; the mental state of the novice becomes inaccessible.

Overestimated shared context

Experts systematically assume the audience holds background, vocabulary, and intermediate steps that the audience does not actually have.

Unexplained jargon and skipped steps

The bias surfaces as opaque terms left undefined and logical links the writer "divines" but the reader cannot.

Empathy gap

A failure to model the audience’s actual knowledge state, not a failure of the audience’s intelligence.

Antidote — surface and externalize

Make hidden assumptions explicit, define terms, spell out skipped steps, and test against a representative reader instead of yourself.

Key Proponents

Colin Camerer, George Loewenstein, Martin Weber ("The Curse of Knowledge in Economic Settings: An Experimental Analysis", Journal of Political Economy 97(5):1232-1254, 1989 — coined the term); Chip Heath, Dan Heath ("Made to Stick", 2007 — popularized it, citing Elizabeth Newton’s 1990 "tappers and listeners" study); Steven Pinker ("The Sense of Style", 2014 — names it the chief cause of bad writing)

When to Use:

  • Reviewing documentation, tutorials, or onboarding material for an audience less expert than the author

  • Diagnosing why an explanation, talk, or error message confuses its readers

  • Teaching: deciding which steps and terms must be made explicit rather than assumed

  • Prompting an LLM to write for a non-expert audience, or to surface and state its own assumptions and defined terms

  • Code review of comments, API docs, and commit messages that assume too much context

Current Status:

  • Steven Pinker reframed the bias as a writing problem in "The Sense of Style" (2014), calling it "the single best explanation I know of why good people write bad prose" and prescribing testing prose against a representative reader — the framing most likely to dominate present-day discussion of the term outside economics

Dale Carnegie Principles

Details
Full Name

The principles of How to Win Friends and Influence People (1936)

Also known as

Carnegie principles, How to Win Friends principles

Core Concepts:

  • Don’t criticise, condemn or complain. Carnegie’s opening move and the one the rest depends on: criticism puts people on the defensive and they justify rather than reconsider.

  • Give honest, sincere appreciation. Stated as a precondition, not a technique — Carnegie distinguishes appreciation from flattery repeatedly and insists the difference is sincerity.

  • Arouse in the other person an eager want. Argue from their interest rather than yours. "Talk in terms of the other person’s interests" is the same move applied to conversation.

  • Begin with praise, then raise the problem. The characteristic structure: honest appreciation first, the difficulty second, and the correction framed so the other person keeps their standing.

  • Point out mistakes indirectly, and let the other person save face. Blame the circumstance, the ambiguous spec, your own earlier explanation — anything that leaves the person room to change their mind without conceding incompetence.

  • Ask questions instead of giving direct orders. "Could you look at this?" rather than "redo it". The instruction lands the same and the standing does not.

  • Try honestly to see things from the other person’s point of view. Invite their reasoning before delivering your own — they may have seen what you did not.

When to Use:

  • Review comments that have to be read by the person who wrote the code

  • Disagreements where being right is not the same as being effective

  • As a compact shorthand in a long-running instruction set, where spelling the posture out each time is expensive and drifts

Common Misunderstandings:

  • Reading it as a licence to soften the substance. The principles govern how a correction is delivered, not whether it is made. A review comment that no longer names the defect has failed on Carnegie’s terms too.

  • Treating it as manipulation. This is the standard charge and it is worth taking seriously — see Criticism. Carnegie’s own answer is that every technique is void without sincerity, which is a defence that can be stated but not enforced.

  • Expecting it to add tact a current model lacks. In our measurement the unanchored baseline was already careful with the person. What the term reliably adds is the opening appreciation and the face-saving frame — a narrower and more specific effect than the reputation suggests.

Criticism:

  • The principles rest on anecdote, and that has been examined properly. Tessa E. Basford and Andrea Molberg, "Dale Carnegie’s Leadership Principles: Examining the Theoretical and Empirical Support", Journal of Leadership Studies 2013, DOI 10.1002/jls.21265: the book, "including its nine guiding leadership principles—​is based on anecdotes, case studies, and personal examples rather than empirical evidence." Their conclusion is not that the advice is wrong but that its support has to be established from elsewhere before a leader relies on it. (The publisher’s page blocks automated access; the record was verified through the DOI.)

  • The insincerity charge is the standard one, and Carnegie’s own text supplies the opening. Scholarly reception turned on exactly this point, "chiding Carnegie for being insincere and manipulative" (Wikipedia, with the reception history). The sharpest version notes where the sincerity requirement becomes a stage direction: Carnegie, drawing on his years as an actor, writes that "you must actually ENTER INTO the character you impersonate, the cause you advocate, the case you argue" — on which Tom Jokinen comments, "You have to mean it. Or, failing that, fake it." The Globe and Mail (4 January 2014). Carnegie’s defence — that every technique is void without sincerity — can be stated but not enforced.

  • The broader charge is that it crowds out everything that is not a personal feeling. Steven Watts, in Self-Help Messiah, quoted in Jokinen’s review: "[T]he Carnegie code has undermined people’s capacity to think about the world in terms that transcend personal feelings. Its stress on human relations… has pushed aside frameworks of morality, social justice, and even economic well-being." Note the attribution: the sentence is Watts’s, not the reviewer’s.

  • One widely circulated quotation we could not verify. Sinclair Lewis’s dismissal of the genre is repeated everywhere; we did not reach its original publication, and it is therefore not cited here.

  • The frame. No citable German-language criticism was found. French, Spanish, Japanese and Chinese were not searched, and the book has long independent reception histories in at least the last two — 人を動かす and 人性的弱点 are among the best-selling translated titles in those markets. What follows is an anglophone-plus-German picture and should be read as one.

Current Status:

  • What the prior reproduces is the post-1981 structure, not the 1936 one. "In 1981, a revised edition containing updated language and anecdotes was released. The revised edition reduced the number of sections from six to four, eliminating sections on effective business letters and improving marital satisfaction." The two removed sections are "Letters That Produced Miraculous Results" and "Seven Rules for Making Your Home Life Happier" (Wikipedia).

  • Our own measurement shows which shape comes back. In the prior test on 2026-09-24, both model tiers reproduced the four-part structure and neither produced the six-part shape of the 1936 original. That identifies the structure, not a printing: every edition since 1981 carries the four parts, so the measurement cannot tell them apart and does not try to. If you need the 1936 text specifically, say so — the name alone will not get you there.

  • The numbered principles inside the four parts appear to have survived the revision intact, since the cuts removed whole additional sections rather than principles. We did not open a 1936 table of contents to confirm it word for word.

DISC Model (Marston)

Details
Full Name

DISC Model of Behavioural Styles

Also known as

DISC, DiSC, Marston’s DISC

Core Concepts:

Four Behavioural Styles

The modern model sorts behaviour into four quadrants:

  • Dominance (D) — direct, results-driven, assertive; focus on the what

  • Influence (I) — outgoing, enthusiastic, persuasive; focus on people

  • Steadiness (S) — patient, dependable, cooperative; focus on pace and stability

  • Conscientiousness © — precise, analytical, quality-focused; focus on how

Marston’s Original Terms

In Emotions of Normal People (1928) Marston named the four as Dominance, Inducement, Submission, and Compliance; the modern instruments relabel them as above.

Two Axes

The quadrants arise from two dimensions — how a person perceives the environment (favourable vs. antagonistic) and their sense of control within it (more vs. less powerful).

Style, Not Ability

DISC describes a behavioural style and its communication preferences, not competence or fixed character.

Theory vs. Instrument

Marston proposed the theory but never built an assessment or patented it. The self-assessment tools came later (Walter Clarke’s Activity Vector Analysis, 1956; John Geier’s DiSC, 1970s) and are today commercial products from many vendors.

Key Proponents

William Moulton Marston (theory, 1928); assessment instruments by Walter Clarke and later John Geier and commercial publishers.

When to Use:

For reliable activation, name the model and the task — "map this person’s communication style onto the DISC quadrants" — rather than the bare term.

  • Framing communication and collaboration preferences within a team (D/I/S/C tendencies as a shared shorthand)

  • Facilitation, coaching, or workshop settings where a lightweight behavioural vocabulary helps dialogue

  • Tailoring how a message is delivered to a described counterpart’s style

  • Onboarding conversations about working styles

Common Misunderstandings:

  • ❌ "My DISC type says what I can do" — it describes a behavioural preference, not ability

  • ❌ "DISC is scientifically validated" — it is not; it predicts job performance no better than chance

  • ✓ "DISC is a conversational starting point" — correct use is exploratory dialogue, never selection or diagnosis

Criticism:

  • Via the DISC assessment overview — classified as pseudoscientific: the scientific validity of DISC has not been demonstrated, and the assessments have shown no ability to predict job performance (psychologist Wendell Williams specifically criticises its use in recruitment; a 2013 study found reliability "largely" met but validity "not at all"). DISC data are better explained as combinations of the Big Five than as independent traits.

  • Its apparent accuracy is partly the Barnum effect — people accept vague, broadly flattering descriptions as personally true. Marston’s four categories ignore personality science after 1920.

Current Status:

  • Commercially popular in corporate training and team-building yet scientifically discredited; because Marston never patented the theory, many vendors sell competing DISC instruments. Treat it as a starting point for reflection and dialogue, never as a diagnostic or hiring tool; this is why the anchor carries an :advisory: flag. The empirically validated alternatives are the Big Five / OCEAN and HEXACO.

Four-Sides Model (Schulz von Thun)

Details
Full Name

Four-Sides Model of Communication according to Friedemann Schulz von Thun

Also known as

Communication Square, Four-Ears Model, Vier-Seiten-Modell

Core Concepts:

Four sides of a message

Every message carries four facets simultaneously; the sender speaks with "four beaks" and the receiver listens with "four ears"

Factual information (Sachinhalt)

The data and facts the message states; the receiver checks it for truth, relevance, and completeness

Self-revelation (Selbstoffenbarung)

What the message discloses about the sender — motives, values, emotions, intentions, consciously or not

Relationship (Beziehung)

What the sender thinks of the receiver and how they stand to each other, carried by tone, phrasing, and body language

Appeal (Appell)

What the sender wants the receiver to do, think, or feel — open advice or hidden manipulation

Four ears

The receiver decodes through four matching ears; a one-sidedly developed ear (for example an over-sensitive relationship ear) causes recurring misunderstanding

Mismatched ears

Misunderstanding arises when the sender stresses one side but the receiver hears another; the classic example is the passenger saying "The traffic light is green" — a factual remark heard as an appeal or a relationship message

Theoretical roots

Combines Karl Bühler’s Organon model (sender, receiver, subject) with Paul Watzlawick’s axiom that every message has a content and a relationship aspect

Key Proponents

Friedemann Schulz von Thun ("Miteinander reden 1: Störungen und Klärungen", 1981)

When to Use:

  • Diagnosing recurring misunderstandings in teams or coaching conversations

  • Teaching active listening and feedback skills

  • Giving or receiving feedback by separating the factual side from the relationship side

  • Defusing conflict by surfacing the self-revelation and appeal layers of a charged statement

  • Prompting an LLM to analyze a message on all four communication levels

Gutes Deutsch nach Wolf Schneider

Details
Full Name

Gutes Deutsch nach Wolf Schneider (Good German according to Wolf Schneider)

Also known as

Wolf Schneider’s Writing Principles, Schneider’s Stilregeln

Core Concepts:

Short Sentences

Prefer short, direct sentences over long, complex ones — every sentence should express one idea

Active Voice

Use active constructions; avoid passive voice and impersonal constructions wherever possible

Verbs Over Nouns

Replace noun phrases (Nominalstil) with verbs — "wir entscheiden" instead of "eine Entscheidung wird getroffen"

Concrete Language

Use specific, tangible words instead of abstract generalizations; prefer the particular over the general

No Filler Words

Eliminate weak, redundant, or empty words (Füllwörter) that add no meaning — "eigentlich", "grundsätzlich", "im Grunde genommen"

Plain Words First

Choose a common, familiar word over a foreign or technical term when both carry the same meaning

Readable Rhythm

Vary sentence length consciously to create a natural reading rhythm; monotony fatigues readers

Reader Orientation

Every sentence should serve the reader; never write to impress, only to be understood

Key Proponents

Wolf Schneider ("Deutsch für Profis", 1982; "Deutsch! Das Handbuch für attraktives Schreiben", 2005)

When to Use:

  • Writing clear, effective German prose for professional or public audiences

  • Reviewing or editing technical documentation, reports, and emails

  • Coaching writers to reduce bureaucratic or academic language

  • Improving internal corporate communication

  • Teaching German writing style and rhetoric

Criticism:

  • Descriptive linguists reject the Sprachkritik tradition Schneider stands for — presenting personal style preferences as objective norms of German and reading language change as decline; Anatol Stefanowitsch (Sprachlog) called Schneider the "Sprachpapst" and "oberster Sprachnörgler der deutschsprachigen Journaille" (2012)

  • Schneider’s polemics beyond craft advice are contested: his campaign against anglicisms ("Speak German!", 2008) and his co-initiation of the 2019 appeal "Schluss mit dem Gender-Unfug!" drew broad criticism from academic linguists — on these points his norms diverge from current usage

  • The core craft rules (short sentences, verbs over nouns, concrete words) remain largely uncontested in journalism training; the criticism targets the claim of general validity, not the toolbox — the English-language parallel is the linguists' critique of Strunk & White

HEXACO Personality Model

Details
Full Name

HEXACO Model of Personality Structure

Also known as

HEXACO, Six-Factor Model, the H Factor

Core Concepts:

Six Dimensions (HEXACO)

The model describes personality along six continuous dimensions:

  • Honesty-Humility (H) — sincerity, fairness, greed-avoidance, modesty vs. manipulativeness, entitlement, greed

  • Emotionality (E) — fearfulness, anxiety, sentimentality, need for support (a rotated variant of Big Five Neuroticism)

  • eXtraversion (X) — social self-esteem, sociability, liveliness

  • Agreeableness (A) — forgiveness, gentleness, patience (a rotated variant — anger/temper sits here, not in Emotionality)

  • Conscientiousness © — organisation, diligence, prudence

  • Openness to Experience (O) — aesthetic appreciation, curiosity, unconventionality

The Sixth Factor Is the Point

HEXACO is essentially the Big Five plus Honesty-Humility. Three factors (X, C, O) map onto Big Five counterparts; Emotionality and Agreeableness are "rotated variants" with shifted content; Honesty-Humility is genuinely new.

Honesty-Humility Predicts the Dark Side

The H factor is the strongest single trait predictor of unethical, exploitative, and manipulative behaviour, and correlates strongly (inversely) with the Dark Triad — Machiavellianism, narcissism, psychopathy. This is coverage the Big Five does not provide, and the reason HEXACO earns its own place rather than being an alias of Big Five.

Lexical, Cross-Language Origin

The six factors recurred across factor-analytic lexical studies in many languages (Dutch, German, Korean, Italian, Hungarian, Polish, and others).

Continuous Traits, Not Types

Like the Big Five, each dimension is a spectrum, not a category.

Key Proponents

Kibeom Lee & Michael C. Ashton (first papers ~2004; book The H Factor of Personality, 2013).

When to Use:

For reliable activation, name the model and the task — "assess along the HEXACO dimensions, especially Honesty-Humility" — rather than the bare term.

  • When integrity, fairness, or exploitation risk is the relevant axis (ethics discussions, counterparty modelling) — the Honesty-Humility factor the Big Five omits

  • Reasoning about dark-personality patterns (Dark Triad) with a validated trait vocabulary

  • Richer persona or team modelling where honesty-humility carries signal

  • Any Big Five use case where the extra sixth dimension adds discriminating information

Common Misunderstandings:

  • ❌ "HEXACO is just the Big Five renamed" — it adds a genuinely distinct sixth factor (H) and rotates two others

  • ❌ "Honesty-Humility is a truthfulness test" — it is a personality disposition, not a lie detector

  • ✓ "HEXACO’s reason to exist is the H factor" — its distinct utility over Big Five is Honesty-Humility

Criticism:

  • Boele De Raad and colleagues, via the HEXACO model overview — only three factors (Extraversion, Agreeableness, Conscientiousness) replicate fully across cultures; the sixth factor Honesty-Humility is "not always consistently replicated", and alternative sixth factors (e.g. hedonism-spontaneity) emerge in some lexical studies, so claims of six-factor universality should be treated cautiously.

  • Big Five proponents argue Honesty-Humility can be largely accommodated within (low) Big Five Agreeableness, questioning whether a distinct sixth factor is warranted.

Current Status:

  • An actively researched six-factor alternative to the Big Five, with growing adoption — particularly in integrity, ethics, and Dark-Triad research, where the Honesty-Humility factor shows distinct predictive value. The Big Five (see the Big Five / OCEAN anchor) remains the more widely used default; the prior most training data serves is still five-factor, with HEXACO the recognised six-factor challenger.

Inverted Pyramid Style

Details
Full Name

Inverted Pyramid Style

Also known as

News Style, Front-Loading

Core Concepts:

Most newsworthy first

Lead with the essential who/what/when/where/why, then present supporting detail in decreasing order of importance

Stop-anywhere readability

The reader can stop at any point and still have the most important information — later paragraphs add depth, not prerequisites

Long, prunable tail

Unlike a tight summary, the body may carry a long tail of quotes, background, and context that an editor (or reader) can cut from the bottom without losing the core

Contrast with BLUF

BLUF demands a short message with the bottom line up front; the Inverted Pyramid front-loads the conclusion but allows an extended, optional remainder

Contrast with the Pyramid Principle

Minto’s Pyramid builds a complete, MECE argument the reader should follow fully; the Inverted Pyramid optimizes for skimming and early exit, not for completeness

Key Proponents

Journalistic convention attributed to late-19th-century American wire-service reporting (telegraph cost and editing pressure); a standard taught in journalism and technical writing

When to Use:

  • News-style announcements, release notes, incident updates, changelog entries

  • Any text where readers skim and many will stop after the first lines

  • LLM-generated summaries that should front-load the takeaway

When NOT to Use:

  • Arguments that must be followed in full → use the Pyramid Principle

  • Ultra-short, single-message contexts → use BLUF

  • Narrative or suspense-driven writing where withholding is intentional

MECE Principle

Details
Full Name

MECE (Mutually Exclusive, Collectively Exhaustive)

Core Concepts:

Mutually Exclusive

Categories have no overlap - each item belongs to exactly one category

Collectively Exhaustive

Categories cover all possibilities - nothing is left out

Framework for organization

Systematic approach to structuring information and problems

Prevents duplication

Mutual exclusivity ensures no redundant coverage

Prevents gaps

Collective exhaustiveness ensures complete coverage

Clear boundaries

Unambiguous categorization with well-defined criteria

Hierarchical application

Can be applied recursively at multiple levels

Validation approach

Check both dimensions independently (exclusivity and exhaustiveness)

Key Proponent

Barbara Minto (McKinsey & Company, late 1960s)

When to Use:

  • Problem decomposition and analysis

  • Software architecture and component design

  • Module boundary definition to avoid overlapping responsibilities

  • Requirements organization and breakdown

  • API endpoint structure and design

  • Decision tree construction

  • Issue tree development

  • Organizing complex information

  • System design and modular architecture

  • Foundational to the Pyramid Principle

  • Supports Single Responsibility Principle

  • Enables Separation of Concerns

  • Used in logic trees and issue trees

Myers-Briggs Type Indicator (MBTI)

Details
Full Name

Myers-Briggs Type Indicator (MBTI)

Also known as

MBTI, Myers-Briggs, Jungian Type Theory Applied, 16 Personality Types

Core Concepts:

Four Dichotomies

The framework defines four preference dimensions, each with two poles:

  • Extraversion (E) vs. Introversion (I) — Where do you direct your energy? Outward toward people and activity, or inward toward ideas and reflection?

  • Sensing (S) vs. Intuition (N) — How do you take in information? Through concrete facts and present reality, or through patterns and future possibilities?

  • Thinking (T) vs. Feeling (F) — How do you make decisions? Based on logic and objective analysis, or based on values and interpersonal impact?

  • Judging (J) vs. Perceiving (P) — How do you deal with the outer world? With structure and planning, or with flexibility and spontaneity?

16 Personality Types

The four dichotomies combine into 16 distinct type profiles (e.g., INTJ, ENFP, ISTJ, ESFP), each with characteristic strengths, blind spots, and communication preferences

Cognitive Functions

Each type has a stack of four cognitive functions (e.g., dominant Introverted Intuition, auxiliary Extraverted Feeling for INFJs) that describe how information is processed and decisions are made

Preference, Not Ability

Type describes a natural preference, not a skill or fixed trait — people can and do use all functions, but prefer some over others

Type Dynamics

Understanding a team’s type mix reveals likely sources of friction (e.g., S/N conflicts over big-picture vs. detail focus) and natural collaboration patterns

Key Proponents

Isabel Briggs Myers and Katharine Cook Briggs, building on Carl Gustav Jung’s theory of psychological types ("Psychological Types", 1921)

Historical Context

Developed during World War II to help women entering the industrial workforce find roles suited to their personality; officially published as an instrument in 1962 and widely adopted in organizational and educational settings

When to Use:

  • Understanding communication preferences and potential friction sources within a team

  • Facilitating team retrospectives or kickoffs where interpersonal dynamics matter

  • Coaching individuals on leadership and communication style

  • Career development discussions to align role expectations with personal working style

  • UX research to consider how different user types might interact with a product

  • Onboarding programs to accelerate mutual understanding among new team members

Common Misunderstandings:

  • ❌ "My type means I can’t do X" — MBTI describes preferences, not capabilities or limits

  • ❌ "Types are fixed for life" — Preferences can shift with experience, stress, or context

  • ❌ "One type is better than another" — All 16 types bring value; the framework is descriptive, not evaluative

  • ✓ "MBTI is a starting point for self-reflection and dialogue" — Correct use is exploratory, not diagnostic

Criticism:

  • David J. Pittenger, via the MBTI overview — poor test-retest reliability: between 39% and 76% of respondents obtain a different type when retaking the indicator after only five weeks (about 50% change on at least one scale). Predictive validity for job performance is poor, and the instrument’s own manual discourages using it to predict job success.

  • Widely regarded as pseudoscience by the scientific community (organizational psychologist Adam Grant: "there’s no evidence behind it") — the four binary dichotomies impose discrete types on traits that are in fact continuous.

Current Status:

  • Scientifically discredited yet commercially dominant — roughly 50 million people have taken it and thousands of businesses and colleges use it. Treat it as a starting point for self-reflection and dialogue, never as a diagnostic or selection tool; this is why the anchor carries an :advisory: flag. The empirically validated alternatives are the Big Five / OCEAN and HEXACO.

Plain English according to Strunk & White

Details
Full Name

Plain English according to Strunk & White ("The Elements of Style")

Also known as

Strunk & White, The Elements of Style, Plain Style Writing

Core Concepts:

Omit Needless Words

Every word in a sentence should serve a purpose; cut words that add bulk without adding meaning — "the fact that" → "that", "owing to the fact that" → "since"

Use Active Voice

Prefer active constructions over passive; active voice is more direct, vigorous, and concise — "The dog bit the man" not "The man was bitten by the dog"

Use Definite, Specific, Concrete Language

Prefer the particular and tangible over the vague and abstract; concrete details make writing vivid and persuasive

Write With Nouns and Verbs

Rely on strong nouns and verbs rather than adjectives and adverbs; the right noun or verb makes modifiers unnecessary

Place the Emphatic Words at the End

The most important idea in a sentence belongs at its end — the position of greatest emphasis

Use Parallel Form

Express coordinate ideas in similar grammatical form; parallelism aids comprehension and gives prose a pleasing rhythm

Avoid Qualifiers

Remove weakening qualifiers like "rather", "very", "little", "pretty" — they dilute the force of the statement

Revise and Rewrite

Good writing is rewriting; a first draft is a starting point, not a finished product

Key Proponents

William Strunk Jr. ("The Elements of Style", 1918); E.B. White (revised edition, 1959)

When to Use:

  • Writing technical documentation, reports, emails, and API documentation

  • Reviewing or editing any English prose for clarity and conciseness

  • Coaching writers to reduce verbose or bureaucratic language

  • Preparing communications for broad, non-specialist audiences

  • Any writing where clarity and brevity are paramount

Criticism:

  • Geoffrey K. Pullum, "50 Years of Stupid Grammar Advice" (The Chronicle of Higher Education, 2009) — several of the book’s grammar claims are factually wrong (some "passive" examples are not passive), and the authors routinely violate their own rules; linguists fault the book for presenting personal style preferences as rules of English

  • The blanket rules ("avoid passive voice", "omit needless words") are criticised as dogma when applied mechanically — the passive is the correct choice whenever the receiver of the action is the topic

  • Alternatives named in the discourse: Joseph M. Williams, "Style: Toward Clarity and Grace" (1990) and Steven Pinker, "The Sense of Style" (2014) — clarity guidance grounded in linguistics and reader psychology rather than prescription

Plain Language (ISO 24495)

Details
Full Name

ISO 24495-1:2023, Plain language — Part 1: Governing principles and guidelines

Also known as

The ISO plain language standard; ISO 24495-1. Parts 2 and 3 cover legal communication and science writing.

Core Concepts:

  • Plain language is defined by what the reader can do, not by how the text looks. The standard builds on the definition the International Plain Language Federation adopted in 2014: a communication is in plain language if its wording, structure and design are so clear that the intended readers can easily find what they need, understand what they find, and use that information.

  • Four governing principles, each with guidelines. Readers get what they need (relevant); readers can easily find what they need (findable); readers can easily understand what they find (understandable); readers can easily use the information (usable).

  • Relevant starts before the first sentence. Identify the readers, their purpose and the context in which they read, then choose the document type and only the content they need.

  • Findable is about structure. Headings, a logical order, information design, and supplementary material kept apart from what most readers need.

  • Understandable covers more than word choice. Familiar words, clear sentences and paragraphs, cohesion, tone and supporting images.

  • Usable means evaluating with readers. The document is checked during development, with real readers, and after release — not just with a readability score.

  • For most languages. The principles are language- and culture-neutral; national bodies add language-specific rules, such as DIN 8581-1 (2024) for German.

    Key Proponents

    ISO Technical Committee 37, Working Group 11; proposed by the International Plain Language Federation through Standards Australia in 2019; published June 2023

When to Use:

  • Letters, notices, forms and web pages for the public, especially from government, insurers, banks and health services

  • Terms and conditions, privacy notices and other legal texts that readers must act on

  • Reviewing a document against an outcome ("can the reader find, understand and use this?") rather than a style rule

  • Product and API documentation for readers outside the team that wrote it

Common Misunderstandings:

  • Reading it as "simple words". Word choice is one guideline among many. A rewrite that only shortens sentences and swaps words fails the findable and usable principles. In our prior test the bare words "plain language" produced exactly that: shorter prose without structure. Naming the standard produced headings and steps for the reader on every tier we tested.

  • Confusing it with Plain English according to Strunk & White. Strunk & White is a style manual for English prose. ISO 24495 is an outcome standard for most written languages, and it asks for evaluation with readers throughout, not only at the end.

  • Confusing it with Simplified Technical English. ASD-STE100 is a controlled language with a closed word list. ISO 24495 is principle-based and prescribes no vocabulary.

  • Confusing it with Easy Language. In German, ISO 24495 corresponds to Einfache Sprache. Leichte Sprache, for readers with cognitive impairments, is a different concept; DIN 8581-1 explicitly excludes it.

  • Expecting a readability score. The standard does not set one; usability is checked with readers.

Criticism:

  • The plain language movement’s premise is contested by data. Yonathan Arbel, "The Readability of Contracts: Big Data Analysis" (Journal of Empirical Legal Studies 21, 2024), analysed about two million contracts. He writes that the study "challenges fundamental tenets of the plain language movement": consumer agreements "have median reading scores almost indistinguishable from those of daily news articles", and readability tools give large grade-level differences for identical texts. The critique targets readability-score arguments, which ISO 24495 itself does not rely on.

Current Status:

Nonviolent Communication (Rosenberg)

Details
Also known as

NVC, Problem Space NVC, Gewaltfreie Kommunikation (GFK)

Core Concepts:

Observations

Concrete, objective facts without evaluation or judgment. "The deploy failed three times this week" instead of "The deploy always fails."

Feelings

Emotions arising from observations. "I feel frustrated" instead of "This is frustrating."

Needs

Universal human needs underlying feelings. Reliability, autonomy, clarity, safety. The real driver behind every request.

Requests

Specific, actionable asks (not demands). "Could we add a pre-deploy check?" instead of "Fix the deploy process."

Four-step process

Observe → Feel → Need → Request. Each step builds on the previous one.

Key Proponent

Marshall Rosenberg ("Nonviolent Communication: A Language of Life", 1999)

When to Use:

  • Tell an LLM: "Reformulate this complaint using NVC according to Rosenberg"

  • Tell an LLM: "Write this stakeholder email in NVC style — observation, feeling, need, request"

  • Requirements elicitation that uncovers real user needs behind feature requests

  • Conflict resolution in teams and retrospectives

  • Transforming vague complaints into actionable requirements

  • Socratic Method — complementary: NVC for expressing, Socratic for exploring

  • BLUF — contrasting style: BLUF is conclusion-first, NVC is empathy-first

Progressive Disclosure

Details
Also known as

Layered Information Disclosure, Training Wheels Design

Core Concepts:

Show essentials first

Present only the most important options on the primary screen; defer advanced or rarely used features to secondary views. Users gain access to power without being overwhelmed by it.

Reveal on demand

Additional depth becomes available exactly when the user requests it — not before. The trigger must carry strong information scent so users know that more exists.

Cognitive load reduction

Limiting the visible option set improves three usability metrics simultaneously: learnability, efficiency of use, and error rate.

Two-level limit

Designs with more than two disclosure levels consistently yield low usability. When a third level seems necessary, the feature set needs simplification, not another layer.

Key Proponents

John M. Carroll and colleagues (training-wheels research at IBM, 1983–1984; see Nielsen’s summary of Carroll’s findings, NN/g, 2006 — the original empirical basis); Jakob Nielsen ("Progressive Disclosure", NN/g, 2006 — formalized the usability guidelines and the two-level recommendation)

When to Use:

  • Designing UIs for applications with many features or configuration options

  • Structuring documentation so that one entry point serves both beginners and experts

  • Building onboarding flows that let new users succeed before exposing advanced settings

  • Prompting an LLM to produce layered output — executive summary first, full detail on request

  • Authoring tutorials where novice and expert readers share the same page

Criticism:

  • Carroll and Rosson (1997) noted that empirical support for progressive disclosure is narrow: the foundational training-wheels studies used a single application (a word processor) and a single interface style (menu-based control), leaving the technique’s generalizability unconfirmed (cited in IxDF Glossary of Human-Computer Interaction)

  • Nielsen warns that exceeding two disclosure levels consistently produces low usability — the technique can mask an underlying information-architecture problem rather than solve it (NN/g, 2006)

Pyramid Principle according to Barbara Minto

Details
Full Name

The Minto Pyramid Principle according to Barbara Minto

Core Concepts:

Governing Thought

Single key message at the top of the pyramid

SCQ Framework

Situation → Complication → Question → Answer structure for setting context

MECE Principle

Mutually Exclusive, Collectively Exhaustive grouping of ideas

Vertical Logic

Each level answers "Why?" of the level above it

Horizontal Logic

Arguments at the same level grouped deductively or inductively

Top-Down Delivery

Present conclusion first, then supporting arguments

Pyramid Structure

One central idea supported by groups of three supporting ideas

BLUF

Bottom Line Up Front - lead with the conclusion

Deductive vs. Inductive Reasoning

Choose appropriate logic for horizontal grouping

Key Proponent

Barbara Minto (McKinsey, "The Minto Pyramid Principle", 1987)

When to Use:

  • Executive presentations and briefings

  • Written reports and proposals

  • Complex arguments requiring clear structure

  • Stakeholder communication where time is limited

  • Business cases and recommendations

  • Consulting deliverables

  • Any situation requiring persuasive, structured communication

Sender-Receiver Discrepancy

Details
Also known as

Communication Gap, Encoding-Decoding Gap, Intended-vs-Received Gap

This is an umbrella concept spanning multiple independent communication models. It names the phenomenon cause-agnostically; individual frameworks (Shannon-Weaver, Schulz von Thun, Hall, Clark) each diagnose specific causes. It is therefore a candidate for a contract rather than a single-proponent anchor.

Core Concepts:

Intended meaning ≠ received meaning

The sender constructs a message with a particular intent; the receiver reconstructs a meaning from that message. These are independent cognitive acts. The reconstructed meaning is not guaranteed to match the intended one.

Encoding and decoding are separate processes

The sender encodes meaning into words, signs, or structure. The receiver decodes them through their own context, knowledge, and assumptions. Any mismatch between the sender’s encoding frame and the receiver’s decoding frame produces a discrepancy.

Cause-agnostic umbrella — four diagnostic lenses
Noise (Shannon & Weaver, 1948)

Physical or semantic interference in the channel distorts the signal before it reaches the receiver; the discrepancy originates outside either party.

Four sides of a message (Schulz von Thun, 1981)

The sender stresses one of four facets — factual content, self-disclosure, relationship, or appeal; the receiver decodes through a different "ear", producing a systematic mismatch without any channel failure.

Active decoding positions (Hall, 1973/1980)

Receivers are not passive; they construct meaning from their own social and cultural context. The same encoded message yields dominant, negotiated, or oppositional readings depending on the receiver’s framework.

Insufficient common ground (Clark & Brennan, 1991)

Communication succeeds only when sender and receiver have accumulated enough shared knowledge, beliefs, and assumptions — their common ground. Without adequate grounding, the receiver fills gaps with their own model rather than the sender’s intent.

Meaning is reconstructed, not transmitted

No meaning travels intact from sender to receiver. The receiver always re-creates meaning by combining what the message provides with what they already know. The illusion of transparent transmission is itself a source of discrepancy.

Key Proponents

Claude Shannon & Warren Weaver ("A Mathematical Theory of Communication", Bell System Technical Journal, 1948 — noise-in-channel model);
Friedemann Schulz von Thun ("Miteinander reden 1: Störungen und Klärungen", 1981 — multi-layer encoding/decoding via the Communication Square);
Stuart Hall ("Encoding/Decoding", 1973/1980 — audiences actively construct meaning from three subject positions);
Herbert H. Clark & Susan E. Brennan ("Grounding in communication", in: Perspectives on Socially Shared Cognition, APA, 1991 — mutual understanding depends on accumulated common ground)

When to Use:

  • Naming the root phenomenon before choosing a diagnostic framework — use this term to describe the problem, then choose Shannon-Weaver, Schulz von Thun, Hall, or Clark to diagnose its cause

  • Reviewing a document, email, or specification to ask whether the receiver’s likely decoding matches the sender’s intent

  • Debriefing after a miscommunication in a team: "We had a sender-receiver discrepancy — which layer broke down?"

  • Prompting an LLM to evaluate a draft from the reader’s perspective, not the writer’s

  • Framing a communication training or workshop before introducing specific models

Tufte Style

Details
Full Name

Tufte Style — the information-design principles of Edward R. Tufte

Also known as

Tufte’s principles of information design. In tooling the eponym is already a style token: theme_tufte in R’s ggthemes, Tufte CSS, the tufte-latex document classes, matplotlib-tufte.

Core Concepts:

  • Data-ink ratio. Of all the ink on the page, the share that encodes data should be as large as it usefully can be. Gridlines, frames, fills, shadows and 3-D effects encode no data; at best they help the eye find its way. They are therefore the first candidates for removal, not automatic deletions: a gridline that lets the eye read a value off the chart is doing work, and muting it usually beats deleting it.

  • Chartjunk. The name for decoration that competes with the evidence — moiré patterns, ornamental icons, gratuitous colour. Naming it as a defect is what makes it removable.

  • Graphical integrity, measured by the lie factor. The size of the effect shown should equal the size of the effect in the data. A distorted axis or a scaled-area icon is a quantitative error, not a matter of taste.

  • Small multiples. Repeat one compact panel across subsets on identical axes. The comparison then happens in the eye rather than in the reader’s memory.

  • Sparklines. A word-sized graphic set inside the sentence it belongs to, so the number and its history occupy the same line.

  • Direct labelling instead of legends. Put the name on the line. A legend forces the reader to hold a colour in memory and look it up again for every mark.

  • Density is the point, not emptiness. This is the distinction that decides whether the term was understood: remove what carries no information, then spend the reclaimed space on more information. A Tufte-style page usually contains more than the one it replaces.

  • Words, numbers and images belong together. Caption, annotation and graphic sit in one place rather than in three. The sidenote layout that carries Tufte’s name is this principle applied to running text.

When to Use:

  • Designing a dashboard or a status report, especially where the default is large KPI tiles, gauges and traffic lights

  • Reviewing a chart before it goes into documentation, a slide deck or a paper

  • Anywhere a graphic has to survive being printed in black and white, or read at a glance

  • When a report has grown to several pages because each number was given its own panel

Common Misunderstandings:

  • Reading it as minimalism. A minimalist chart contains little; a Tufte-style chart often contains a great deal and merely wastes no ink. Stripping detail to look clean inverts the principle.

  • Treating it as a visual skin. It is a set of decisions about evidence — what is compared, at what scale, against what baseline — not a palette and a font.

  • Taking the data-ink ratio for a law. It is a heuristic, and experiment has put some of its premises in question. See Criticism.

  • Confusing the two things the name covers. "Tufte style" names both the chart principles and the sidenote page layout of Tufte CSS and tufte-latex. They share an author and a motive, but a request for one does not deliver the other; say which you mean.

Criticism:

  • The data-ink position was tested empirically, and it did not survive intact. Bateman, Mandryk, Gutwin, Genest, McDine and Brooks put embellished charts against plain ones in "Useful Junk?" (CHI 2010) and report: "people’s accuracy in describing the embellished charts was no worse than for plain charts, and their recall after a two-to-three-week gap was significantly better. Although we are cautious about recommending that all charts be produced in this style, our results question some of the premises of the minimalist approach to chart design." Decoration that aids memory is not junk by Tufte’s own criterion of usefulness.

  • Readers do not want the minimum either. Inbar, Tractinsky and Meyer, "Minimalism in information visualization" (ECCE 2007): "The results indicate a clear preference of non-minimalist bar-graphs, suggesting low acceptance of minimalist design principles such as high data-ink ratio." This measures preference, not comprehension — a weaker claim than Bateman’s, and worth keeping separate.

  • The debate is live, not settled, and it has defenders on Tufte’s side. Stephen Few, writing from the same minimalist position, takes Bateman’s conclusion apart in "The Chartjunk Debate" (Perceptual Edge, 2011), objecting to the claim that "many examples exist of embellished charts that seem to be successful" with a flat "Many examples?" Harvard’s own summary of Borkin et al.'s memorability study frames the field the same way: researchers teaming up "to settle a debate over 'chart junk'" that "still rages among visualization experts".

  • The Challenger analysis is contested by one of the engineers in it. Wade Robison, Roger Boisjoly, David Hoeker and Stefan Young published "Representation and misrepresentation: Tufte and the Morton Thiokol engineers on the Challenger" in Science and Engineering Ethics 8(1), January 2002, 59-81 — and Boisjoly was one of the Thiokol engineers who argued against the launch. The paper "examines the role of the Morton Thiokol engineers in the decisions surrounding the launch of the Challenger, particularly with reference to an analysis of this event by Edward Tufte", and concludes "that the engineers thus did what they were ethically as well as professionally obligated to do" — against Tufte’s reading that a better graphic would have prevented the launch decision.

  • Don Norman attacks the PowerPoint essay, and the attack lands on the method. In "In Defense of PowerPoint", responding to Tufte’s The Cognitive Style of PowerPoint, Norman writes: "Just because Tufte, in hindsight (when he already knows the answers), can look back and show they were wrong, and then point to discrepancies in their presentation, does not mean the fault lies in the presentation, nor in the tool used to present it." He adds that on the slide in question, "the slide should have had less information on it — Tufte wants more information."

  • Keep the three targets apart. Bateman, Inbar and Borkin test the principles; Robison and colleagues dispute the Challenger analysis; Norman argues with the PowerPoint essay and the Columbia slide reading inside it. None of them is a rebuttal of the others, and the Columbia shuttle is not the Challenger.

Current Status:

  • The four books, as the publisher lists them. Graphics Press gives The Visual Display of Quantitative Information as "1983 / 2nd Edition 2001" — the same book under two years, and the second edition is the one in print. Then Envisioning Information (1990), Visual Explanations (1996, widely miscited as 1997) and Beautiful Evidence (2006). A fifth, Seeing with Fresh Eyes, followed in 2020, so "his four books" is no longer accurate.

  • The name is baked into tooling, which is why it holds as an anchor. theme_tufte in R’s ggthemes cites the data-ink chapter by name: "No border, no axis lines, no grids." Tufte CSS and the tufte-latex classes carry the sidenote layout; matplotlib-tufte carries the chart rules into Python. A term that ships as an installable default is one a model has seen in code as well as in prose.

  • The typographic branch is stable to the point of dormancy. CTAN lists tufte-latex at 3.5.2 with its most recent announcement in 2015. That is not decay — the layout was finished — but it means the second meaning of the name lives on in copies rather than in active development.

  • There is no German-language critical tier to cite. A search on 2026-08-25 across six German query forms returned method descriptions, university slides and translations of English originals; the German Wikipedia article has no Kritik section. What criticism exists from German-speaking practitioners is published in English — the Datawrapper book club, run from Berlin, is the clearest case. This is a language-frame result, not an absence of opinion: see the prior-test register for the terms searched.

Zone of Proximal Development

Details
Also known as

ZPD; Zone of Next Development

Core Concepts:

The learning gap

The distance between what a learner can do independently ("actual development level") and what they can achieve with guidance from a More-Knowledgeable Other ("level of potential development"). Instruction is productive only inside this gap — above it the task exceeds the learner’s reach; below it nothing new is learned.

More-Knowledgeable Other (MKO)

Any person — teacher, peer, mentor — with greater competence in the relevant domain. The MKO need not be a formal authority; a marginally more advanced peer often fulfils the role just as well.

Scaffolding

Temporary, targeted support that enables the learner to work within the ZPD. Vygotsky never used the term "scaffolding." David Wood, Jerome S. Bruner, and Gail Ross introduced it in 1976 — after Vygotsky’s death — to name the practical support structures their tutoring experiments revealed.

Fading

Gradual withdrawal of scaffolding as competence grows. Fading is the sign that learning has occurred and the ZPD has shifted upward. Without fading, support breeds dependency rather than autonomy.

Key Proponents

Lev Vygotsky (Mind in Society: The Development of Higher Psychological Processes, Harvard University Press, 1978 — introduced the ZPD definition); David Wood, Jerome S. Bruner & Gail Ross ("The Role of Tutoring in Problem Solving", Journal of Child Psychology and Psychiatry, 17, 89–100, 1976 — coined "scaffolding")

When to Use:

  • Designing instruction or onboarding content: pitch difficulty just above the learner’s current independent ability, not at or below it

  • LLM prompting: "Explain X at the level of someone who knows Y but not yet Z" — targeting the ZPD rather than explaining from scratch or over-explaining

  • Coaching and mentoring: identify what the mentee can almost do alone; scaffold from there and withdraw support as skill grows

  • Documentation review: check whether explanations assume too much (beyond the reader’s ZPD) or repeat what is already known (below it)

  • Calibrating AI-assisted tutoring: use demonstrated learner performance as the baseline and target the next challenge level

  • Bloom’s Taxonomy — classifies the cognitive level of a task; ZPD locates the challenge band where a specific learner can grow

  • 4MAT — structures a teaching arc from motivation to transfer; ZPD identifies where in that arc the learner currently stands

  • Feynman Technique — surfaces the learner’s actual understanding floor, which maps to the lower bound of their ZPD

Current Status:

  • "Scaffolding" is widely attributed to Vygotsky in secondary literature, but the term is absent from his writing. The distinction matters when prompting an LLM: invoking "ZPD" activates Vygotsky’s sociocultural framing; invoking "scaffolding" activates Wood/Bruner/Ross’s instructional mechanics. Both are valid anchors for related but distinct ideas.

  • Moll (1990) argued that interpretations focused on skill-transfer from expert to novice are "too narrow, theoretically misleading, and of limited instructional utility," calling instead for collective, activity-based zones rather than individual expert–novice dyads. See: Luis C. Moll, "Vygotsky’s zone of proximal development: Rethinking its instructional implications", Infancia y Aprendizaje, 1990

Creative Writing

Fichtean Curve

Details
Also known as

Rising Action Structure, Crisis-Driven Structure

Core Concepts:

In medias res opening

Story begins in the middle of action — no leisurely setup; the protagonist is already in crisis

Rising crises

A series of escalating mini-crises (not a single inciting incident) each raising stakes higher than the last; no breathing room between them

No traditional Act 1

Background and character development are woven into the action retrospectively rather than front-loaded

Relentless escalation

Each crisis forces the protagonist to make a consequential choice that inevitably leads to the next, larger crisis

Climax

The final, highest-stakes crisis where the central conflict is resolved

Falling action (brief)

Short denouement after the climax; the curve descends steeply

Retrospective exposition

Backstory is delivered only as needed to understand the next crisis — never as separate scenes

Key Proponents

Named after German philosopher Johann Gottlieb Fichte; popularised in craft books by John Gardner and Janet Burroway

When to Use:

  • Short stories and novellas where pace is paramount

  • Any narrative that must grip immediately and sustain tension throughout

  • Genre fiction (thriller, horror, action) requiring constant momentum

  • Instructing LLMs to write with "constant crisis" and "rapid pacing" constraints

  • Diagnosing why a story feels slow — the Fichtean Curve demands crises, not lulls

Freytag’s Pyramid

Details
Also known as

Five-Act Structure, Dramatic Arc, Dramatic Pyramid, Yorke’s Five-Act Structure

Core Concepts:

Exposition (Introduction)

Establishes the setting, protagonist, and status quo; introduces the inciting conflict

Rising Action

A series of complications and conflicts build tension; protagonist pursues goal while antagonist force resists; stakes escalate

Climax

The turning point of maximum tension; the decisive confrontation or revelation that determines the outcome

Falling Action

Consequences of the climax unfold; loose ends begin to resolve; tension releases

Dénouement (Resolution / Catastrophe)

Final equilibrium — either a restoration (comedy) or a tragic collapse (tragedy); loose ends are tied

Dramatic irony

The audience may know more than the protagonist, heightening tension — a hallmark of classical five-act drama

Hamartia

The protagonist’s fatal flaw that drives the tragic trajectory — central to Freytag’s original analysis of Shakespeare’s tragedies

Key Proponents

Gustav Freytag ("Die Technik des Dramas", 1863); John Yorke ("Into the Woods", 2013) — modern expansion linking Freytag to neuroscience of narrative

When to Use:

  • Analysing classical plays, tragedies, and literary fiction

  • Teaching the universal arc of dramatic tension to students or LLMs

  • Diagnosing whether a story’s climax is properly positioned at the midpoint

  • Writing tragedy or dramatic fiction where the protagonist’s flaw drives the collapse

  • Understanding why Act 2 / Rising Action sags — it must contain escalating complications, not filler

Criticism:

  • Novelist and writing professor Jane Alison (Meander, Spiral, Explode, 2019; excerpt at CRAFT) objects that the pyramid was never a general theory of stories — "Novels didn’t exist for Aristotle and weren’t Freytag’s subject" — calls the swell-climax-collapse arc "masculo-sexual", and proposes waves, meanders, and spirals as equally valid narrative designs

  • Freytag derived the model from five-act stage tragedy, not narrative in general; Chris Winkle (Mythcreants, 2024) argues it "isn’t really applicable to modern stories"

  • Defenders such as TD Storm (Storm Writing School) counter that, read as Freytag intended — an analysis of classical drama — it is a descriptive lens; the criticism properly targets its later misuse as a universal template

Hero’s Journey

Details
Also known as

Monomyth, Campbell’s Monomyth, The Writer’s Journey (Vogler adaptation)

Core Concepts:

Ordinary World

The hero’s familiar environment before the adventure begins; establishes baseline and stakes

Call to Adventure

The inciting event that invites or compels the hero to leave the ordinary world

Refusal of the Call

Hero’s initial hesitation or reluctance, adding realism and raising stakes

Meeting the Mentor

The hero encounters a guide who provides wisdom, tools, or confidence

Crossing the Threshold

Hero commits and enters the Special World of the adventure — point of no return

Tests, Allies, and Enemies

Hero navigates the unfamiliar world, building relationships and facing obstacles

Ordeal / Innermost Cave

The central crisis — a death-and-rebirth experience that transforms the hero

Reward (Seizing the Sword)

Hero survives the ordeal and claims a reward (knowledge, object, resolution)

The Road Back

Hero begins the return, often pursued by consequences of the ordeal

Resurrection

Final climactic test where hero is transformed — applying lessons from the journey

Return with the Elixir

Hero returns to the ordinary world changed, bringing something of value back

Key Proponents

Joseph Campbell ("The Hero with a Thousand Faces", 1949), Christopher Vogler ("The Writer’s Journey", 1992)

When to Use:

  • Structuring transformation stories — character arcs where the protagonist changes fundamentally

  • Identifying whether a narrative has mythic resonance and universal appeal

  • Guiding LLMs to write archetypal stories or analyse existing myths and films

  • Deepening character development by mapping each stage to internal transformation

  • Marketing narratives positioning the customer as the hero

Criticism:

  • Folklorists broadly reject the monomyth’s claim to universality: Alan Dundes ("Folkloristics in the Twenty-First Century", Journal of American Folklore 118/470, 2005) called Campbell a "non-expert" whose pattern survives only by source-selection bias, and Barre Toelken noted Campbell "could construct a monomyth of the hero only by citing those stories that fit his preconceived mold" (overview with citations: Jeana Jorgensen, "Why Folklorists Hate Joseph Campbell’s Work")

  • David Brin (Salon, 1999) attacks the template’s value system: the Campbellian demigod formula carries elitist, anti-democratic ideals

  • Since Christopher Vogler’s Disney memo turned Campbell into a screenwriting guide, forcing stories into the template has been blamed for predictable, interchangeable plots — defenders reply that Campbell described recurring mythic patterns, not a recipe

Kishōtenketsu

Details
Also known as

Four-Act Eastern Structure, 起承転結 (Ki-Shō-Ten-Ketsu), Kishōtenketsu

Core Concepts:

Ki (起) – Introduction

Introduce the characters, setting, and situation without conflict; establish the status quo with curiosity

Shō (承) – Development

Continue and expand on what was introduced; deepen the world, add detail, build the reader’s engagement; no conflict required

Ten (転) – Twist

Introduce a surprising, unexpected element that recontextualises everything established so far; the "twist" is not a villain or conflict — it is a revelatory shift in perspective or a new element that changes meaning

Ketsu (結) – Reconciliation

Synthesise the introduction, development, and twist into a harmonious resolution; the new element from Ten is integrated, producing insight, beauty, or meaning

No conflict requirement

Unlike Western three-act structure, Kishōtenketsu does not require protagonist-antagonist conflict; tension arises from juxtaposition and recontextualisation, not opposition

Juxtaposition as engine

The structural heart is the Ten — the unexpected element that makes the reader re-read the Ki and Shō with new eyes

Influence on game design

Nintendo game director Koichi Hayashida has cited Kishōtenketsu as the design philosophy behind Super Mario level structure

Key Proponents

Classical Chinese (qǐ chéng zhuǎn hé) and Japanese (ki shō ten ketsu) poetic and narrative tradition; modern analysis by Tzvetan Todorov and narratologists studying non-Western story forms

When to Use:

  • Writing short fiction, manga, or poetry where surprise recontextualisation replaces conflict

  • Crafting non-confrontational narratives (slice-of-life, meditative, philosophical)

  • Instructing LLMs to write with "no villain" — structures built on insight rather than opposition

  • Game level design, puzzle design, or UX flows where each step recontextualises the previous

  • Breaking Western narrative assumptions when conflict-based structure feels forced

Save the Cat! (15-Beat Sheet)

Details
Also known as

Blake Snyder Beat Sheet, BS2, 15-Beat Sheet

Core Concepts:

Opening Image

A single scene (p. 1) establishing the tone, mood, and "before" snapshot of the protagonist’s world

Theme Stated

By page 5 someone (not the hero) articulates the film’s thematic argument — the lesson the hero must learn

Set-Up (pp. 1–10)

Introduce hero in their ordinary world; plant every character and element that will pay off later

Catalyst (p. 12)

The inciting incident — life-changing event that kicks the story into gear

Debate (pp. 12–25)

Hero hesitates; internal or external conflict about whether to take the leap

Break into Two (p. 25)

Hero makes a choice and enters the upside-down world of Act 2 — the new status quo begins

B Story (p. 30)

A secondary story (often a love story or mentor relationship) carrying the theme

Fun and Games (pp. 30–55)

The "promise of the premise" — deliver what the audience came for; poster scenes

Midpoint (p. 55)

A false victory or false defeat that raises stakes; hero goes from reactive to proactive

Bad Guys Close In (pp. 55–75)

External pressure increases while internal doubts resurface

All Is Lost (p. 75)

The worst moment — something is lost (or someone dies); the "whiff of death"

Dark Night of the Soul (pp. 75–85)

Hero wallows in despair; the last moment of hesitation before transformation

Break into Three (p. 85)

Inspiration strikes — the A story and B story merge; hero finds the solution

Finale (pp. 85–110)

Execute the new plan; world is stormed, changed, and reset at a higher level

Final Image (p. 110)

Mirror of the Opening Image — the world has changed; prove the theme was mastered

Key Proponents

Blake Snyder ("Save the Cat!", 2005)

When to Use:

  • Writing commercially viable screenplays or genre fiction with audience-tested pacing

  • Auditing a story beat-by-beat for structural gaps or pacing problems

  • Instructing LLMs to generate story outlines aligned with Hollywood conventions

  • Teaching story structure with precise page/percentage targets

  • Developing the "logline" (one-sentence pitch) that encapsulates the premise

Criticism:

  • Peter Suderman, "Save the Movie!" (Slate, 2013) — the beat sheet "has taken over Hollywood screenwriting" and "made every movie feel the same": where Syd Field and Robert McKee treated structure as "an organizing principle", Snyder pinned named beats to page numbers, turning description into prescription

  • The piece sparked an industry debate; responses like Christopher Boone’s at No Film School (2013) accept that screenplays need structure but ask whether writers lean on the beat sheet instead of the story — the recurring defense being that Snyder catalogued beats that already recur in successful films

Story Circle (Dan Harmon)

Details
Also known as

Harmon Story Circle, Dan Harmon’s Story Circle, Channel 101 Narrative Structure

Core Concepts:

You (Establish a protagonist)

Begin with a character in their zone of comfort — the ordinary world; the audience must identify with them

Need (Something the character wants or needs)

The protagonist desires something; this desire drives all subsequent action

Go (Enter an unfamiliar situation)

Protagonist crosses into an unfamiliar situation in pursuit of the need; the adventure begins

Search (Adapt to the new situation)

Protagonist must navigate and adapt to the new world — the main body of the story

Find (Get what they wanted)

Protagonist achieves what they were seeking (the "want"), but this is rarely the real satisfaction

Take (Pay the price)

The cost of getting what was wanted; a sacrifice is made — the price of growth

Return (Return to the familiar situation)

Protagonist carries their hard-won change back to the familiar world

Change (Apply the change)

The protagonist (and world) is transformed; the "need" is finally met, even if the "want" was different

The Circle as loop

Unlike linear structures, the circle implies that stories are cyclical — transformation restores balance at a higher level

Compression for television

Designed to work at any scale: one episode, one season, one film; each act is ~12.5% of the story

Key Proponents

Dan Harmon (creator of Community and Rick and Morty); adapted from Joseph Campbell’s Monomyth

When to Use:

  • Writing or analysing episodic TV where each episode needs a mini-arc

  • Identifying the "want vs. need" gap — the engine of character-driven stories

  • Instructing LLMs to write stories with clear transformation arcs at any scale

  • Teaching Campbell’s Monomyth in a compressed, actionable eight-step format

  • Diagnosing stories where the protagonist doesn’t change — the circle requires transformation

Three-Act Structure

Details
Also known as

Setup-Confrontation-Resolution, Beginning-Middle-End, Aristotelian Three-Act Structure

Core Concepts:

Act 1 – Setup

Introduce protagonist, world, and status quo; ends with an Inciting Incident that propels the protagonist into the main conflict (~25% of story)

Act 2 – Confrontation

Protagonist pursues goal while obstacles escalate; contains Midpoint Reversal and All-Is-Lost moment; longest act (~50% of story)

Act 3 – Resolution

Climax where protagonist faces the central conflict at maximum stakes, followed by denouement restoring a new equilibrium (~25% of story)

Inciting Incident

The triggering event that disrupts the protagonist’s ordinary world and sets the story in motion

Midpoint Reversal

The structural centre of Act 2 where the protagonist shifts from reactive to proactive stance

All Is Lost / Dark Night

The low point immediately before the final push, where all seems hopeless

Climax

The decisive confrontation between protagonist and antagonist force resolving the central conflict

Key Proponents

Aristotle ("Poetics"), Syd Field ("Screenplay"), Robert McKee ("Story"), Blake Snyder ("Save the Cat!")

When to Use:

  • Structuring any narrative-driven content (fiction, screenplays, marketing copy, presentations)

  • Checking whether a story has a balanced beginning, middle, and end

  • Diagnosing pacing problems — too much setup, sagging middle, rushed ending

  • Guiding LLMs to write or critique stories with classical dramatic structure

Design Principles & Patterns

Details
Full Name

BlinkWithoutDelay, the built-in Arduino example sketch (File > Examples > 02.Digital > BlinkWithoutDelay) that blinks an LED by comparing millis() timestamps instead of calling delay(). Its header reads "created 2005 by David A. Mellis", with later changes by Paul Stoffregen, Scott Fitzgerald and Arturo Guadalupi; documented at docs.arduino.cc.

Also known as

Blink without Delay; the millis() pattern; non-blocking timing in a superloop

Core Concepts:

Never Block the Loop

delay() stops the whole program, including button reads, serial input and every other task. The sketch keeps loop() running freely and decides on every pass whether anything is due.

Timestamp Plus Interval

Store when something last happened, and on each pass check whether the interval has elapsed: if (currentMillis - previousMillis >= interval). When it has, act and update the timestamp. The state that has to survive between passes — the timestamp, the LED level — lives in globals or static variables.

Overflow-Safe Subtraction

millis() returns an unsigned long that wraps to zero after about 49.7 days. Subtracting the old timestamp from the new one gives the right elapsed time even across the wrap, because unsigned arithmetic is modular. Comparing millis() >= previousMillis + interval breaks at the wrap.

One Timer per Task

Each independent job — blink, debounce a button, poll a sensor — gets its own timestamp and interval. Several of them run side by side in one loop(), which is cooperative multitasking without an operating system.

The Step to a State Machine

As soon as a task has more than "on" and "off", the timestamp check drives a finite-state-machine: each state waits for its interval or event and then moves on. BlinkWithoutDelay is the smallest case of that structure.

Platform Idiom, General Idea

The name belongs to Arduino, the technique does not. The same pattern appears on any bare-metal superloop with a tick counter, which is why the name works as an anchor beyond the LED it blinks.

When to Use:

  • Arduino and other microcontroller code that has to react to input while something else is timed

  • Rewriting a sketch that uses delay() before adding a second task to it

  • Teaching the step from a single blocking loop to cooperative multitasking and state machines

  • Driving a model: "add the button, BlinkWithoutDelay style" removes every delay() and keeps the input responsive, where "add the button" tends to keep the delay() calls

Common Misunderstandings:

  • ❌ "BlinkWithoutDelay is about blinking LEDs" — the LED is the demonstration; the subject is not blocking the loop

  • ❌ "`millis() >= previousMillis + interval` is equivalent" — it fails when millis() wraps; subtract, then compare

  • ❌ "This is an interrupt-based timer" — it is polling in the main loop; interrupts and hardware timers are a different technique

  • ❌ "It replaces an RTOS" — it covers cooperative tasks that finish quickly; long-running or preemptive work needs more

  • ✓ "Every task checks its own elapsed time on every pass, and nothing ever waits"

Boy Scout Rule

Details
Full Name

The Boy Scout Rule

Also known as

Leave the campground cleaner than you found it, Check in cleaner than you checked out

Core Concepts:

  • Check the module in cleaner than you checked it out. The unit of improvement is the visit, not the project. Every time a file is opened for some other reason, it leaves in slightly better shape than it arrived.

  • Scoped to what you already touched. The cleanup rides along with work that was going to happen anyway. Code you did not need to open is out of scope — that is the line between the rule and drive-by refactoring.

  • Small enough to need no permission. Rename an unclear variable, extract a method, delete dead code, fix a stale comment. If it needs a ticket, it is no longer this rule.

  • Aimed at entropy, not at perfection. The target is the slow decay of a codebase nobody is responsible for, not a standard of cleanliness. Slightly better, repeatedly, beats a rewrite that never comes.

  • Safe only under test. The rule assumes a green test suite. Without one, "improvement" is an unverified change to code you opened for a different reason.

When to Use:

  • Fixing a bug in a file nobody has read in years

  • Codebases with no dedicated refactoring budget, where improvement has to be smuggled into ordinary work

  • As a shared team norm, so the cleanup is expected rather than defended in review

  • Where code is generated or changed faster than humans critically review it, and decay would otherwise accumulate unobserved

Common Misunderstandings:

  • Reading it as a licence to refactor anything nearby. The rule is bounded by what the task already touched. Unbounded, it produces pull requests whose reviewers cannot find the actual change.

  • Mixing structural and behavioural change in one commit. The cleanup and the fix should be separable, so that a reviewer can read one without the other and a revert does not take both. Kent Beck’s Tidy First? makes that separation its central rule.

  • Confusing "cleaner" with "in my style". Reformatting to personal preference adds diff noise and removes no decay.

  • Applying it without tests. Then it is not tidying, it is an unreviewed change under a virtuous name.

Criticism:

  • The cleanup and the fix arrive in the same diff. Jason Swett states the two consequences plainly: "It will be harder for any pull request reviewer to tell what exactly changed between the old code and the new code", and "If a feature/bugfix and piece of refactoring are mixed into one piece of work, it’s impossible to roll one back without rolling back the other." Swett, "Why the Boy Scout Rule is insufficient" (17 December 2018). He also names a class of change the rule cannot hold — "park-level" problems that "need to be discussed among everyone and then applied as a distinct project".

  • It cannot reach the debt that matters most. Philippe Bourgau: "the boy scout rule is local and does not address large scale design or architecture issues". And a second bound that is rarely stated: "programmers will be able to clean the code only as much as their skills allow them to". Bourgau, "When the Boy Scout Rule Fails" (2 August 2016). The rule is limited both by scope and by whoever happens to open the file.

  • The review burden is real, and has a proposed remedy. Marius Elvert writes that cleanup found along the way "'pollutes' your merge-/pull-requests, making it harder to review", and answers it with cleanup in its own commit, marked with a BSR: prefix so a reviewer can skip or read it separately — an approach he restricts to small refactorings. Elvert, Schneide Blog (13 January 2022).

  • The judgement the rule depends on is the one it does not supply. Every critic above converges on the same missing piece: what counts as "minor" cleanup. The rule states the obligation and leaves the boundary to the person holding the editor.

  • No citable German-language criticism surfaced in a search for Pfadfinderregel and Pfadfinderprinzip — the German results were advocacy. French, Spanish, Japanese and Chinese were not searched. This is an absence in our search, not in the discourse.

Current Status:

  • Martin credits the rule to the Boy Scouts, not to himself. Clean Code (Prentice Hall, 2008), chapter 1: "The Boy Scouts of America have a simple rule that we can apply to our profession. Leave the campground cleaner than you found it." Excerpt at InformIT. His contribution is the transfer to code, which is what this anchor names — the campground formulation itself is older and not his.

  • Still advocated, now with conditions attached. The advocacy since 2022 keeps the rule and adds guards rather than dropping it: cleanup should be "local and limited", and "large refactoring still require a separate task with a separate time slot" — Anton, DEV Community (23 February 2025).

  • The discourse moved to the separation discipline, not away from the rule. Kent Beck’s Tidy First? (2023) made "structural and behavioral changes should be kept in separate PRs (or at least in separate commits)" the mainstream framing — which is exactly the remedy the rule’s critics ask for. Worth stating precisely: Beck does not name the Boy Scout Rule. He supplies the discipline; he is not on record as correcting it.

  • No retraction found. Martin has publicly qualified several Clean Code positions, and a second edition exists. We found no citable evidence that this rule is among the things he revised — an absence in our check rather than a confirmed continuity.

Code Smells

Details
Full Name

Code Smells

Also known as

Bad Smells in Code, Refactoring Smells

Core Concepts:

What a smell is

A surface indication in the code that usually points to a deeper design problem. Smells are heuristic: they are quick to spot, do not prove a defect exists, and are evaluated in context. A smell tells you where to look, not what to do.

Fowler’s catalogue

Martin Fowler’s Refactoring (1999, 2nd ed. 2018, with the original smell chapter co-authored by Kent Beck) is the canonical catalogue. Each smell is paired with a refactoring that typically resolves it. Common groupings of Fowler’s 20+ smells:

  • Bloaters — structures that grow too large: Long Method, Large Class, Long Parameter List, Primitive Obsession, Data Clumps.

  • Object-Orientation Abusers — incomplete or inverted use of OO: Switch Statements, Refused Bequest, Alternative Classes with Different Interfaces, Temporary Field.

  • Change Preventers — structures that multiply the cost of change: Divergent Change (one class changes for many reasons), Shotgun Surgery (one change touches many classes), Parallel Inheritance Hierarchies.

  • Dispensables — code that earns its keep poorly: Comments (as compensation), Duplicate Code, Lazy Class, Data Class, Dead Code, Speculative Generality.

  • Couplers — excessive or inappropriate coupling: Feature Envy, Inappropriate Intimacy, Message Chains, Middle Man.

Martin’s extensions

Robert C. Martin’s Clean Code (2008), Appendix A "Smells and Heuristics", extends Fowler’s catalogue with additional smells organised by concern — Comments, Environment, Functions, General, Java, Names, Tests — about 65 heuristics in total. These are complementary refinements, not a replacement for Fowler’s set.

Terminology origin

Kent Beck coined the term "code smell" in the 1990s; Fowler wrote the book that made it the standard vocabulary. "It just feels wrong" became expressible and teachable.

Key Proponents

Kent Beck (coined the term), Martin Fowler (Refactoring, 1999, 2nd ed. 2018 — canonical catalogue), Robert C. Martin (Clean Code, 2008, Appendix A — extended enumeration).

When to Use:

  • Code review: a shared vocabulary for "this feels wrong" that turns taste into checkable signals

  • Refactoring planning: each smell maps to known refactorings, so a smell is an actionable handle

  • Teaching: junior developers learn faster from a named smell + named fix than from abstract design lectures

  • Technical-debt inventory: enumerate smells to quantify and prioritise cleanup work

  • LLM prompting: asking the model to "identify code smells" activates a richer inspection than "find problems"

  • Self-review before PR: a mental pass over the smell list catches issues a reader would otherwise flag

Cohesion Criteria

Details
Full Name

Cohesion Criteria (Constantine & Yourdon)

Also known as

Levels of Cohesion, Cohesion Scale, Module Cohesion Types

Core Concepts:

Seven levels of cohesion, ranked from worst (1) to best (7):

Coincidental Cohesion (1)

Elements are grouped arbitrarily with no meaningful relationship. Typical sign: utility classes or grab-bag modules.

Logical Cohesion (2)

Elements perform similar activities selected by a control flag. Example: a function handling all I/O (read, write, print) chosen by a parameter.

Temporal Cohesion (3)

Elements are grouped because they execute at the same time. Example: startup initialization routines bundled together.

Procedural Cohesion (4)

Elements are grouped because they follow a specific execution sequence. Example: a function that validates input, then opens a file, then writes a log.

Communicational Cohesion (5)

Elements operate on the same data but perform different operations. Example: a module that both validates and formats a customer record.

Sequential Cohesion (6)

The output of one element serves as input to the next, forming a pipeline. Example: parse → validate → transform.

Functional Cohesion (7)

Every element contributes to a single, well-defined task. The ideal. Example: calculateShippingCost() does exactly one thing.

Key Proponents

Larry Constantine and Edward Yourdon ("Structured Design", 1979). Further developed by Meilir Page-Jones ("The Practical Guide to Structured Systems Design", 1988).

When to Use:

  • Evaluating module quality during code reviews or refactoring

  • Deciding whether to split a class or module that feels too large

  • Arguing for refactoring with concrete criteria instead of gut feeling

  • Teaching software design: the scale makes abstract quality tangible

  • Assessing architecture decisions around module boundaries

CQS (Command-Query Separation)

Details
Full Name

Command-Query Separation, from Bertrand Meyer’s Object-Oriented Software Construction (1988), developed alongside Eiffel

Also known as

CQS, command-query separation; Fowler prefers "modifiers" over "commands", and the term "mutators" is also current

Core Concepts:

One Rule, Applied Per Method

Every method is either a command, which changes state and returns nothing, or a query, which returns a value and changes no observable state. Never both. Fowler states the two halves: "Queries: Return a result and do not change the observable state of the system (are free of side effects). Commands: Change the state of a system but do not return a value."

Asking a Question Does Not Change the Answer

The payoff is that a query can be called twice, in any order, from a logger or a debugger or an assertion, without moving the system. Reading a signature tells you whether the call is safe to repeat — which is exactly the property a reader cannot otherwise recover without reading the body.

This Is Not CQRS

cqrs is an architectural pattern: separate read and write models, often separate stores, usually eventual consistency between them. CQS is a rule about a single method signature, and it applies in a 300-line codebase that will never have two models. Greg Young and Udi Dahan lifted Meyer’s method-level rule to architecture; the lift does not replace the original.

The Design-by-Contract Motivation

design-by-contract is the same author’s work and the reason CQS exists. Pre-conditions, post-conditions and invariants call queries. If a query mutated, writing a contract would change the thing the contract describes, and assertions could not be compiled out of a release build.

Side Effects Versus Observable Side Effects

A query may fill a cache, increment a hit counter or open a connection. CQS asks about observable state — what a caller can detect through the object’s own interface. Memoisation is therefore compatible with the rule, not an exception to it.

Where the Rule Bends

pop(), next() on an iterator and atomic compare-and-set all mutate and return, deliberately. Fowler: "Popping a stack is a good example of a query that modifies state. Meyer correctly says that you can avoid having this method, but it is a useful idiom. So I prefer to follow this principle when I can, but I’m prepared to break it to get my pop." Concurrency makes the case stronger: splitting compare-and-set into a query plus a command introduces the race the atomic operation exists to close.

The Diagnostic Use

CQS is a reading tool as much as a writing rule. Go through an interface and sort the methods into commands and queries; the ones that resist sorting are where the design is unclear, which makes it a specific lens on code-smells.

When to Use:

  • Designing or reviewing a class or module API, when a reader must see from the signature whether a call is safe to repeat

  • Sorting an existing interface: any method that both mutates and returns is a question to answer, not automatically a defect

  • Wherever assertions, contracts or invariants will call into the code (design-by-contract)

  • Writing code a model will extend: a command/query split survives being read out of context better than a convention in the docstring

  • Naming the deliberate exceptions, so pop() is a decision in the record and not an oversight

  • Per slice in vertical-slice-architecture, where the command/query split is the natural seam before any CQRS-scale separation

Common Misunderstandings:

  • ❌ "CQS and CQRS are the same thing, one is just the abbreviation" — CQS is Meyer’s per-method rule from 1988; CQRS is the architectural pattern with two models

  • ❌ "CQS means you need separate read and write databases" — that is CQRS; CQS costs nothing architecturally and needs no second store

  • ❌ "A query must have no side effects at all" — it must have no observable ones; caching and counters are fine

  • ❌ "The rule is absolute" — Fowler breaks it for pop() on purpose, and atomic compare-and-set cannot obey it without reintroducing a race

  • ❌ "A command may return a status code" — returning an error or a status is the usual, defensible bend; returning the created entity’s ID is the contested one

  • ✓ "Every method is a command or a query, and the exceptions are named" — the rule plus its named exceptions is the whole practice

Criticism:

  • The author of the best-known modern write-up refuses to follow it absolutely. Martin Fowler’s bliki entry credits Meyer — "The term 'command query separation' was coined by Bertrand Meyer in his book 'Object Oriented Software Construction'" — endorses the value, "it’s extremely handy if you can clearly separate methods that change state from those that don’t", and then declines the pure position: "So I prefer to follow this principle when I can, but I’m prepared to break it to get my pop." Fowler, "CommandQuerySeparation" (5 December 2005).

  • The database-generated ID is the standing counterexample, and it has a cost either way. Mark Seemann names the collision: a repository method that saves a new entity and returns the ID the database assigned. "The problem with this design, obviously, is that it violates CQS. The Create method ought to be a Command, but it returns a value." His fix is to pass the ID in — void Create(Guid id, T item) — and he concedes the price: "Most software design decisions involve trade-offs, and so does this one. You gain better encapsulation for potentially worse performance." Seemann, "CQS versus server generated IDs" (11 August 2014).

  • Vladimir Khorikov answered that the price is too high. Replying to Seemann directly: "While this solution clearly solves the problem of violation CQS, it does it at a high cost." His concrete objection is not aesthetic: "Besides the fact that this design results in two calls instead of one, GUIDs hurt performance of inserts." Khorikov, "CQS with Database-Generated Ids" (15 November 2014). The exchange is the most useful criticism available, because both sides accept the rule and disagree only about what obeying it costs.

  • No named German-language critic found. Searched in English and German for documented objections to CQS as a method-level rule. The German-language material that surfaces is introductory or translated — definitions and tutorials, no citable critic. Treat this as a search result with its frame attached, not as evidence that none exists; the term is normally discussed in English.

Current Status:

  • CQS stayed a method-level rule while CQRS took the attention. The acronym most teams meet first is CQRS, and the method-level original is often assumed to be its abbreviation. Fowler’s 2005 entry remains the common modern reference for the original rule, and the 2014 Seemann/Khorikov exchange is still where the hard case is argued.

  • The bare acronym is safe, and naming it partitions an interface. Measured on claude-haiku-4-5 in a clean room on 2026-10-03: asked how a developer should know, before calling one of twelve methods, whether the call is reversible — a task carrying none of CQS’s vocabulary — the baseline answered with JavaDoc annotations and a naming convention. Naming CQS partitioned the twelve into queries that change nothing and commands that return void. The bare acronym also holds: asked "What is CQS?", the weak tier returned Meyer’s rule without drifting to CQRS.

CRC-Cards

Details
Full Name

Class-Responsibility-Collaboration Cards

Also known as

CRC Cards, CRC Card Method, Class-Responsibility-Collaborator Cards

Core Concepts:

Class

The name of the class or object being modeled — one index card per class

Responsibilities

What the class knows (data it holds) and what it does (behavior it provides) — listed on the left side of the card

Collaborators

Other classes this class depends on to fulfill its responsibilities — listed on the right side of the card

Index cards as design medium

Deliberately low-tech: physical cards keep design discussions lightweight, encourage discarding and rethinking, and prevent over-engineering

Role-playing scenarios

Team members physically hold cards and walk through scenarios, simulating message passing between objects to validate design

Collaborative brainstorming

Encourages cross-functional participation; everyone can contribute without needing deep technical background

Finding classes

Start with nouns in the problem description; candidate classes are discovered, not prescribed

Iterative refinement

Cards are cheap to discard — designs are evolved through multiple rounds of role-playing and critique

Key Proponents

Ward Cunningham, Kent Beck ("A Laboratory For Teaching Object-Oriented Thinking", OOPSLA 1989)

When to Use:

  • Early OO design phases — discovering classes, responsibilities, and relationships before writing code

  • Collaborative design sessions where multiple stakeholders or developers shape the domain model

  • Teaching object-oriented thinking by making abstract concepts tangible and interactive

  • Validating design with LLMs by describing cards and role-playing request flows

  • Lightweight architecture exploration before committing to a UML tool or full model

  • GRASP - Patterns for assigning responsibilities to classes in OO design

  • GoF Design Patterns - Design patterns that can emerge from CRC-Card sessions

  • Domain-Driven Design - CRC Cards support ubiquitous language and entity discovery

Current Status:

  • The definition is intact — index cards with Class, Responsibilities, Collaborators, exactly as Beck & Cunningham published at OOPSLA 1989; the original paper is still hosted on Ward Cunningham’s site

  • The technique survives mainly as a teaching and workshop tool for object-oriented thinking — its original stated purpose ("A Laboratory for Teaching Object-Oriented Thinking") — and remains a defined entry in the Agile Alliance glossary; day-to-day design discussion has largely moved to whiteboard sketches and lightweight diagrams

CUPID Properties

Details
Full Name

CUPID — the back story to five properties of joyful code

Also known as

The CUPID properties, joyful code

Core Concepts:

  • Properties, not principles. A principle is a rule you either follow or break. A property is a quality code has more or less of, and that you move toward. This is the distinction the term is built on, and the one most often lost when it is summarised.

  • Composable. Small surface area, few dependencies, clear intent — so the code is easy to pick up, reuse and combine with things its author never saw.

  • Unix philosophy. Does one thing well. Close to single responsibility, but stated from the outside: about what the code does, not about why it would have to change.

  • Predictable. Does what you expect. Behaves consistently, is deterministic where it can be, and is observable enough that you can tell its internal state from its outputs.

  • Idiomatic. Feels natural. Follows the conventions of its language, framework and team, so the next reader spends attention on the problem rather than on the style.

  • Domain-based. Names, structure and boundaries follow the problem domain rather than technical layers or framework concepts.

  • Positioned against SOLID, not on top of it. North’s argument is that SOLID’s criteria are met or missed at the level of a class, while what makes code pleasant to work in is a set of overlapping qualities that reinforce each other.

When to Use:

  • Reviewing a module whose problems are qualities rather than rule violations — a class that breaks no principle and is still unpleasant to work in

  • As a vocabulary for code review, where "this is hard to compose" is a more useful sentence than a principle acronym

  • When SOLID has become a checklist and the discussion has stopped being about the code

Common Misunderstandings:

  • Reading the D as "Domain-driven". It is Domain-based. The pull toward DDD is strong enough that weaker language models make this substitution reliably — see the prior-test register. CUPID’s D is a statement about naming and structure, not an endorsement of a method.

  • Reading the I as "Intelligible". It is Idiomatic. Intelligibility is a consequence North argues for, not the property he named.

  • Treating them as five boxes to tick. They are deliberately not binary, and a scorecard turns them back into the thing they were proposed against.

Criticism:

  • The properties are hard to tell apart from the principles they replace. Stephan Roth, author of Clean C++, measures CUPID against his own test for a good principle — it must give real orientation, be applicable by the team unaided, build shared understanding, be practicable, and be visible in the code afterwards. His verdict: "Dan Norths CUPID-Eigenschaften sind oberflächlich betrachtet nicht falsch, erfüllen aber meines Erachtens diese Qualitätskriterien für gute Prinzipien nicht immer." The concrete complaint is a confusion the acronym invites: "Zudem dürfte es herausfordernd für Anwendende sein, zu unterscheiden, was denn jetzt der genaue Unterschied beispielsweise zwischen Single Responsibility (aus SOLID) und Single Purpose (aus CUPID) ist." He adds that the underlying idea is not in dispute anyway — "Es wird wohl eine weitgehend unumstrittene Vorstellung in unserer Disziplin darüber geben, dass kleine Module/Klassen mit einer klar definierten Aufgabe besser sind als große ‚Gemischtwarenläden'." Roth, developer-world.de (16 June 2025). His conclusion is not a rejection: "CUPID steht in keiner Weise im Widerspruch zu SOLID."

  • The five letters are a selection, not a derivation — and North says so. From the canonical article: "Because CUPID is a backronym, I had several candidates for each letter. I chose these five because they feel 'foundational' somehow". A reader who expects the set to be complete or minimal is expecting something the author did not claim.

  • One frequently misattributed source. Jeroen De Dauw’s "Why Every Single Argument of Dan North is Wrong" (2017) is a defence of SOLID against North’s earlier talk. It predates CUPID by five years and does not mention it. It is worth reading for the dispute CUPID grew out of, and it is not a critique of CUPID.

  • No citable criticism was found on the angle that matters most in review — that a property you move toward cannot be checked the way a rule can. North pre-empts it in the article with his "properties of properties", but we found nobody taking up the argument. English and German were searched; other languages were not, so this is an absence in our search rather than in the discourse.

Current Status:

  • The property set has not changed since publication. The canonical article, "CUPID: for joyful coding", is dated 10 Feb 2022 and lists the five verbatim: "Composable: plays well with others / Unix philosophy: does one thing well / Predictable: does what you expect / Idiomatic: feels natural / Domain-based: the solution domain models the problem domain in language and structure". It is preceded by "CUPID: the back story" (16 Mar 2021), which tells the origin and deliberately withholds the five.

  • The promised follow-ups are unverified. North writes "I will expand on each property in future articles so that this one does not get any longer." We did not confirm that any were published — which is a gap in our check, not evidence that none exist.

  • A dedicated site, cupid.dev, restates the same five with the same one-line definitions. Its own description calls it "based on an article by Daniel Terhorst-North". Whether North maintains it could not be established from the page.

Deep Modules

Details
Also known as

Module Depth, Deep Classes

Core Concepts:

Module depth

The ratio of benefit (functionality provided) to cost (interface complexity). A deep module delivers powerful functionality behind a small, stable interface; a shallow module exposes nearly as much complexity as it contains.

Shallow module

A module whose public interface is almost as complex as its implementation. Shallow modules shift the complexity burden onto callers rather than hiding it — adding interface cost without proportional abstraction benefit.

Interface as cost

Every element of a public API — parameters, types, configuration options, side effects — is cognitive cost that every caller must pay. Deep modules minimise this cost while maximising what they deliver.

Information hiding

Modules should encapsulate design decisions likely to change: data structures, algorithms, file formats, protocols. Those decisions remain invisible to callers, so the interface stays stable even as the implementation evolves.

Classitis

Ousterhout’s term for the anti-pattern of decomposing a system into many tiny, shallow classes. Each class adds its own interface to the collective cognitive load without reducing overall implementation complexity.

Different layer, different abstraction

Each architectural layer should offer abstractions meaningfully different from the layer below. A layer that only renames lower-level calls without adding substance is a shallow passthrough and a sign of poor design.

Key Proponents

John Ousterhout ("A Philosophy of Software Design", 2nd ed., Yaknyam Press, 2021; 1st ed. 2018 — Chapter 4: "Modules Should Be Deep")

When to Use:

  • Designing a module’s public API — evaluate whether the interface is simpler than the implementation it hides

  • Reviewing a proposed class decomposition for whether it reduces complexity or merely redistributes it

  • Identifying pass-through methods and wrapper chains that add interface cost without hiding detail

  • Instructing an LLM to design APIs or class boundaries with minimal caller-visible surface area

  • Choosing between a general-purpose and a special-purpose API — prefer the deeper, more general option

Criticism:

  • Andrey Lebedev, "Not My Philosophy of Software Design" (Medium) — argues that forcing depth into a single class violates the Single Responsibility Principle; the Java I/O example conflates file reading with buffering, two genuinely separate concerns; deep general-purpose classes also resist composition and create coupling that contradicts domain-driven design practice

  • "Modules Should Be Deep!" (Software Engineering: A Modern Approach) — adds nuance: String.isEmpty() provides semantic clarity and safe encapsulation despite its trivial implementation, challenging a purely quantitative interpretation of depth; Bertrand Meyer’s iceberg metaphor — small visible tip over large submerged base — is cited as a complementary framing

Defensive Programming according to McConnell

Details
Full Name

Defensive Programming as set out in Steve McConnell’s Code Complete (2nd edition, Microsoft Press 2004), chapter 8, "Defensive Programming"

Also known as

defensive coding

Core Concepts:

Protect the Program from Invalid Input

Data from outside the program — files, users, the network, other systems — is checked before it is used. Bad input gets a defined answer: a rejection, an error code, a logged and handled fault. It never gets a quiet wrong result.

The Barricade

McConnell draws one line through the program. Outside it, data is untrusted and every public interface validates. Inside it, data is assumed clean, so internal routines do not repeat the checks. The barricade is what keeps defensive programming from turning into null checks in every helper.

Error Handling Outside, Assertions Inside

Conditions that can occur in production — a missing file, a malformed record — get error handling at the barricade. Conditions that must never occur if the code is correct — a helper called with a null buffer — get an assertion inside it. An assertion documents an assumption and fails loudly during development; it is not a substitute for validating input.

Robustness Versus Correctness

Some systems should keep running with a degraded answer, others must stop rather than give a wrong one. A text editor may substitute a default; a radiation-therapy controller must not. Choosing which one the system needs is part of the practice, not an afterthought.

Being Defensive About Defensive Programming

McConnell’s chapter ends with a warning against overdoing it. Checks everywhere make the code slower, longer and harder to read, and error handling that hides faults makes them harder to find. Debug-only aids are removed or switched off for production; checks that guard real inputs stay.

Not Design by Contract, but Reconcilable With It

design-by-contract assigns each check to exactly one party and rejects double-checking on both sides. Defensive programming starts from the opposite instinct: check wherever a bad value could arrive. The barricade reconciles the two — validate once at the boundary, then reason by contract and assertion inside. Name which one you want: weak models blend them, and one tested model attributed defensive programming to Bertrand Meyer.

When to Use:

  • Code that reads input it does not control: parsers, file importers, API handlers, device drivers

  • Deciding where validation lives in a module, so it happens once at the public interface and not in every private helper

  • Choosing between robustness and correctness for a system, and writing the choice down

  • Reviewing error handling that swallows exceptions or returns plausible defaults for impossible states

  • Driving a model: "apply defensive programming according to McConnell, with a barricade at the public API and assertions inside" asks for a placement, not just for more checks

Common Misunderstandings:

  • ❌ "Defensive means wrapping everything in try/catch" — swallowing errors is the opposite of the practice; a hidden fault is harder to find than a crash

  • ❌ "Check every argument in every function" — the barricade exists so that internal code does not repeat boundary checks

  • ❌ "Assertions are input validation" — assertions catch programmer errors and may be compiled out; user input needs real error handling

  • ❌ "Defensive programming and fail-fast are opposites" — assertions that stop the program at the first broken assumption are part of the practice

  • ❌ "Defensive programming is a security architecture" — that is defense-in-depth; this is a coding practice inside one program

  • ✓ "Validate at the boundary, assert inside, and decide whether this system prefers robustness or correctness"

Criticism:

  • Working around problems makes software fail slowly. Jim Shore’s IEEE Software column argues against the robustness half of the practice: "Some people recommend making your software robust by working around problems automatically. This results in the software 'failing slowly.'" His remedy is assertions that stop at the first broken assumption — which McConnell’s assertion and barricade advice already contains, so the critique lands on the everyday "catch it and carry on" reading of the term, not on the chapter. Shore, "Fail Fast", IEEE Software 21(5), September/October 2004, Design column.

Design by Contract

Details
Also known as

DbC, Programming by Contract

Core Concepts:

Precondition

The caller’s obligation — a condition that must hold before a routine is called. If it is violated, the bug is in the client, not the supplier.

Postcondition

The supplier’s guarantee — a condition the routine promises to establish on return, provided its preconditions held. If it is violated, the bug is in the supplier.

Class invariant

A consistency condition that holds for every instance in every observable state, before and after each public routine. It constrains the abstraction across its whole lifetime.

Client/supplier metaphor

A routine is a contract between caller (client) and implementation (supplier): each party’s obligation is the other’s benefit. The supplier need not handle states its preconditions exclude.

Blame assignment

Because each clause has a single responsible party, a violated assertion localizes the defect: a broken precondition blames the caller, a broken postcondition or invariant blames the implementation. No defensive double-checking on both sides.

Contract inheritance

Subclasses may weaken preconditions (demand no more than the parent) and strengthen postconditions and invariants (promise no less). This is exactly behavioural subtyping.

Relation to LSP

The inheritance rules above are the contract-level statement of the Liskov Substitution Principle. A subtype that obeys them is substitutable for its supertype without surprising clients.

Scope tension with Postel’s Law

DbC says be strict about preconditions and fail hard on violation. Postel’s Law says be liberal in what you accept. They apply at different boundaries — DbC governs trusted internal module seams; Postel governs untrusted external inputs at the system edge. Confusing the two leaks invalid state inward.

Key Proponent

Bertrand Meyer, who coined the term for the Eiffel language (~1986) and developed it in Object-Oriented Software Construction (1988, 1997). "Design by Contract" is a trademark of Eiffel Software (registered 2004).

When to Use:

  • Specifying the obligations and guarantees of a module’s public API precisely

  • Designing class hierarchies that must remain substitutable (behavioural subtyping)

  • Pushing input validation to a single, well-defined seam instead of scattering defensive checks

  • Prompting an LLM to generate routines with explicit pre/postconditions and invariants

  • Reasoning about correctness before reaching for exhaustive tests (complements, not replaces, testing)

Criticism:

  • Bjarne Stroustrup, on the C26 contracts design (https://www.theregister.com/2026/03/31/cplusplus26_approved/[The Register], 2026) — "It's claimed to be a minimal viable product. It's not minimal, it's not viable" — and recommended not using contracts in C. Native, end-to-end DbC stays largely confined to Eiffel; mainstream languages get only partial or contested support.

  • Expressiveness limit (Supporting Design by Contract in Java) — contracts written in a subset of the host language often lack the power to state full functional correctness, forcing cumbersome workarounds; runtime-checked contracts catch violations late rather than proving absence of them.

Current Status:

  • C contracts were *removed* from the C20 working draft in 2019, restarted by study group SG21, and only landed in the standard as part of C26 (https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2899r1.pdf[P2899 Rationale]; https://www.theregister.com/2026/03/31/cplusplus26_approved/[The Register], 2026) — so language-level DbC remains young and contested outside Eiffel. Training-data priors from before 2026 likely treat C contracts as absent or experimental.

  • Native support exists in Ada 2012, Eiffel, D, Kotlin, and others; Python relies on third-party libraries (e.g. deal, icontract) rather than a language feature.

DRY (Don’t Repeat Yourself)

Details
Full Name

Don’t Repeat Yourself

Also known as

DRY Principle; antonym: WET ("Write Everything Twice" / "We Enjoy Typing")

Core Concepts:

The principle

"Every piece of knowledge must have a single, unambiguous, authoritative representation within a system." One fact — a business rule, a constant, a schema — lives in exactly one place

Knowledge, not code

DRY targets duplicated knowledge/intent, not coincidental textual similarity. Two code fragments that look alike but change for different reasons are not a DRY violation; collapsing them couples unrelated concerns

Single source of truth

Derive rather than restate — generate docs/config/clients from one authoritative definition so a change propagates instead of being copied

Rule of Three

Extract a shared abstraction after the third occurrence, not the first (Martin Fowler). Premature de-duplication guesses at an abstraction before the pattern is clear

The wrong-abstraction caution

"Duplication is far cheaper than the wrong abstraction" (Sandi Metz). A bad shared abstraction couples callers and is harder to unwind than the duplication it removed — prefer duplication until the right seam is obvious

Key Proponents

Andy Hunt & Dave Thomas, The Pragmatic Programmer (1999)

When to Use:

  • Consolidating a business rule, constant, or schema that appears in several places

  • Designing a single source of truth (config, types, API contracts) that other artifacts derive from

  • Reviewing code for knowledge duplication that causes change to require edits in many spots

When NOT to Use:

  • Before the Rule of Three — resist abstracting on the first or second occurrence

  • When two similar fragments change for different reasons — coupling them via a shared abstraction is worse than the duplication

  • As dogma over readability: a little duplication can beat a leaky, over-general abstraction

Criticism:

  • Sandi Metz, "The Wrong Abstraction" (2016) — overzealous DRY produces abstractions that later requirements don’t fit: "duplication is far cheaper than the wrong abstraction"; her advice is to re-introduce the duplication until the right abstraction reveals itself

  • The authors themselves concede the principle is widely misread: in the 20th Anniversary Edition (2019), Thomas & Hunt write they "did a poor job of explaining" DRY — it targets duplication of knowledge and intent; code deduplication is "a tiny and fairly trivial part" (official chapter extract)

  • The corollary both critiques share: two pieces of code that look alike but encode different business knowledge are not a DRY violation — merging them creates coupling, not clarity

Finite State Machine

Details
Full Name

Finite State Machine (finite-state automaton), with the two classic output models from George H. Mealy, "A Method for Synthesizing Sequential Circuits" (Bell System Technical Journal, 1955), and Edward F. Moore, "Gedanken-experiments on Sequential Machines" (Automata Studies, 1956). David Harel’s statecharts ("Statecharts: A Visual Formalism for Complex Systems", Science of Computer Programming, 1987) add hierarchy and concurrency and underlie UML state machines.

Also known as

FSM, finite automaton, state machine, finite-state automaton

Core Concepts:

A Finite, Named Set of States

A flat machine is in exactly one state at a time — with orthogonal regions, one per region — and every state has a name. A status field whose values nobody has listed is not a state machine; the list is the point.

Events, Transitions and the Transition Table

In a deterministic machine, an event in a given state leads to at most one next state; where guards split a transition, their conditions must not overlap. Writing this down as a table — states as rows, events as columns — shows every combination, including the ones nobody thought about.

Every Cell Is a Decision

For each state and event, the table says either "go there" or "this event is not allowed here, and this is what happens instead": ignore, reject, log, fault state. An empty cell is a missing requirement, not a default.

Guards and Actions

A guard is a condition that must hold for a transition to fire. Actions run on a transition or on entering and leaving a state. Keeping them attached to transitions keeps the behaviour readable from the table.

Mealy Versus Moore

In a Moore machine, the output depends only on the current state; in a Mealy machine, on the state and the input. The distinction decides where an action belongs: in the state or on the transition.

State Explosion and Statecharts

Flat machines grow multiplicatively when independent concerns are combined. Harel’s statecharts answer with nested states, orthogonal regions and history, which is what UML state machines and libraries such as XState implement.

The Model, Not an Implementation

An FSM can be coded as a switch over an enum, as a data-driven transition table, as the gof-state-pattern with one class per state, or with a library. The State pattern is one of these codings; the FSM is what all of them encode.

When to Use:

  • Logic that depends on a history of events: protocols, device controllers, UI flows, order and document lifecycles

  • Replacing a tangle of boolean flags whose combinations include impossible ones

  • Writing requirements and tests: every row of the table is a test case, and every empty cell is a question for the product owner

  • Embedded control loops where a task must advance step by step without blocking, as in blink-without-delay

  • Driving a model: "model this as a finite state machine with an explicit transition table, and say what happens for each invalid event" asks for the table, not just for an enum

Common Misunderstandings:

  • ❌ "A status field makes it a state machine" — without a finite list of states and defined transitions, it is just a variable

  • ❌ "FSM means the GoF State pattern" — the pattern is one object-oriented way to code the model

  • ❌ "Unhandled events can be ignored silently" — ignoring is a valid choice only if the table says so

  • ❌ "Booleans are simpler" — three booleans give eight combinations, and the code has to rule out the impossible ones by hand

  • ❌ "An FSM can count" — a finite machine has no unbounded memory; counters and stacks are extended state

  • ✓ "Name the states, list the events, fill every cell of the table"

Patterns of Enterprise Application Architecture (PEAA)

Details
Full Name

Patterns of Enterprise Application Architecture according to Martin Fowler

Also known as

Fowler patterns, PEAA patterns, Enterprise patterns

Core Concepts:

Domain Logic Patterns

Transaction Script, Domain Model, Table Module, Service Layer

Data Source Architectural Patterns

Table Data Gateway, Row Data Gateway, Active Record, Data Mapper

Object-Relational Behavioral Patterns

Unit of Work, Identity Map, Lazy Load

Object-Relational Structural Patterns

Identity Field, Foreign Key Mapping, Association Table Mapping, Dependent Mapping, Embedded Value, Serialized LOB, Single Table Inheritance, Class Table Inheritance, Concrete Table Inheritance

Object-Relational Metadata Mapping Patterns

Metadata Mapping, Query Object, Repository

Web Presentation Patterns

Model View Controller, Page Controller, Front Controller, Template View, Transform View, Two Step View, Application Controller

Distribution Patterns

Remote Facade, Data Transfer Object

Offline Concurrency Patterns

Optimistic Offline Lock, Pessimistic Offline Lock, Coarse-Grained Lock, Implicit Lock

Session State Patterns

Client Session State, Server Session State, Database Session State

Base Patterns

Gateway, Mapper, Layer Supertype, Separated Interface, Registry, Value Object, Money, Special Case, Plugin, Service Stub, Record Set

Key Proponent

Martin Fowler ("Patterns of Enterprise Application Architecture", 2002)

When to Use:

  • Designing complex enterprise applications with data persistence

  • Building layered architectures with clear separation of concerns

  • Working with object-relational mapping and database interactions

  • Designing web applications with proper presentation layer patterns

  • Managing distributed system communication

  • Handling concurrency in multi-user enterprise systems

  • Creating maintainable and testable enterprise code

Current Status:

  • The prior reproduces the 2002 catalog (Active Record, Data Mapper, Unit of Work, Repository …) as hand-rolled patterns; Fowler himself notes "many patterns are now implemented by common frameworks" while maintaining they are "still relevant today" (P of EAA book page)

  • The online catalog is content-unchanged since its "original 2003 publication", and the planned follow-up volumes (eaaDev) have been "pretty much frozen" since 2006 — the catalog reflects the J2EE/.NET era, not current distributed and frontend-heavy practice

GoF-Abstract Factory Pattern

Details
Full Name

GoF Abstract Factory Pattern (Creational)

Also known as

Kit

Intent:

Provide an interface for creating families of related or dependent objects without specifying their concrete classes.

When to Use:

  • When a system should be independent of how its products are created

  • When a system should be configured with one of multiple families of products

  • When related product objects are designed to be used together and you need to enforce this constraint

Prompt Example:

"Erstelle eine Abstract Factory nach GoF, die UI-Komponenten für verschiedene Plattformen (Web, Mobile, Desktop) erzeugt, ohne dass der Client die konkreten Klassen kennen muss."

GoF-Adapter Pattern

Details
Full Name

GoF Adapter Pattern (Structural)

Also known as

Wrapper

Intent:

Convert the interface of a class into another interface clients expect.

When to Use:

  • When you want to use an existing class whose interface doesn’t match what you need

  • When you want to create a reusable class that cooperates with unrelated classes

Prompt Example:

"Erstelle einen Adapter nach GoF, der die Legacy-API auf unser neues Interface mappt, ohne den bestehenden Code zu ändern."

GoF-Bridge Pattern

Details
Full Name

GoF Bridge Pattern (Structural)

Intent:

Decouple an abstraction from its implementation so that the two can vary independently.

When to Use:

  • When you want to avoid a permanent binding between an abstraction and its implementation

  • When both the abstractions and their implementations should be extensible by subclassing

  • When changes in the implementation should have no impact on clients

Prompt Example:

"Trenne die Rendering-Abstraktion von der plattformspezifischen Implementierung nach dem GoF-Bridge Pattern, damit beide unabhängig erweitert werden können."

GoF-Builder Pattern

Details
Full Name

GoF Builder Pattern (Creational)

Intent:

Separate the construction of a complex object from its representation so that the same construction process can create different representations.

When to Use:

  • When the algorithm for creating a complex object should be independent of the parts and how they are assembled

  • When the construction process must allow different representations

Prompt Example:

"Implementiere einen Builder nach GoF für das QueryObject, mit Fluent API für Filter, Sortierung und Pagination."

GoF-Chain of Responsibility Pattern

Details
Full Name

GoF Chain of Responsibility Pattern (Behavioral)

Intent:

Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain.

When to Use:

  • When more than one object may handle a request, and the handler isn’t known a priori

  • When you want to issue a request to one of several objects without specifying the receiver explicitly

  • When the set of objects that can handle a request should be specified dynamically

Prompt Example:

"Implementiere eine Middleware-Pipeline nach dem GoF-Chain of Responsibility Pattern, bei der jeder Handler die Anfrage entweder verarbeitet oder an den nächsten weitergibt."

GoF-Command Pattern

Details
Full Name

GoF Command Pattern (Behavioral)

Intent:

Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.

When to Use:

  • When you want to parameterize objects with an action to perform

  • When you need undo/redo functionality

  • When you need to queue, log, or schedule requests

Prompt Example:

"Implementiere ein Undo/Redo-System nach dem GoF-Command Pattern, bei dem jede Benutzeraktion als Command-Objekt gekapselt wird."

GoF-Composite Pattern

Details
Full Name

GoF Composite Pattern (Structural)

Intent:

Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions uniformly.

When to Use:

  • When you want to represent part-whole hierarchies of objects

  • When you want clients to be able to ignore the difference between compositions of objects and individual objects

Prompt Example:

"Modelliere das Dateisystem nach dem GoF-Composite Pattern, sodass Dateien und Ordner einheitlich behandelt werden können."

GoF-Decorator Pattern

Details
Full Name

GoF Decorator Pattern (Structural)

Also known as

Wrapper

Intent:

Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing.

When to Use:

  • To add responsibilities to objects dynamically and transparently

  • When extension by subclassing is impractical

Prompt Example:

"Verwende das GoF-Decorator Pattern, um dem Logger dynamisch Formatierung, Timestamp und Filterung hinzuzufügen."

GoF Design Patterns

Details
Full Name

Gang of Four Design Patterns

Also known as

Design Patterns, Gang of Four Patterns

Core Concepts:

Creational Patterns

Abstract Factory, Builder, Factory Method, Prototype, Singleton — object creation mechanisms

Structural Patterns

Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy — object composition and relationships

Behavioral Patterns

Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor — object interaction and responsibility

Pattern language

Shared vocabulary for communicating recurring design problems and proven solutions

Composition over inheritance

Favor object composition for flexibility over rigid class hierarchies

Program to an interface

Depend on abstractions rather than concrete implementations

Design for change

Identify what varies in your design and encapsulate it

Key Proponents

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ("Design Patterns: Elements of Reusable Object-Oriented Software", 1994)

When to Use:

  • Object-oriented design requiring proven solutions to recurring problems

  • Communicating design decisions using a shared vocabulary

  • Teaching object-oriented design principles through concrete examples

  • Refactoring code to increase flexibility and reusability

Criticism:

  • Peter Norvig, "Design Patterns in Dynamic Languages" (1996/1998) — 16 of the 23 patterns have a "qualitatively simpler implementation" in Lisp or Dylan than in C++, or vanish into the language entirely: many patterns compensate for missing language features rather than capture universal design wisdom

  • Paul Graham, "Revenge of the Nerds" (2002) — recurring patterns may be evidence of "the human compiler at work": "When I see patterns in my programs, I consider it a sign of trouble", a sign the language’s abstractions are not powerful enough

  • The authors themselves treat the catalog as a 1994 snapshot, not a closed canon: in the 2009 InformIT interview they discuss how they would reorganize and trim it today (see also the Criticism on Singleton)

GoF-Facade Pattern

Details
Full Name

GoF Facade Pattern (Structural)

Intent:

Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.

When to Use:

  • When you want to provide a simple interface to a complex subsystem

  • When there are many dependencies between clients and implementation classes

Prompt Example:

"Erstelle eine Facade nach GoF für das Payment-Subsystem, die Validierung, Autorisierung und Abrechnung hinter einem einfachen Interface kapselt."

GoF-Factory Method Pattern

Details
Full Name

GoF Factory Method Pattern (Creational)

Also known as

Virtual Constructor

Intent:

Define an interface for creating an object, but let subclasses decide which class to instantiate.

When to Use:

  • When a class can’t anticipate the class of objects it must create

  • When a class wants its subclasses to specify the objects it creates

Prompt Example:

"Extrahiere die Objekterzeugung in eine Factory Method nach GoF, damit neue Typen ohne Änderung des bestehenden Codes hinzugefügt werden können."

GoF-Flyweight Pattern

Details
Full Name

GoF Flyweight Pattern (Structural)

Intent:

Use sharing to support large numbers of fine-grained objects efficiently.

GoF-Interpreter Pattern

Details
Full Name

GoF Interpreter Pattern (Behavioral)

Intent:

Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.

GoF-Iterator Pattern

Details
Full Name

GoF Iterator Pattern (Behavioral)

Intent:

Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.

When to Use:

  • When you need to access an aggregate object’s contents without exposing its internal representation

  • When you want to support multiple traversals of aggregate objects

  • When you want to provide a uniform interface for traversing different aggregate structures

Prompt Example:

"Implementiere einen Iterator nach GoF für die benutzerdefinierte Baumstruktur, der verschiedene Traversierungsstrategien (Tiefe, Breite) unterstützt."

GoF-Mediator Pattern

Details
Full Name

GoF Mediator Pattern (Behavioral)

Intent:

Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly.

When to Use:

  • When a set of objects communicate in well-defined but complex ways

  • When reusing an object is difficult because it refers to and communicates with many other objects

  • When behavior distributed between several classes should be customizable without excessive subclassing

Prompt Example:

"Führe einen Mediator nach GoF ein, der die Kommunikation zwischen den UI-Komponenten (Formular, Liste, Filter) zentral koordiniert und die direkte Kopplung beseitigt."

GoF-Memento Pattern

Details
Full Name

GoF Memento Pattern (Behavioral)

Intent:

Without violating encapsulation, capture and externalize an object’s internal state so that the object can be restored to this state later.

GoF-Observer Pattern

Details
Full Name

GoF Observer Pattern (Behavioral)

Also known as

Publish-Subscribe, Event-Listener

Intent:

Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

When to Use:

  • When changes to one object require changing others, and you don’t know how many objects need to change

  • When an object should notify others without knowing who they are

Prompt Example:

"Implementiere ein Event-System nach dem GoF-Observer Pattern, damit Änderungen am Datenmodell automatisch die UI aktualisieren."

GoF-Prototype Pattern

Details
Full Name

GoF Prototype Pattern (Creational)

Intent:

Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.

When to Use:

  • When a system should be independent of how its products are created and represented

  • When classes to instantiate are specified at runtime

  • When you want to avoid building a class hierarchy of factories that parallels the class hierarchy of products

Prompt Example:

"Verwende das GoF-Prototype Pattern, um neue Konfigurationsobjekte durch Klonen eines Prototypen zu erzeugen, statt sie jedes Mal von Grund auf zu konstruieren."

GoF-Proxy Pattern

Details
Full Name

GoF Proxy Pattern (Structural)

Intent:

Provide a surrogate or placeholder for another object to control access to it.

When to Use:

  • When you need a more versatile or sophisticated reference to an object than a simple pointer (remote, virtual, protection, or smart reference proxy)

Prompt Example:

"Implementiere einen Caching-Proxy nach GoF für den API-Client, der wiederholte Anfragen aus dem Cache beantwortet."

GoF-Singleton Pattern

Details
Full Name

GoF Singleton Pattern (Creational)

Intent:

Ensure a class only has one instance, and provide a global point of access to it.

When to Use:

  • When there must be exactly one instance of a class

  • When the sole instance should be extensible by subclassing

Prompt Example:

"Stelle sicher, dass der ConfigManager als GoF-Singleton implementiert ist, mit thread-sicherem Lazy Loading."

Criticism:

  • Erich Gamma, co-author of the original GoF book, said in the 2009 interview "Design Patterns 15 Years Later" (InformIT, Larry O’Brien) that he favours dropping Singleton from the pattern catalog: "Its use is almost always a design smell"

  • Miško Hevery, "Singletons are Pathological Liars" (Google Testing Blog, 2008) — Singletons hide dependencies from the API surface and make code hard to test in isolation

  • Widely categorised as an anti-pattern in modern practice: it introduces global mutable state, couples consumers to a concrete class, and complicates concurrency and test isolation — dependency injection of a single instance is the commonly recommended alternative

GoF-State Pattern

Details
Full Name

GoF State Pattern (Behavioral)

Also known as

Objects for States

Intent:

Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.

When to Use:

  • When an object’s behavior depends on its state and must change at runtime

  • When operations have large conditional statements that depend on the object’s state

Prompt Example:

"Ersetze die verschachtelten if/switch-Statements durch das GoF-State Pattern, sodass jeder Zustand sein eigenes Verhalten kapselt."

GoF-Strategy Pattern

Details
Full Name

GoF Strategy Pattern (Behavioral)

Intent:

Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.

When to Use:

  • Multiple related classes differ only in behavior

  • You need different variants of an algorithm

  • An algorithm uses data that clients shouldn’t know about

Prompt Example:

"Refactore diese Klasse nach dem GoF-Strategy Pattern, um die verschiedenen Berechnungsarten austauschbar zu machen."

GoF-Template Method Pattern

Details
Full Name

GoF Template Method Pattern (Behavioral)

Intent:

Define the skeleton of an algorithm in an operation, deferring some steps to subclasses.

When to Use:

  • When you want to implement the invariant parts of an algorithm once and leave it to subclasses to implement varying behavior

  • When common behavior among subclasses should be factored and localized in a common class

Prompt Example:

"Refactore die Report-Generierung nach dem GoF-Template Method Pattern. Der Algorithmus (Daten laden, transformieren, formatieren) bleibt fix, aber die einzelnen Schritte sind austauschbar."

GoF-Visitor Pattern

Details
Full Name

GoF Visitor Pattern (Behavioral)

Intent:

Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates.

GRASP

Details
Full Name

General Responsibility Assignment Software Patterns (or Principles)

Also known as

GRASP Patterns, Responsibility-Driven Design Guidelines

Core Concepts:

Information Expert

Assign responsibility to the class that has the information needed to fulfill it

Creator

Assign responsibility for creating an object to the class that aggregates, contains, or closely uses it

Controller

Assign responsibility for handling system events to a non-UI class representing the overall system or a use case

Low Coupling

Assign responsibilities to minimize dependencies between classes, increasing reuse and reducing change impact

High Cohesion

Assign responsibilities so that classes remain focused, understandable, and manageable

Polymorphism

Use polymorphic operations to handle variations in type-based behavior instead of conditionals

Pure Fabrication

Assign a set of responsibilities to an artificial class not representing a domain concept, to achieve low coupling and high cohesion

Indirection

Assign responsibility to an intermediate object to mediate between other components, reducing direct coupling

Protected Variations

Identify points of predicted variation and assign responsibilities to create a stable interface around them

Key Proponents

Craig Larman ("Applying UML and Patterns", 3rd ed., 2004)

When to Use:

  • Designing object-oriented systems and deciding where to assign responsibilities

  • Improving cohesion and reducing coupling in existing codebases

  • Guiding refactoring decisions by evaluating current responsibility assignments

  • Teaching foundational object-oriented design principles

Integration Operation Segregation Principle (IOSP)

Details
Full Name

Integration Operation Segregation Principle

Also known as

IOSP, Integration-Operation Separation, N+1 Principle

Core Concepts:

Core rule

Functions shall either only contain logic or they shall only call other functions — never both.

Operation

A function that contains logic but calls no other functions of the same solution. Logic includes transformations (x + 2), control structures (if, for, while), and third-party API calls (Console.WriteLine, httpClient.Send()). Operations are the leaves of the function tree — they have no functional dependencies on other code of the same codebase.

Integration

A function that calls other functions (operations or other integrations) but contains no logic itself. Its sole responsibility is composing lower-level functions into a coherent whole. Integrations are the branches of the function tree — they orchestrate, they do not compute.

Hybrid

A function that violates IOSP by mixing both logic and calls to other functions. Hybrids are the primary source of poor testability: the logic cannot be tested in isolation without mocking the called functions, and the calling structure cannot be understood without reading the embedded logic.

Why it works

A reader encountering an integration can trust it to be a readable summary of the work at that level — pure orchestration without hidden decisions. An operation, conversely, contains only detailed logic — no distracting jumps to other parts of the codebase. This natural enforcement of the Single Level of Abstraction Principle (SLAP) is the key insight: IOSP makes SLAP automatic rather than aspirational.

How it relates to DIP (Dependency Inversion Principle)

Code that follows DIP often creates hybrids: a method both contains domain logic and calls abstractions (interfaces) that represent integrations. IOSP argues that these two responsibilities — logic and integration — should be separated into different functions. The result: operations no longer depend on abstractions, integrating functions do the wiring instead. This reduces the need for DIP and Dependency Injection significantly; DIP is retained only for genuine cases of alternative implementations, not for testability.

Testability implications

Operations are trivially unit-testable — they have no functional dependencies that require mocking. Integrations contain no logic, so there is nothing to unit-test; integration tests verify the wiring. This is a categorical improvement over hybrid code, where every test requires mock setup for the called functions.

Codebase structure

Following IOSP produces a strict tree structure: integrations form the upper layers (high abstraction, no logic), operations form the leaves (low abstraction, all logic). There are no functional dependencies — only "empty" dependencies from integrations to the functions they call. This makes the data flow visible and the graph acyclic by construction.

Key Proponents

Ralf Westphal ("Integration Operation Segregation Principle (IOSP)", 2022 — substack; "IOSP 2.0", 2023; "Radical Object-Orientation #06", 2024), Stefan Lieser ("Three Questions about the IOSP", t2informatik interview, 2025; Clean Code Developer Initiative / CCD Akademie). Both are co-founders of the Clean Code Developer Initiative (2008).

When to Use:

  • Refactoring hybrid functions that mix high-level orchestration with low-level details — IOSP tells you how to split, not just that you should

  • TDD: structuring code so that operations emerge naturally as testable leaves, with integrations as trivial wiring

  • Code review: a concrete, checkable rule — a function either calls other functions or contains logic, never both. If a reviewer spots a hybrid, it’s a clear finding

  • Teaching clean code: unlike SRP (which is often debated), IOSP is crystal clear at a glance — there is no interpretation question

  • Reducing DIP/IoC complexity: if the only reason for DIP is testability, IOSP eliminates that need

  • Architecture design with IODA (Integration-Operation-Data-API): IOSP scales to module level, producing dependency-free operational modules composed by integration modules

  • Designing data flows: integrations become explicit "ditch-diggers" for data to flow between operations

  • .NET development with IospAnalyzer: automated Roslyn Analyzer catches IOSP violations at compile time

  • Single Level of Abstraction Principle (SLAP) - IOSP naturally enforces SLAP: integrations are high-level, operations are low-level

  • SOLID Principles - IOSP applies SRP at the function level and can reduce the need for DIP

  • SOLID SRP - IOSP is a special case of SRP applied at the function level, separating the responsibility of "what to compute" from "how to compose"

  • Cohesion Criteria - IOSP produces functional cohesion by dedicating each function to a single kind of work (either logic or composition)

  • GRASP - GRASP’s "High Cohesion" and "Low Coupling" are structurally supported by IOSP’s tree-like composition

  • SOLID DIP - IOSP can replace DIP for the purpose of testability; DIP is retained only for genuine alternative implementations

  • Clean Architecture - Layered abstraction at architecture scale mirrors IOSP’s function-level separation

Current Status:

  • The canonical source is Ralf Westphal’s own writing — "Integration Operation Segregation Principle (IOSP)" (Substack); note that clean-code-developer.de, often assumed to host it, has no IOSP page

  • The prior is thin: the principle originates from a small German Clean Code Developer / Flow Design school, with the inventor’s blog posts as primary sources and mostly German-language secondary coverage — state the rule explicitly in the prompt (functions either contain logic or call other functions, never both)

Jidoka

Details
Full Name

Jidoka (自働化)

Also known as

autonomation; automation with a human touch; automation with human wisdom; built-in quality; "stop the line"

Core Concepts:

The Essence Is Automatic Stopping, Not Automatic Running

Art Smalley puts it in one line: "The essence of jidoka is 'automatically stop,' not 'automatically run.'" A machine that keeps producing while something is wrong is worse than a machine that halts, because it converts one problem into a batch of defects.

The Extra Stroke Carries the Meaning

The Japanese is written 自働化 with the person radical in 働, not the plain 自動化 of ordinary automation. The character difference is the whole claim: a machine with human judgement built into it, not a machine that merely moves.

Four Steps, Every Time

Detect the abnormality. Stop. Fix or contain the immediate condition. Investigate the root cause and countermeasure it. Stopping without step four is a line that halts often and learns nothing — which is how jidoka acquires a reputation for costing output.

Andon Extends It to People

The same authority is given to the operator. Pulling the cord or pressing the button raises a visible signal and brings a team leader; the person is treated as the detector the machine lacks.

One Pillar of Two

Taiichi Ohno built the Toyota Production System on Just-in-Time and jidoka. They work against each other’s weaknesses: JIT strips out the inventory that hides problems, jidoka makes sure the exposed problem stops the line rather than flowing downstream. Naming only JIT is naming half of TPS.

It Frees People from Watching Machines

Because the loom stopped itself, one operator could tend many. Autonomation separates human work from machine work — the economic argument, distinct from the quality one.

Origin

Sakichi Toyoda’s looms. Toyota Industries records that his 1896 power loom, "Japan’s first power loom built of steel and wood", was "also equipped with the weft auto stop mechanism", and that the 1924 Type G added "weft break auto-stop, warp break auto-stop and other devices". Ohno carried the principle from the loom to the assembly line.

When to Use:

  • Designing a pipeline or system that must halt on a bad signal rather than push a defect downstream — failing builds that block merge, a canary that aborts the rollout

  • Arguing against "keep it green, we’ll fix it later" — jidoka is the named counter-position

  • Fail-fast design: assertions, preconditions, circuit-breaker tripping, refusing to serve on a failed health check

  • Giving the person closest to the work the authority to stop it, and making that stop visible

  • Whenever the discussion is about detection and the response to detection, since jidoka insists both belong together

Common Misunderstandings:

  • ❌ "Jidoka means automation" — the whole point is the extra character; plain automation is 自動化

  • ❌ "Jidoka is the andon cord" — the cord is one instance; the principle is detect-stop-fix-investigate

  • ❌ "Stopping is the goal" — stopping is the trigger for the investigation that follows

  • ❌ "Jidoka and Just-in-Time are alternatives" — they are the two pillars and depend on each other

  • ✓ "Build quality in rather than inspect it in" — the standard English gloss, and accurate

Criticism:

  • The West took the glamorous pillar and left this one. Strategos: "Yet this aspect of TPS is mostly ignored in the West", and "when it is discussed, there is a lot of confusion and misunderstanding", partly because "Japanese language (at least in everyday usage) seems less precise than English and the several meanings of Jidoka do not translate well". The harder judgement is on management: "The line-stoppage version of Jidoka requires a strong stomach and purity of mind that few managers (Japanese or American) possess." Strategos, "Jidoka & Autonomation".

  • Most organisations lack the capacity jidoka assumes. Christoph Roser’s objection is not philosophical but arithmetic: stopping only pays if somebody is free to solve the problem, and in most plants "your highly qualified problem solver simply has no time to solve problems". The consequence is the compromise the method is supposed to prevent — "you may have to do with a quick fix" instead of root-cause elimination, because Toyota’s staffing slack is not there. Roser, "The Philosophy and Practicality of Jidoka" (24 July 2018).

  • The economics of never stopping are also on record. Roser contrasts Toyota with GM’s old Fremont plant, where a "never stop" policy pushed defects downstream and produced "massive problems" and "enormous" repair costs — while the line stopped frequently anyway. The criticism cuts both ways: jidoka is expensive, and not doing it is expensive too.

  • Detection without response is the common failure. Smalley warns against treating jidoka as merely "pulling a cord" while ignoring the engineering, against conflating it with any automation, and against "installing detection without response systems". Without a culture that lets output drop for a quality stop, the andon is decoration. Smalley, "Jidoka — Automation with a Human Touch".

Current Status:

  • The founding date is genuinely disputed, and sources disagree by decades. Toyota Industries' own history gives 1896 for the power loom with a weft auto-stop mechanism and 1924 for the non-stop-shuttle-change Type G with both weft- and warp-break auto-stop. Toyota Industries, "The Story of Sakichi Toyoda". Art Smalley dates the automatic loom differently — conceived around 1901 and completed in 1926 after some 25 years of development. Art of Lean, Jidoka. Both are reputable; the honest form is "Sakichi Toyoda’s looms, from the 1896 power loom to the 1924 Type G", not a single year.

  • The term is stable and still current at Toyota, where jidoka and Just-in-Time remain the two named pillars of TPS. Unlike dmaic or qfd it carries no ISO standard; it is transmitted through practice and literature.

  • In software the concept arrived without the word. Andon cords, stop-the-line CI, blocking merge on red, automated rollback on a failing canary, and circuit-breaker tripping are all jidoka; teams rarely call them that. Naming it supplies what the English terms leave out: the obligation to investigate the cause, not just to stop.

KISS Principle

Details
Full Name

Keep It Simple, Stupid (also: Keep It Super Simple)

Also known as

KISS, Keep It Simple

Core Concepts:

Simplicity as a design goal

Systems work best when kept simple; complexity should be avoided whenever possible

Avoid over-engineering

Don’t add complexity, abstraction, or features beyond what the current problem requires

Readability over cleverness

Code that is easy to read and understand is preferred over sophisticated but opaque solutions

Simplest working solution first

Implement the most straightforward approach that satisfies the requirements, then refine if needed

Cognitive load reduction

Simpler designs reduce the mental effort required to understand, maintain, and extend a system

Progressive enhancement

Start simple; add complexity only when justified by concrete requirements (pairs with YAGNI)

Key Proponents

Kelly Johnson (Lockheed Skunk Works, 1960s), Robert C. Martin ("Clean Code", 2008)

When to Use:

  • When facing the choice between a simple and a complex solution

  • Reviewing code for maintainability and readability

  • Designing APIs, interfaces, or data models

  • Onboarding new team members to an unfamiliar codebase

  • Refactoring code that has grown unnecessarily complicated

  • YAGNI - Don’t implement what you don’t need yet (complementary simplicity principle)

  • DRY - Eliminate redundancy to keep codebases simple and consistent

  • SOLID Principles - Structured guidelines that reinforce clean, simple designs

Law of Demeter

Details
Full Name

Law of Demeter (LoD)

Also known as

Principle of Least Knowledge, "Don’t talk to strangers"

Core Concepts:

Only talk to your immediate friends

A method may call methods on: itself, its parameters, objects it creates, and its direct component objects — but not on objects returned by those calls

Train-wreck calls

Chains like a.getB().getC().doSomething() reach through intermediaries and couple the caller to a deep object graph — the classic LoD violation

Tell, don’t ask

Push behaviour to the object that owns the data instead of pulling data out and operating on it externally

Encapsulation boundary

LoD limits how much of an object’s internal structure leaks to its collaborators, so internal changes don’t ripple outward

Pragmatic limits

It is a heuristic, not an absolute; fluent builders and some data-pipeline/query DSLs chain deliberately and are reasonable exceptions

Key Proponents

Ian Holland & Karl Lieberherr (Northeastern University, Demeter Project, 1987); popularized by "The Pragmatic Programmer" (Hunt & Thomas)

When to Use:

  • Reviewing code for hidden coupling and fragile call chains

  • Designing object APIs that hide their internal structure

  • Teaching encapsulation and "tell, don’t ask"

  • Guiding refactorings away from train-wreck expressions

When NOT to Use:

  • For fluent interfaces / builders where chaining is the intended design

  • For immutable value objects and data-query DSLs where traversal is the point

  • SOLID Principles — complementary coupling/cohesion guidance

  • GRASP — Low Coupling and Information Expert overlap with LoD

  • Cohesion Criteria — the cohesion side of the same design concern

Principle of Least Privilege (Saltzer & Schroeder)

Details
Full Name

Least privilege, design principle (f) in Jerome H. Saltzer and Michael D. Schroeder, "The Protection of Information in Computer Systems", Proceedings of the IEEE 63(9), September 1975, pp. 1278-1308

Also known as

PoLP, least authority (POLA), need-to-know, minimal privilege

Core Concepts:

One of Eight, and the Authors' Own Words

Saltzer and Schroeder introduce the set with "Here are eight examples of design principles that apply particularly to protection mechanisms." Principle (f) reads: "Least privilege: Every program and every user of the system should operate using the least set of privileges necessary to complete the job." Quoting that sentence is the whole anchor; everything below is its consequences.

Accident Before Attack

The stated first purpose is not defence against an adversary. "Primarily, this principle limits the damage that can result from an accident or error." The authors give the reduction of "potential interactions among privileged programs" as the second reason and audit scope as the third: "if a question arises related to misuse of a privilege, the number of programs that must be audited is minimized."

Need-to-Know Is Their Example, Not a Separate Idea

"The military security rule of 'need-to-know' is an example of this principle." So is the firewall placement argument: "if a mechanism can provide 'firewalls,' the principle of least privilege provides a rationale for where to install the firewalls."

"The Job" Is the Scoping Term

The minimum is relative to a task, so the grant has to be recomputed when the task changes. That is the reading behind just-in-time access, short-lived tokens and scoped workload identity: the privilege expires with the job rather than outliving it.

Modern Descendants

Default deny (the authors' own fail-safe defaults), separation of duties (their separation of privilege), need-to-know, capability-based security and the renamed principle of least authority, RBAC/ABAC/ReBAC as the policy languages, just-in-time and break-glass access as the lifetime mechanisms.

Zero Trust Is a Different Claim

Zero Trust removes implicit trust from network location — verify every request, wherever it comes from. Least privilege constrains the size of the grant. Zero Trust architectures use least privilege, but the two are independent: a system can authenticate every single request and still hand out standing admin.

When to Use:

  • Writing CI/CD pipelines — the measurement below shows this is where the anchor actually changes output

  • IAM policies, service accounts, workload identity and database grants

  • Agent and tool permissions, where the grant is an LLM’s reach into a system (meaningful-human-control)

  • Container and process design: which capability does this process genuinely need

  • Reviewing an Elevation of Privilege threat from stride, or Broken Access Control from owasp-top-10

Common Misunderstandings:

  • ❌ "Least privilege means read-only" — it means the least set for the job, which sometimes includes write

  • ❌ "It is purely a security principle" — damage from "an accident or error" is the first reason the authors give

  • ❌ "Zero Trust is least privilege" — per-request verification and minimal grants are separate properties

  • ❌ "Grant it once and you are done" — the minimum is defined relative to the job, so it has to shrink when the job ends

  • ❌ "The minimum set can be computed" — the central academic objection says it cannot (see Criticism)

  • ✓ "Default deny, grant the least set for this job, and make the grant expire" — the operational form

Criticism:

  • Computing the minimum privilege set is infeasible, and the honest alternative grants more. Fred B. Schneider of Cornell builds the case formally: the policy that grants exactly the privileges an extension needs cannot generally be derived, because establishing that the code meets its specification "is undecidable for general-purpose programming and specification languages", and a high-level specification "lacks information about how Ext works that would be needed for deducing" the policy. His conclusion: "So at least for the time being, it seems as though obtaining μPriv(Ext, Ext) for use by a reference monitor interposed between a base and its extensions is infeasible, and alternatives must be sought." The alternative he proposes is deliberately named against the original: "One such alternative, which might be called a Principle of Most Privilege, is to enforce a policy Priv(B) that merely prevent extensions from subverting the base system B." The paper closes that "practical protection for extensible systems is most easily obtained using policies that grant more privileges than would μPriv(Ext, Ext) — the least privilege and more." Schneider, "Least Privilege and More", a revised version of a paper written in honour of Roger Needham (1935-2003) for the conference "Roger Needham: 50 and 5" at Microsoft Research, Cambridge (17 February 2003).

  • The principle outran its mechanisms, and the 1975 formulation left out the dynamic case. Schneider also notes that the authors' own Multics was finer-grained than what followed: "Multics can be seen as superior to today’s operating systems, with their relatively coarse-grained targets of access control (viz programs and files)." And on a gap in the text itself: "The Saltzer-Schroeder formulation also does not explicitly call out the benefits of allowing the set of privileges associated with a program to change as execution progresses." Anyone quoting the 1975 wording as complete guidance for just-in-time access is reading in something the paper does not say.

  • The "permission sprawl" objection is practitioner folklore here, not a sourced critique. The complaint that least privilege degenerates into thousands of unmaintainable fine-grained grants is common in cloud IAM writing, but searches in English and German turned up no named author arguing it in a retrievable, quotable piece — the material found was vendor marketing for permission-management products. Recorded as an open objection, not a sourced one.

Current Status:

  • The anchor changes nothing on tasks that already name the problem. Measured on claude-haiku-4-5 on 3 October 2026: on scenarios that described a privilege violation, baseline and anchored output said the same thing — remove local admin, segment the network — and only the baseline used the phrase "blast radius". Recognition is near-total, so on those tasks naming the principle buys nothing.

  • It earns its keep on build and deploy artifacts. Same measurement, different task: "write a GitHub Actions workflow that builds a Node service and deploys it to a staging ECS cluster". Both unanchored runs produced long-lived AWS_ACCESS_KEY_ID secrets and no permissions: block at all; both anchored runs produced a permissions: block, OIDC role-to-assume, and no static keys. Reproduced twice in each condition. Use the anchor where the principle is not the obvious answer.

Locality of Behaviour

Details
Full Name

Locality of Behaviour

Also known as

Locality of Behavior (American spelling, used in Hypermedia Systems)

Core Concepts:

  • The principle in one sentence, from the essay that named it: "The behaviour of a unit of code should be as obvious as possible by looking only at that unit of code."

  • Read-time cost over write-time cost. The measure is how far a reader must travel to answer "what happens when this runs", not how few characters the author typed.

  • Behaviour at a distance is the failure mode. A handler registered in a remote file, a convention that binds by name, a framework hook that fires invisibly — each is correct code that cannot be understood locally.

  • Co-location as the remedy: markup, handler, styling and validation for one element live where that element is.

  • An explicit trade, not a law. The essay argues against DRY and Separation of Concerns where they scatter one feature across many files, and concedes the trade openly rather than claiming the other principles are wrong.

When to Use:

  • Reviewing a design where understanding one element requires opening several unrelated files

  • Deciding whether an abstraction earns its indirection, or only moves code elsewhere

  • Weighing convention-over-configuration, dependency injection, event buses, decorators and lifecycle hooks — all of which trade locality for other goods

  • Arguing about whether a repeated fragment should be extracted at all

Common Misunderstandings:

  • Reading it as anti-abstraction. A good abstraction leaves its invocation and effects obvious at the call site; that is entirely compatible with the principle.

  • Confusing it with Locality of Reference. That is a hardware-performance concept about memory access patterns (temporal and spatial locality). The name is a coincidence, not a lineage.

  • Treating co-location as sufficient. Visible is not the same as understandable — see the Criticism section.

  • Using the abbreviation on its own. "LoB" reads as "Line of Business" far more often than as this principle.

Criticism:

  • Co-location makes behaviour visible, not understandable. John Freeman argues in "Locality of Behavior on its own isn’t enough" (January 2023) that <button hx-get="/clicked"> shows that something happens, not what: "One can only achieve behavior transparency to a certain extent without also taking a minute to name things well."

  • The principle is turned against its own tool. Chris Done’s "A modest critique of Htmx" (August 2024) uses LoB to argue that htmx breaks it: attribute inheritance means behaviour "comes from all the way up there or some other module", so it "is not local". The same objection was raised inside the project in htmx discussion #2835.

  • The sharpest objection is that it renames a trade-off. On Hacker News, a commenter calls it "such a poorly defined rule — it’s just an invented name for going against separation of concerns". Recorded because it states the strongest form of the counter-position, but the author is pseudonymous, which is weaker evidence than the named critiques above.

  • The documented counter-argument is thinner than the claim deserves. For an essay that attacks Separation of Concerns directly, a search in English and German found no worked rebuttal from the established frontend or SPA side that names the principle. The critique that exists comes from inside the htmx camp or is constructive rather than opposing. That is an absence in our search, not a demonstrated absence.

Current Status:

  • Named in 2020, still the current formulation. Carson Gross, "Locality of Behaviour (LoB)", 29 May 2020. The essay does not claim the idea is new; it credits Richard P. Gabriel’s Patterns of Software (Oxford University Press, 1996) for the underlying notion of locality — a quotation we verified in the essay but not in Gabriel’s book itself.

  • Two spellings, one author. The essay uses the British "Behaviour"; the book Hypermedia Systems (2023) uses the American "Behavior". Both are primary. This entry follows the essay, which is also the spelling that measured stronger on weak models — see the prior-test register.

  • Adopted beyond htmx, but within one family. Django (Carlton Gibson, 2024, calling it "a starting point, not a destination") and Laravel (Freek Van der Herten, 2023) have taken it up. These are server-rendered ecosystems adjacent to htmx; adoption into independent textbooks, standards or framework documentation is not established.

Poka-Yoke

Details
Full Name

Poka-Yoke (ポカヨケ), from poka (inadvertent mistake) and yokeru (to avoid)

Also known as

mistake-proofing, error-proofing; originally baka-yoke (fool-proofing); in interface design, a forcing function

Core Concepts:

An Error Is Not a Defect

This distinction is the whole method. A human error is a slip anyone can make; a defect is what reaches the next step because nothing caught the slip. Errors are inevitable and are not the target. Art Smalley states the design rule plainly: "you cannot eliminate human errors, but you can make it impossible for errors to become defects."

Prevention Beats Detection

Devices split into two classes, and the order is not a preference. A prevention (control) device makes the mistake physically impossible — an asymmetric connector that only mates one way. A warning (detection) device lets the mistake happen and signals it. Prevention is strictly preferred, because a warning still relies on a human noticing.

Three Levels of Catch

Prevent the mistake; or detect the mistake before it becomes a defect; or detect the defect. Each step down the list is worse, and a device that only reaches level three is weak error-proofing, not strong.

Design Out the Error, Do Not Train Around It

The response to a recurring mistake is a changed process or artefact, never a reminder, a checklist entry, or a sterner briefing. If the fix is "be more careful," it is not a poka-yoke.

Cheap, Simple, at the Source

Shingo’s devices are pins, jigs, counters, limit switches — installed where the error happens, not at a downstream inspection station. His term for this is source inspection: inspect the condition that causes the defect, not the defect.

The Naming History Is Part of the Concept

Shingo first called these devices baka-yoke, fool-proofing. Around 1963, at Arakawa Auto Body, a part-time worker burst into tears at the term; "it was clear to me that 'foolproofing' was a poorly chosen term," he wrote. The rename shifts the blame from the person to the process, which is the method’s actual claim.

Key Proponent

Shigeo Shingo, who systematised and named the practice and set it out in Zero Quality Control: Source Inspection and the Poka-Yoke System (Productivity Press, English edition 1986).

When to Use:

  • When a recurring defect traces back to a slip anyone could make, not to missing knowledge

  • Designing APIs, CLIs, and configuration formats so a wrong call cannot be expressed — types over validation, enums over strings, required arguments over defaults

  • Build and deployment guardrails: a pre-commit hook that refuses a secret, a pipeline that cannot deploy an untagged image

  • User interfaces where a destructive action needs a forcing function rather than a warning dialogue

  • As the counterweight to five-whys: once the cause is known, poka-yoke is what makes the cause unrepeatable

Common Misunderstandings:

  • ❌ "Poka-yoke means idiot-proofing" — Shingo renamed it precisely to drop that reading

  • ❌ "A warning light is a poka-yoke" — it is the weaker class; a real poka-yoke removes the option

  • ❌ "It eliminates human error" — it eliminates the consequence; the error still occurs

  • ❌ "It is a manufacturing technique" — the mechanism is a constraint in a design, and applies wherever a design can carry one

  • ✓ "Make the wrong thing impossible, not merely discouraged" — the working test for whether you have built one

Criticism:

  • Shingo’s authorship is contested, and the strongest challenge comes from inside the lean community. Christoph Roser writes: "Shigeo Shingo did not invent the Toyota Production System. He also did not invent the method of SMED," and dates his involvement late — "Shingo was involved only towards the end of the program around 1970, when he was contracted to do a class on quick changeover methods… he participated in only one quick changeover workshop at Toyota!" Roser grants him the naming and the transmission: "What he did was bring its knowledge to the United States and popularize it there. And that by itself is also a major achievement!" — including that he "coined key terms used in lean manufacturing (for example, SMED for quick changeovers or Poka Yoke for mistake proofing)." Roser, "On the Lean Guru Shigeo Shingo" (2 February 2014, updated 13 December 2025).

  • The books are his reading of Toyota, not Toyota’s. Art Smalley: "Shingo was an external consultant to Toyota, not a Toyota employee. His books present his interpretation of Toyota’s practices, which does not always align perfectly with Toyota’s internal understanding." Smalley, "Poka-Yoke", TPS Encyclopedia. Roser adds that the relationship cooled after Shingo published TPS details: "This publication was to my knowledge without consent of Toyota, and he no longer did any trainings at Toyota afterwards."

  • The reception in Japan was lukewarm. Roser, same source: "Japanese lean experts who read his books considered them mediocre when compared to the literature available in Japanese and overall very poorly written." The reputation is largely a Western one.

  • The reach is narrower than the enthusiasm. The technique addresses repeatable slips with an observable wrong condition. Where the correct answer is not known in advance — a diagnosis, a novel design decision, a judgement call — there is nothing to design against. No single citable critic was found stating this limit; it follows from the method’s own definition of source inspection, and is recorded here as a boundary rather than as sourced criticism.

Current Status:

  • It is a standing requirement in automotive quality management. IATF 16949 devotes clause 10.2.4 to error-proofing: organisations must "establish a documented process to determine the use of appropriate error-proofing methodology", record it in the process risk analysis such as a PFMEA, set a test frequency in the control plan, test the devices to failure or simulated failure, and hold a reaction plan for device failure. The standard states the requirement without using the word poka-yoke. Stojanovic, "How to establish an error-proofing process according to IATF 16949" (11 October 2017).

  • In English the neutral term has largely won. "Mistake-proofing" and "error-proofing" are the standard terms in quality literature and standards; "poka-yoke" survives as the recognisable label and is the stronger prior for a model.

  • In software the idea travels under other names — forcing functions, making illegal states unrepresentable, guardrails, fail-safe defaults. Naming poka-yoke explicitly buys the error-versus-defect distinction and the prevention-over-warning ranking, which those terms carry only loosely.

Postel’s Law

Details
Full Name

Postel’s Law / The Robustness Principle

Also known as

"Be conservative in what you send, be liberal in what you accept"

Core Concepts:

The principle

Send strictly conforming output; accept input tolerantly, coping with anything you reasonably can — to maximize interoperability between independently built systems

Conservative output

Emit only well-formed, specification-compliant messages so peers never have to compensate for your sloppiness

Liberal input

Tolerate minor deviations and unknown-but-ignorable fields rather than rejecting otherwise-usable messages — supports forward/backward compatibility

Where it shines

Long-lived network protocols, public APIs, file formats, and event schemas that must evolve while old and new participants coexist

The modern critique

Excessive tolerance accumulates undefined behaviour and security risk (ambiguous parsing, smuggling); contemporary guidance favours strictness plus explicit versioning. Apply with a documented tolerance boundary, not blanket leniency

Key Proponents

Jon Postel (RFC 760/761, 1980, in the context of TCP/IP)

When to Use:

  • Designing protocol, API, or event-schema contracts that must evolve

  • Deciding how strictly a parser/validator should reject input

  • Reasoning about forward/backward compatibility and graceful degradation

When NOT to Use:

  • Security-sensitive parsing where ambiguity is dangerous — prefer strict validation

  • Internal interfaces under one team’s control, where strictness catches bugs earlier

Criticism:

  • Eric Allman, "The Robustness Principle Reconsidered" (ACM Queue, 2011) — decades of liberal acceptance bred de-facto protocol forks and security holes; tolerance that was meant to be transitional became permanent

  • RFC 9413, "Maintaining Robust Protocols" (Thomson & Schinazi, IETF, 2023) — formal IETF guidance that blanket liberality harms protocol ecosystems over time; ambiguous tolerance enables interoperability failures and attacks such as request smuggling

  • Alternative named in the discourse: active protocol maintenance with strict parsing and explicit versioning ("fail fast") instead of silently accepting malformed input — see Semantic Versioning

Railway Oriented Programming

Details
Full Name

Railway Oriented Programming, Scott Wlaschin’s metaphor for composing functions that can fail — F# for Fun and Profit article (2013) and NDC talk (2014), extended in Domain Modeling Made Functional (2018)

Also known as

ROP, two-track programming, the railway metaphor, Result-based error handling, errors as values

Core Concepts:

A Composition Style, Not a Library

ROP names the shape of the code: two tracks, a switch at every step, and a composition operator that keeps them connected. It is not a package you install. Naming ROP in a Java or TypeScript codebase asks for that shape, implemented with whatever Either-style type is already there.

Two Tracks and a Switch

One track carries success, one carries failure. Each step is a railway switch: it either keeps the value on the happy path or diverts it to the error track. Once on the failure track, later steps are bypassed — short-circuiting — so the pipeline reads top to bottom with no nested conditionals counting failure cases.

Errors Are Values, Not Control Flow

Failures become part of the return type instead of an invisible second exit from the function. A signature that returns Result tells the caller that failure is expected and has to be handled; a signature that throws tells the caller nothing.

The Combinators Are the Vocabulary

bind (also flatMap, andThen) lifts a switch function into a two-track function. map lifts an ordinary one-track function onto the success track. mapError transforms the failure track. Naming these is usually the fastest way to get a pipeline instead of a cascade of early returns.

Cross-Language Equivalents

F# Result<'Success, 'Failure>; Rust Result<T, E> with ? for the short-circuit; Scala Either and Try, Vavr’s Either and Try in Java, fp-ts and neverthrow in TypeScript, Arrow in Kotlin, Go’s explicit (value, err) pair as the non-monadic cousin. The metaphor is F#-born, so the translation has to be named explicitly in other languages.

Short-Circuit Versus Accumulate

Pipeline steps short-circuit — the first failure wins, which is right when step two depends on step one. Validation usually wants the opposite: collect every error and report them together. That is an applicative, not a monadic bind, and conflating the two produces forms that report one field at a time.

Domain Errors Are Modelled, Not Stringified

The failure track carries a designed type — typically a discriminated union of the failures this operation can actually have — not a string. This is where ROP meets domain-driven-design: the error cases are part of the domain model.

Boundaries, Not Everywhere

The style belongs where failure is expected and part of the contract — parsing, validation, use-case orchestration (postels-law at the inbound edge). Inside a pure calculation that cannot fail, a Result adds ceremony and nothing else.

When to Use:

  • Use-case orchestration where several fallible steps compose in sequence: validate, check uniqueness, persist, notify

  • Parsing and validation at a boundary, where the caller must be told what was wrong

  • Replacing a chain of try/catch blocks whose only purpose is to translate one exception into another

  • Making expected failure visible in signatures, so a reviewer or a model can see which calls need handling

  • Naming the style across languages when the team’s type is Either, Try or a hand-rolled Result, and you want the two-track shape rather than that library’s idioms

  • Alongside design-by-contract: contracts push failure to pre-conditions, ROP carries it in the return type — the choice between them is worth making deliberately

Common Misunderstandings:

  • ❌ "Railway Oriented Programming is an F# library" — it is a composition style; Result is a type, and the style predates and outlives any one package

  • ❌ "Use Result for every error" — Wlaschin wrote a whole post against exactly that; infrastructure failures and programmer bugs are not domain errors

  • ❌ "ROP replaces exceptions" — it replaces exceptions for expected failures only; panics and unrecoverable faults stay outside the two tracks

  • ❌ "The failure track is for error messages" — it carries a modelled type; a string failure track throws away the information the caller needs to branch on

  • ❌ "Bind and applicative are interchangeable" — bind short-circuits, applicative accumulates; validation usually needs the second

  • ✓ "Two tracks, a switch per step, and a modelled failure type at the boundaries" — that is the anchor, and it transfers across languages

Criticism:

  • Wlaschin wrote the counterweight himself, and it is the sharpest criticism available. Five years after the talk that popularised the metaphor, he published "Against Railway-Oriented Programming" (20 December 2019). His opening concession: "I do think it is often used thoughtlessly, especially if it’s a shiny new technique that you’ve just added to your toolbox." He rules out the substitution most readers make: "Don’t reinvent 'try-catch'!" He draws the boundary by purpose — "Result is only for expected control-flow, not for unexpected situations" — which excludes the cases where you want a stack trace. And he rejects the reflex use inside a module: "If you are doing some complex control flow but the logic is hidden from the outside world, don’t use Result just for the sake of it." Wlaschin, "Against Railway-Oriented Programming".

  • No second named critic found in English or German. Searched both languages for documented objections by a named author. What exists in German is advocacy rather than criticism: Stefan Macke, "Railway Oriented Programming in Java", heise (20 January 2017), presents the style for Java, and the critical pages of that article sit behind the heise+ paywall, so no passage from them is quoted here. The widely repeated objections — nested containers when a second monad is already in play, verbosity in languages without do-notation or ? — circulate in forum threads without a citable author, so they are left out rather than attributed to nobody.

Current Status:

  • Wlaschin’s own caveats are now part of the canon. The 2014 talk and the 2019 "Against ROP" post are both current on F# for Fun and Profit, which means the term’s definitive source carries its own limits. Citing ROP without those limits quotes half of it.

  • Host languages have made room for it, on their own schedule. Kotlin is the documented case: "In versions before Kotlin 1.5 Result<T> cannot be used as a direct result type of Kotlin functions, properties of Result type are also restricted", because "future versions of Kotlin might wish to expand and/or change semantics of functions that return Result type" — followed by "UPDATE: These limitations are lifted since Kotlin 1.5." Kotlin KEEP, proposals/stdlib/result.md. Rust’s ? operator and the Either-style libraries in Java and TypeScript are the other half of the picture: the style is available everywhere now, with different ergonomics.

  • Naming the term produces the type; one baseline reached for it unprompted. Measured on claude-haiku-4-5 in a clean room on 2026-10-03: on a 900-line data job whose only failure signal was a log line reading None, one of two baselines reached for Either on its own. Naming the term produced an explicit Result type and the success/failure track. Wlaschin 2014 is attributed correctly on the weak tier with high confidence.

Refactoring Catalog according to Fowler

Details
Full Name

The catalog of named refactorings in Martin Fowler’s Refactoring: Improving the Design of Existing Code (1999, with Kent Beck, John Brant, William Opdyke and Don Roberts; 2nd edition 2018), maintained online as the online catalog of refactorings: "This is the online catalog of refactorings, to support my book Refactoring 2nd Edition."

Also known as

Fowler’s refactorings, the refactoring catalog, named refactorings — or a single entry by name, such as Extract Function, Move Field, Replace Conditional with Polymorphism

Core Concepts:

Use the Qualified Name, Never the Bare Verb

"Refactor" is an everyday word for any code change, including changes that alter behaviour, so the bare verb carries almost nothing. The form that works is the qualified one — "Fowler’s refactoring catalog" — or a named entry, Extract Function. Fowler himself polices the distinction: "If somebody talks about a system being broken for a couple of days while they are refactoring, you can be pretty sure they are not refactoring."

Behaviour Preservation Is the Definition, Not a Side Condition

A refactoring changes internal structure and leaves observable behaviour unchanged. A change that also fixes a bug or adds a feature is not a refactoring; it is two changes wearing one name. The restriction is what makes the steps safe to apply without re-reading the whole system.

An Entry Is a Name Plus Mechanics

Each catalog entry has a name, a sketch of the before and after, a motivation, and numbered mechanics — the step order that keeps the code working between steps. The mechanics are the part that distinguishes the catalog from a list of good intentions: they tell you where to run the tests.

The Smell Says Why, the Catalog Says How

code-smells names the symptom — Long Function, Feature Envy, Primitive Obsession. The catalog names the treatment and its step order. Pairing them is the intended use: a smell without a named transformation produces a rewrite, and a transformation without a smell produces churn.

Two Hats

Fowler’s rule for staying honest: you are either adding function or refactoring, and you may switch hats often, but never wear both at once. This is the discipline that keeps the behaviour-preservation claim true commit by commit.

Named Steps Are a Shared Vocabulary

The catalog does for restructuring what the pattern catalogs did for design. "Extract a parameter object here" is a complete instruction between two people — or between a developer and a model — because the name carries the mechanics with it.

Preparatory Refactoring

Making the change easy before making the change. The refactoring is not cleanup for its own sake; it buys a cheaper next commit, which is also the argument that convinces a manager.

Not Patterns of Enterprise Application Architecture

fowler-patterns covers PEAA — Repository, Unit of Work, Active Record. Same author, different book, different catalog. Naming the wrong one gets you architecture patterns when you wanted code transformations.

When to Use:

  • Restructuring legacy code where you want named, reversible steps instead of one large rewrite

  • Immediately after code-smells has identified a symptom and you need the matching treatment

  • Reviewing a pull request: ask which named refactoring the diff claims to be, and whether behaviour really stayed put

  • Preparatory work before a feature, to separate the structural commit from the behavioural one

  • Driving a model: "refactor using Fowler’s catalog and name each refactoring you apply" yields a step sequence you can review, not a rewrite you have to re-read

  • Alongside mikado-method when the refactoring will not complete in one step, and test-seam when the safety net does not exist yet

Common Misunderstandings:

  • ❌ "Refactoring means cleaning up the code" — it means a behaviour-preserving transformation; cleanup that changes behaviour is a rewrite with a flattering label

  • ❌ "A big restructuring is a big refactoring" — Fowler calls the long broken build the tell: that is restructuring, not refactoring

  • ❌ "The catalog is the smell list" — the smells are the diagnosis chapter; the catalog is the remedy, and most of the book

  • ❌ "Fowler’s catalog is Repository and Unit of Work" — those are fowler-patterns, a different book

  • ❌ "The names are fixed" — the 2nd edition renamed entries (Extract Method became Extract Function), so a name alone can date a conversation

  • ✓ "Name the refactoring, then run the tests at the step the mechanics say" — the mechanics are the reason the catalog is more than vocabulary

Criticism:

  • The first public attack came from outside the community, and only Fowler’s reply survives. Robert X. Cringely used his PBS column to argue that most refactoring is wasted effort managers should stop paying for. Fowler answered on 3 June 2003: "A recent piece by Robert Cringely caused a small stir in the refactoring community recently, as he criticized refactoring." Fowler, "RefactoringCringely" (3 June 2003). The PBS original is gone — the page now serves a rights-retirement notice — so Cringely’s own wording is only reachable through Fowler’s rendering of it, and this entry does not quote him directly.

  • Measured against software metrics, refactoring looks like it makes things worse. Stefan Burger and Oliver Hummel ran established metrics over refactorings of Fowler’s own Video-Store example and over Lucene, and report "dass bekannte Softwaremetriken Code-Verbesserungen durch Refactoring nicht erkennen können, bzw. umgekehrt betrachtet, Refactoring die Codequalität verschlechtert". Burger and Hummel, "Über die Auswirkungen von Refactoring auf Softwaremetriken", GI (2013). The finding cuts against the metrics rather than against the practice — which is the point worth carrying into any conversation where a dashboard is the arbiter of code quality.

  • The word outran the definition, and its own author says so. Fowler’s bliki entry on refactoring malapropism is a complaint about the term’s dilution: "If somebody talks about a system being broken for a couple of days while they are refactoring, you can be pretty sure they are not refactoring." He adds the second half of the problem: "If someone talks about refactoring a document, then that’s not refactoring." Fowler, "Refactoring Malapropism" (3 January 2004). Read as criticism of the anchor rather than of the book: the bare verb has drifted so far that the qualified form is now mandatory.

  • Measured in industry, the practice does not match the definition, and practitioners price in the risk. Miryung Kim, Thomas Zimmermann and Nachiappan Nagappan surveyed and interviewed Microsoft engineers and analysed Windows 7 version history: "Our survey finds that the refactoring definition in practice is not confined to a rigorous definition of semantics-preserving code transformations and that developers perceive that refactoring involves substantial cost and risks." Their quantitative result refuses a one-line verdict: "the top 5% of preferentially refactored modules experience higher reduction in the number of inter-module dependencies and several complexity measures but increase size more than the bottom 95%. This indicates that measuring the impact of refactoring requires multidimensional assessment." Kim, Zimmermann, Nagappan, "An Empirical Study of Refactoring Challenges and Benefits at Microsoft", IEEE Transactions on Software Engineering 40(7), July 2014.

  • The test suite is a check, not a proof. Ralf Reißing, in the Gesellschaft für Informatik’s Informatiklexikon, names the central danger plainly: "Eine große Gefahr beim Refactoring ist es, durch die Änderungen an der Struktur neue Fehler in die Software hineinzubringen." On the usual answer — run the tests before and after — he is blunt: "Dieses Vorgehen ist aber nur eine Kontrolle, die keinerlei Sicherheit bietet, daß wirklich nichts verändert wurde." Only Opdyke-style refactorings with checked preconditions are "semantikerhaltende Refactorings, die beweisbar das Programmverhalten nicht verändern, sofern ihre Vorbedingungen erfüllt sind", and that is a formal argument, not a green bar. He also names the non-technical obstacle: the project manager has to be convinced "daß es sinnvoll und notwendig ist". Reißing, "Refactoring", GI-Informatiklexikon.

Current Status:

  • The catalog is maintained and the names moved. The online catalog supports the 2nd edition (2018) and lists entries such as Extract Function, Change Function Declaration, Move Field, Replace Conditional with Polymorphism and Split Phase. The first-edition names — Extract Method, Rename Method, Add Parameter — still live in IDE menus and in older team vocabulary, so both naming generations circulate at once. refactoring.com/catalog.

  • Naming the catalog turns advice into named transformations. Measured on claude-haiku-4-5 in a clean room on 2026-10-03: on a task that described a hard-to-change 400-line pricing module without naming any method, the no-anchor baseline answered "extract the calculation as a pure function, move rules to data". Naming Fowler’s catalog produced named entries instead — Extract Method, Separate Query from Modifier, Introduce Parameter Object, Replace Conditional with Polymorphism. The named transformation is what the anchor buys.

Richardson Maturity Model

Details
Full Name

Richardson Maturity Model — four levels of REST maturity for HTTP APIs. Presented by Leonard Richardson in "Justice Will Take Us Millions Of Intricate Moves", QCon San Francisco, 20 November 2008, and named and popularised by Martin Fowler, "Richardson Maturity Model: steps toward the glory of REST", 18 March 2010

Also known as

RMM, Richardson’s levels, the REST maturity levels; Richardson’s own talk calls it the Maturity Heuristic

Core Concepts:

The Four Levels

Level 0 — HTTP as a transport tunnel: one endpoint, one verb, the operation named in the payload. Fowler’s own description of the starting point: "The starting point for the model is using HTTP as a transport". Level 1 — resources: each thing gets its own URI. Richardson’s phrasing in the talk: "They give each individual thing in their universe a URI." Level 2 — HTTP verbs and status codes used with their defined meaning: GET is safe and cacheable, PUT is idempotent, DELETE removes, and the response code carries the outcome (201, 404, 409). Level 3 — hypermedia controls: responses carry links to the next available actions, so the client follows links instead of constructing URIs from documentation.

Use It as a Target, Not as a Label

The model is a classification, and a classification on its own changes nothing. Two formulations make it operational. As a target: "design this API to Richardson Maturity Model Level 2" — that is a concrete instruction about URI design, verb choice and status codes. As a gap statement: "this API sits at Level 1; name what Level 2 would change." The level number is shorthand for a set of design decisions, which is why it compresses well in a prompt.

Each Level Is a Separate Design Technique

Fowler reports Ian Robinson’s reading, which is the most useful part of the model: Level 1 is divide and conquer applied to one large endpoint, Level 2 removes unnecessary variation by using a standard set of verbs, and "Level 3 introduces discoverability, providing a way of making a protocol more self-documenting." The levels are not degrees of the same thing; they are three different problems, which is why a team can genuinely want Level 2 and not Level 3.

Level 2 Is Where Almost Everything Stops

Richardson said why in the talk itself: "A lot of people settle for level two because hypermedia is difficult to understand and its value in the web service domain isn’t as clear." The model’s main practical value is therefore as a precise way to say what an API already does and does not do, rather than as a ladder anyone intends to climb to the top.

When to Use:

  • Setting an explicit API design target before implementation — "Level 2, and here is why not Level 3"

  • Describing an existing HTTP API in one word to another engineer or to a model, instead of listing its URI and verb conventions

  • Reviewing an API for the specific Level 2 defects: POST used for reads, 200 returned with an error body, verbs encoded in the path

  • Deciding whether hypermedia is worth its cost for a given client population, with the tradeoff named rather than implied

  • Reading REST literature, where Level 0 to Level 3 is assumed vocabulary

Common Misunderstandings:

  • ❌ "Level 3 is the goal for every API" — Richardson’s own talk explains why most teams stop at Level 2, and the cost falls on clients that do not need discoverability

  • ❌ "Level 2 means RESTful" — Roy Fielding’s position is that hypertext is a precondition, not a finishing touch; on that reading Levels 0 to 2 are simply not REST

  • ❌ "Higher level means better API" — the levels rank conformance to REST constraints, not fitness for purpose; an internal RPC-style service can be the right design at Level 0

  • ❌ "RMM is an assessment framework" — Fowler explicitly rejects that use (see Criticism)

  • ✓ "RMM is a vocabulary for naming where an API sits and where you want it" — accurate, and the form in which it is actionable

Criticism:

  • One critic disputes that the thing exists under that name. Mike Ralphson, in a post titled "Why there is no such thing as the Richardson Maturity Model", faults the popularised version for the pejorative "Swamp of POX" and for conflating resources with representations, and reports that Richardson himself called the whole thing "very embarrassing" at a RESTFest talk, adding that climbing the heuristic needs "either a technical reason or a political reason to do so". Ralphson (13 December 2018). The quotation is printed as Ralphson reports it: the primary talk page for the year he names carries a different title, so Richardson’s own words could not be confirmed at source.

  • Roy Fielding’s constraint leaves no ladder to climb. Fielding never wrote about the Richardson Maturity Model in the piece usually cited against it; what he wrote is the constraint that makes the model’s lower levels not-REST at all: "if the engine of application state (and hence the API) is not being driven by hypertext, then it cannot be RESTful", and "A REST API should be entered with no prior knowledge beyond the initial URI (bookmark) and set of standardized media types". Of the API he was reviewing he wrote: "That is RPC. It screams RPC." The word "maturity" does not appear in that post — the application to RMM is Fowler’s: "Roy Fielding has made it clear that level 3 RMM is a pre-condition of REST." Read that way, the model is not a maturity scale at all: Levels 0 through 2 are one category (not REST) and Level 3 is the other. Fielding, "REST APIs must be hypertext-driven", 20 October 2008

  • Fowler rules out the assessment use, in the article that made the model famous. Two sentences from his own write-up: "I should stress that the RMM, while a good way to think about what the elements of REST, is not a definition of levels of REST itself." And: "As such I see it as tool to help us learn about the concepts and not something that should be used in some kind of assessment mechanism." A team that scores its APIs on the RMM is using it against its popularising author’s stated intent. Use it as a design target and a shared vocabulary; do not put it in a scorecard. Fowler, "Richardson Maturity Model", 18 March 2010

  • The name promises more than the original claimed. Richardson’s talk calls its third act "The Maturity Heuristic" — a heuristic, not a model, and not a maturity model. The term "Richardson Maturity Model" comes from Fowler’s 2010 title, two years later. The upgrade from heuristic to model is where the implication of a ladder enters, and the implication is the part both authors later qualify. Richardson, "Justice Will Take Us Millions Of Intricate Moves", QCon San Francisco, 20 November 2008

  • What we did not find, and where we looked. No named German-language critique of the model turned up; German results are tutorials and translations of the four levels, not argument. Languages searched: English, German. The substantive criticism is in English and comes from Fielding, from Fowler himself, and from Ralphson.

Current Status:

  • The prior holds, and it diagnoses. In a clean-room test on claude-haiku-4-5 (2026-10-03), a neutral logistics-platform brief produced an API discussion with no notion of maturity or hypermedia at all. Naming the Richardson Maturity Model made the weak tier diagnose the current state — "likely stuck at Level 0-1" — and then prescribe the migration, with HTTP verb semantics and status codes given per resource. Attribution lands on Richardson 2008-2009, with medium confidence; the year is sometimes given as 2009 or as Fowler’s 2010.

  • "The swamp of POX" is not in Fowler’s text. The phrase travels with Level 0 everywhere in secondary writing and in model output, but Fowler’s article heads that section simply "Level 0". Treat the label as folklore, not as a quotation.

  • Fowler’s own Level 3 example has aged out. In 2010 he wrote of link relations: "As I write these are confined to what’s done by ATOM, which is generally seen as a leader in level 3 restfulness." Today the hypermedia discussion runs through JSON:API, HAL and JSON Hypertext Application Language rather than Atom, while the levels themselves are unchanged. Level 3 remains rare in production APIs, which is the honest reason the model is used descriptively more often than as a plan.

Separation of Concerns

Details
Also known as

SoC

Core Concepts:

Concern

A distinct aspect or responsibility of a system — correctness vs. efficiency, business logic vs. presentation, persistence vs. domain rules

Isolation

Each concern is studied, designed, and changed in isolation, so that one aspect can be reasoned about without interference from the others

Modularity

Separating concerns into distinct units is the structural basis for modular software — high cohesion within a unit, low coupling between units

Independent change

When concerns are cleanly separated, a change to one aspect ripples minimally into the others

Manifestations

The principle shows up concretely as layering, modularization, MVC, microservices boundaries, and aspect-oriented programming

Relation to information hiding

David Parnas’s information hiding (1972) is the complementary mechanism — Dijkstra separates concerns to think clearly, Parnas hides design decisions to change safely

Relation to SRP

The Single Responsibility Principle applies Separation of Concerns at the class/module granularity — "a module should have one reason to change"

Key Proponent

Edsger W. Dijkstra coined the term in "On the role of scientific thought" (EWD447, 1974): "the separation of concerns …​ even if not perfectly possible, is yet the only available technique for effective ordering of one’s thoughts"

When to Use:

  • Decomposing a system into modules, layers, or services with clear boundaries

  • Reviewing code for tangled responsibilities (e.g. business logic mixed with I/O or presentation)

  • Justifying architectural seams — why persistence, domain, and UI are kept apart

  • Teaching why high cohesion and low coupling matter

  • Prompting an LLM to structure code into well-bounded, independently changeable units

Single Level of Abstraction Principle (SLAP)

Details
Full Name

Single Level of Abstraction Principle

Also known as

SLAP, SLA Principle, One Level of Abstraction Per Function

Core Concepts:

Core rule

All statements within a single function (or block) should operate at the same level of abstraction. High-level orchestration and low-level mechanics do not belong in the same body.

Why it works

A reader scanning a function can trust it to answer one question at one resolution. Mixing levels forces the reader to context-switch between "what is this step doing" and "how exactly is it being done" on every line, which is the primary driver of the "I have to read this three times" feeling.

Applying SLAP
  • When you notice a function mixing levels, extract the low-level details into well-named helper functions whose names express the next level of detail.

  • The top-level function becomes a readable summary — almost a table of contents — of the work.

  • This is the Composed Method pattern (Kent Beck, Smalltalk Best Practice Patterns, 1996): build functions from calls to other methods at the same conceptual level.

Relation to Clean Code

Robert C. Martin formalised SLAP as one of the function-design rules in Clean Code (2008), alongside "Functions should be small", "Do one thing", and "Use descriptive names". SLAP is the organising principle that makes "small functions" readable rather than just fragmented.

Key Proponents

Kent Beck (Smalltalk Best Practice Patterns, 1996 — "Composed Method"), Robert C. Martin (Clean Code, 2008).

When to Use:

  • Refactoring a long function that "does too much" — SLAP tells you how to split it, not just that you should

  • Code review: a natural smell-detector for functions that mix orchestration with mechanics

  • Teaching junior developers a concrete, checkable rule that produces readable code

  • Designing a new algorithm top-down: write the high-level steps as calls to not-yet-existing helpers, then fill them in

  • Reconstructing the intent of legacy code — lift the orchestration out and the design becomes visible

  • Cohesion Criteria - SLAP produces functional cohesion by keeping a function focused on one conceptual step

  • KISS Principle - SLAP is one concrete technique for keeping functions simple

  • SOLID SRP - SRP applies at the class level what SLAP applies at the function level

  • Clean Architecture - Layered abstraction at the architectural scale mirrors SLAP at the code scale

SOLID-Dependency Inversion Principle

Details
Full Name

SOLID Dependency Inversion Principle (DIP)

Intent:

High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details; details should depend on abstractions.

When to Use:

  • High-level business logic directly instantiates infrastructure classes

  • Changing a database or framework requires modifying business logic

  • Unit testing requires running actual external services

Prompt Example:

"Refactore diese Klasse nach dem SOLID-Dependency Inversion Principle, sodass die Abhängigkeiten über Interfaces injiziert werden."

SOLID-Interface Segregation Principle

Details
Full Name

SOLID Interface Segregation Principle (ISP)

Intent:

Clients should not be forced to depend on interfaces they do not use. Prefer many specific interfaces over one general-purpose interface.

When to Use:

  • Classes implement interface methods they don’t need (empty or throwing)

  • Changes to an interface affect clients that don’t use the changed methods

  • Fat interfaces with many methods serving different client groups

Prompt Example:

"Refactore dieses Interface nach dem SOLID-Interface Segregation Principle in kleinere, clientspezifische Interfaces."

SOLID-Liskov Substitution Principle

Details
Full Name

SOLID Liskov Substitution Principle (LSP)

Intent:

Subtypes must be substitutable for their base types without altering the correctness of the program. Derived classes must honor the contracts of their base classes.

When to Use:

  • Subclass overrides break expected behavior of the base class

  • instanceof/type checks appear in client code

  • Inheritance hierarchies violate "is-a" relationships

Prompt Example:

"Überprüfe diese Vererbungshierarchie auf Verletzungen des SOLID-Liskov Substitution Principle."

SOLID-Open/Closed Principle

Details
Full Name

SOLID Open/Closed Principle (OCP)

Intent:

Software entities should be open for extension but closed for modification. Add new behavior by adding new code, not changing existing code.

When to Use:

  • Adding new features requires modifying existing working code

  • Frequent changes to a module break other parts of the system

  • You need a plugin or strategy-based extension mechanism

Prompt Example:

"Refactore diesen Code nach dem SOLID-Open/Closed Principle, sodass neue Varianten ohne Änderung des bestehenden Codes hinzugefügt werden können."

SOLID Principles

Details
Full Name

SOLID Object-Oriented Design Principles

Core Concepts:

Single Responsibility Principle (SRP)

Each class should have one responsibility

Open/Closed Principle (OCP)

Entities should be open for extension, closed for modification

Liskov Substitution Principle (LSP)

Subtypes must be substitutable for their base types

Interface Segregation Principle (ISP)

Clients should not be forced to depend on interfaces they do not use

Dependency Inversion Principle (DIP)

Depend on abstractions, not concrete implementations

Key Proponent

Robert C. Martin ("Uncle Bob")

When to Use:

  • Designing maintainable and scalable object-oriented systems

  • Refactoring legacy code to improve structure

  • Building systems where flexibility and testability are important

  • Teaching or enforcing good software design practices

Criticism:

  • Dan North, "CUPID — for joyful coding" (2022; preceded by his 2017 talk "Why Every Single Element of SOLID is Wrong") — the principles are too vague to guide decisions ("responsibility" is undefined) and optimise for a style of OO design that mainstream practice has moved past; he proposes the CUPID properties as an alternative

  • John Ousterhout, "A Philosophy of Software Design" (2018) — SRP-driven decomposition produces many shallow classes whose interfaces add more complexity than their implementations hide; he argues for fewer, deeper modules

  • The principles rest on anecdote and authority rather than empirical evidence — a recurring point in the debate around both critiques

SOLID-Single Responsibility Principle

Details
Full Name

SOLID Single Responsibility Principle (SRP)

Intent:

A class should have only one reason to change. Each module or class should be responsible for a single part of the software’s functionality.

When to Use:

  • A class has multiple unrelated responsibilities

  • Changes to one feature require modifying unrelated code

  • Unit testing requires complex setup due to tangled concerns

Prompt Example:

"Refactore diese Klasse nach dem SOLID-Single Responsibility Principle. Trenne die Verantwortlichkeiten in separate Klassen."

SSOT (Single Source of Truth)

Details
Full Name

Single Source of Truth

Core Concepts:

Conceptual principle

Focuses on establishing trust and authority for data

Authoritative source

One canonical, trusted location for each piece of data

Data integrity

All consumers reference the same trusted source

Version control

Single source ensures consistent versioning

Derived data

Other representations are derived from the single source

Trust and reliability

The source is the definitive version when conflicts arise

System of record

The primary data store for critical business information

Organizational practice

Applied at the architecture and business process level

Key Application Areas:

  • Version control systems (Git as SSOT for code)

  • Database design and data warehousing

  • Documentation and knowledge management

  • Configuration management

  • Master data management (MDM)

When to Use:

  • Designing data architecture for enterprise systems

  • Establishing documentation standards and knowledge bases

  • Building data pipelines and ETL processes

  • Implementing microservices with clear data ownership

  • Creating audit trails and ensuring compliance

  • Resolving conflicts between multiple data sources

    Difference from SPOT

    SSOT emphasizes the authoritative, trusted nature of a data source and is used at the architecture/organizational level, while SPOT focuses on the implementation pattern

    Related Concepts

    DRY, SPOT, Event sourcing, Data lakes, Master data management

Unix Philosophy

Details
Also known as

Software Tools philosophy, Unix design philosophy

Core Concepts:

Do one thing well

"Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features." (Doug McIlroy, Bell System Technical Journal, 1978)

Compose small tools

Expect the output of every program to become the input to another, as yet unknown, program; small sharp tools combine into larger workflows via pipes

Text streams as universal interface

"Write programs to handle text streams, because that is a universal interface" — plain text is the lingua franca that lets independent tools interoperate

Build prototypes early

Don’t hesitate to throw away the clumsy parts and rebuild them; favour fast prototyping over over-design

Worse is better

Richard P. Gabriel’s observation that simple, available implementations spread faster than elegant, complete ones — a descriptive lens on why the Unix style won

Rule of Modularity

Build a program out of simple parts connected by clean, well-defined interfaces (Eric S. Raymond)

Rule of Composition

Design programs to be connected to other programs; keep formats parseable so tools chain together (Eric S. Raymond)

Rule of Silence

"When a program has nothing surprising to say, it should say nothing" — quiet success keeps output usable as another program’s input (Eric S. Raymond)

Key Proponents

Doug McIlroy (Bell System Technical Journal, 1978), Eric S. Raymond ("The Art of Unix Programming", 2003, with 17 design rules)

When to Use:

  • Designing CLI tools, scripts, and pipelines meant to compose with others

  • Deciding whether to extend an existing program or build a separate, focused one

  • Arguing for plain-text, line-oriented data formats over opaque binary blobs

  • Reviewing a tool that is accumulating flags and feature creep

  • Prompting an LLM to produce small, single-purpose, composable Unix-style programs

Criticism:

  • Rob Pike and Brian Kernighan, "Program Design in the UNIX Environment" / "cat -v Considered Harmful" (1984) — argue that Unix itself drifted from the philosophy, with utilities like cat accreting flags (-n, -s, -b, -v) that violate "do one thing well"; summarized at Unix philosophy (Wikipedia)

  • Simson Garfinkel, Daniel Weise, Steven Strassmann (eds.), The UNIX-HATERS Handbook (1994) — a compilation of the UNIX-HATERS mailing list attacking the "worse is better" design culture as a source of obscure flags, cryptic errors, and lost work

  • Richard P. Gabriel, "The Rise of Worse is Better" (1989, published 1991) — frames the philosophy descriptively rather than as a virtue: simple-but-incomplete designs (C, Unix) outcompeted more correct, elegant ones (Lisp machines), implying the style spreads for market reasons, not because it is right

Current Status:

  • The philosophy remains the conceptual core of CLI tooling, shells, and pipelines, but sits in tension with modern monolithic GUI/IDE and all-in-one platform tooling, where integration and discoverability are valued over composition of small text-stream tools

  • Eric S. Raymond’s 17 rules (2003) are the most cited modern codification; training-data priors most plausibly serve the McIlroy summary and Raymond’s rules, while the Pike/Kernighan critique of Unix’s own drift is the documented counter-current

YAGNI (You Aren’t Gonna Need It)

Details
Full Name

You Aren’t Gonna Need It

Core Concepts:

Don’t build for hypothetical futures

Only implement functionality when it is actually needed, not when you foresee it might be needed

Speculative generality

Anti-pattern of building abstractions for imagined future requirements that may never materialize

Incremental design

Let design emerge through actual needs; evolve architecture as requirements become concrete

Cost of carry

Unused code adds maintenance burden, increases complexity, and creates cognitive load for the entire team

Delete dead code

Aggressively remove code that no longer serves a current purpose

Extreme Programming origin

Core XP practice alongside TDD, refactoring, and continuous integration

Reversibility

Prefer simple, changeable decisions over premature commitments to complex solutions

Key Proponents

Ron Jeffries (coined the phrase), Kent Beck ("Extreme Programming Explained", 1999)

When to Use:

  • Fighting over-engineering and premature abstraction

  • Agile projects with iterative delivery and evolving requirements

  • Refactoring legacy systems burdened with unused features

  • When tempted to add "just in case" functionality or configurability

  • DRY - Eliminates duplication of existing knowledge (complementary but distinct)

  • SPOT - Single Point of Truth, related simplicity principle

  • TDD, Chicago School - YAGNI is a core principle of classicist TDD

  • KISS Principle - Keep systems as simple as possible (complementary simplicity principle)

Development Workflow

50/72 Rule

Details
Full Name

50/72 Rule for Git Commit Messages

Also known as

Git Commit Message Convention, Seven Rules of Git Commits

Core Concepts:

50-character subject line

Keep the subject line to roughly 50 characters — a soft limit that focuses the author on stating the change concisely. GitHub truncates at 72 characters; git log --oneline truncates earlier. Aim for 50; treat 72 as the hard ceiling.

Imperative mood

Write the subject in the imperative: "Fix bug" not "Fixed bug" or "Fixes bug." This mirrors the convention Git itself follows — git merge generates "Merge branch…", git revert generates "Revert…".

Blank line separator

Separate the subject from the body with a blank line. Git tools — rebase, format-patch, log --oneline — rely on this separator to distinguish the summary from the explanation. Running them together confuses these tools.

72-character body wrap

Wrap the commit body at 72 characters. With Git’s 4-space indentation, a 72-character line fits within an 80-column terminal. The same limit makes the message usable as an email patch via git format-patch.

Body explains why, not how

The code diff already shows what changed. The commit body explains the reasoning — context, decision, tradeoffs. How the code works belongs in source comments; why this change exists belongs in the commit.

Key Proponents

Tim Pope ("A Note About Git Commit Messages", tbaggery.com, 2008 — popularized the rule); Chris Beams ("How to Write a Git Commit Message", cbea.ms — codified it as the "Seven Rules")

When to Use:

  • Writing commit messages in any Git repository

  • Configuring commit.template or linting with commitlint or a .gitmessage hook

  • Code review: checking whether a commit message gives reviewers and future git bisect users enough context

  • Instructing an LLM to generate a commit message — naming "50/72 Rule" activates the full convention without repeating each constraint

Current Status:

  • Chris Beams' "How to Write a Git Commit Message" is the most widely linked elaboration of Tim Pope’s original post; it adds capitalization, no trailing period, and the "explain why vs. how" distinction as formal rules

  • Conventional Commits adds a type(scope): prefix that competes directly with the 50-character budget; Thirstybear (2025) argues that this metadata belongs in commit trailers rather than the subject line, and defends the 50-character limit on typographic grounds — citing Swiss designer Emil Ruder’s 50–60 characters per line as the readability optimum

Andon

Details
Full Name

Andon (行灯), Japanese for "paper lantern" — the signal system of the Toyota Production System

Also known as

andon cord, andon board, andon light, stop-the-line authority, the visible half of jidoka

Core Concepts:

Two Halves, One Word

Andon names both the display — a board or lamp above the line showing the status of every station — and the trigger, the cord or button an operator pulls when something is wrong. Wikipedia’s definition covers the display side: "a system which notifies managerial, maintenance, and other workers of a quality or process problem."

The Radical Part Is the Authority, Not the Hardware

Any operator may signal, and the signal is binding on everyone above them. That is an inversion of ordinary factory hierarchy, and it is the part that does not ship in the box. Mark Graban puts it flatly: "It’s not the cord or a button that matters… It’s the process and the management system that matters."

Three Colours, One Sentence Each

Jane Slaughter’s description of the board: "A green light indicates there are no problems; a yellow light shows that the operator is having trouble keeping up and needs help; and a red light means there is a problem which requires stopping the line."

It Is a Call for Help Before It Is a Stop

Graban corrects the popular version: a pull "sounds an alarm and turns on a yellow light", the line keeps moving to the next fixed position, and a team leader gets a window of "maybe 5 to 30 seconds" to respond. If they succeed, "the line never stops at all." Stopping at a fixed position — between work cycles, not mid-task — is deliberate, so an interrupted job does not compound the defect.

A Rising Pull Count Is a Good Sign

Early in an andon rollout, more pulls mean more problems surfacing, not more problems existing. Graban’s comparison is the standard evidence: Toyota’s Georgetown plant recorded roughly 2,000 pulls a week, a new Ford plant in Dearborn two — not because Ford had fewer problems, but because its workers did not trust the response. A count near zero is the alarming reading.

The Visible Half of Jidoka

Jidoka — automation with a human touch — means a process stops itself when it produces a defect. Andon is how a human exercises the same authority, and how the stop becomes visible to everyone at once.

Software Analogues

A red build that nobody may build on top of; blocking a deploy; halting a canary rollout on a failing metric; a pager that any engineer may fire without asking permission. In each case the mechanism is trivial and the authority is the whole design.

When to Use:

  • Establishing who may halt work — the naming makes the authority explicit rather than implicit

  • Red-build discipline and stop-the-line rules around CI, the direct descendant of the idea (red-green-tdd)

  • Canary and progressive rollouts, where an automatic or manual abort is the andon

  • Diagnosing a quiet team: if nobody ever stops anything, ask whether the authority exists or only the button does

  • Designing escalation paths where the responder, not the reporter, owns the problem once the signal is raised

Common Misunderstandings:

  • ❌ "One worker pulling the cord stops the whole factory" — Graban calls this the myth; buffers between sections absorb a local stop, and the line halts only at the next fixed position

  • ❌ "Andon is a line-stop device" — it is first a call for help; most pulls are resolved before any stop

  • ❌ "Install the cord and you have andon" — without a responder within seconds and a no-blame reaction, the cord is decoration

  • ❌ "Many pulls means the process is bad" — early on it means the process is finally visible

  • ✓ "Andon is jidoka performed by a person" — accurate, and the reason it belongs next to kaizen rather than to tooling

Criticism:

  • Read from the other side of the line, the board is a pacing device. Jane Slaughter, in her account of what Labor Notes called "management by stress", treats andon as the emblem of the whole system: "Management by stress is the most sophisticated version of team concept, even though it contradicts many traditional notions of good management." The objection is precise, and it is about tuning: "The ideal state is achieved when the plant is running with all stations just on the line between green and yellow." A system deliberately balanced at the edge of "cannot keep up" uses the operator’s distress signal as its control input. Slaughter, "Management by Stress", Multinational Monitor, January/February 1990. Slaughter is co-author, with Mike Parker, of Choosing Sides: Unions and the Team Concept.

  • The transplanted version failed on arrival. The Toyota/Ford pull-count gap is usually told as a culture story, but it is also a criticism of the mechanism: copied without the management system, the cord produced silence. Graban: Ford’s rare pulls reflected worker distrust of how management would respond, not a better process. Graban, "No, One Toyota Worker Can’t Stop the Whole Factory" (29 June 2026).

  • The popular story is wrong in its details, and the details carry the design. Graban’s whole piece is a correction of the andon legend circulating in management writing and software conference talks — the instant total stop, the lone heroic worker. The fixed-position stop, the 5-to-30-second response window and the required proximity of capable help are what make the practice work, and they are exactly what the legend omits.

Current Status:

  • Toyota replaced the cords with buttons. Starting at the Toyota City plant in 2013, overhead cords gave way to wireless, waist-high yellow buttons, rolled out gradually worldwide while some plants kept cords. The stated reasons are mundane: "reduce overhead clutter, improve safety by removing tools…that could snag on the cord" and "simplify line reconfiguration". Graban, "Why Toyota is Eliminating the Andon Cord from its Factories" (2 August 2014, updated 17 May 2026). The word "cord" in "andon cord" is therefore already historical at the source.

  • The term survives in software mostly as metaphor. "Pull the andon cord" is common shorthand in DevOps and SRE writing for stopping a release. The prior most training data carries is this metaphorical sense plus the myth version; the fixed-position stop and the responder-within-seconds requirement are usually absent, which is precisely why naming the anchor is worth doing.

BEM Methodology

Details
Full Name

Block Element Modifier (BEM) (S)CSS Methodology

Core Concepts:

Motivation

Solve CSS specificity wars, naming conflicts, and stylesheet maintainability issues in large codebases

Block

Standalone component that is meaningful on its own (e.g., menu, button, header)

Element

Part of a block with no standalone meaning (e.g., menuitem, buttonicon)

Modifier

Flag on blocks or elements that changes appearance or behavior (e.g., button—​disabled, menu__item—​active)

Naming convention

block__element—​modifier structure

Independence

Blocks are self-contained and reusable

No cascading

Avoid deep CSS selectors, use flat structure

Explicit relationships

Clear parent-child relationships through naming

Reusability

Components can be moved anywhere in the project

Mix

Combining multiple BEM entities on a single DOM node

File structure

Often paired with component-based file organization

Naming Examples:

  • Block: .search-form

  • Element: .search-forminput, .search-formbutton

  • Modifier: .search-form—​compact, .search-form__button—​disabled

    Key Proponents

    Yandex development team

When to Use:

  • Large-scale web applications with many components

  • Team projects requiring consistent (S)CSS naming conventions

  • When (S)CSS maintainability and scalability are priorities

  • Projects where developers need to quickly understand (S)CSS structure

  • Component-based architectures (React, Vue, Angular)

Current Status:

  • The definition at getbem.com and bem.info is stable and still accurate — BEM itself is a finished methodology

  • Mainstream practice has shifted: State of CSS 2024 shows Tailwind CSS "far ahead of other, more traditional competitors", and the survey no longer even tracks naming methodologies as it did in 2020; CSS Modules, CSS-in-JS, and native scoping/nesting/cascade layers solve by platform the global-namespace problem BEM solved by convention

Boy Scout Rule

Details
Full Name

The Boy Scout Rule

Also known as

Leave the campground cleaner than you found it, Check in cleaner than you checked out

Core Concepts:

  • Check the module in cleaner than you checked it out. The unit of improvement is the visit, not the project. Every time a file is opened for some other reason, it leaves in slightly better shape than it arrived.

  • Scoped to what you already touched. The cleanup rides along with work that was going to happen anyway. Code you did not need to open is out of scope — that is the line between the rule and drive-by refactoring.

  • Small enough to need no permission. Rename an unclear variable, extract a method, delete dead code, fix a stale comment. If it needs a ticket, it is no longer this rule.

  • Aimed at entropy, not at perfection. The target is the slow decay of a codebase nobody is responsible for, not a standard of cleanliness. Slightly better, repeatedly, beats a rewrite that never comes.

  • Safe only under test. The rule assumes a green test suite. Without one, "improvement" is an unverified change to code you opened for a different reason.

When to Use:

  • Fixing a bug in a file nobody has read in years

  • Codebases with no dedicated refactoring budget, where improvement has to be smuggled into ordinary work

  • As a shared team norm, so the cleanup is expected rather than defended in review

  • Where code is generated or changed faster than humans critically review it, and decay would otherwise accumulate unobserved

Common Misunderstandings:

  • Reading it as a licence to refactor anything nearby. The rule is bounded by what the task already touched. Unbounded, it produces pull requests whose reviewers cannot find the actual change.

  • Mixing structural and behavioural change in one commit. The cleanup and the fix should be separable, so that a reviewer can read one without the other and a revert does not take both. Kent Beck’s Tidy First? makes that separation its central rule.

  • Confusing "cleaner" with "in my style". Reformatting to personal preference adds diff noise and removes no decay.

  • Applying it without tests. Then it is not tidying, it is an unreviewed change under a virtuous name.

Criticism:

  • The cleanup and the fix arrive in the same diff. Jason Swett states the two consequences plainly: "It will be harder for any pull request reviewer to tell what exactly changed between the old code and the new code", and "If a feature/bugfix and piece of refactoring are mixed into one piece of work, it’s impossible to roll one back without rolling back the other." Swett, "Why the Boy Scout Rule is insufficient" (17 December 2018). He also names a class of change the rule cannot hold — "park-level" problems that "need to be discussed among everyone and then applied as a distinct project".

  • It cannot reach the debt that matters most. Philippe Bourgau: "the boy scout rule is local and does not address large scale design or architecture issues". And a second bound that is rarely stated: "programmers will be able to clean the code only as much as their skills allow them to". Bourgau, "When the Boy Scout Rule Fails" (2 August 2016). The rule is limited both by scope and by whoever happens to open the file.

  • The review burden is real, and has a proposed remedy. Marius Elvert writes that cleanup found along the way "'pollutes' your merge-/pull-requests, making it harder to review", and answers it with cleanup in its own commit, marked with a BSR: prefix so a reviewer can skip or read it separately — an approach he restricts to small refactorings. Elvert, Schneide Blog (13 January 2022).

  • The judgement the rule depends on is the one it does not supply. Every critic above converges on the same missing piece: what counts as "minor" cleanup. The rule states the obligation and leaves the boundary to the person holding the editor.

  • No citable German-language criticism surfaced in a search for Pfadfinderregel and Pfadfinderprinzip — the German results were advocacy. French, Spanish, Japanese and Chinese were not searched. This is an absence in our search, not in the discourse.

Current Status:

  • Martin credits the rule to the Boy Scouts, not to himself. Clean Code (Prentice Hall, 2008), chapter 1: "The Boy Scouts of America have a simple rule that we can apply to our profession. Leave the campground cleaner than you found it." Excerpt at InformIT. His contribution is the transfer to code, which is what this anchor names — the campground formulation itself is older and not his.

  • Still advocated, now with conditions attached. The advocacy since 2022 keeps the rule and adds guards rather than dropping it: cleanup should be "local and limited", and "large refactoring still require a separate task with a separate time slot" — Anton, DEV Community (23 February 2025).

  • The discourse moved to the separation discipline, not away from the rule. Kent Beck’s Tidy First? (2023) made "structural and behavioral changes should be kept in separate PRs (or at least in separate commits)" the mainstream framing — which is exactly the remedy the rule’s critics ask for. Worth stating precisely: Beck does not name the Boy Scout Rule. He supplies the discipline; he is not on record as correcting it.

  • No retraction found. Martin has publicly qualified several Clean Code positions, and a second edition exists. We found no citable evidence that this rule is among the things he revised — an absence in our check rather than a confirmed continuity.

Chesterton’s Fence

Details
Full Name

Chesterton’s Fence

Also known as

The fence-and-gate parable; "don’t remove a fence until you know why it was put up"

Core Concepts:

  • The parable moves the burden of proof onto the remover. G.K. Chesterton, The Thing (1929), chapter "The Drift from Domesticity": "There exists in such a case a certain institution or law; let us say for the sake of simplicity, a fence or gate erected across a road. The more modern type of reformer goes gaily up to it and says, 'I don’t see the use of this; let us clear it away.' To which the more intelligent type of reformer will do well to answer: 'If you don’t see the use of it, I certainly won’t let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it.'" Not seeing a reason is a fact about the observer, not about the fence.

  • The unexplained artifact is evidence, not noise. Chesterton’s supporting argument is the half that travels best into engineering: "The gate or fence did not grow there. It was not set up by somnambulists who built it in their sleep." A hard-coded seven-second retry delay, a feature flag that has been on for two years, a defensive check nobody can justify — each one is a cheap record of a failure that once happened to somebody.

  • It buys a delay, not a veto — and Chesterton wrote the exit clause himself. Two sentences later in the same essay: "If he knows how it arose, and what purposes it was supposed to serve, he may really be able to say that they were bad purposes, or that they have since become bad purposes, or that they are purposes which are no longer served." A good-faith, timeboxed investigation that turns up nothing earns the removal. Take it out reversibly — behind a flag, in a revertible commit — and watch the signal that would tell you the fence was load-bearing.

  • It looks backwards, where second-order thinking looks forwards. second-order-thinking asks "and then what?" about a change you are about to make. Chesterton’s Fence asks "and why is this here?" about something already standing. The two compose: recover the reason first, then trace what removing it sets in motion.

  • The dig is a method, not an attitude. git log and git blame on the line, git log -S on the unexplained string, the ticket or pull request that introduced it, the incident it followed, the on-call runbook and the alert definitions, and the author if they are still reachable. Operational documentation usually explains a strange line of code faster than the code does.

  • The effort scales with the blast radius. An unused CSS class and a retry delay in a payment flow do not deserve the same archaeology. Let what breaks if you are wrong set the timebox.

When to Use:

  • Inheriting or modernising a system whose oddities nobody on the current team can explain — the case the principle was made for

  • Any cleanup list that already contains the words "safe", "obviously unused" or "quick win"

  • Reviewing a pull request whose diff is mostly deletions

  • Deprecating an API, a config flag, a cron job or a database column that appears to have no callers

  • Joining a team and meeting a process that looks pointless from the outside

  • As a brake on a static analyser — or an LLM — that confidently reports dead code

Common Misunderstandings:

  • ❌ "Never change anything you don’t understand" — the principle demands an investigation, not permanent preservation. Chesterton explicitly allows destruction once the purpose is known and found wanting.

  • ❌ "The fence stays until someone proves it useless" — that turns the burden into an unfalsifiable one, because nobody can prove the absence of a reason. The test is a serious attempt to find the reason, bounded in time.

  • ❌ "It is an argument for tradition" — in Chesterton’s essay it was one. Applied to a codebase it is an argument about evidence: the artifact is the only surviving witness to a failure whose ticket is long closed.

  • ❌ "Understanding it means reading the code" — the reason is rarely in the code. It is in the incident, the contract, the regulator’s letter, the vendor who used to time out.

  • ✓ "It is a stopping rule for confident deletion" — fair, and that is what makes it usable rather than merely wise.

Criticism:

  • Reformers usually do see the use of the fence. Paul Currion reads the original essay against itself: "The problem is that, even in Chesterton’s day, none of the reformers he so clearly disdained failed to see the use of the fence; it was simply that they disagreed with people like Chesterton that that use was worth preserving the fence for." He also calls the framing gatekeeping rather than argument — Chesterton "doesn’t just want to have a debate about the anti-domestic drift; he wants to decide who is allowed to have that debate based on whether they meet his philosophical criteria", so "Chesterton’s fence is being erected to exclude somebody". Currion, "Tearing down Chesterton’s fence" (20 September 2020).

  • Invoked as a conversation-stopper, it is toothless. Kevin Corcoran’s objection is that the people arguing for removal have typically done the archaeology already: "Public choice theory meets Chesterton’s injunction to understand what led to these regulatory fences being created." Where that is so, "invoking Chesterton’s Fence is likewise toothless — the person doing so only shows they are a step behind in the discussion." Corcoran, "Misusing Chesterton’s Fence", Econlib (15 December 2022).

  • The removal process is itself a fence. Stuart Armstrong’s one-sentence post turns the principle on itself as "Chesterton’s meta-fence": "in our current system (democratic market economies with large governments) the common practice of taking down Chesterton fences is a process which seems well established and has a decent track record, and should not be unduly interfered with (unless you fully understand it)". Armstrong, LessWrong (5 January 2016). This is the cuts-both-ways form: caution about removal is a policy too, and it has costs nobody counts.

  • The principle cannot tell a wise fence from an unjust one. Arnold Kling: "Conservatives use the shorthand 'Chesterton’s Fence' to describe their position." His counter-example is segregation — "Racial segregation was wrong. But it was like a fence that had been in place for a long time. Does that mean it should be left in place?" — and his conclusion is a repair rather than a rejection: the argument "has to be more nuanced than just 'never tear down the fence'". Kling, "The Trouble with Chesterton’s Fence" (25 August 2023).

  • No named German-language critique was found. A German search returned only approving restatements. French, Spanish, Japanese and Chinese were not searched. That is a gap in our search, not in the discourse.

Current Status:

  • The name is not Chesterton’s. The string "Chesterton’s fence" does not occur anywhere in The Thing; the full text at gkc.org.uk carries the parable in "The Drift from Domesticity" and never the label. Chesterton wrote the parable, someone else named it. Who, and when, we could not establish from a citable source, so no coinage is claimed here.

  • The compressed version that circulates is also not his. Farnam Street states it as "Do not remove a fence until you know why it was put up in the first place" — shorter, sharper and not a sentence in the essay. The same page carries the caveat the short form loses: "The point is not that the status quo is always right, that every fence should remain standing." The LessWrong wiki entry is the other main route by which the label spread, and it collects the counter-arguments alongside it.

  • Software adopted it as a rule about legacy code, not about institutions. Oskar Dudycz’s essay on Chesterton’s Fence and software architecture (17 August 2022) is representative of the genre: the fence becomes the line of code whose purpose is lost, and the reform becomes a refactoring. This is a genuine shift of subject — Chesterton was defending the household, not a retry delay — and it is the sense in which the anchor is used today.

  • The drift is worth naming in one direction only. Nothing in the software reading contradicts the original argument; it narrows it. Where Chesterton’s critics attack the essay’s politics, the engineering use inherits none of it, because a payment service has no opponents to exclude.

  • A prior test on 2026-09-30 measured what naming it changes. On a legacy-modernisation scenario that did not imply the principle, no baseline named it unprompted. A weak-tier model without the anchor called removing always-on feature flags a "safe, high-confidence win"; with the anchor it inserted an "Understand the fence" phase and asked whether the flags were finished rollouts or kill switches for a known bad vendor path. A strong-tier baseline was already cautious, and what the anchor added there was method — read the runbook and the alert definitions before the code — plus an explicit rule for when removal is earned. See the prior-test register.

Conventional Commits

Details

Core Concepts:

  • A specification for adding human and machine readable meaning to commit messages

  • Determining a semantic version bump (based on the types of commits landed)

  • Communicating the nature of changes to teammates, the public, and other stakeholders

    Schema

    <type>[!][(optional scope)]: <description> + optional body/footer

    Common Types
  • feat: - introduce new feature to the codebase (→ Semver Minor)

  • fix: - patches a bug in your codebase (→ SemVer Patch)

  • docs: - documentation improvements to the codebase

  • chore: - codebase/repository housekeeping changes

  • style: - formatting changes that do not affect the meaning of the code

  • refactor: - implementation changes that do not affect the meaning of the code

  • ! - BREAKING CHANGE (→ SemVer Major)

  • BREAKING CHANGE: introduces a breaking API change

    Key Proponents

    Benjamin E. Coe, James J. Womack, Steve Mao

When to Use:

  • everything-as-code paradigm targeted

  • team-/community-communication

  • repository quality improvements

Definition of Done

Details
Also known as

DoD, Done Criteria, Acceptance Criteria (team-level)

Core Concepts:

Shared agreement

A formal, team-wide checklist of quality criteria that every increment must satisfy before it is declared "done"

Increment quality gates

Concrete, verifiable conditions — e.g., code reviewed, tests passing, documentation updated, no known defects

Transparency

Makes the meaning of "done" visible and unambiguous to all stakeholders, preventing hidden technical debt

Sprint-level vs. product-level DoD

Teams may maintain separate DoD lists for Sprint increments and for releasable product increments

Continuous refinement

The DoD evolves as the team matures; stricter gates are added over time

Undone work

Work that does not meet the DoD is not counted as complete; it returns to the Product Backlog

Shared responsibility

The entire Scrum team (Developers, Product Owner, Scrum Master) owns and respects the DoD

Key Proponents

Ken Schwaber & Jeff Sutherland ("The Scrum Guide", 2020); Mike Cohn ("Succeeding with Agile", 2009)

When to Use:

  • Establishing a consistent quality standard across a Scrum or agile team

  • Onboarding new team members so they understand what "finished" means

  • Reducing rework and late-cycle defects by agreeing on criteria upfront

  • Aligning developers, QA, and product owners on release readiness

Effective Go

Details

Core Concepts:

Formatting (gofmt)

Code is auto-formatted; style debates are eliminated by tooling

Package names

Short, lowercase, no underscores; package name is part of the qualified identifier

Named return values

Return values can be named and used as documentation

Defer

Deferred function calls run in LIFO order when the surrounding function returns; used for cleanup (close, unlock)

Goroutines

Lightweight concurrently executing functions; "Don’t communicate by sharing memory; share memory by communicating"

Channels

Typed conduits for goroutine communication; first-class synchronization primitive

Interfaces

Implicit satisfaction — a type implements an interface simply by implementing its methods; enables duck typing

Error handling

Errors are values; idiomatic pattern is if err != nil at each call site; no exceptions

Blank identifier (_)

Discard unwanted values from multi-value returns without compiler error

Embedding

Composition over inheritance; types can embed other types to gain their methods

Key Proponent

The Go Authors (https://go.dev/doc/effective_go)

When to Use:

  • Onboarding new Go developers to idiomatic Go style

  • Code review discussions about Go conventions

  • Establishing team-wide Go coding standards

  • Explaining Go idioms that differ from other languages (e.g. error handling, interfaces)

  • Prompting an LLM to produce idiomatic, production-quality Go code

Current Status:

  • Dated by its own admission — the document opens with: "This document was written for Go’s release in 2009 and is not actively updated. While it remains a good guide for using the core language, it does not cover significant changes to the language (generics), ecosystem (modules), or libraries added since." The Go team has deliberately frozen it (golang/go #28782, still open)

  • It predates the entire modern toolchain era — modules (2018/19) and generics (Go 1.18, 2022) — so its guidance is silent on these topics rather than wrong about the core language

  • Modern complements: the curated Go Code Review Comments (self-described "supplement to Effective Go") and Google’s maintained Go Style series (Guide, Decisions, Best Practices)

Effective Java

Details

Core Concepts:

Items format

A catalog of ~90 short, self-contained "Items", each a concrete best-practice rule with rationale and trade-offs

Object creation

Static factory methods over constructors; the Builder pattern for many parameters; enforce singletons and non-instantiability deliberately

The general object contracts

Obey the equals/hashCode/compareTo/clone contracts; always override hashCode when overriding equals; consistently override toString

Classes and interfaces

Minimize accessibility and mutability (favour immutable classes); favour composition over inheritance; prefer interfaces to abstract classes; design and document for inheritance or prohibit it

Generics

Eliminate unchecked warnings; prefer lists to arrays and generic types/methods; use bounded wildcards by the PECS rule (Producer-Extends, Consumer-Super)

Enums and annotations

Use enums instead of int constants; use the EnumMap/EnumSet; prefer annotations to naming patterns; consistently use @Override

Lambdas and streams

Prefer lambdas to anonymous classes and method references to lambdas; use streams judiciously and favour side-effect-free functions (Java 8 features, added in the 3rd edition)

Methods and exceptions

Check parameters for validity; design method signatures carefully; use exceptions only for exceptional conditions; favour standard exceptions; document all thrown exceptions

Resource and concurrency hygiene

Prefer try-with-resources to try-finally; prefer executors and tasks to threads; favour concurrency utilities over wait/notify; document thread safety

Key Proponent

Joshua Bloch ("Effective Java", Addison-Wesley) — former Sun/Google engineer who led the design of the Java Collections Framework and other core APIs

When to Use:

  • Onboarding Java developers to idiomatic, robust API and class design

  • Code review discussions grounded in a shared, citable rule set ("Item 17: minimize mutability")

  • Establishing team-wide Java coding standards and design conventions

  • Explaining Java-specific contracts (equals/hashCode, generics, PECS) and their pitfalls

  • Prompting an LLM to produce idiomatic, robust Java code

Current Status:

  • The 3rd edition (Addison-Wesley, published December 2017, commonly cited as 2018) is the current edition. It added items for Java 7-9 features — lambdas, streams, the java.time package, and try-with-resources

  • Because it predates Java’s six-month release cadence, some Item advice now has newer language alternatives: records (Java 16) replace much hand-written immutable-class and Builder boilerplate; sealed classes (Java 17) and pattern matching for switch (Java 21) supersede some inheritance and instanceof guidance; virtual threads (Java 21) change the "prefer executors to threads" calculus

  • The book’s design principles (favour immutability, composition over inheritance, the object contracts, PECS) remain valid; only the mechanics for some Items have shifted. A training-data prior keyed on "Effective Java" most plausibly reflects the 3rd edition and is therefore silent on records, sealed classes, and virtual threads

Effective Python

Details

Core Concepts:

Items format

A catalog of ~125 short, self-contained "Items", each a concrete best-practice rule with rationale and trade-offs (grouped into chapters)

Pythonic thinking

Follow PEP 8 style and the Zen of Python; prefer f-strings over % and str.format; know the difference between bytes and str; prefer helper functions to complex expressions

Lists and dictionaries

Prefer comprehensions to map/filter; use enumerate instead of range; use zip to iterate in parallel; use catch-all unpacking over indexing; avoid else blocks after for/while

Functions

Prefer raising exceptions to returning None; enforce clarity with keyword-only and positional-only arguments; return generators instead of building lists; never modify default argument values (use None and docstrings)

Comprehensions and generators

Use generator expressions for large comprehensions; compose generators with yield from; reach for itertools before hand-rolling iteration

Classes and interfaces

Compose classes rather than nesting dicts/tuples deeply; use @classmethod polymorphism; prefer public attributes and @property over getters/setters; use functions instead of classes for simple interfaces

Metaclasses and attributes

Use @property and descriptors for reusable attribute behaviour; prefer getattr/getattribute sparingly; validate subclasses with init_subclass

Concurrency and parallelism

Use threads for blocking I/O, not parallelism (the GIL); use Queue to coordinate pipelines; use coroutines and asyncio for many concurrent functions; use concurrent.futures and processes for true parallelism

Robustness, testing, and collaboration

Make programs robust and performant (new chapters in the 3rd edition); test with unittest/Mock; document with docstrings; isolate dependencies with virtual environments (venv)

Key Proponent

Brett Slatkin ("Effective Python", Addison-Wesley) — principal software engineer at Google and creator of the book’s runnable example suite

When to Use:

  • Onboarding Python developers to idiomatic, robust ("Pythonic") code

  • Code review discussions grounded in a shared, citable rule set ("Item 30: consider generators instead of returning lists")

  • Establishing team-wide Python coding standards and conventions

  • Explaining Python-specific idioms and pitfalls (comprehensions, generators, the GIL, @property, keyword-only arguments)

  • Prompting an LLM to produce idiomatic, production-quality Python code

Current Status:

  • The 3rd edition (Pearson Addison-Wesley, published 20 November 2024, ISBN 978-0-13-817218-3) is the current edition. It expands from the 2nd edition’s 90 Items to 125 Items — 35 new Items plus two new chapters on robustness and performance

  • The 1st edition (2015) targeted Python 2 as well as 3; the 2nd edition (2019) was Python-3-only through ~3.8; the 3rd edition covers modern Python 3, including features such as the walrus operator, structural pattern matching, and updated typing and asyncio guidance

  • The book’s core advice (prefer comprehensions and generators, respect the GIL, compose classes, use @property) remains stable across editions; only specific Items track the language. A training-data prior keyed on "Effective Python" most plausibly reflects the 2nd edition (90 Items) and is therefore silent on the 35 Items added in the 3rd edition

GitHub Flow

Details

Core Concepts:

  • A lightweight, branch-based workflow where main is always deployable

  • Feature branches are short-lived, created from main for every change

  • Pull Requests are the central collaboration mechanism — used for code review, discussion, and CI validation before merging

  • Merging to main triggers immediate deployment (continuous delivery)

  • Branch naming reflects the work: issue number or short descriptive slug

    Workflow steps
    1. Create a branch from main (named after the issue or feature)

    2. Commit changes with descriptive messages

    3. Open a Pull Request early for visibility and feedback

    4. Discuss, review, and iterate until the PR is approved

    5. Merge to main — main is always in a deployable state

    6. Deploy immediately after merge

    Key Proponent

    Scott Chacon ("GitHub Flow", 2011)

When to Use:

  • Teams practicing continuous delivery or continuous deployment

  • Projects where main must always be production-ready

  • Issue-driven or ticket-driven development workflows

  • Agentic coding workflows where context brevity matters

Current Status:

  • The prior most plausibly reproduces Scott Chacon’s original 2011 formulation, where continuous deployment is the point — "anything in the master branch is deployable", and merged work is deployed immediately, often several times a day

  • GitHub’s current official description has narrowed to a generic branch → PR → review → merge workflow with no deployment step at all — say which of the two you mean

Kaizen

Details
Full Name

Kaizen (改善) — kai, "change", plus zen, "for the better"; conventionally rendered "continuous improvement"

Also known as

continual improvement, gemba kaizen, daily kaizen; popularised in the West by Masaaki Imai (1930–2023), founder of the Kaizen Institute (1985)

Core Concepts:

Small, Continuous, By Everyone

The unit is the small change made by the person doing the work, repeated without end. Imai’s most-quoted formulation, as reported by Mark Graban: "Kaizen is everyone, everywhere, every day." The improvement is not delegated to a specialist function.

Kaikaku Is the Deliberate Contrast

Kaikaku (改革) is radical, discontinuous change — Jim Womack glosses it as "the Japanese word for revolution, in contrast with kaizen, which is incremental improvement". The pair is what keeps kaizen precise: without kaikaku as its opposite, "continuous improvement" drifts into meaning any change at all. Womack’s own position is sequential: "lean transformation will always need to begin with evolution: kaizen and model lines…These create the basic stability", and only afterwards "we really do need to go fast".

Standardise the Gain, Then Improve From the New Standard

The second thing that keeps the term precise. An improvement that is not written into the standard is not kaizen; it is a good day. Art Smalley: "Permanent conditions change when the gains get built into standards and held by an operating system that runs daily", with "standardized work as the mechanism connecting daily management to daily improvement — not as a document in a binder". Standard and improvement alternate: the standard is the floor the next improvement starts from, never a freeze.

A Habit, Not a Project

Graban summarises Imai’s position: "Not a project. Not an event. A daily practice, distributed across the entire organization, expected of everyone — not delegated to a kaizen office or a specialist team."

It Needs Something to Look At

Kaizen without muda-mura-muri has no diagnosis and without genchi-genbutsu no evidence. It is the habit; those supply what the habit examines.

In Software

The boy-scout-rule is kaizen scoped to a file. Retrospective actions that actually change the working agreement are kaizen; retrospective actions that produce a list are not, because nothing was standardised.

When to Use:

  • Framing improvement as an everyday obligation of the whole team rather than a quarterly initiative

  • Distinguishing a small, reversible, local change from a redesign — say kaizen or say kaikaku, and the conversation separates

  • Any improvement effort where the gain will evaporate unless the new way becomes the documented default

  • As the daily counterpart to a project-shaped method such as dmaic, and as the cultural ground under toyota-kata

Common Misunderstandings:

  • ❌ "Kaizen means a week-long improvement workshop" — that is a kaizen event, a Western packaging, and the thing the criticism below targets

  • ❌ "Kaizen is any improvement" — kaikaku exists precisely so that the word keeps meaning incremental

  • ❌ "Kaizen is the opposite of standardisation" — it depends on it; without a standard there is nothing to improve from and no way to hold a gain

  • ❌ "Kaizen is a Toyota tool" — it is a management philosophy that Imai generalised well beyond manufacturing

  • ✓ "It is a habit that produces small, standardised changes made by the people doing the work" — accurate

Criticism:

  • The event replaced the habit. Art Smalley’s critique is aimed squarely at the packaged form: "Kaizen events most commonly fail because organizations never make the transition from running improvement events to building an operating and management system that sustains results daily." And on the arithmetic of the format itself: "A one-week event cannot change permanent conditions on its own. At most it is a vehicle for local change and learning." His conclusion is the line the criticism turns on: "The event is not the system. The daily discipline is the system." Smalley, "Why Does Kaizen Fail?", Art of Lean.

  • "Kamikaze kaizen". Smalley reports that Jim Womack coined the term for such efforts — "intense bursts of activity with no lasting effect other than a fiery death". We verified this quotation only in Smalley’s article, not in an original Womack publication; treat it as attributed via Smalley.

  • Imai himself was frustrated by how the West took it up. In his foreword to Healthcare Kaizen, quoted by Graban: "I am profoundly frustrated with the slow pace at which Kaizen strategy has been embraced by the business community", and "Embracing Kaizen is a long-term journey. It is not a flavor of the month and requires the cultural change, commitment and self-discipline that needs to be sustained over many decades." Graban, "In Memoriam: Masaaki Imai" (16 June 2023).

  • Continuous improvement without respect for people is the standard failure. Bob Emiliani: Fake Lean is "the technical application of 'Continuous Improvement' tools and methods, invariably in a zero-sum fashion"; Real Lean requires both continuous improvement and respect for people. Emiliani, "The Backstory: Real vs. Fake Lean" (13 September 2013).

Current Status:

  • The founding text is Kaizen (Ky’zen), the Key to Japan’s Competitive Success — Masaaki Imai, Random House Business Division, New York, 1986, 259 pages. The widely cited later edition is published by McGraw-Hill; the title is often given without the "(Ky’zen)" of the original.

  • The more influential book is the second one. Gemba Kaizen: A Commonsense, Low-Cost Approach to Management (McGraw-Hill, 1997) moved the emphasis to the actual place of work and won the Shingo Research Prize in 1999. Imai’s last book was Strategic KAIZEN (McGraw-Hill, 2021). He died on 12 June 2023, aged 92.

  • The trademarked form is a live complication. The Kaizen Institute, which Imai founded in 1985, writes the term as KAIZEN™ in its own material. The word is simultaneously generic Japanese vocabulary, a management philosophy and a consultancy’s brand — worth knowing when a source’s capitalisation looks odd.

  • "Kaizen event" remains the dominant Western usage despite the criticism above, and it is the sense a model is likeliest to reach for. Naming daily kaizen, or naming kaikaku as the contrast, is what steers it back.

Keep a Changelog

Details
Full Name

Keep a Changelog, the changelog convention published at keepachangelog.com

Also known as

the CHANGELOG.md convention, keepachangelog format, the Added/Changed/Fixed format

Core Concepts:

The Reader Is a Person

The first guiding principle is the whole argument: "Changelogs are for humans, not machines." Everything else in the convention follows from choosing an audience.

Six Change Types, No More

Quoted exactly as the standard prints them — Added for new features; Changed for changes in existing functionality; Deprecated for soon-to-be removed features; Removed for now removed features; Fixed for any bug fixes; Security in case of vulnerabilities. "Breaking Changes" is not one of them; a breaking change appears under Changed or Removed, and the break is signalled by the version number.

The Remaining Guiding Principles

"There should be an entry for every single version." "The same types of changes should be grouped." "Versions and sections should be linkable." "The latest version comes first." "The release date of each version is displayed." Adherence to Semantic Versioning should be mentioned.

[Unreleased] Sits at the Top

Version 2.0.0 states the mechanics: "Keep an Unreleased section at the top to collect upcoming changes. It shows readers what to expect, and at release time you move its contents into a new version." It is the one section that makes the convention sustainable, because entries get written while the change is fresh.

ISO Dates, Largest Unit First

"Use the YYYY-MM-DD format. It orders from the largest unit to the smallest, avoids the confusion of regional date formats, and is an ISO standard." So: ## [1.2.0] - 2026-10-03.

The Convention Rejects Generated Changelogs, Explicitly

Version 1.1.0 puts it bluntly: "Using commit log diffs as changelogs is a bad idea: they’re full of noise." Version 2.0.0 restates the position as a division of labour — "machines can draft, but humans curate" — and keeps CI "in a supporting role" for "mechanical tasks: move the Unreleased section into a dated version at release time, check that the file is formatted correctly".

When to Use:

  • Writing or restructuring a CHANGELOG.md for a library or product with external users

  • Pairing with semantic-versioning, which the convention asks you to mention and which supplies the version numbers the sections are keyed on

  • Settling the argument about what belongs in a release entry: notable user-visible change, yes; internal refactor and typo fix, no

  • Reviewing a release process in which the changelog is a git log dump, and the question is whether anyone reads it

  • Asking an LLM for release notes, where naming the convention is what produces the correct six categories rather than a plausible-looking set

Common Misunderstandings:

  • ❌ "`Breaking Changes` is one of the standard sections" — it is not; the six types are fixed, and this is the single most common error

  • ❌ "Keep a Changelog is a tool" — it is a convention for a plain text file; the tools are other projects

  • ❌ "The changelog is generated from the commit log" — the convention says the opposite in both published versions

  • ❌ "Every commit needs an entry" — only notable changes do; the curation is the work

  • ✓ "Machines can draft, humans curate" — the standard’s own formulation of where automation stops

Criticism:

  • The opposing position is held openly by the Conventional Commits specification, in its own words. Its stated benefits list opens with "Automatically generating CHANGELOGs." and "Automatically determining a semantic version bump (based on the types of commits landed)." That is the claim Keep a Changelog denies: that a structured commit history converts into a changelog without a person in the loop. Conventional Commits 1.0.0. The tool ecosystem built on it — semantic-release, release-please, Changesets, git-cliff — is named on the Keep a Changelog 2.0.0 page itself: "A convention such as Conventional Commits, with tools such as semantic-release, release-please, Changesets, and git-cliff, reads structured commits to choose the next version and draft a changelog."

  • Keep a Changelog’s answer, and the sentence the argument turns on. "A commit and a changelog entry are written for different people, and one does not convert cleanly into the other." Keep a Changelog 2.0.0. Whether that holds is an empirical question about your audience, not a settled one — for an internal library whose only readers are the contributors, the two audiences coincide and the objection loses its force.

  • Two named critics argue the file does not belong in the repository at all. Josh Triplett, in the Hacker News thread on Keep a Changelog, makes the version-control objection: "Projects that still insist on maintaining a changelog file in git end up constantly fighting git’s conflict resolution, and they make rebase almost completely unusable. For an actual log of individual changes, that’s what 'git log' is for." Triplett (16 February 2015). Jan Krutisch, co-founder of Depfu, grants the generated side more than the convention does — "If you are willing to use (and enforce) a specific format for your commit messages, the results can be pretty decent" — and names the cost of the manual route: "the further away you move the changelog writing from the actual code changes, the higher are the chances to either forget things or to actually get details wrong". Krutisch, "Changelogs: To write or to generate?" (2 October 2018). He is not a clean opponent: he closes with "If in doubt, use the simple, handwritten approach."

  • What was not found. No named critic of the format itself — the six change types, the [Unreleased] section, the ordering. Searched in English and German. The disagreement on record is about who writes the file and where it lives, not about how it is laid out.

Current Status:

  • Two published versions, and the site’s front page does not point at the newer one. Version 2.0.0 was published on 7 June 2026, but keepachangelog.com still links "Continue to Keep a Changelog" to /en/1.1.0/. Quote the format safely; quote a version number carefully. 1.1.0 — 2.0.0. Created and maintained by Olivier Lacan, designed by Tyler Fortune.

  • The format itself did not drift. The six change types, the [Unreleased] section, YYYY-MM-DD dates and latest-version-first are identical in 1.1.0 and 2.0.0. What 2.0.0 adds is the explicit stance on automation.

  • The anchor buys correctness, not recall. Two of four no-anchor baselines on claude-haiku-4-5 named the convention unprompted — and then listed the wrong sections; one produced "Breaking Changes, New Features, Fixed, Deprecated", which is not the standard’s set. Naming the term produced all six canonical types plus [Unreleased]. This is a dense prior whose details are commonly misremembered, which is exactly where naming pays.

Programming as Theory Building (Naur)

Details
Also known as

Mental Model according to Naur

Core Concepts:

Theory building

Programming is creating a mental model, not just writing code. The real program exists in developers' minds, not in the code.

Document the Why

Code shows what the system does. The theory captures why it is built this way — the reasoning, trade-offs, and domain understanding behind the design.

Theory decay

When original developers leave, the theory is lost. Written code alone cannot reconstruct it. This explains why maintenance by new teams is so difficult.

Complement to ADRs

ADRs document individual architectural decisions. Theory Building goes deeper: document the overarching understanding of why the system is shaped the way it is.

Communication is key

Theory must be shared through collaboration, conversation, and documentation that captures intent, not just structure.

Key Proponent

Peter Naur (Turing Award winner, 2005)

Original Work

"Programming as Theory Building" (1985)

When to Use:

  • Tell an LLM: "Document the theory behind this code according to Naur — not what it does, but why it is built this way"

  • Capturing design rationale beyond individual ADRs

  • Onboarding documentation that explains the mental model behind a system

  • Justifying time for knowledge transfer, pair programming, and code walkthroughs

  • Explaining technical debt accumulation when teams change

  • ADR according to Nygard — complementary: ADRs for individual decisions, Theory Building for overarching understanding

  • Docs-as-Code — the practice of maintaining this documentation alongside code

Mikado Method

Details
Also known as

Mikado Graph Method

Core Concepts:

Mikado Goal

The clear desired future state of the code after refactoring; the root of the dependency graph and success criterion of the change

Prerequisite discovery

Reveal blocking dependencies by attempting the change and noting what breaks

Use experiments

Prefer quick or time-boxed empirical attempts over long upfront analysis

Always revert

IMPORTANT: After discovering a prerequisite, always revert to the last known working state before addressing it

Mikado Graph

A directed acyclic graph where goals and prerequisites are nodes and arrows show dependencies

Leaf-first resolution

Resolve the leaf nodes (no further prerequisites) first, working back to the root goal

Small reversible steps

Revert failed experiments immediately; keep or commit only coherent healthy changes

Meaningful commits

Commit only when the code compiles, tests run, the product is in a good state, and the change makes sense on its own

Key Proponents

Ola Ellnestam, Daniel Brolund ("The Mikado Method", 2012)

When to Use:

  • Tackling large refactorings in legacy or complex codebases

  • When a direct change breaks too many things to fix at once

  • Coordinating multi-developer refactoring efforts safely

  • Making incremental improvements without blocking the team

  • Brownfield development with hidden dependencies

Mikado Method Recipe (Canonical Form)

  1. Start here: Draw the Mikado Goal.

  2. Implement the goal or prerequisite naively.

  3. Are there any errors?

    • Examples: compiler errors, failing tests, runtime errors, broken builds.

    • If Yes, go to step 4.

    • If No, go to step 9.

  4. Come up with immediate solutions to the errors.

  5. Draw the solutions as new prerequisites in the Mikado Graph.

  6. Revert all changes and return to the last known good state.

  7. Select the next prerequisite to work with.

  8. Go to step 2.

  9. Does the change make sense?

    • Examples: understandable, internally consistent, safe to keep, useful on its own.

    • If Yes, go to step 10.

    • If No, go to step 7.

  10. Commit the change.

  11. Is the Mikado Goal met?

    • If Yes, go to step 12.

    • If No, go to step 7.

  12. DONE!

PDCA

Details
Full Name

Plan-Do-Check-Act

Also known as

the Deming cycle, the Deming wheel, the Shewhart cycle; PDSA (Plan-Do-Study-Act) in Deming’s own wording

Core Concepts:

Four Steps, Repeated Forever

The loop is deliberately small and deliberately endless:

  • Plan — state the problem, form a hypothesis about cause and remedy, and decide how the result will be judged

  • Do — carry out the change, preferably on a small scale

  • Check — compare the observed result with what was expected

  • Act — standardise the change if it worked, or return to Plan if it did not

The Scientific Method, Shrunk to Fit a Shop Floor

PDCA is an experiment loop: hypothesis, trial, evaluation, decision. Its ancestor is Shewhart’s 1939 sequence of specification, production and inspection, which he bent from a straight line into a circle precisely because "these three steps must go in a circle instead of in a straight line".

Small Scale First

The Do step is meant to be a test, not a rollout. Running the change on a small scale is what keeps a failed hypothesis cheap — and what makes the Check step interpretable at all.

Act Means Standardise or Loop

The step most often skipped. A successful change that is not written into the standard decays; a failed change that is not fed back into Plan teaches nothing. Act is where the loop either compounds knowledge or leaks it.

The Engine Under Kaizen

PDCA, the seven basic quality tools and the QC-story format became the foundation of kaizen in Japan. When a text says "continuous improvement" without naming a method, PDCA is usually what it means.

Ancestor of the Phase-Gated Cycles

dmaic is PDCA with gates, measurement discipline and statistics bolted on; dmadv is the same lineage applied to design. Both descend from this four-step loop.

Deming Preferred "Study"

Deming warned that "check" is misleading, because the English word means "to hold back". His own late formulation is PDSA — Plan-Do-Study-Act — where Study asks what was learned, not merely whether the target was hit. See Current Status: the naming split is not cosmetic.

When to Use:

  • Any improvement where the remedy is a hypothesis rather than a known fix

  • Small, reversible changes that can be tested before they are committed — the loop’s economics depend on the test being cheap

  • As the frame for retrospectives, incident follow-ups and process experiments that would otherwise end at "we should do better"

  • Where an organisation needs a shared vocabulary for "we tried it, here is what we learned" — PDCA gives the four slots

  • As the structural skeleton of a management system: ISO 9001:2015 and its siblings are organised around exactly these four steps

Common Misunderstandings:

  • ❌ "Deming invented PDCA" — he did not. Japanese executives recast his 1950 Deming wheel into PDCA in 1951; Deming later wrote, "How the PDCA ever came into existence I know not."

  • ❌ "PDCA and PDSA are two names for one thing" — Deming himself denied it: asked how the QC circle and the Deming circle relate, he answered, "They bear no relation to each other."

  • ❌ "Check means verify the deliverable" — Check compares result with prediction. Without a prediction recorded in Plan, there is nothing to check against.

  • ❌ "One pass through the cycle is a PDCA" — the method is the repetition. A single loop is an experiment, not an improvement system.

  • ✓ "PDCA is the scientific method wearing work clothes" — fair, and the reason its critics measure it against scientific standards.

Criticism:

  • Almost nobody runs it as specified. Michael J. Taylor and colleagues reviewed 73 peer-reviewed healthcare articles that claimed to apply PDSA and found that only two met all five core principles of the method. "Less than 20% (14/73) fully documented the application of a sequence of iterative cycles", and "only 15% (7/47) reported the use of quantitative data at monthly or more frequent data intervals to inform progression of cycles." Their conclusion is blunt: "the varied practice compromises its effectiveness as a method for improvement." Taylor, McNicholas, Nicolay, Darzi, Bell & Reed, "Systematic review of the application of the plan–do–study–act method to improve quality in healthcare", BMJ Quality & Safety 23(4), 2014, pp. 290–298. The finding cuts both ways: it is a criticism of practice, and it makes claims of PDCA’s effectiveness hard to evaluate, since what was measured was rarely the method.

  • Deming rejected the version everyone uses. Ronald D. Moen and Clifford L. Norman document the objection from the source. In a letter of 17 November 1990, Deming wrote: "Be sure to call it PDSA, not the corruption PDCA." He "warned his audiences that the PDCA version is frequently inaccurate because the English word 'check' means 'to hold back'". Moen & Norman, "Circling Back", Quality Progress, November 2010, ASQ. Calling PDCA "the Deming cycle" attributes to Deming a cycle he publicly disowned.

  • The two cycles are aimed at different levels. At a US Government Accounting Office roundtable, Deming was asked how the QC circle and the Deming circle relate: "They bear no relation to each other. The Deming circle is a quality control program. It is a plan for management. … Maybe you could say that the Deming circle is for management, and the QC circle is for a group of people that work on faults encountered at the local level" (same source). Teams that adopt PDCA for strategy are using a local fault-fixing loop for a job it was not shaped for.

  • Check without prediction degrades into review. The gap Moen, Nolan and Provost closed in 1991 by requiring prediction and theory in the Plan step is exactly the gap the Taylor review measured twenty years later: cycles run without recorded predictions and without data over time cannot produce the deductive-inductive interplay that makes the loop scientific.

Current Status:

  • The naming split is documented, and the popular name is the "corrupted" one. Moen and Norman lay out the lineage: Shewhart’s cycle (1939) → Deming wheel (1950, JUSE seminar: design, production, sales, research) → Japanese QC’s PDCA (1951, per Masaaki Imai, with no individual ever claiming authorship) → Ishikawa’s expanded PDCA for TQC (1985) → Deming’s Shewhart cycle (1986) → Deming’s PDSA, "the Shewhart Cycle for Learning and Improvement" (1993). PDCA won the popularity contest; PDSA carries Deming’s intent.

  • The split is now regional and professional, not resolved. Healthcare quality improvement writes PDSA, following Deming and the Model for Improvement that Langley, Nolan and colleagues built on the PDSA cycle in 1994. Manufacturing, Lean and the ISO management-system world write PDCA. Both priors are strong; a prompt that needs the learning emphasis should say PDSA and say why.

  • PDCA is embedded in the ISO management-system standards. ISO 9001:2015 names the Plan-Do-Check-Act cycle explicitly in its introduction and organises its requirement clauses along it — planning (6) as Plan, support and operation (7, 8) as Do, performance evaluation (9) as Check, improvement (10) as Act. Overview of the ISO 9001:2015 PDCA structure. That embedding is why the four-letter form will not go away, whatever Deming wrote.

Refactoring Catalog according to Fowler

Details
Full Name

The catalog of named refactorings in Martin Fowler’s Refactoring: Improving the Design of Existing Code (1999, with Kent Beck, John Brant, William Opdyke and Don Roberts; 2nd edition 2018), maintained online as the online catalog of refactorings: "This is the online catalog of refactorings, to support my book Refactoring 2nd Edition."

Also known as

Fowler’s refactorings, the refactoring catalog, named refactorings — or a single entry by name, such as Extract Function, Move Field, Replace Conditional with Polymorphism

Core Concepts:

Use the Qualified Name, Never the Bare Verb

"Refactor" is an everyday word for any code change, including changes that alter behaviour, so the bare verb carries almost nothing. The form that works is the qualified one — "Fowler’s refactoring catalog" — or a named entry, Extract Function. Fowler himself polices the distinction: "If somebody talks about a system being broken for a couple of days while they are refactoring, you can be pretty sure they are not refactoring."

Behaviour Preservation Is the Definition, Not a Side Condition

A refactoring changes internal structure and leaves observable behaviour unchanged. A change that also fixes a bug or adds a feature is not a refactoring; it is two changes wearing one name. The restriction is what makes the steps safe to apply without re-reading the whole system.

An Entry Is a Name Plus Mechanics

Each catalog entry has a name, a sketch of the before and after, a motivation, and numbered mechanics — the step order that keeps the code working between steps. The mechanics are the part that distinguishes the catalog from a list of good intentions: they tell you where to run the tests.

The Smell Says Why, the Catalog Says How

code-smells names the symptom — Long Function, Feature Envy, Primitive Obsession. The catalog names the treatment and its step order. Pairing them is the intended use: a smell without a named transformation produces a rewrite, and a transformation without a smell produces churn.

Two Hats

Fowler’s rule for staying honest: you are either adding function or refactoring, and you may switch hats often, but never wear both at once. This is the discipline that keeps the behaviour-preservation claim true commit by commit.

Named Steps Are a Shared Vocabulary

The catalog does for restructuring what the pattern catalogs did for design. "Extract a parameter object here" is a complete instruction between two people — or between a developer and a model — because the name carries the mechanics with it.

Preparatory Refactoring

Making the change easy before making the change. The refactoring is not cleanup for its own sake; it buys a cheaper next commit, which is also the argument that convinces a manager.

Not Patterns of Enterprise Application Architecture

fowler-patterns covers PEAA — Repository, Unit of Work, Active Record. Same author, different book, different catalog. Naming the wrong one gets you architecture patterns when you wanted code transformations.

When to Use:

  • Restructuring legacy code where you want named, reversible steps instead of one large rewrite

  • Immediately after code-smells has identified a symptom and you need the matching treatment

  • Reviewing a pull request: ask which named refactoring the diff claims to be, and whether behaviour really stayed put

  • Preparatory work before a feature, to separate the structural commit from the behavioural one

  • Driving a model: "refactor using Fowler’s catalog and name each refactoring you apply" yields a step sequence you can review, not a rewrite you have to re-read

  • Alongside mikado-method when the refactoring will not complete in one step, and test-seam when the safety net does not exist yet

Common Misunderstandings:

  • ❌ "Refactoring means cleaning up the code" — it means a behaviour-preserving transformation; cleanup that changes behaviour is a rewrite with a flattering label

  • ❌ "A big restructuring is a big refactoring" — Fowler calls the long broken build the tell: that is restructuring, not refactoring

  • ❌ "The catalog is the smell list" — the smells are the diagnosis chapter; the catalog is the remedy, and most of the book

  • ❌ "Fowler’s catalog is Repository and Unit of Work" — those are fowler-patterns, a different book

  • ❌ "The names are fixed" — the 2nd edition renamed entries (Extract Method became Extract Function), so a name alone can date a conversation

  • ✓ "Name the refactoring, then run the tests at the step the mechanics say" — the mechanics are the reason the catalog is more than vocabulary

Criticism:

  • The first public attack came from outside the community, and only Fowler’s reply survives. Robert X. Cringely used his PBS column to argue that most refactoring is wasted effort managers should stop paying for. Fowler answered on 3 June 2003: "A recent piece by Robert Cringely caused a small stir in the refactoring community recently, as he criticized refactoring." Fowler, "RefactoringCringely" (3 June 2003). The PBS original is gone — the page now serves a rights-retirement notice — so Cringely’s own wording is only reachable through Fowler’s rendering of it, and this entry does not quote him directly.

  • Measured against software metrics, refactoring looks like it makes things worse. Stefan Burger and Oliver Hummel ran established metrics over refactorings of Fowler’s own Video-Store example and over Lucene, and report "dass bekannte Softwaremetriken Code-Verbesserungen durch Refactoring nicht erkennen können, bzw. umgekehrt betrachtet, Refactoring die Codequalität verschlechtert". Burger and Hummel, "Über die Auswirkungen von Refactoring auf Softwaremetriken", GI (2013). The finding cuts against the metrics rather than against the practice — which is the point worth carrying into any conversation where a dashboard is the arbiter of code quality.

  • The word outran the definition, and its own author says so. Fowler’s bliki entry on refactoring malapropism is a complaint about the term’s dilution: "If somebody talks about a system being broken for a couple of days while they are refactoring, you can be pretty sure they are not refactoring." He adds the second half of the problem: "If someone talks about refactoring a document, then that’s not refactoring." Fowler, "Refactoring Malapropism" (3 January 2004). Read as criticism of the anchor rather than of the book: the bare verb has drifted so far that the qualified form is now mandatory.

  • Measured in industry, the practice does not match the definition, and practitioners price in the risk. Miryung Kim, Thomas Zimmermann and Nachiappan Nagappan surveyed and interviewed Microsoft engineers and analysed Windows 7 version history: "Our survey finds that the refactoring definition in practice is not confined to a rigorous definition of semantics-preserving code transformations and that developers perceive that refactoring involves substantial cost and risks." Their quantitative result refuses a one-line verdict: "the top 5% of preferentially refactored modules experience higher reduction in the number of inter-module dependencies and several complexity measures but increase size more than the bottom 95%. This indicates that measuring the impact of refactoring requires multidimensional assessment." Kim, Zimmermann, Nagappan, "An Empirical Study of Refactoring Challenges and Benefits at Microsoft", IEEE Transactions on Software Engineering 40(7), July 2014.

  • The test suite is a check, not a proof. Ralf Reißing, in the Gesellschaft für Informatik’s Informatiklexikon, names the central danger plainly: "Eine große Gefahr beim Refactoring ist es, durch die Änderungen an der Struktur neue Fehler in die Software hineinzubringen." On the usual answer — run the tests before and after — he is blunt: "Dieses Vorgehen ist aber nur eine Kontrolle, die keinerlei Sicherheit bietet, daß wirklich nichts verändert wurde." Only Opdyke-style refactorings with checked preconditions are "semantikerhaltende Refactorings, die beweisbar das Programmverhalten nicht verändern, sofern ihre Vorbedingungen erfüllt sind", and that is a formal argument, not a green bar. He also names the non-technical obstacle: the project manager has to be convinced "daß es sinnvoll und notwendig ist". Reißing, "Refactoring", GI-Informatiklexikon.

Current Status:

  • The catalog is maintained and the names moved. The online catalog supports the 2nd edition (2018) and lists entries such as Extract Function, Change Function Declaration, Move Field, Replace Conditional with Polymorphism and Split Phase. The first-edition names — Extract Method, Rename Method, Add Parameter — still live in IDE menus and in older team vocabulary, so both naming generations circulate at once. refactoring.com/catalog.

  • Naming the catalog turns advice into named transformations. Measured on claude-haiku-4-5 in a clean room on 2026-10-03: on a task that described a hard-to-change 400-line pricing module without naming any method, the no-anchor baseline answered "extract the calculation as a pure function, move rules to data". Naming Fowler’s catalog produced named entries instead — Extract Method, Separate Query from Modifier, Introduce Parameter Object, Replace Conditional with Polymorphism. The named transformation is what the anchor buys.

Regulated Environment

Details
Also known as

Compliance Environment, Validated Environment, Regulated Industry Development

Core Concepts:

Traceability

Every requirement, design decision, implementation, and test must be linked end-to-end; changes traceable from origin to deployment

Validation & Verification (V&V)

Formal proof that a system does what it is intended to do (validation) and is built correctly (verification)

Audit Trail

Immutable, timestamped record of who changed what, when, and why; essential for regulatory inspections

Change Control

Formal process for evaluating, approving, implementing, and documenting any change to a validated system

Documentation requirements

Specifications (URS, FS, DS), SOPs, test protocols, validation reports, and risk assessments are mandatory deliverables

Risk-based approach

Effort and rigor proportional to the risk posed by the system (e.g., GAMP 5 categories, FMEA)

Separation of environments

Strict segregation of development, testing/qualification, and production environments

Reproducibility

Builds, deployments, and test results must be reproducible; version-pinned dependencies and infrastructure-as-code

Electronic signatures & records

Legally binding digital sign-off on documents and data (e.g., FDA 21 CFR Part 11)

Supplier qualification

Third-party components and vendors must be qualified and audited

Applicable Standards & Frameworks:

  • FDA 21 CFR Part 11 – Electronic records and signatures (US pharmaceutical/medical)

  • EU GMP Annex 11 – Computerised systems in pharmaceutical manufacturing

  • GAMP 5 – Good Automated Manufacturing Practice (risk-based validation guidance)

  • ISO 9001 – Quality management systems

  • IEC 62304 – Medical device software lifecycle

  • ISO 26262 – Functional safety for automotive systems

  • SOX (Sarbanes-Oxley) – Financial reporting systems (IT general controls)

  • ISO/IEC 27001 – Information security management

When to Use:

  • Developing software for pharmaceutical, biotech, or medical device industries

  • Building systems subject to FDA, EMA, or other regulatory body oversight

  • Any project where an audit by an external authority is anticipated

  • Financial systems subject to SOX, PCI-DSS, or similar controls

  • Safety-critical systems in automotive, aerospace, or industrial automation

  • Setting up CI/CD pipelines that must satisfy validation requirements

Semantic Versioning (SemVer)

Details
Full Name

Semantic Versioning Specification

Core Concepts:

Version format
MAJOR

Incompatible API changes (breaking changes)

MINOR

Backward-compatible functionality additions

PATCH

Backward-compatible bug fixes

Pre-release versions

Append hyphen and identifiers (e.g., 1.0.0-alpha.1)

Build metadata

Append plus sign and identifiers (e.g., 1.0.0+20241111)

Version precedence

Clear rules for version comparison

Initial development

0.y.z for initial development (API unstable)

Public API declaration

Once public API declared, version dependencies matter

Key Proponent

Tom Preston-Werner

When to Use:

  • Libraries and APIs consumed by other software

  • Software with defined public interfaces

  • Projects requiring dependency management

  • Communication of change impact to users/consumers

Site Reliability Engineering

Details
Full Name

Site Reliability Engineering (SRE)

Also known as

"Operations as a software problem", Google SRE

Core Concepts:

Operations as a software problem

Apply software engineering to operations work instead of manual administration.

SLI / SLO / SLA

Service Level Indicators measure behavior; Objectives set internal targets; Agreements are external commitments.

Error budget

100% reliability is the wrong target; the allowed unreliability (1 − SLO) is a budget spent on feature velocity and risk.

Embrace risk

Reliability is balanced against the cost and speed of change, not maximized blindly.

Eliminate toil

Reduce repetitive, manual, automatable operational work; cap operational load (~50%) to protect engineering time.

Blameless postmortems

Learn from incidents by analyzing systems and processes rather than assigning blame.

Monitoring & observability

Measure the four golden signals — latency, traffic, errors, saturation.

Release & capacity engineering

Automate launches, rollouts, and capacity planning to make change safe and repeatable.

Key Proponents

Ben Treynor Sloss (coined the term at Google); Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy ("Site Reliability Engineering", O’Reilly 2016, and "The Site Reliability Workbook")

When to Use:

  • Operating production services where reliability must be measured and managed

  • Defining SLOs and error budgets to balance reliability against feature velocity

  • Establishing on-call, incident response, and blameless postmortem practices

  • Reducing operational toil through automation

  • Distinguishing reliability ownership from generic DevOps culture

Current Status:

  • The prior serves the canon well: the 2016 SRE Book and 2018 Workbook (SLOs, error budgets, toil, postmortems) remain authoritative, and Google publishes all three books — including "Building Secure and Reliable Systems" (2020) — free at sre.google/books

  • What moved since the books is the organisational frame: SRE practice increasingly converges with platform engineering, with reliability capabilities embedded into internal platforms rather than delivered solely by standalone SRE teams — reflected in Google’s own platform-engineering guidance

SOTA (State-of-the-Art)

Details
Full Name

State-of-the-Art

Core Concepts:

Latest approaches

Focus on the most current, cutting-edge methods and techniques

Research-grounded

Reference current research papers, benchmarks, and empirical results

Comparative analysis

Compare new approaches with existing or previous methods

Performance-focused

Emphasize benchmark-leading and best-performing solutions

Up-to-date information

Provide current, grounded information rather than outdated practices

Evidence-based

Support claims with recent studies, benchmarks, and real-world implementations

Contextual awareness

Consider the specific domain and timeframe for "state-of-the-art"

Usage Patterns:

  • "Learn SOTA for [topic]" - triggers research and comprehensive information gathering

  • "What’s SOTA for [topic]?" - requests current best practices and approaches

  • "Give me the SOTA approach for [problem]" - asks for cutting-edge solutions

Example Usage:

  • "Learn SOTA for RAG implementations"

  • "What’s SOTA for code generation in 2024?"

  • "Give me the SOTA approach for semantic search"

  • "What’s the SOTA in transformer architectures?"

    Key Proponent

    Widely used in ML/AI research community

When to Use:

  • Researching current best practices in a technical domain

  • Comparing different approaches to solve a problem

  • Staying updated with rapidly evolving fields (AI/ML, web technologies)

  • Making technology decisions based on current benchmarks

  • Learning about cutting-edge implementations

  • Avoiding outdated or deprecated approaches

Why It Works:

  • Heavily represented in ML/AI papers, benchmarks, and technical discussions

  • Consistent meaning across contexts: "best performing" and "most current"

  • Concise trigger for comprehensive research behavior

  • Activates research-oriented response patterns in LLMs

Current Status:

  • "SOTA" is a timestamp, not a fact: any model’s state-of-the-art knowledge is frozen at its training cutoff — and even the reference infrastructure churns: Papers with Code, long the canonical SOTA tracker, now redirects to Hugging Face and no longer exists as a leaderboard site (verified June 2026)

  • When writing or reading "SOTA", attach an explicit date and source; for current rankings consult a live leaderboard (e.g. lmarena.ai) at the time of reading rather than any list a model produces from memory

Spike Solution

Details
Also known as

Spike, Technical Spike, Research Spike

Core Concepts:

Time-boxed

A spike has an explicit, non-negotiable deadline (hours or days, not weeks). When time runs out, the spike ends — even if the answer is incomplete. An unbounded spike has become speculative development.

Single question

A spike answers one specific technical question: "Can library X handle our throughput?", "Will the auth provider accept these claims?", "Is Approach A or B faster?". Multiple questions mean multiple spikes.

Disposable

The code is throwaway. It lives in a branch (or scratch repo), gets studied, and gets deleted. Reusing spike code in production defeats the purpose — spike quality is deliberately rough.

Output is a decision, not a deliverable

The point of a spike is to reduce uncertainty so a decision can be made. Common outputs: a short writeup, a benchmark number, a "yes/no" answer, an ADR. Never a pull request to main.

Reduces estimation risk

Spikes are commonly used when a story cannot be estimated because of unknown unknowns. After the spike, the team can estimate with confidence.

Low ceremony, high focus

No code review, no test coverage, no polish. The constraint is "learn the answer as fast as possible", which is the opposite of production code.

Explicit in the backlog

"Spike: investigate X" is a legitimate work item. Teams should track spikes as first-class, not hide them inside regular stories.

Key Proponents

Kent Beck ("Extreme Programming Explained", 1999, 2nd ed. 2004); Ron Jeffries popularized the term in early XP writings

When to Use:

  • Estimating a story is impossible because of unknown technical risk

  • Choosing between two approaches requires empirical evidence rather than debate

  • A new library, framework, or API is being evaluated

  • Performance, scalability, or integration assumptions need verification before commitment

  • LLM prompting: "spike the approach" cleanly signals explore, don’t build

  • Tracer Bullet - Also exploratory, but tracer bullets are kept and iterated on, not discarded

  • Walking Skeleton - Production-capable end-to-end scaffolding; the opposite of a spike on the throwaway axis

  • Pugh Matrix - Decision-support technique a spike often feeds into

Thin Vertical Slice

Details
Also known as

Vertical Slicing, End-to-End Slice

Core Concepts:

One feature, all layers

Each increment implements a single small feature end-to-end through every technical layer (UI → logic → persistence → integration) in one piece of work.

Releasable after every slice

The goal of slicing is to keep the system shippable after each increment. "Done" means users can use it, not that one layer is finished.

Cross-cutting, not horizontal

Horizontal slicing ("finish the DB layer, then the API, then the UI") delays delivery and hides integration problems. Vertical slicing inverts that.

Small but complete

A thin slice is small in scope but complete in depth. Removing any layer breaks the feature; shortening any layer is fine.

Avoid integration surprises

Because every slice touches every layer, integration issues surface early and often, not as a terrifying end-of-project merge.

Value per slice

Each slice should produce a user-observable change. "Refactor the user service" is not a vertical slice; "user can change their email" is.

Distinct from Vertical Slice Architecture

VSA is a structural pattern for organizing code; thin vertical slicing is a delivery technique for organizing work. They are complementary but independent — you can slice thinly with or without VSA.

Key Proponents

Alistair Cockburn ("Agile Software Development", 2001); Mike Cohn ("User Stories Applied", 2004)

When to Use:

  • Breaking down user stories or epics into deliverable increments

  • Avoiding big-bang integrations at the end of a sprint or project

  • When the team needs early, frequent user feedback on actual working software

  • Reducing risk on long-running feature work by shipping usable subsets

  • Any agile delivery context where "done" should mean "shipped"

TIMTOWTDI

Details
Full Name

There Is More Than One Way To Do It

Also known as

Tim Toady

Core Concepts:

Multiple valid approaches

Acknowledges that problems can be solved in different, equally valid ways

Developer freedom

Trust developers to choose the right approach for their context

Expressiveness

Languages and tools should support diverse problem-solving styles

Context-dependent decisions

The "best" solution depends on constraints, team, and situation

No single canonical form

Resist dogma — flexibility over prescription

Trade-off awareness

Different approaches have different trade-offs; none is universally superior

Pragmatism over purity

Practical results matter more than theoretical elegance

Collaborative decision-making

When working with others, discuss approach rather than assume

Key Proponent

Larry Wall (Perl programming language)

Contrast:

  • Python’s Zen: "There should be one-- and preferably only one --obvious way to do it" (opposite philosophy)

  • TIMTOWTDI favors flexibility and expressiveness over enforced uniformity

When to Use:

  • Choosing between multiple valid architectural or design approaches

  • Code reviews where different styles achieve the same goal

  • Team discussions about tooling, frameworks, or methodologies

  • LLM-assisted development: ask for alternatives rather than accepting the first suggestion

  • Avoiding premature standardization before understanding trade-offs

  • Resisting "one true way" dogma in technology choices

  • Architecture Decision Records (ADRs): documenting why one approach was chosen over other valid alternatives

  • KonsenT-based decisions: finding solutions with no objections rather than forcing one "right" way

Value Stream Mapping

Details
Full Name

Value Stream Mapping

Also known as

VSM; material and information flow mapping (the original Toyota name); value stream analysis

Core Concepts:

Two Maps, Not One

The method’s backbone is the pair. A current-state map records the value stream as it actually runs today, walked backwards from the customer. A future-state map shows the stream as it should run after improvement. A map without its counterpart is a picture, not a method.

Material Flow and Information Flow on One Sheet

The lower half of the sheet follows the product; the upper half follows the signals that tell each step what to make and when. Drawing both together is what exposes the scheduling decisions that create the queues — the reason Toyota called it material and information flow mapping.

The Timeline Separates Process Time from Waiting Time

A stepped line along the bottom splits total lead time into the minutes work is actually being done and the hours or days it spends waiting. The ratio of the two is flow efficiency, and in most real streams it is shockingly small. This separation is the single most transferable idea in the method.

Door to Door, One Product Family

The scope is a single product family across one facility or one end-to-end service, not the whole company and not one workstation. Too narrow and you optimise a local step; too broad and the map becomes wallpaper.

Waste Is Found, Not Assumed

The map is a diagnostic. Inventory piles, rework loops, and batch-and-queue scheduling become visible as symbols, which is why the book is called Learning to See.

A Plan Is Part of the Deliverable

Rother and Shook end with a value-stream plan — who does what by when — so the future state is scheduled, not merely drawn.

Key Proponents

Mike Rother and John Shook, whose workbook Learning to See: value-stream mapping to create value and eliminate muda (Lean Enterprise Institute, Brookline MA, 1999) introduced the technique to an English-speaking audience. The practice itself comes from Toyota.

When to Use:

  • Diagnosing why an end-to-end delivery takes weeks when the work in it takes hours

  • Making queueing and handover cost visible to people who only ever see their own step

  • Before a larger improvement programme, as the Define/Measure groundwork a dmaic project needs

  • In software delivery, to measure flow efficiency across commit, review, test, and release rather than optimising one stage

  • Any linear, repeatable flow with a recognisable product family

Common Misunderstandings:

  • ❌ "A value stream map is a process flowchart" — a flowchart shows steps; a VSM adds information flow, inventory between steps, and a lead-time timeline

  • ❌ "You map the whole organisation" — one product family, door to door

  • ❌ "The current-state map is the deliverable" — without a future state and a plan, nothing changes

  • ❌ "It works anywhere" — it assumes a reasonably linear flow

  • ✓ "The point is the gap between process time and lead time" — that gap is what the method was built to reveal

Criticism:

  • It ignores variability, and variability is what actually creates the queues. Todd R. Zabelle, writing for the Project Production Institute, argues from operations science that "focusing only on waste (muda) ignores variability (muri), and the fact that variability has to be buffered regardless whether by capacity, inventory or time." He also faults the "value-added fantasy" — the assumption that cutting non-value-added time automatically raises efficiency — for overlooking the VUT equation and Little’s Law, and notes that VSM "does not provide a means for diagnosing the causes of long cycle times" and "frequently does not compute utilization and thus misses situations where a production system is facing demand in excess of capacity." Zabelle, "Operations Science View of Value Stream Mapping" (6 December 2018).

  • Nothing checks whether the future state is reachable. Same source: "while there is a design step in Value Stream Mapping to depict a 'future state,' there aren’t any means to confirm whether the future state is actually achievable." The map asserts a target; it does not test it.

  • It does not fit unstructured work. Christoph Roser rules out job shops, where "the material flow is not standardized and may differ for every part. This makes a value stream map difficult to draw, and hence usually quite incomplete," and indirect and administrative areas, "because they often have no structured flow. Swim lanes are much better here." Roser, "When to Do Value Stream Maps (and When Not!)" (28 July 2015, updated 21 August 2025). This is the limit software teams hit first.

  • Mapping crowds out improving. Roser again: "the Western world puts too much emphasis on value stream mapping. Many invest too much time in making a value stream and then have no time or energy left to actually improve the situation on the shop floor," adding that maps "are often pushed by consultants that need to familiarize themselves with the shop floor of their client."

  • Detail kills it. Roser puts the sweet spot at "between 4 and 15 process boxes" and says "anything above 30 is a waste of time," reporting from his own experience: "I once made the mistake of doing a value stream map with over 60 process boxes, but nothing useful came ever out of this." An oversized map becomes "in effect a wallpaper that looks pretty and impresses people." Roser, "Practical Tips for Value Stream Mapping" (18 August 2015, updated 21 August 2025).

Current Status:

  • The 1999 workbook is still the reference text. Learning to See (Lean Enterprise Institute, 1999) remains in print and in LEI’s catalogue, which describes the same two-step sequence the anchor names: "You begin by mapping the current state of the value stream, looking for all the sources of waste. After identifying the waste, you draw a map of a leaner future state and a value-stream plan to guide implementation." LEI, Learning to See.

  • Rother’s own work moved on. His later books are Creating Continuous Flow (2001) and Toyota Kata (2009), which teaches an iterative improvement routine rather than a map. Wikipedia, Mike Rother. Whether he moved because mapping alone failed to produce lasting change is a common claim in the lean community; no statement to that effect could be confirmed from a primary source, so it is not asserted here.

  • In software the term has drifted. "Value stream management" in DevOps tooling usually means dashboards over delivery-pipeline metrics, not a hand-drawn current-state and future-state pair. When precision matters, say which one you mean.

Dialogue Interaction

Dale Carnegie Principles

Details
Full Name

The principles of How to Win Friends and Influence People (1936)

Also known as

Carnegie principles, How to Win Friends principles

Core Concepts:

  • Don’t criticise, condemn or complain. Carnegie’s opening move and the one the rest depends on: criticism puts people on the defensive and they justify rather than reconsider.

  • Give honest, sincere appreciation. Stated as a precondition, not a technique — Carnegie distinguishes appreciation from flattery repeatedly and insists the difference is sincerity.

  • Arouse in the other person an eager want. Argue from their interest rather than yours. "Talk in terms of the other person’s interests" is the same move applied to conversation.

  • Begin with praise, then raise the problem. The characteristic structure: honest appreciation first, the difficulty second, and the correction framed so the other person keeps their standing.

  • Point out mistakes indirectly, and let the other person save face. Blame the circumstance, the ambiguous spec, your own earlier explanation — anything that leaves the person room to change their mind without conceding incompetence.

  • Ask questions instead of giving direct orders. "Could you look at this?" rather than "redo it". The instruction lands the same and the standing does not.

  • Try honestly to see things from the other person’s point of view. Invite their reasoning before delivering your own — they may have seen what you did not.

When to Use:

  • Review comments that have to be read by the person who wrote the code

  • Disagreements where being right is not the same as being effective

  • As a compact shorthand in a long-running instruction set, where spelling the posture out each time is expensive and drifts

Common Misunderstandings:

  • Reading it as a licence to soften the substance. The principles govern how a correction is delivered, not whether it is made. A review comment that no longer names the defect has failed on Carnegie’s terms too.

  • Treating it as manipulation. This is the standard charge and it is worth taking seriously — see Criticism. Carnegie’s own answer is that every technique is void without sincerity, which is a defence that can be stated but not enforced.

  • Expecting it to add tact a current model lacks. In our measurement the unanchored baseline was already careful with the person. What the term reliably adds is the opening appreciation and the face-saving frame — a narrower and more specific effect than the reputation suggests.

Criticism:

  • The principles rest on anecdote, and that has been examined properly. Tessa E. Basford and Andrea Molberg, "Dale Carnegie’s Leadership Principles: Examining the Theoretical and Empirical Support", Journal of Leadership Studies 2013, DOI 10.1002/jls.21265: the book, "including its nine guiding leadership principles—​is based on anecdotes, case studies, and personal examples rather than empirical evidence." Their conclusion is not that the advice is wrong but that its support has to be established from elsewhere before a leader relies on it. (The publisher’s page blocks automated access; the record was verified through the DOI.)

  • The insincerity charge is the standard one, and Carnegie’s own text supplies the opening. Scholarly reception turned on exactly this point, "chiding Carnegie for being insincere and manipulative" (Wikipedia, with the reception history). The sharpest version notes where the sincerity requirement becomes a stage direction: Carnegie, drawing on his years as an actor, writes that "you must actually ENTER INTO the character you impersonate, the cause you advocate, the case you argue" — on which Tom Jokinen comments, "You have to mean it. Or, failing that, fake it." The Globe and Mail (4 January 2014). Carnegie’s defence — that every technique is void without sincerity — can be stated but not enforced.

  • The broader charge is that it crowds out everything that is not a personal feeling. Steven Watts, in Self-Help Messiah, quoted in Jokinen’s review: "[T]he Carnegie code has undermined people’s capacity to think about the world in terms that transcend personal feelings. Its stress on human relations… has pushed aside frameworks of morality, social justice, and even economic well-being." Note the attribution: the sentence is Watts’s, not the reviewer’s.

  • One widely circulated quotation we could not verify. Sinclair Lewis’s dismissal of the genre is repeated everywhere; we did not reach its original publication, and it is therefore not cited here.

  • The frame. No citable German-language criticism was found. French, Spanish, Japanese and Chinese were not searched, and the book has long independent reception histories in at least the last two — 人を動かす and 人性的弱点 are among the best-selling translated titles in those markets. What follows is an anglophone-plus-German picture and should be read as one.

Current Status:

  • What the prior reproduces is the post-1981 structure, not the 1936 one. "In 1981, a revised edition containing updated language and anecdotes was released. The revised edition reduced the number of sections from six to four, eliminating sections on effective business letters and improving marital satisfaction." The two removed sections are "Letters That Produced Miraculous Results" and "Seven Rules for Making Your Home Life Happier" (Wikipedia).

  • Our own measurement shows which shape comes back. In the prior test on 2026-09-24, both model tiers reproduced the four-part structure and neither produced the six-part shape of the 1936 original. That identifies the structure, not a printing: every edition since 1981 carries the four parts, so the measurement cannot tell them apart and does not try to. If you need the 1936 text specifically, say so — the name alone will not get you there.

  • The numbered principles inside the four parts appear to have survived the revision intact, since the cuts removed whole additional sections rather than principles. We did not open a 1936 table of contents to confirm it word for word.

Socratic Method

Details
Full Name

Socratic Method (also Socratic Dialogue, Elenchus)

Core Concepts:

Guided Discovery

Lead learners to insights through questions rather than direct instruction

Elenchus

Cross-examination technique to expose contradictions in beliefs

Maieutics

"Midwifery of ideas" – helping others give birth to knowledge they already possess

Aporia

State of productive confusion that motivates deeper inquiry

Question Hierarchy

Progress from clarifying questions to probing assumptions to exploring implications

Dialectic Method

Structured dialogue to arrive at truth through reasoned argument

Non-assertive Teaching

Teacher claims ignorance, guides through questions

Assumption Surfacing

Make implicit beliefs explicit through systematic questioning

Logical Consistency

Test ideas for internal coherence and contradictions

Key Proponent

Socrates (via Plato’s dialogues, ~400 BCE)

Historical Context

2400+ years of philosophical tradition, foundational to Western philosophy and critical thinking education

When to Use:

  • Teaching complex concepts where understanding must be constructed, not transmitted

  • Helping someone work through a problem without giving direct answers

  • Uncovering hidden assumptions in arguments or designs

  • Exploring the implications of a decision or belief

  • Encouraging deeper thinking about a topic

  • Code review or design review where understanding, not compliance, is the goal

  • Cognitive apprenticeship

  • Constructivist learning theory

  • Critical thinking pedagogy

Systemic Consulting (Heidelberg School)

Details
Full Name

Systemic Consulting according to the Heidelberg School

Also known as

Systemische Beratung, Systemic Therapy and Consulting, Heidelberg Model

Core Concepts:

Consulting as Communication

"Was all diese Beratungsansätze miteinander verbindet: Es sind Formen der Kommunikation." (Simon, Einführung in die (System-)Theorie der Beratung, 2014) — The consulting process is analyzed through the lens of communication theory.

All-Partiality (Allparteilichkeit)

The consultant takes no side but is partial to all sides simultaneously. "Rollenklärung des Therapeuten sowie Allparteilichkeit und das Prinzip der Neutralität." (Simon/Rech-Simon, Zirkuläres Fragen)

Neutrality

The consultant remains neutral toward persons, toward the problem, and toward change. Not cold distance, but active multiperspectivity.

Circular Questions

Instead of linear cause-effect questions ("Why did X happen?"), circular questions explore relationships, differences, and feedback loops: "What would Y say about X’s behavior?" "What needs to happen for the pattern to change?" "Zirkuläres Fragen zielt darauf, die gegenseitige Bedingtheit des Verhaltens von Menschen zu verdeutlichen."

Context Clarification

"Die Kontextklärung für Therapeuten ist immer klarer als für Patienten." — Before any intervention, the context must be clarified: who referred, what are the expectations, what is the mandate?

Problem as Emergent Pattern

Problems arise from relational patterns, not from individual deficiencies. Changing the pattern changes the problem.

No Instruction, Only Irritation

The consultant cannot dictate changes (systems are operatively closed) but can offer perturbations that the system may or may not integrate.

Reframing / Positive Connotation

Every behavior that appears dysfunctional is reframed as having a positive function for the system. "Which adaptive function does the status quo serve?"

Hypothesizing

Before meeting a client, the team generates hypotheses about the system’s dynamics. Hypotheses are treated as provisional and falsifiable.

Systemic Interview Structure

Clarify referral context → define goals → explore attempted solutions → identify resources → hypothesize patterns → offer intervention.

Key Proponents

Fritz B. Simon (Einführung in die (System-)Theorie der Beratung, 2014), Helm Stierlin, Gunthard Weber (Heidelberg School), Paul Watzlawick, Jay Haley, John Weakland (MRI Palo Alto), Mara Selvini Palazzoli (Milan Group)

When to Use:

  • Facilitating organizational change where linear approaches have failed

  • Mediating conflicts between stakeholders with incompatible perspectives

  • Designing human-centered automation that respects user autonomy

  • Coaching teams through complex adaptive challenges

  • Any situation where the interventionist is part of the system (no external vantage point)

  • Evaluating whether a proposed technical solution addresses relational dynamics

Relationship to Other Anchors:

  • Operationalizes Simon’s Constructivism into concrete practice

  • Provides the "how" for the System-Theoretic Semantic Anchors framework (especially Stakeholder and Trust anchors, see separate proposal)

  • Direct precursor to Semantic Contracts — the consulting mandate functions as a semantic contract between consultant and client (see separate proposal)

  • Complements Cynefin Framework by providing intervention methods for the Complex domain

  • Contrasts with expert-driven consulting (which assumes instruction is possible)

XY Problem

Details
Also known as

Solution Fixation, Asking the Wrong Question

Core Concepts:

X is the Real Problem

The underlying goal the asker actually wants to achieve

Y is the Attempted Solution

The approach the asker has chosen, often based on an incomplete model of X

The Question Hides X

The asker phrases their request as "How do I do Y?" — X is never stated, only assumed by the asker

Solution Fixation

Commitment to Y obscures whether Y solves X at all, and may rule out simpler approaches

Goal-Step Confusion

Conflating "what I want" with "the steps I think will get me there"

Recognition Heuristic

Y looks unusual, brittle, or disproportionate to the questioner’s apparent expertise — usually a sign that X is hidden

Resolution by Probing

Ask "What are you actually trying to accomplish?" — surface X, then propose solutions for X (which may or may not include Y)

Asker’s Discipline

State X first, then your attempted Y, then the specific blocker — this lets the helper validate the whole chain

Key Proponents

Mark Jason Dominus (coined the term in a 2001 post to comp.lang.perl.misc), Eric S. Raymond ("How To Ask Questions The Smart Way", 2001 — "describe the goal, not the step")

Historical Context

Crystallized in Usenet and IRC help culture of the early 2000s; canonical reference at https://xyproblem.info/ and Greg’s Wiki (mywiki.wooledge.org/XyProblem); now part of the standard vocabulary on Stack Overflow, Hacker News, and software help channels.

When to Use:

  • As a helper, when a question feels strange, over-specific, or asks for an awkward technical workaround — pause and ask for the underlying goal

  • In LLM dialogues, to break out of solution-fixation when a model keeps trying to make Y work

  • In requirements clarification, when a stakeholder demands a specific feature that looks like a workaround for an unstated need

  • In code review, when a change looks like a hack — check whether the wrong problem is being solved

  • In support tickets and bug reports, to redirect from "this UI doesn’t let me do Y" toward "what task X were you doing?"

  • As an asker, to discipline yourself to state the goal before the attempt

  • Socratic Method — questioning to surface the underlying problem

  • BLUF — the asker’s analogue: lead with the goal, not the step

  • Problem Space (NVC) — distinguish needs from strategies, the same X/Y move from a Nonviolent Communication frame

    Counter-example

    Concrete reproduction steps for a confirmed bug — the steps are the problem, not a workaround for it.

Documentation

A3 Problem Solving

Details
Full Name

A3 Problem Solving

Also known as

A3 thinking, the A3 management process, the A3 report

Core Concepts:

This Anchor Names the Method, Not the Paper Size

"A3" is used in two different ways, and they get confused constantly. One is a format — a single sheet 297 × 420 mm, as in the X-Matrix of hoshin-kanri, which is "a single-page A3 artifact". The other, meant here, is a problem-solving method with a fixed narrative sequence, as referenced in five-whys. Anything printed on one big sheet is an A3 in the first sense. Only the sequence below is A3 problem solving.

The Story Runs Left to Right

Background — why this matters. Current condition, with data and a drawing. Goal, stated as a measurable target. Root cause analysis, usually five-whys or a fishbone. Countermeasures. Implementation plan with owners and dates. Follow-up: how you will know it worked, and what you learned. The Lean Enterprise Institute lists the same span: "the current situation, the nature of the issue, the range of possible counter-measures, the best countermeasure, the means (who will do what when) to put it into practice, and the evidence that the issue has actually been addressed."

It Is PDCA on One Page

Left half is Plan. Right half is Do, Check, Act. The paper enforces the cycle’s order and makes a skipped step visible as a gap on the sheet.

The Constraint Is the Method

One sheet is not a stylistic preference. It forces selection, forbids the appendix, and makes an unclear problem statement impossible to hide behind volume. If the analysis does not fit, the problem is not yet understood.

It Is a Dialogue, Not a Document

In Shook’s account the A3 is written iteratively, challenged by a mentor, and rewritten. The owner has responsibility without authority and must gain agreement by argument. LEI is explicit that it is "a management process learned through dialogue rather than merely a document", and that the systematic approach holds "regardless of whether they are guided by or record their findings on an A3 document."

Key Proponents

John Shook, whose Managing to Learn: Using the A3 Management Process to Solve Problems, Gain Agreement, Mentor, and Lead (Lean Enterprise Institute, 2008) is the reference text; and Durward K. Sobek II with Art Smalley, Understanding A3 Thinking (Productivity Press, 2008).

When to Use:

  • A recurring problem that needs an owner, a cause, and a check — not a ticket and a guess

  • Incident and post-mortem write-ups where the discipline is to reach a cause and a countermeasure, not to narrate

  • Proposals that must win agreement across teams without positional authority

  • Coaching: the A3 is a mentoring instrument first, a report second

  • As the container for five-whys, which supplies the cause-analysis box but nothing around it

Common Misunderstandings:

  • ❌ "An A3 is any one-page summary" — that is the format sense; the method is the sequence

  • ❌ "The A3 is the deliverable" — Shook: "The A3 itself is nothing–it’s just a blank piece of paper you use to tell a story"

  • ❌ "Fill in the template and you are done" — the named failure mode, and Shook’s own objection to templates

  • ❌ "One pass is enough" — the method assumes rewriting under challenge

  • ✓ "It is PDCA made visible on a single sheet" — a fair and useful compression

Criticism:

  • The author’s own warning is about the template. John Shook, interviewed by Mark Graban: "I’m always skeptical of standard templates for something like that only because that tends to lean toward that tendency to see it as a fill-in-the-box exercise." And on where the difficulty actually lies: "You can learn to write an A3 in a day, but learning to use it as a management process takes much longer." Graban, "John Shook on A3 Problem Solving and the Managing to Learn Process" (6 January 2009). A method whose best-known proponent has to warn against its most common use is worth flagging as such.

  • Without a coach and a management system it does not take. Mike Loughrin of Transformance Advisors lists why A3 efforts fail: organisations underestimate the process, treating it as "one piece of paper, one pencil, and one eraser"; they short-change coaching — "Many have not required a coaching role while others have not trained their leaders with the skills required for success"; there is no system for launching, monitoring and closing projects; and the methodology gets forced onto problems better suited to other approaches, with poor scoping leaving efforts to stagnate past 120 days. Loughrin, "Why do A3 problem solving efforts often fail?" (no date given on the page).

  • The power is claimed to sit outside the artifact, which makes the method hard to adopt piecemeal. Sobek and Smalley: "The power of the A3 report, however, derives not from the report itself, but rather from the development of the culture and mindset required for the implementation of the A3 system." Understanding A3 Thinking, Productivity Press, 2008. Read as criticism, it is an admission: buying the form buys nothing.

Current Status:

  • The two senses of "A3" both remain in active use, including inside this catalog: hoshin-kanri uses A3 as a paper format for the X-Matrix, five-whys uses it as the problem-solving method. Neither is wrong. Say which one you mean, or a model will happily hand you a one-page layout when you asked for a root-cause discipline.

  • LEI still separates the thinking from the sheet. Its lexicon defines A3 thinking as "a systematic approach to resolving problems" and notes that "someone can follow this systematic approach, regardless of whether they are guided by or record their findings on an A3 document." LEI Lexicon, "A3 Report".

  • No standard, no edition drift. Unlike dmaic (ISO 13053) or qfd (ISO 16355), A3 carries no normative definition. Managing to Learn (2008) remains the canonical text and the strongest prior; templates in the wild vary in their box count and labels, which is exactly what Shook objected to.

Diátaxis Framework

Details
Full Name

Diátaxis Documentation Framework according to Daniele Procida

Core Concepts:

Four documentation types
Tutorials

Learning-oriented, lessons for beginners

How-to guides

Task-oriented, directions for specific goals

Reference

Information-oriented, technical descriptions

Explanation

Understanding-oriented, conceptual discussions

Two dimensions
  • Practical vs. Theoretical

  • Acquisition (learning) vs. Application (working)

Separation of concerns

Each type serves a distinct purpose

User needs

Different users need different documentation at different times

Quality criteria

Each type has specific quality indicators

Systematic approach

Framework for organizing any documentation

Key Proponent

Daniele Procida

When to Use:

  • Organizing technical documentation

  • Improving existing documentation

  • Planning documentation structure

  • Evaluating documentation quality

  • Complementing Docs-as-Code approaches

Current Status:

  • The four-quadrant core (tutorials, how-to guides, reference, explanation) is stable; diataxis.fr is a living, unversioned site — the colophon says the work "continues to be elaborated and explored"

  • The site has grown around the core: a theory section (the map, foundations, quality) and newer practical guidance such as "Diátaxis in complex hierarchies" — a prior anchored on the older Divio four-quadrant article (2014–2021) misses these refinements and the points where Procida has since revised his earlier presentation

Docs-as-Code according to Ralf D. Müller

Details
Full Name

Docs-as-Code Approach according to Ralf D. Müller

Core Concepts:

Plain text formats

AsciiDoc, Markdown

Version control

Documentation in Git alongside code

Automated toolchains

Build pipelines for documentation

Single source of truth

Generate multiple output formats from one source

Diagrams as code

PlantUML, Mermaid, Graphviz, Kroki

Continuous documentation

Updated with every commit

Developer-friendly

Use same tools and workflows as for code

Review process

Pull requests for documentation changes

Modular documentation

Includes and composition

Key Proponent

Ralf D. Müller (docToolchain creator)

Technical Stack:

  • AsciiDoc/Asciidoctor

  • docToolchain

  • Gradle-based automation

  • Kroki for diagram rendering

  • Arc42 template integration

When to Use:

  • Technical documentation for software projects

  • When documentation needs to stay synchronized with code

  • Distributed teams collaborating on documentation

  • Projects requiring multiple output formats (HTML, PDF, etc.)

4+1 View Model according to Kruchten

Details
Full Name

The "4+1" View Model of Software Architecture — Philippe Kruchten, "Architectural Blueprints — The '4+1' View Model of Software Architecture", IEEE Software 12(6), November 1995, pp. 42-50 (doi:10.1109/52.469759)

Also known as

Kruchten’s 4+1, the 4+1 views, the RUP architecture views, 4+1-Sichtenmodell

Core Concepts:

One View, One Named Audience

Each view exists because a specific group asks a specific question. The logical view answers the end user’s question about functionality. The development view (also implementation view) answers the programmer’s question about code organisation — modules, packages, layers, build. The process view answers the integrator’s question about runtime: concurrency, distribution, performance, fault tolerance. The physical view (also deployment view) answers the system engineer’s question about which hardware runs what. The audience is part of the model, not an afterthought.

The "+1" Is the Cross-Check, Not a Fifth Topic

The scenarios — a small set of key use cases — are deliberately redundant with the four views. They are used twice: to discover architectural elements while the architecture is being designed, and to validate the four views against each other afterwards. A scenario that cannot be walked through all four views has found an inconsistency. This is the mechanism that makes 4+1 more than a filing system.

What Separates It From arc42 and c4-diagrams

All three describe a system through several views, and the three overlap heavily in content. Two things are 4+1’s own. First, the explicit stakeholder-per-view mapping: the model names who each view is for, so a view with no reader is a defect. Second, the scenarios as the consistency check between views. c4-diagrams instead supplies one zoom hierarchy with a fixed notation; arc42 supplies a twelve-chapter document structure in which the building block, runtime and deployment views descend from the same idea.

Lineage — RUP, Then the Standard

4+1 came out of Kruchten’s work at Rational and became the architecture description of the Rational Unified Process. The idea of describing a system through stakeholder-specific views was then generalised in IEEE 1471-2000 and its successor ISO/IEC/IEEE 42010 as the view / viewpoint distinction: a viewpoint is the reusable template, a view is one application of it. Rozanski and Woods state the move plainly: "The IEEE standard makes this idea generic (and does not specify one set of views or another) by proposing the concept of a viewpoint."

The Diagram Vocabulary Is UML-Era

The paper and all its teaching material speak UML: class and sequence diagrams for the logical view, component and package diagrams for the development view, activity diagrams for the process view, deployment diagrams for the physical view, use case diagrams for the scenarios. Naming the anchor therefore pulls UML with it. That is the vocabulary of the model, not a defect in it, but it is worth knowing before a model picks notation on your behalf.

When to Use:

  • Structuring a first architecture description when the team has no agreed view set, and the stakeholders are known

  • Auditing an existing architecture document for a missing audience — a document with no process view usually means nobody asked the integrator

  • Forcing consistency between views: write the scenarios, then walk each one through all four views

  • Teaching why multiple views exist at all, before introducing arc42 or c4-diagrams as the modern container

  • Reading older architecture documents, RUP artefacts and ISO 42010 wording, where the vocabulary is already in use

Common Misunderstandings:

  • ❌ "4+1 means five documents" — it means five views of one architecture; they may live in five chapters of one document, and a view without a reader should be dropped

  • ❌ "The scenarios are the use case chapter" — they are the cross-check; their job is to expose contradictions between the other four views

  • ❌ "4+1 is the same as arc42 or C4" — arc42 is a document structure and C4 a notation hierarchy; 4+1 is a stakeholder-to-view mapping plus a consistency mechanism

  • ❌ "Physical view means the server diagram" — it is the mapping of software elements onto nodes, which includes availability and installation, not a network drawing

  • ✓ "4+1 is a view set; ISO 42010 is the grammar for view sets" — accurate, and the reason the model survives as vocabulary even where its UML diagrams do not

Criticism:

  • The standard that formalised the idea declined to keep the view set. IEEE 1471 and ISO/IEC/IEEE 42010 adopted Kruchten’s central move — stakeholder-driven views — and then deliberately refused to prescribe which views. Rozanski and Woods, authors of Software Systems Architecture, describe the sequence directly: "In his introductory paper, Kruchten defined four standard views, namely, Logical, Process, Physical, and Development," after which "The IEEE standard makes this idea generic (and does not specify one set of views or another) by proposing the concept of a viewpoint." A fixed set of four is exactly what the standard treats as the part not to generalise. Rozanski and Woods, "Views and Viewpoints", viewpoints-and-perspectives.info

  • Two concerns the four views do not carry: data and operations. The Rozanski and Woods catalog answers 4+1 with seven viewpoints — Context, Functional, Information, Concurrency, Development, Deployment, Operational. Information and Operational have no counterpart among Kruchten’s four: there is no view that owns the data model, and none that owns running the system in production. Teams using 4+1 on information systems add these themselves, which is the practical argument for the newer catalogs. Same source as above.

  • What we did not find, and where we looked. No named, published critique of 4+1 with a verifiable quotation turned up in English or German searching — not from Philippe Kruchten in retrospect, not from Simon Brown, not from the arc42 authors (Stefan Zörner’s embarc comparison of arc42 against alternatives discusses Simon Brown’s C4 and Software Guidebook, and does not treat 4+1). The criticism of 4+1 is structural rather than polemical: it is carried by what the successors changed. Languages searched: English, German. Other languages were not searched, so this is a frame, not a proof of absence.

Current Status:

  • The prior is strong and correctly attributed. In a clean-room test on claude-haiku-4-5 (2026-10-03) a neutral logistics-platform brief that named no method produced no view vocabulary at all; naming the 4+1 View Model produced all five views together with their audiences. The weak tier attributes Kruchten 1995 correctly and with high confidence. The model is one of the rare cases where the term alone restructures the answer.

  • The citation itself has drifted. Crossref’s record for doi:10.1109/52.469759 gives IEEE Software 12(6), 1995, pp. 42-50, matching the German Wikipedia entry’s "Band 12, Nr. 6, November 1995, S. 42-50". Kruchten’s own bibliography lists the same DOI as "pp. 45-50" (philippe.kruchten.com/architecture). Use 42-50.

  • It lives on as vocabulary, not as a template. The stakeholder-per-view idea is now standard through ISO/IEC/IEEE 42010, and the views themselves reappear inside arc42 (building block, runtime, deployment) and c4-diagrams. What has aged is the notation layer: a model naming 4+1 today still reaches for UML diagram types, which may not be what the project uses.

Karpathy’s LLM Wiki

Details
Full Name

LLM Wiki, from Andrej Karpathy’s post "LLM Knowledge Bases" (X, 2 April 2026) and the follow-up "idea file" llm-wiki.md (GitHub Gist, 4 April 2026).

Also known as

LLM Knowledge Base, the LLM Wiki pattern

Core Concepts:

Compile once instead of retrieving every time

Retrieval-augmented generation re-reads raw chunks for every question, so nothing accumulates. In the LLM Wiki the model reads each source once and writes what it learned into a persistent set of interlinked markdown pages. The gist calls the result "a persistent, compounding artifact".

Three layers

Raw sources are curated, immutable documents; the LLM reads them and never edits them. The wiki is LLM-generated markdown — source summaries, entity and concept pages, comparisons, an overview — and "the LLM owns this layer entirely". The schema is a configuration document such as CLAUDE.md or AGENTS.md that fixes structure, conventions and workflows; human and model refine it together.

Ingest

A new source goes into the raw layer. The LLM summarises it, updates the pages it touches (the gist puts it at ten to fifteen for one source), adds cross-references, flags contradictions with what the wiki already says, and records the step in the index and the log.

Index and log

index.md is a catalog of every page with a link and a one-line summary, grouped by category; the LLM reads it first when it answers. log.md is an append-only, chronological record of ingests, queries and lint passes, with greppable prefixes such as ## [date] ingest | Title.

Query and file back

The LLM answers from the wiki with citations, in whatever form fits — prose, a table, slides, a chart. A good answer does not vanish into the chat: it is filed back into the wiki as a new page, so explorations compound like ingested sources.

Lint

A periodic health check over the whole wiki: contradictions, stale claims, orphan pages, missing concepts and cross-references, and gaps that call for a new source.

The division of labour

Wikis kept by people decay because the bookkeeping — cross-references, updated summaries, reconciled contradictions — costs more than it seems to return. The LLM does that bookkeeping at almost no cost. In the gist’s words: "The human’s job is to curate sources, direct the analysis, ask good questions, and think about what it all means."

Deliberately abstract

The gist is an idea file meant to be pasted into a coding agent, not a tool. Directory layout, page types and tooling are left to the domain. It mentions Obsidian as a viewer, git for history and an optional search CLI, and says an index file is enough at moderate scale — about a hundred sources and hundreds of pages — without embedding-based retrieval.

Key Proponent

Andrej Karpathy, who links the idea loosely to Vannevar Bush’s Memex.

When to Use:

  • A body of documents — papers, notes, design docs, chat exports — that keeps growing and is asked about repeatedly

  • Research on one topic over weeks or months, where answers should build on earlier answers

  • Team knowledge that people stopped maintaining because cross-referencing was too much work

  • As the knowledge layer of a coding agent: the schema file is the agent’s instructions, the wiki its memory

  • When a retrieval pipeline keeps re-deriving the same synthesis and never reconciles contradicting sources

Common Misunderstandings:

  • ❌ "It is RAG with markdown files" — retrieval looks things up at question time; the wiki does the synthesis at ingest time and keeps it.

  • ❌ "The LLM may edit the sources" — the raw layer is immutable. It is what a lint pass checks the wiki against.

  • ❌ "You need a vector store to find pages" — at moderate scale the gist relies on index.md alone. The log is what lets human and model see what changed.

  • ❌ "Answers live in the chat" — an answer worth keeping becomes a page; otherwise the wiki stops compounding.

  • ❌ "Karpathy published a tool" — he published a pattern. The community implementations are someone else’s choices.

Criticism:

  • Lint does not keep up at scale. Michael Tuszynski ran the pattern for six months and reports three failure modes the gist does not mention: drift between a page’s changelog and its reference section, "the reference section below still describing the dead system as current"; silent contradictions, where "two pages both exist, both are internally consistent, and neither knows about the other"; and orphans and dead links, because "at three hundred pages, 'occasionally' is not a frequency — it’s a hope". His additions are a drift linter, per-domain sub-schemas, a vector index next to the wiki once it no longer fits in context, and lockfiles when several agents write. Tuszynski, "Karpathy’s LLM Wiki Works. Here’s What Broke When I Ran It at Real Scale." (13 August 2026).

  • Search frame. English, German and Chinese searches on 2026-10-15. Two further critical pieces were found but not read: a Towards AI article asking whether the pattern really replaces RAG returned HTTP 403, and a dev.to post on its token cost was found only as a listing. Japanese and Korean were not searched.

Current Status:

  • The pattern is recent, and so is the prior. It was published in April 2026. A prior test on 2026-10-15 found it on all three Claude 5.5 tiers: asked to design a support assistant over 400 documents, every baseline built retrieval with chunks and a vector index, and every run that named "Karpathy’s LLM Wiki" built the raw layer, the wiki, index.md, log.md and a lint pass, and filed good answers back. Models trained before April 2026 cannot know it. See the prior-test register.

  • Use the qualified name. The bare "LLM Wiki" works on the mid and strong tiers. The weak tier hedges and drops the log or the filing-back; asked directly who created the pattern, it declined to name anyone, though it named Karpathy when asked what an LLM Wiki is.

Keep a Changelog

Details
Full Name

Keep a Changelog, the changelog convention published at keepachangelog.com

Also known as

the CHANGELOG.md convention, keepachangelog format, the Added/Changed/Fixed format

Core Concepts:

The Reader Is a Person

The first guiding principle is the whole argument: "Changelogs are for humans, not machines." Everything else in the convention follows from choosing an audience.

Six Change Types, No More

Quoted exactly as the standard prints them — Added for new features; Changed for changes in existing functionality; Deprecated for soon-to-be removed features; Removed for now removed features; Fixed for any bug fixes; Security in case of vulnerabilities. "Breaking Changes" is not one of them; a breaking change appears under Changed or Removed, and the break is signalled by the version number.

The Remaining Guiding Principles

"There should be an entry for every single version." "The same types of changes should be grouped." "Versions and sections should be linkable." "The latest version comes first." "The release date of each version is displayed." Adherence to Semantic Versioning should be mentioned.

[Unreleased] Sits at the Top

Version 2.0.0 states the mechanics: "Keep an Unreleased section at the top to collect upcoming changes. It shows readers what to expect, and at release time you move its contents into a new version." It is the one section that makes the convention sustainable, because entries get written while the change is fresh.

ISO Dates, Largest Unit First

"Use the YYYY-MM-DD format. It orders from the largest unit to the smallest, avoids the confusion of regional date formats, and is an ISO standard." So: ## [1.2.0] - 2026-10-03.

The Convention Rejects Generated Changelogs, Explicitly

Version 1.1.0 puts it bluntly: "Using commit log diffs as changelogs is a bad idea: they’re full of noise." Version 2.0.0 restates the position as a division of labour — "machines can draft, but humans curate" — and keeps CI "in a supporting role" for "mechanical tasks: move the Unreleased section into a dated version at release time, check that the file is formatted correctly".

When to Use:

  • Writing or restructuring a CHANGELOG.md for a library or product with external users

  • Pairing with semantic-versioning, which the convention asks you to mention and which supplies the version numbers the sections are keyed on

  • Settling the argument about what belongs in a release entry: notable user-visible change, yes; internal refactor and typo fix, no

  • Reviewing a release process in which the changelog is a git log dump, and the question is whether anyone reads it

  • Asking an LLM for release notes, where naming the convention is what produces the correct six categories rather than a plausible-looking set

Common Misunderstandings:

  • ❌ "`Breaking Changes` is one of the standard sections" — it is not; the six types are fixed, and this is the single most common error

  • ❌ "Keep a Changelog is a tool" — it is a convention for a plain text file; the tools are other projects

  • ❌ "The changelog is generated from the commit log" — the convention says the opposite in both published versions

  • ❌ "Every commit needs an entry" — only notable changes do; the curation is the work

  • ✓ "Machines can draft, humans curate" — the standard’s own formulation of where automation stops

Criticism:

  • The opposing position is held openly by the Conventional Commits specification, in its own words. Its stated benefits list opens with "Automatically generating CHANGELOGs." and "Automatically determining a semantic version bump (based on the types of commits landed)." That is the claim Keep a Changelog denies: that a structured commit history converts into a changelog without a person in the loop. Conventional Commits 1.0.0. The tool ecosystem built on it — semantic-release, release-please, Changesets, git-cliff — is named on the Keep a Changelog 2.0.0 page itself: "A convention such as Conventional Commits, with tools such as semantic-release, release-please, Changesets, and git-cliff, reads structured commits to choose the next version and draft a changelog."

  • Keep a Changelog’s answer, and the sentence the argument turns on. "A commit and a changelog entry are written for different people, and one does not convert cleanly into the other." Keep a Changelog 2.0.0. Whether that holds is an empirical question about your audience, not a settled one — for an internal library whose only readers are the contributors, the two audiences coincide and the objection loses its force.

  • Two named critics argue the file does not belong in the repository at all. Josh Triplett, in the Hacker News thread on Keep a Changelog, makes the version-control objection: "Projects that still insist on maintaining a changelog file in git end up constantly fighting git’s conflict resolution, and they make rebase almost completely unusable. For an actual log of individual changes, that’s what 'git log' is for." Triplett (16 February 2015). Jan Krutisch, co-founder of Depfu, grants the generated side more than the convention does — "If you are willing to use (and enforce) a specific format for your commit messages, the results can be pretty decent" — and names the cost of the manual route: "the further away you move the changelog writing from the actual code changes, the higher are the chances to either forget things or to actually get details wrong". Krutisch, "Changelogs: To write or to generate?" (2 October 2018). He is not a clean opponent: he closes with "If in doubt, use the simple, handwritten approach."

  • What was not found. No named critic of the format itself — the six change types, the [Unreleased] section, the ordering. Searched in English and German. The disagreement on record is about who writes the file and where it lives, not about how it is laid out.

Current Status:

  • Two published versions, and the site’s front page does not point at the newer one. Version 2.0.0 was published on 7 June 2026, but keepachangelog.com still links "Continue to Keep a Changelog" to /en/1.1.0/. Quote the format safely; quote a version number carefully. 1.1.0 — 2.0.0. Created and maintained by Olivier Lacan, designed by Tyler Fortune.

  • The format itself did not drift. The six change types, the [Unreleased] section, YYYY-MM-DD dates and latest-version-first are identical in 1.1.0 and 2.0.0. What 2.0.0 adds is the explicit stance on automation.

  • The anchor buys correctness, not recall. Two of four no-anchor baselines on claude-haiku-4-5 named the convention unprompted — and then listed the wrong sections; one produced "Breaking Changes, New Features, Fixed, Deprecated", which is not the standard’s set. Naming the term produced all six canonical types plus [Unreleased]. This is a dense prior whose details are commonly misremembered, which is exactly where naming pays.

Plain Language (ISO 24495)

Details
Full Name

ISO 24495-1:2023, Plain language — Part 1: Governing principles and guidelines

Also known as

The ISO plain language standard; ISO 24495-1. Parts 2 and 3 cover legal communication and science writing.

Core Concepts:

  • Plain language is defined by what the reader can do, not by how the text looks. The standard builds on the definition the International Plain Language Federation adopted in 2014: a communication is in plain language if its wording, structure and design are so clear that the intended readers can easily find what they need, understand what they find, and use that information.

  • Four governing principles, each with guidelines. Readers get what they need (relevant); readers can easily find what they need (findable); readers can easily understand what they find (understandable); readers can easily use the information (usable).

  • Relevant starts before the first sentence. Identify the readers, their purpose and the context in which they read, then choose the document type and only the content they need.

  • Findable is about structure. Headings, a logical order, information design, and supplementary material kept apart from what most readers need.

  • Understandable covers more than word choice. Familiar words, clear sentences and paragraphs, cohesion, tone and supporting images.

  • Usable means evaluating with readers. The document is checked during development, with real readers, and after release — not just with a readability score.

  • For most languages. The principles are language- and culture-neutral; national bodies add language-specific rules, such as DIN 8581-1 (2024) for German.

    Key Proponents

    ISO Technical Committee 37, Working Group 11; proposed by the International Plain Language Federation through Standards Australia in 2019; published June 2023

When to Use:

  • Letters, notices, forms and web pages for the public, especially from government, insurers, banks and health services

  • Terms and conditions, privacy notices and other legal texts that readers must act on

  • Reviewing a document against an outcome ("can the reader find, understand and use this?") rather than a style rule

  • Product and API documentation for readers outside the team that wrote it

Common Misunderstandings:

  • Reading it as "simple words". Word choice is one guideline among many. A rewrite that only shortens sentences and swaps words fails the findable and usable principles. In our prior test the bare words "plain language" produced exactly that: shorter prose without structure. Naming the standard produced headings and steps for the reader on every tier we tested.

  • Confusing it with Plain English according to Strunk & White. Strunk & White is a style manual for English prose. ISO 24495 is an outcome standard for most written languages, and it asks for evaluation with readers throughout, not only at the end.

  • Confusing it with Simplified Technical English. ASD-STE100 is a controlled language with a closed word list. ISO 24495 is principle-based and prescribes no vocabulary.

  • Confusing it with Easy Language. In German, ISO 24495 corresponds to Einfache Sprache. Leichte Sprache, for readers with cognitive impairments, is a different concept; DIN 8581-1 explicitly excludes it.

  • Expecting a readability score. The standard does not set one; usability is checked with readers.

Criticism:

  • The plain language movement’s premise is contested by data. Yonathan Arbel, "The Readability of Contracts: Big Data Analysis" (Journal of Empirical Legal Studies 21, 2024), analysed about two million contracts. He writes that the study "challenges fundamental tenets of the plain language movement": consumer agreements "have median reading scores almost indistinguishable from those of daily news articles", and readability tools give large grade-level differences for identical texts. The critique targets readability-score arguments, which ISO 24495 itself does not rely on.

Current Status:

Simplified Technical English (ASD-STE100)

Details
Full Name

ASD-STE100, Simplified Technical English

Also known as

STE; formerly AECMA Simplified English

Core Concepts:

  • A specification, not a style preference. 53 writing rules in 9 sections, plus a dictionary of roughly 900 approved words and about 1,200 non-approved words with suggested alternatives.

  • One word, one meaning, one part of speech. Each approved word is admitted in a single sense. "To follow" means to come after, never to obey.

  • Write for the reader who is not a native speaker, and for the translator and the machine that come after them.

  • Procedures and descriptions are different text types with different rules, rather than one undifferentiated notion of "clear writing".

  • Compliance is not fully checkable. Boeing, whose checker has been in use since 1990, states plainly that "no language checker can guarantee full compliance with STE, because the goal of STE is clarity."

When to Use:

  • Maintenance, operating and safety instructions, especially where readers are not native English speakers

  • Documentation that will be translated, where source ambiguity multiplies across target languages

  • Regulated or safety-critical contexts where a misread instruction has physical consequences

Common Misunderstandings:

  • Reading it as "write simply". The specific content is the closed word list and the 53 rules; a general instruction to simplify is not STE and does not need the name.

  • Using the bare abbreviation. "STE" is unambiguous in this field, but the qualified form is what the measurement covers — see the prior-test register for which models were tested and with what result.

  • Assuming it is an ISO standard. ASD describes the move "from specification to international standard" as its own ambition; no formal ISO status is documented.

  • Confusing it with Plain Language. ISO 24495-1:2023 is principle-based and audience-oriented; STE is rule- and wordlist-based. The ISO scope names controlled languages as a neighbouring field, not the same one.

Criticism:

  • The efficacy evidence is thinner than the reputation, and its own authors say so. Heather Holmback (Boeing) with Serena Shubert and Jan Spyridakis (University of Washington), who conducted the Boeing-funded evaluations, name the limits in "Issues in Conducting Empirical Evaluations of Controlled Languages" (CLAW '96): there is "no compliance standard for SE", so "there is no universal agreement as to what counts as 'good,' 'typical' or even acceptable SE"; the measured benefit appeared only for the more complex of two procedures; and "we did not find any significant differences for time between the SE and non-SE documents". Translatability results were "less clear-cut", with no significant difference for Chinese.

  • The open question is whether the standard beats good writing at all. The same paper asks "whether SE is any more beneficial than good quality, professional technical writing that does not conform to the SE standard". That question is still open, and our own measurement reproduced it: on a weak model the anchored rewrite was not distinguishable from an unanchored one. The entry therefore records Haiku as tested with no measurable effect, and Sonnet and Opus as tested and working. See the prior-test register.

  • Adoption costs are real. Karin Disborg’s 2007 thesis at Linköping University names the "extensive learning time" and reports, from her literature base, roughly 20 percent more writing time in a controlled language. The study is qualitative with a small sample and was commissioned by a documentation service provider; its readability results favoured STE.

  • Strict compliance can work against other goals. TechScribe notes that following STE strictly harms findability in search engines, because synonyms are what readers actually search for, and cites Barry Rosenberg’s argument that synonyms improve readability for non-technical verbs.

Current Status:

  • Actively maintained, and free. ASD-STE100 is published by the AeroSpace and Defence Industries Association of Europe and maintained by the Simplified Technical English Maintenance Group. Issue 9 appeared on 15 January 2025: no new rules, but 31 of the 53 rules reworded and 555 dictionary entries revised. The specification is available free of charge, as PDF, on request.

  • Older than its name. It began as AECMA Simplified English, first issued in 1986; the maintenance group was founded in 1983 and renamed STEMG in 2004 when AECMA became ASD. The official site dates the origin to the late 1970s, Wikipedia to the 1980s — the starting point is not settled, the 1986 first issue is.

  • In use beyond aerospace. ASD names land and sea vehicles, renewable energy and medical technology. Tooling exists (the Boeing Simplified English Checker, in use since 1990, and commercial alternatives), but ASD and the STEMG explicitly "do not endorse or certify any company, organization, or individual that sells tools claimed to be 'fully compliant'".

  • Detail beyond the counts is second-hand here. The sentence-length limits usually quoted — 20 words for procedures, 25 for descriptions — and the restrictions on -ing forms come from secondary sources. The specification is distributed only on individual request, so we did not read the rule text itself.

Knowledge Management

ADDIE Model

Details
Also known as

ADDIE, Instructional Systems Design (ISD)

Full Name

Analysis, Design, Development, Implementation, Evaluation

Core Concepts:

Analysis

Clarify the instructional problem; identify needs, audience characteristics, learning goals, constraints, and the existing knowledge gap

Design

Define measurable learning objectives, assessment instruments, content structure, and media selection — the blueprint produced before any materials are built

Development

Build and assemble the actual learning materials (content, storyboards, media, technology) against the design blueprint; includes pilot testing

Implementation

Deliver the instruction — train facilitators, prepare learners, and run the program in its intended environment

Evaluation

Assess effectiveness through both formative (ongoing, each phase) and summative (final outcome) evaluation; frequently paired with Kirkpatrick’s four levels

Iterative, not strictly waterfall

Though originally sequential, modern ADDIE is drawn as a cyclical, dynamic process where Evaluation feeds back into every phase

Key Proponents

Florida State University’s Center for Educational Technology (~1975, for the US Army, later all US armed forces via the IPISD framework); Robert Maribe Branch ("Instructional Design: The ADDIE Approach", Springer, 2009) — a key modern codification. ADDIE is a generic label for the ISD process rather than a single-author model.

When to Use:

  • Designing structured training, courses, or learning materials from scratch

  • Producing documentation or onboarding programs that require measurable learning outcomes

  • Coaching or consulting engagements that build organizational capability

  • Establishing a shared vocabulary for an instructional-design or e-learning team

  • Prompting an LLM to scaffold a curriculum or training plan along defined phases

  • Bloom’s Taxonomy — frames the learning objectives set in the Design phase

  • 4MAT — a learning-cycle model that complements ADDIE’s structure

  • Feynman Technique — a learning method usable within Development

  • Double Diamond — a comparable diverge/converge process model from design

Criticism:

  • Roundtable Learning, "What is the ADDIE Model? Strengths & Weaknesses" — criticizes ADDIE for its linear nature, overly-detailed approach, and the time required to create and implement it; defects surface only in late phases

  • Michael Allen / Allen Interactions, "SAM: A Rapid Design And Development Model" (eLearning Industry) — calls ADDIE "rigid and too linear," "slow to evaluate," and burdened by the "waterfall nature of execution"; proposes SAM (Successive Approximation Model), a rapid, iterative, agile alternative that always keeps something usable in front of learners

  • Broader discourse pairs this with Agile / rapid-prototyping instructional design as the modern answer to ADDIE’s front-loaded sequencing

Current Status:

  • Still the most widely taught ISD framework, but increasingly presented as iterative rather than strict waterfall; Branch’s 2009 codification (Springer) is the common modern reference

  • SAM and Agile ID are the main contemporary alternatives for fast-moving, multimedia, and online-learning projects (ADDIE model, Wikipedia)

Building a Second Brain (BASB)

Details
Full Name

Building a Second Brain, by Tiago Forte. The book "Building a Second Brain" was published by Atria Books on 14 June 2022; the online course existed by 2017.

Also known as

BASB, CODE Method (Capture, Organize, Distill, Express)

Core Concepts:

CODE

The four steps of the method, which together turn consumed information into produced work. CODE is the core of BASB, not a separate method.

Capture — keep what resonates

Save what resonates with you, not everything that might be relevant some day. Captures go into one trusted, digital place.

Organize — for actionability

Sort by the project or responsibility the note will serve, not by topic or source type. The structure is the P.A.R.A. Method: Projects, Areas, Resources, Archive.

Distill — Progressive Summarization

Compress notes in layers, each time you touch them: bold the key passages, highlight the best of the bolded parts, then write a short summary in your own words at the top. A note becomes faster to reuse without losing its source.

Express — Intermediate Packets

Build work from small, reusable pieces — a distilled note, an outline, a draft section, a diagram — and share them early. Output is assembled from packets instead of started from a blank page.

Archipelago of Ideas

Before writing, gather the relevant notes into an outline of "islands" of ideas, then bridge them. Drafting becomes connecting rather than inventing.

Divergence and Convergence

Capture and Organize open up options (divergence); Distill and Express narrow them down to a result (convergence). Knowing which phase you are in tells you whether to collect more or to finish.

Hemingway Bridge

End a session with a note on what comes next, so the next session starts without warm-up. See Hemingway Bridge.

12 Favorite Problems

A short list of open questions you keep coming back to. It acts as the filter for what is worth capturing.

Just-in-time over just-in-case

Organize and distill a note when a project needs it, not in advance. Effort follows use.

Key Proponent

Tiago Forte, "Building a Second Brain" (Atria Books, 2022)

When to Use:

  • Scattered material — bookmarks, meeting notes, highlights, screenshots — should feed a concrete deliverable such as a talk, an article or a design document

  • Reading notes and highlights pile up and are never used again

  • Setting up or reviewing a personal note system in any tool (Obsidian, Notion, plain folders)

  • As the method around PARA: when you want not only the folders, but also how notes are captured, compressed and reused

  • Helping a team member turn research into a first draft instead of more research

How to Prompt:

  • Use the full name. "Follow Building a Second Brain (Tiago Forte)." produced the whole method on every tier in our prior test of 2026-11-04: CODE in 12 of 12 runs, Progressive Summarization in 12 of 12, Intermediate Packets in 11 of 12. "BASB" resolves to the method on all tiers.

  • The bare "second brain" is generic. Every tier recognised it as Forte’s, but as an instruction ("Set up a second brain.") only the strong tier produced CODE; the mid tier built a PARA-style folder system without CODE in two of two runs.

  • "CODE method" alone loses the second half on weak models. On the weak tier it produced the four step names but never Progressive Summarization, PARA or Intermediate Packets in the talk-preparation task, and once advised "Sort by topic, not by source type." — the opposite of Forte’s rule.

  • Naming PARA is not naming BASB. "Use the PARA method." produced the four buckets in 12 of 12 runs and Intermediate Packets in none. Name BASB when you want distillation and output, PARA when you only want the folder structure.

  • Details in the prior-test register, run 2026-11-04.

Criticism:

  • Collecting feels like knowing. Christian Tietze’s "The Collector’s Fallacy" (zettelkasten.de, 20 January 2014) argues that gathering sources is not learning them: "'to know about something' isn’t the same as 'knowing something'". Tietze does not name Forte; the essay is the general critique of capture-heavy note systems. A review on curtismchale.ca (30 July 2022; the page names no author) applies the label to the book: it finds the capture advice vague and easy enough to encourage endless collecting, and does not recommend the book, though it calls the CODE and PARA summaries useful.

  • Progressive Summarization can replace thinking with highlighting. Nick Milo, "The Potential Side Effects of Progressive Summarization" (13 August 2020), argues that repeated highlighting encourages saving more than one processes and creates a false sense of mastery — "We mistake familiarity with ability." He proposes "Active Ideation" instead: write notes in your own words and link them to existing notes, in the manner of the Zettelkasten method.

  • It manages resources, not ideas. Sascha Fast, "How to Increase Knowledge Productivity: Combine the Zettelkasten Method and Building a Second Brain" (zettelkasten.de, 26 June 2023), describes BASB as "a system for resource management" and the Zettelkasten method as one "for working with ideas themselves". His conclusion is to combine the two, since they overlap little.

Dreyfus Model of Skill Acquisition

Details
Full Name

Dreyfus Model of Skill Acquisition according to Stuart E. and Hubert L. Dreyfus

Also known as

Five-Stage Model of Adult Skill Acquisition, Novice-to-Expert model

Core Concepts:

Five stages
Novice

Follows context-free rules rigidly; recognizes no situational nuance; needs explicit instructions

Advanced Beginner

Applies situational maxims drawn from experience; still rule-oriented but starts reading context

Competent

Plans consciously and sets goals; copes with complexity by deliberately choosing what matters; feels responsibility for outcomes

Proficient

Perceives situations holistically; intuition emerges, though responses are still decided analytically

Expert

Acts with fluid, intuitive mastery; perception and action merge; deliberates only when something unfamiliar appears

Analytical-to-intuitive progression

Skill develops from detached rule-following toward involved, intuitive pattern recognition — not by accumulating more rules

Stage-matched instruction

Each stage needs a different kind of guidance; novices want rules and recipes, experts want holistic context and are hindered by step-by-step rules

Key Proponents

Stuart E. and Hubert L. Dreyfus, "A Five-Stage Model of the Mental Activities Involved in Directed Skill Acquisition" (1980, UC Berkeley Operations Research Center for the U.S. Air Force Office of Scientific Research); applied to nursing by Patricia Benner ("From Novice to Expert", 1984) and to software by Andy Hunt ("Pragmatic Thinking and Learning: Refactor Your Wetware", 2008)

When to Use:

  • Calibrating teaching or explanation depth to a learner’s stage

  • Designing mentoring and onboarding paths that move people from rules to intuition

  • Diagnosing why rule-heavy documentation helps novices but frustrates experts

  • Structuring competency frameworks and skill matrices for a team

  • Framing how an LLM should adjust the granularity of its guidance to the user’s expertise

Criticism:

  • Fernand Gobet and Philippe Chassy, "The Dreyfus model of clinical problem-solving skills acquisition: a critical perspective" and their 2008 paper in the International Journal of Nursing Studies (45: 129-139) — argue there is no empirical evidence for discrete stages in the development of expertise, and that experts in fact use slow analytical problem-solving (e.g. look-ahead search in chess), contrary to the model’s "experts act only intuitively" claim; they propose an alternative theory of intuition based on chunking

Current Status:

  • The Dreyfus brothers later added a sixth stage of mastery and reframed the model (Rousse & Dreyfus, "Revisiting the Six Stages of Skill Acquisition"); training-data priors most often reflect the original five-stage version popularized by Benner and Hunt

Genchi Genbutsu

Details
Full Name

Genchi Genbutsu (現地現物) — "the actual place, the actual thing"

Also known as

go and see, go to gemba, go see for yourself, one of the five principles of the Toyota Way 2001

Core Concepts:

Two Words, Two Demands

Art Smalley reads the characters apart: 現地 (genchi) is "the actual place" where work happens; 現物 (genbutsu) is "the actual thing itself — not reports or descriptions of it". Both halves must be satisfied. Going to the place and then reading a dashboard there satisfies neither.

Go Yourself

The person who will decide is the person who must observe. Delegating the looking and receiving a summary reintroduces exactly the layer of abstraction the principle exists to remove.

Gemba Is the Sibling Term

Gemba (現場) is the actual place — "the scene", in the sense a Japanese journalist or detective would use. Smalley notes both terms share 現 (gen), "present" or "actual", and calls this "Toyota’s linguistic emphasis on reality versus assumption". Genchi genbutsu is the practice; gemba is where it happens.

The Ohno Circle

The canonical illustration. Taiichi Ohno would chalk a circle on the factory floor and have an engineer stand in it and watch the process. Christoph Roser: "Often, a disciple stood in the circle for hours before Ohno was satisfied." The point was not endurance but perception — the premise is that most people do not see what is in front of them, and that hours of watching reveal what a walk-past cannot.

Observation Before Hypothesis

Genchi genbutsu sits upstream of every cause-hunting method. It is what makes a five-whys chain worth anything: without direct observation the first "why" is answered from memory, and every later one inherits the guess.

Why This Matters for an LLM

Named, it pushes toward reading the actual code, the actual log line, the actual trace, the actual failing test — before theorising. A model’s default is to answer from the pattern it already carries, which is precisely the report-not-the-thing failure the principle targets. "Genchi genbutsu" is a short instruction to go and look first.

When to Use:

  • Before proposing a cause for any bug: read the failing output, not the description of it

  • When a summary, ticket or handover is the only evidence available — the term names what is missing

  • Requirements work, where what users say they do and what they do diverge

  • Incident review, where the trace and the log are the genbutsu and the reconstruction is not

  • Any time an explanation feels plausible and no one has yet looked

Common Misunderstandings:

  • ❌ "It means walking the factory floor" — the place is whatever place the work actually happens, including a terminal and a log

  • ❌ "A gemba walk is genchi genbutsu" — a scheduled tour can be either the practice or a substitute for it

  • ❌ "Go and see means go and check" — Smalley lists "confirming preexisting conclusions rather than observing openly" first among the common mistakes

  • ❌ "One visit is enough" — "single visits instead of repeated observation" is another of Smalley’s named failures

  • ✓ "It is the observation step that five-whys depends on" — correct, and the reason the two belong together

Criticism:

  • In practice it becomes theatre. Annette Franz’s critique is aimed at the practice as executed by leaders: when treated as an inspection, "employees perform. They hide problems, sanitize reality, and the walk becomes a staged event, not a learning exercise." Her sharper point concerns credibility: "When leaders repeatedly ask, 'What’s getting in your way?' and nothing changes, credibility erodes fast." And without discipline, "Gemba collapses into performative leadership" — "Gemba becomes expensive theater." Franz’s own conclusion is that the method is not the fault: leaders are. Franz, "Gemba Walks Don’t Fail. Leaders Do." (18 March 2026).

  • The observed change under observation. The staged-event problem is not only a leadership failing; it is a measurement problem the principle does not solve. What genchi genbutsu delivers is the actual place under the condition of being watched, and nothing in the method separates the two.

  • The Ohno circle does not transplant. Christoph Roser is direct about the limits of imitating it: "Not everybody is willing to observe a process for potentially hours on end. There is a risk of the trainee becoming upset about this 'waste of time.'" He adds the practical precondition that it "works only where workers have the time to answer your questions" and that you "must not interrupt their work", and argues for adapting the exercise rather than copying it. Roser, "Taiichi Ohno’s Chalk Circle" (5 January 2016, updated 21 August 2025).

  • The story’s provenance is thinly sourced. Roser’s account, like most, presents the chalk circle as established fact without documentary evidence. Treat it as a teaching legend that carries the idea, not as a verified episode.

Current Status:

  • Formally codified at Toyota. Smalley records that when Toyota wrote down its management philosophy for a global workforce, genchi genbutsu became one of the five key principles of the Toyota Way 2001, alongside Challenge, Kaizen, Respect and Teamwork. Smalley, "Genchi Genbutsu", TPS Encyclopedia.

  • The failure modes are catalogued, which is itself a sign of drift. Smalley lists five recurring mistakes: confirming preexisting conclusions instead of observing openly; single visits instead of repeated observation; delegating the observation to subordinates; physical presence without active attention; and limiting the practice to factory floors. A principle needs such a list only once the ritual has outgrown the substance.

  • "Gemba walk" is now the dominant Western form of the term — a scheduled leadership round rather than an engineer standing still for three hours. Both senses live in current training data; the walk is the one a model is likelier to produce unprompted.

GTD — Getting Things Done

Details
Full Name

Getting Things Done (GTD)

Also known as

GTD, GTD by David Allen, GTD Methodology

Core Concepts:

Capture

Collect everything that has your attention — tasks, ideas, commitments — into trusted external "inboxes" so nothing is held in your head

Clarify

Process each captured item: Is it actionable? If yes, define the next physical action. If no, trash it, incubate it, or file it as reference

Organize

Place clarified items into the right lists — Next Actions, Projects, Waiting For, Someday/Maybe, Calendar — so they are retrievable at the right moment

Reflect

Review your system regularly (Weekly Review) to keep it current, complete, and trusted

Engage

Choose which actions to take based on context, time available, energy, and priority

Two-Minute Rule

If an action takes less than two minutes, do it immediately rather than deferring it

Projects List

Any desired outcome requiring more than one action step is a "project" tracked on a dedicated list with at least one next action

Contexts

Next actions are tagged by context (e.g., @computer, @phone, @errands) to batch work efficiently

Trusted System

All commitments are stored externally so the mind is free to focus on doing rather than remembering

Key Proponent

David Allen ("Getting Things Done: The Art of Stress-Free Productivity")

When to Use:

  • Managing a high volume of tasks, projects, and commitments across work and personal life

  • Reducing mental load and anxiety caused by open loops (unfinished commitments)

  • Setting up a reliable personal productivity and task management system

  • Improving focus by clarifying next actions rather than vague to-do items

  • Onboarding teams or individuals to structured workflow management

  • Combining with note-taking systems such as P.A.R.A. or todo.txt

Hemingway Bridge

Details
Full Name

Hemingway Bridge

Also known as

Stop Mid-Sentence Technique, Re-entry Point Strategy

Core Concepts:

Stop Before You Are Finished

End each work session deliberately before reaching a natural stopping point, while you still know exactly what comes next — preserving momentum for the next session

Re-entry Point

Leave a clear "bridge" to the next session: an unfinished sentence, a comment, a TODO note, or a short summary of the next steps so you can re-engage immediately without warm-up

Creative Energy Management

Avoid depleting all creative or cognitive energy in one session; stopping when energy is still high makes it easier to start again

Reduce Blank-Page Anxiety

By never fully stopping, you eliminate the paralysing "blank page" moment at the start of the next session

Momentum Preservation

The psychological state of "knowing what comes next" is transferred across time boundaries, keeping flow intact across interruptions

Session Notes

A brief note written at the end of a session ("next: implement X, blocked by Y") acts as an explicit Hemingway Bridge — a ready-made launchpad

Key Proponent

Ernest Hemingway (interviewed in George Plimpton (ed.), "The Paris Review Interviews"; practical elaboration by Steven Pressfield and others in the context of creative work)

When to Use:

  • Ending a coding, writing, or design session mid-task to ensure smooth re-entry next time

  • Managing long-horizon creative or analytical projects across multiple sessions

  • Combating procrastination and "blank page" paralysis at the start of work

  • Pair programming or team handovers — leaving an explicit next-action note in comments or a ticket

  • Daily work planning: close the day by writing tomorrow’s first action

  • Any knowledge work where cognitive warm-up cost is high

Karpathy’s LLM Wiki

Details
Full Name

LLM Wiki, from Andrej Karpathy’s post "LLM Knowledge Bases" (X, 2 April 2026) and the follow-up "idea file" llm-wiki.md (GitHub Gist, 4 April 2026).

Also known as

LLM Knowledge Base, the LLM Wiki pattern

Core Concepts:

Compile once instead of retrieving every time

Retrieval-augmented generation re-reads raw chunks for every question, so nothing accumulates. In the LLM Wiki the model reads each source once and writes what it learned into a persistent set of interlinked markdown pages. The gist calls the result "a persistent, compounding artifact".

Three layers

Raw sources are curated, immutable documents; the LLM reads them and never edits them. The wiki is LLM-generated markdown — source summaries, entity and concept pages, comparisons, an overview — and "the LLM owns this layer entirely". The schema is a configuration document such as CLAUDE.md or AGENTS.md that fixes structure, conventions and workflows; human and model refine it together.

Ingest

A new source goes into the raw layer. The LLM summarises it, updates the pages it touches (the gist puts it at ten to fifteen for one source), adds cross-references, flags contradictions with what the wiki already says, and records the step in the index and the log.

Index and log

index.md is a catalog of every page with a link and a one-line summary, grouped by category; the LLM reads it first when it answers. log.md is an append-only, chronological record of ingests, queries and lint passes, with greppable prefixes such as ## [date] ingest | Title.

Query and file back

The LLM answers from the wiki with citations, in whatever form fits — prose, a table, slides, a chart. A good answer does not vanish into the chat: it is filed back into the wiki as a new page, so explorations compound like ingested sources.

Lint

A periodic health check over the whole wiki: contradictions, stale claims, orphan pages, missing concepts and cross-references, and gaps that call for a new source.

The division of labour

Wikis kept by people decay because the bookkeeping — cross-references, updated summaries, reconciled contradictions — costs more than it seems to return. The LLM does that bookkeeping at almost no cost. In the gist’s words: "The human’s job is to curate sources, direct the analysis, ask good questions, and think about what it all means."

Deliberately abstract

The gist is an idea file meant to be pasted into a coding agent, not a tool. Directory layout, page types and tooling are left to the domain. It mentions Obsidian as a viewer, git for history and an optional search CLI, and says an index file is enough at moderate scale — about a hundred sources and hundreds of pages — without embedding-based retrieval.

Key Proponent

Andrej Karpathy, who links the idea loosely to Vannevar Bush’s Memex.

When to Use:

  • A body of documents — papers, notes, design docs, chat exports — that keeps growing and is asked about repeatedly

  • Research on one topic over weeks or months, where answers should build on earlier answers

  • Team knowledge that people stopped maintaining because cross-referencing was too much work

  • As the knowledge layer of a coding agent: the schema file is the agent’s instructions, the wiki its memory

  • When a retrieval pipeline keeps re-deriving the same synthesis and never reconciles contradicting sources

Common Misunderstandings:

  • ❌ "It is RAG with markdown files" — retrieval looks things up at question time; the wiki does the synthesis at ingest time and keeps it.

  • ❌ "The LLM may edit the sources" — the raw layer is immutable. It is what a lint pass checks the wiki against.

  • ❌ "You need a vector store to find pages" — at moderate scale the gist relies on index.md alone. The log is what lets human and model see what changed.

  • ❌ "Answers live in the chat" — an answer worth keeping becomes a page; otherwise the wiki stops compounding.

  • ❌ "Karpathy published a tool" — he published a pattern. The community implementations are someone else’s choices.

Criticism:

  • Lint does not keep up at scale. Michael Tuszynski ran the pattern for six months and reports three failure modes the gist does not mention: drift between a page’s changelog and its reference section, "the reference section below still describing the dead system as current"; silent contradictions, where "two pages both exist, both are internally consistent, and neither knows about the other"; and orphans and dead links, because "at three hundred pages, 'occasionally' is not a frequency — it’s a hope". His additions are a drift linter, per-domain sub-schemas, a vector index next to the wiki once it no longer fits in context, and lockfiles when several agents write. Tuszynski, "Karpathy’s LLM Wiki Works. Here’s What Broke When I Ran It at Real Scale." (13 August 2026).

  • Search frame. English, German and Chinese searches on 2026-10-15. Two further critical pieces were found but not read: a Towards AI article asking whether the pattern really replaces RAG returned HTTP 403, and a dev.to post on its token cost was found only as a listing. Japanese and Korean were not searched.

Current Status:

  • The pattern is recent, and so is the prior. It was published in April 2026. A prior test on 2026-10-15 found it on all three Claude 5.5 tiers: asked to design a support assistant over 400 documents, every baseline built retrieval with chunks and a vector index, and every run that named "Karpathy’s LLM Wiki" built the raw layer, the wiki, index.md, log.md and a lint pass, and filed good answers back. Models trained before April 2026 cannot know it. See the prior-test register.

  • Use the qualified name. The bare "LLM Wiki" works on the mid and strong tiers. The weak tier hedges and drops the log or the filing-back; asked directly who created the pattern, it declined to name anyone, though it named Karpathy when asked what an LLM Wiki is.

P.A.R.A. Method

Details
Full Name

P.A.R.A. Method (Projects, Areas, Resources, Archive)

Also known as

PARA Framework

Part of

Building a Second Brain (BASB): PARA is the Organize step of Forte’s CODE cycle. Name BASB when you also want capture, distillation and output; name PARA for the folder structure alone

Core Concepts:

Projects

Short-term efforts with a specific goal and deadline (e.g., "Launch website", "Write article")

Areas

Long-term responsibilities with a standard to maintain over time (e.g., "Health", "Finances", "Team Management")

Resources

Topics of ongoing interest or future relevance without a current action (e.g., "Machine Learning", "Design Patterns")

Archive

Inactive items from the other three categories — completed projects, dropped areas, or obsolete resources

Actionability principle

Items are organized by how actionable they are, not by topic or type

Tool-agnostic

Applicable to any note-taking or file management system (Notion, Obsidian, Roam Research, plain folders)

Single source of truth

Each piece of information belongs in exactly one of the four categories

Key Proponent

Tiago Forte ("Building a Second Brain")

When to Use:

  • Organizing notes, documents, or files across tools

  • Managing knowledge work with multiple concurrent projects

  • Setting up the folder structure of a personal knowledge management system (for the whole method, see Building a Second Brain)

  • Reducing time spent searching for information

  • Separating actionable work from reference material

  • Onboarding teams to a shared information architecture

  • Structuring documentation repositories or wikis

todo.txt-flavoured Markdown

Details
Full Name

todo.txt-flavoured Markdown Task Lists

Also known as

Enhanced Markdown Tasks, Markdown with todo.txt conventions

Core Concepts:

Markdown task lists

Standard GitHub-flavoured markdown syntax (- [ ] uncompleted, - [x] completed)

Priority markers

Uses todo.txt priority notation (A), (B), © where (A) is highest priority

Project tags

Prefixed with + to group related tasks (e.g., +website, +semantic-anchors)

Context tags

Prefixed with @ to indicate location/tool/context (e.g., @computer, @home, @research)

Key-value metadata

Structured data pairs like due:YYYY-MM-DD, priority:high, or custom fields

Date tracking

Creation dates and completion dates in ISO format (YYYY-MM-DD)

Human readability

Plain text format that remains readable without special tools

Tool-agnostic

Can be processed by both markdown renderers and todo.txt tools

Searchable and filterable

Easy to grep/search by tags, priorities, or metadata

Pattern Structure:

- [ ] (Priority) Task description +project @context key:value
- [x] YYYY-MM-DD (Priority) Completed task +project

Example Usage:

- [ ] (A) Review PR for +website @computer due:2024-02-03
- [x] 2024-02-01 (B) Update documentation +docToolchain
- [ ] (C) Research new feature +semantic-anchors @research
- [ ] Call team meeting @phone +project-planning due:2024-02-05
- [x] 2024-01-30 Fix bug in authentication +backend @computer
Key Proponents

Combines GitHub-flavoured Markdown task lists with Gina Trapani’s todo.txt format

Original References:

  • GitHub-flavoured Markdown task lists

  • todo.txt format specification by Gina Trapani

When to Use:

  • Task management in markdown documentation

  • Project planning and tracking in README files

  • GitHub issues and pull request descriptions requiring structured task lists

  • Personal productivity systems using plain text

  • Documentation that combines narrative with actionable tasks

  • When you need both human readability and programmatic parsing

  • Team collaboration where tasks need clear priorities and contexts

  • Generating consistent task list formats with LLMs

Benefits:

  • Leverages two well-established, widely recognized standards

  • Renders nicely in GitHub, GitLab, and other markdown viewers

  • Remains fully functional in plain text editors

  • Enables rich metadata without sacrificing readability

  • Facilitates both manual and automated task tracking

Current Status:

  • The underlying todo.txt format is alive and canonical at todotxt.org (Gina Trapani): one task per line, priorities as (A), projects as +project, contexts as @context

  • The prior is thin twice over: todo.txt itself is a single-maintainer niche ecosystem from the plain-text-productivity scene, and the Markdown-flavoured combination this anchor describes is a project-level convention on top — paste the concrete conventions into the prompt rather than relying on the name

Meta

Luhmann’s System Theory

Details
Full Name

Luhmann’s Sociological System Theory (Luhmannsche Systemtheorie)

Also known as

Theory of Autopoietic Social Systems, Functional-Structural Systems Theory

Core Concepts:

System/Environment Difference

A system defines itself by drawing a distinction (Differenz) between itself and its environment. "Es gibt kein System ohne Umwelt. Hier ist das System, dort die Umwelt. Wer das sagt, unterscheidet zwischen diesen beiden." (Luhmann, Einführung in die Systemtheorie, Kap. II)

Operational Closure

Systems reproduce themselves through their own operations. Social systems operate through communication, psychic systems through thought. No operation crosses the boundary. "Selbstreferentielle Geschlossenheit ist nur in einer Umwelt, ist nur unter ökologischen Bedingungen möglich."

Autopoiesis

Systems produce and reproduce their own elements. A system exists as long as operations connect to operations. "Ein System erhält sich dadurch, dass Operationen aneinander anschließen."

Structural Coupling

Systems cannot directly interact, but they can build expectation structures that make them sensitive to specific irritations from their environment. Language couples psychic and social systems.

Double Contingency

The foundational paradox of social interaction: "I will do what you want if you do what I want" — resolved only through the emergence of social systems. "Das gesamte Soziale kann als Antwort auf das Problem der doppelten Kontingenz gesehen werden." (Soziale Systeme, Kap. IV)

Self-Reference / Self-Observation

Systems observe themselves by distinguishing self-reference from external reference (Fremdreferenz). "Beobachten heißt: unterscheiden (→ differenzieren)."

Communication as Operation

Social systems consist of communication, not of people. Communication is the synthesis of information, utterance, and understanding.

Complexity Reduction

Systems reduce environmental complexity through selection. "Sinn" (meaning) is the medium through which psychic and social systems process complexity.

Functional Differentiation

Modern society differentiates into function systems (economy, law, politics, science, religion) each with their own binary code.

Key Proponents

Niklas Luhmann (Soziale Systeme, 1984; Einführung in die Systemtheorie, Vorlesung 1991/92, hg. v. Dirk Baecker), Humberto Maturana (autopoiesis, biological roots)

When to Use:

  • Analyzing complex socio-technical systems where boundaries are contested

  • Designing system architectures that respect operational closure of subsystems

  • Understanding why direct control often fails (systems can only be perturbed, not instructed)

  • Modeling emergent behavior in multi-agent or organizational systems

  • Identifying feedback loops and unintended consequences in automation design

  • Distinguishing between the system’s perspective and the observer’s perspective

Relationship to Other Anchors:

  • Foundation for the System-Theoretic Semantic Anchors framework (see separate proposal)

  • Complements Cynefin Framework (complexity classification) with operational theory

  • Provides the theoretical basis for Semantic Contracts (structural coupling, see separate proposal)

  • Contrasts with simpler input-output models of systems (e.g., early cybernetics)

  • Related to Feynman Technique at the meta-level: Luhmann demands understanding systems through their own logic

    Historical Context

    Luhmann developed his theory across 30+ books and 500+ articles. The Einführung in die Systemtheorie is a transcribed lecture course from 1991/92 and is considered the most accessible entry point. His work fundamentally challenges common-sense notions of communication, causality, and control.

Simon’s Constructivism

Details
Full Name

Simon’s Introduction to System Theory and Constructivism

Also known as

Simon’s Systemic Epistemology, Clinical Epistemology

Core Concepts:

Systemic Thinking = System-Theoretic Explanation

"Systemtheorie beschäftigt sich mit der 'Welt der Objekte'; aber sie isoliert sie nicht aus ihren realen Zusammenhängen, sondern setzt sie in Beziehung zueinander." Systemisches Denken ist systemtheoretisches Erklären — nicht nur Beschreiben. (Simon, Einführung in Systemtheorie und Konstruktivismus, Vorbemerkung)

Emergent Properties

"Systeme sind aus mehreren Teilen zusammengesetzte Einheiten, deren Eigenschaften emergent, d.h. nicht durch die schlichte Addition der Eigenschaften ihrer Teile herstellbar waren." (Kap. 1)

Trivial vs. Non-Trivial Machines

Trivial machines are predictable (same input → same output). Non-trivial machines depend on internal state — they are history-dependent and not fully predictable. Social systems are non-trivial machines. (Kap. 3.1)

Cybernetics of Cybernetics (2nd Order)

The observer is always part of the observed system. "Die Kybernetik der Kybernetik — der Beobachter wird in die Beobachtung einbezogen." (Kap. 3.2)

Viability vs. Truth

"Wahrheit vs. Viabilität — Die 'Passung' zwischen Landschaft und Landkarte." Knowledge is not "true" in an absolute sense, but viable if it enables successful operation in a given environment. (Kap. 4.5)

Information as "Differences that Make a Difference"

(Gregory Bateson) Information is not transmitted but created by the receiver. "Unterschiede, die Unterschiede machen." The Sender-Receiver model is replaced by circular causality. (Kap. 4.1)

Beobachtung = Unterscheiden und Bezeichnen

Every observation draws a distinction and names one side. The other side remains unmarked. (Kap. 4.3, following George Spencer-Brown)

Operational Closure

"Systeme sind operativ geschlossen und können nur nach ihrer eigenen Logik operieren." (Kap. 3.4)

Perturbation vs. Instruction

"Systeme können nicht instruiert, nur irritiert (perturbiert) werden." — A crucial principle for any intervention design. (Kap. 3.5)

Structural Coupling + Co-Evolution

Systems shape each other’s environments over time, leading to coordinated structural drift without direct causality. (Kap. 5.1)

Meaning Dimensions (Social, Factual, Temporal)

Every communication (in Luhmann’s sense) operates simultaneously in three dimensions: social (who), factual (what), temporal (when). (Kap. 6.4, following Luhmann)

Key Proponents

Fritz B. Simon (Einführung in Systemtheorie und Konstruktivismus, 2006, 8. Aufl. 2017), Humberto Maturana (autopoiesis), Gregory Bateson (cybernetics), Heinz von Foerster (constructivism), Ernst von Glasersfeld (radical constructivism)

When to Use:

  • Training teams in systemic thinking for complex problem-solving

  • Designing interventions where direct control is impossible (organizations, families, ecosystems)

  • Understanding why the same input produces different results in human systems

  • Developing feedback-aware designs for socio-technical systems

  • Distinguishing between explanation, description, and evaluation in requirements

  • Building awareness of observer bias in system design and analysis

Relationship to Other Anchors:

  • Pedagogical bridge between Luhmann’s System Theory and practical application

  • Theoretical foundation for Systemic Consulting methods

  • Provides the epistemological basis for the System-Theoretic Semantic Anchors framework (see separate proposal)

  • "Ten Commandments of Systemic Thinking" (Kap. 7) are a direct precursor to Semantic Contracts (see separate proposal)

  • Contrasts with purely technical systems theory (e.g., general systems theory, Bertalanffy)

    Quote

    "Regeln kann man leichter verändern als Menschen." (Fritz B. Simon)

The Spectrum of Semantic Anchors

What Qualifies as a Semantic Anchor

A term qualifies as a semantic anchor when it activates a rich, well-defined conceptual framework in the LLM’s training data. The key differentiator is definition depth – not whether the anchor is about domain knowledge or interaction patterns.

A good semantic anchor is:

Precise

It references a specific, established body of knowledge or methodology with clear boundaries

Rich

It activates multiple interconnected concepts, not just a single instruction or directive

Consistent

Different users invoking it will get similar conceptual activation across contexts

Attributable

It can be traced to key proponents, publications, established practices, or documented standards

Semantic anchors exist on a spectrum from domain-heavy to interaction-heavy:

Domain-heavy ◄──────────────────────► Interaction-heavy
   arc42          Pyramid Principle        Socratic Method
   SOLID          Rubber Duck Debugging    BLUF
   DDD            Five Whys                Chain of Thought

The distinction isn’t a strict category but rather a matter of emphasis. Most anchors have both dimensions:

Pyramid Principle

Domain knowledge about structured communication + behavior change in how output is structured

TDD, London School

Domain knowledge about testing + behavior change in how code is written

Socratic Method

Interaction pattern for dialogue + domain knowledge from philosophical tradition

The quality bar is the same across this spectrum – all anchors must be well-defined, rich, and activatable.

Counter-Examples

Well-known terms that are not semantic anchors because they lack definition depth:

"TLDR"

Underspecified, no defined structure or methodology, vague instruction to "be short"

"ELI5"

Vague target level, no pedagogical framework, no consistent interpretation

"Keep it short"

Pure instruction, no conceptual depth or established methodology

"Make it simple"

Ambiguous directive without reference to specific simplification frameworks

These terms may be useful in conversation, but they don’t activate rich conceptual frameworks the way true semantic anchors do.

The catalog itself is the list. Browse it on the catalog home page, filter it by category or role there, or read the quality criteria and the rejected proposals to see where the line is drawn in practice. Every measurement behind a tier rating is recorded in the prior-test register.

Problem Solving

A3 Problem Solving

Details
Full Name

A3 Problem Solving

Also known as

A3 thinking, the A3 management process, the A3 report

Core Concepts:

This Anchor Names the Method, Not the Paper Size

"A3" is used in two different ways, and they get confused constantly. One is a format — a single sheet 297 × 420 mm, as in the X-Matrix of hoshin-kanri, which is "a single-page A3 artifact". The other, meant here, is a problem-solving method with a fixed narrative sequence, as referenced in five-whys. Anything printed on one big sheet is an A3 in the first sense. Only the sequence below is A3 problem solving.

The Story Runs Left to Right

Background — why this matters. Current condition, with data and a drawing. Goal, stated as a measurable target. Root cause analysis, usually five-whys or a fishbone. Countermeasures. Implementation plan with owners and dates. Follow-up: how you will know it worked, and what you learned. The Lean Enterprise Institute lists the same span: "the current situation, the nature of the issue, the range of possible counter-measures, the best countermeasure, the means (who will do what when) to put it into practice, and the evidence that the issue has actually been addressed."

It Is PDCA on One Page

Left half is Plan. Right half is Do, Check, Act. The paper enforces the cycle’s order and makes a skipped step visible as a gap on the sheet.

The Constraint Is the Method

One sheet is not a stylistic preference. It forces selection, forbids the appendix, and makes an unclear problem statement impossible to hide behind volume. If the analysis does not fit, the problem is not yet understood.

It Is a Dialogue, Not a Document

In Shook’s account the A3 is written iteratively, challenged by a mentor, and rewritten. The owner has responsibility without authority and must gain agreement by argument. LEI is explicit that it is "a management process learned through dialogue rather than merely a document", and that the systematic approach holds "regardless of whether they are guided by or record their findings on an A3 document."

Key Proponents

John Shook, whose Managing to Learn: Using the A3 Management Process to Solve Problems, Gain Agreement, Mentor, and Lead (Lean Enterprise Institute, 2008) is the reference text; and Durward K. Sobek II with Art Smalley, Understanding A3 Thinking (Productivity Press, 2008).

When to Use:

  • A recurring problem that needs an owner, a cause, and a check — not a ticket and a guess

  • Incident and post-mortem write-ups where the discipline is to reach a cause and a countermeasure, not to narrate

  • Proposals that must win agreement across teams without positional authority

  • Coaching: the A3 is a mentoring instrument first, a report second

  • As the container for five-whys, which supplies the cause-analysis box but nothing around it

Common Misunderstandings:

  • ❌ "An A3 is any one-page summary" — that is the format sense; the method is the sequence

  • ❌ "The A3 is the deliverable" — Shook: "The A3 itself is nothing–it’s just a blank piece of paper you use to tell a story"

  • ❌ "Fill in the template and you are done" — the named failure mode, and Shook’s own objection to templates

  • ❌ "One pass is enough" — the method assumes rewriting under challenge

  • ✓ "It is PDCA made visible on a single sheet" — a fair and useful compression

Criticism:

  • The author’s own warning is about the template. John Shook, interviewed by Mark Graban: "I’m always skeptical of standard templates for something like that only because that tends to lean toward that tendency to see it as a fill-in-the-box exercise." And on where the difficulty actually lies: "You can learn to write an A3 in a day, but learning to use it as a management process takes much longer." Graban, "John Shook on A3 Problem Solving and the Managing to Learn Process" (6 January 2009). A method whose best-known proponent has to warn against its most common use is worth flagging as such.

  • Without a coach and a management system it does not take. Mike Loughrin of Transformance Advisors lists why A3 efforts fail: organisations underestimate the process, treating it as "one piece of paper, one pencil, and one eraser"; they short-change coaching — "Many have not required a coaching role while others have not trained their leaders with the skills required for success"; there is no system for launching, monitoring and closing projects; and the methodology gets forced onto problems better suited to other approaches, with poor scoping leaving efforts to stagnate past 120 days. Loughrin, "Why do A3 problem solving efforts often fail?" (no date given on the page).

  • The power is claimed to sit outside the artifact, which makes the method hard to adopt piecemeal. Sobek and Smalley: "The power of the A3 report, however, derives not from the report itself, but rather from the development of the culture and mindset required for the implementation of the A3 system." Understanding A3 Thinking, Productivity Press, 2008. Read as criticism, it is an admission: buying the form buys nothing.

Current Status:

  • The two senses of "A3" both remain in active use, including inside this catalog: hoshin-kanri uses A3 as a paper format for the X-Matrix, five-whys uses it as the problem-solving method. Neither is wrong. Say which one you mean, or a model will happily hand you a one-page layout when you asked for a root-cause discipline.

  • LEI still separates the thinking from the sheet. Its lexicon defines A3 thinking as "a systematic approach to resolving problems" and notes that "someone can follow this systematic approach, regardless of whether they are guided by or record their findings on an A3 document." LEI Lexicon, "A3 Report".

  • No standard, no edition drift. Unlike dmaic (ISO 13053) or qfd (ISO 16355), A3 carries no normative definition. Managing to Learn (2008) remains the canonical text and the strongest prior; templates in the wild vary in their box count and labels, which is exactly what Shook objected to.

Chain of Thought (CoT)

Details
Full Name

Chain of Thought Prompting

Core Concepts:

Step-by-Step Reasoning

Explicitly show intermediate reasoning steps before reaching a conclusion

Reasoning Transparency

Make the thought process visible, not just the final answer

Intermediate Representations

Break complex problems into smaller, manageable steps

Error Reduction

Exposing reasoning allows detection of logical errors mid-process

Complex Task Decomposition

Handle multi-step problems that cannot be solved in one jump

Zero-Shot CoT

Simple prompt like "Let’s think step by step" to trigger CoT behavior

Few-Shot CoT

Provide examples with reasoning chains to guide the model

Self-Consistency

Generate multiple reasoning paths and select most consistent answer

Key Proponents

Wei et al. (Google Research, 2022), "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models"

Historical Context

Breakthrough in LLM prompting research, significantly improved performance on reasoning tasks (math, logic, common sense)

When to Use:

  • Complex reasoning problems (multi-step math, logic puzzles)

  • When you need to verify the reasoning process, not just the answer

  • Debugging incorrect LLM outputs by seeing where reasoning went wrong

  • Teaching or explaining complex topics where steps matter

  • Problems requiring planning or strategy

  • Any task where intermediate steps provide value

  • Tree of Thoughts (ToT): Extension allowing branching and backtracking

  • Self-Consistency: Sample multiple reasoning paths

  • Least-to-Most Prompting: Build up from simple to complex

Example Prompt Pattern:

Problem: [Complex question]
Let's solve this step by step:
1. [First step]
2. [Second step]
...
Therefore: [Conclusion]

Current Status:

  • The core finding (Wei et al., NeurIPS 2022) is stable, but its practical relevance is cutoff-bound: reasoning models (late 2024 onward) internalise chain-of-thought during training — OpenAI’s own docs now advise against "think step by step" prompts for those models

  • Treat CoT output as a useful but unreliable window into model reasoning: Turpin et al., "Language Models Don’t Always Say What They Think" (2023) and Anthropic’s 2025 follow-up show stated reasoning can be unfaithful to the actual decision factors — not a safety or audit guarantee

Chesterton’s Fence

Details
Full Name

Chesterton’s Fence

Also known as

The fence-and-gate parable; "don’t remove a fence until you know why it was put up"

Core Concepts:

  • The parable moves the burden of proof onto the remover. G.K. Chesterton, The Thing (1929), chapter "The Drift from Domesticity": "There exists in such a case a certain institution or law; let us say for the sake of simplicity, a fence or gate erected across a road. The more modern type of reformer goes gaily up to it and says, 'I don’t see the use of this; let us clear it away.' To which the more intelligent type of reformer will do well to answer: 'If you don’t see the use of it, I certainly won’t let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it.'" Not seeing a reason is a fact about the observer, not about the fence.

  • The unexplained artifact is evidence, not noise. Chesterton’s supporting argument is the half that travels best into engineering: "The gate or fence did not grow there. It was not set up by somnambulists who built it in their sleep." A hard-coded seven-second retry delay, a feature flag that has been on for two years, a defensive check nobody can justify — each one is a cheap record of a failure that once happened to somebody.

  • It buys a delay, not a veto — and Chesterton wrote the exit clause himself. Two sentences later in the same essay: "If he knows how it arose, and what purposes it was supposed to serve, he may really be able to say that they were bad purposes, or that they have since become bad purposes, or that they are purposes which are no longer served." A good-faith, timeboxed investigation that turns up nothing earns the removal. Take it out reversibly — behind a flag, in a revertible commit — and watch the signal that would tell you the fence was load-bearing.

  • It looks backwards, where second-order thinking looks forwards. second-order-thinking asks "and then what?" about a change you are about to make. Chesterton’s Fence asks "and why is this here?" about something already standing. The two compose: recover the reason first, then trace what removing it sets in motion.

  • The dig is a method, not an attitude. git log and git blame on the line, git log -S on the unexplained string, the ticket or pull request that introduced it, the incident it followed, the on-call runbook and the alert definitions, and the author if they are still reachable. Operational documentation usually explains a strange line of code faster than the code does.

  • The effort scales with the blast radius. An unused CSS class and a retry delay in a payment flow do not deserve the same archaeology. Let what breaks if you are wrong set the timebox.

When to Use:

  • Inheriting or modernising a system whose oddities nobody on the current team can explain — the case the principle was made for

  • Any cleanup list that already contains the words "safe", "obviously unused" or "quick win"

  • Reviewing a pull request whose diff is mostly deletions

  • Deprecating an API, a config flag, a cron job or a database column that appears to have no callers

  • Joining a team and meeting a process that looks pointless from the outside

  • As a brake on a static analyser — or an LLM — that confidently reports dead code

Common Misunderstandings:

  • ❌ "Never change anything you don’t understand" — the principle demands an investigation, not permanent preservation. Chesterton explicitly allows destruction once the purpose is known and found wanting.

  • ❌ "The fence stays until someone proves it useless" — that turns the burden into an unfalsifiable one, because nobody can prove the absence of a reason. The test is a serious attempt to find the reason, bounded in time.

  • ❌ "It is an argument for tradition" — in Chesterton’s essay it was one. Applied to a codebase it is an argument about evidence: the artifact is the only surviving witness to a failure whose ticket is long closed.

  • ❌ "Understanding it means reading the code" — the reason is rarely in the code. It is in the incident, the contract, the regulator’s letter, the vendor who used to time out.

  • ✓ "It is a stopping rule for confident deletion" — fair, and that is what makes it usable rather than merely wise.

Criticism:

  • Reformers usually do see the use of the fence. Paul Currion reads the original essay against itself: "The problem is that, even in Chesterton’s day, none of the reformers he so clearly disdained failed to see the use of the fence; it was simply that they disagreed with people like Chesterton that that use was worth preserving the fence for." He also calls the framing gatekeeping rather than argument — Chesterton "doesn’t just want to have a debate about the anti-domestic drift; he wants to decide who is allowed to have that debate based on whether they meet his philosophical criteria", so "Chesterton’s fence is being erected to exclude somebody". Currion, "Tearing down Chesterton’s fence" (20 September 2020).

  • Invoked as a conversation-stopper, it is toothless. Kevin Corcoran’s objection is that the people arguing for removal have typically done the archaeology already: "Public choice theory meets Chesterton’s injunction to understand what led to these regulatory fences being created." Where that is so, "invoking Chesterton’s Fence is likewise toothless — the person doing so only shows they are a step behind in the discussion." Corcoran, "Misusing Chesterton’s Fence", Econlib (15 December 2022).

  • The removal process is itself a fence. Stuart Armstrong’s one-sentence post turns the principle on itself as "Chesterton’s meta-fence": "in our current system (democratic market economies with large governments) the common practice of taking down Chesterton fences is a process which seems well established and has a decent track record, and should not be unduly interfered with (unless you fully understand it)". Armstrong, LessWrong (5 January 2016). This is the cuts-both-ways form: caution about removal is a policy too, and it has costs nobody counts.

  • The principle cannot tell a wise fence from an unjust one. Arnold Kling: "Conservatives use the shorthand 'Chesterton’s Fence' to describe their position." His counter-example is segregation — "Racial segregation was wrong. But it was like a fence that had been in place for a long time. Does that mean it should be left in place?" — and his conclusion is a repair rather than a rejection: the argument "has to be more nuanced than just 'never tear down the fence'". Kling, "The Trouble with Chesterton’s Fence" (25 August 2023).

  • No named German-language critique was found. A German search returned only approving restatements. French, Spanish, Japanese and Chinese were not searched. That is a gap in our search, not in the discourse.

Current Status:

  • The name is not Chesterton’s. The string "Chesterton’s fence" does not occur anywhere in The Thing; the full text at gkc.org.uk carries the parable in "The Drift from Domesticity" and never the label. Chesterton wrote the parable, someone else named it. Who, and when, we could not establish from a citable source, so no coinage is claimed here.

  • The compressed version that circulates is also not his. Farnam Street states it as "Do not remove a fence until you know why it was put up in the first place" — shorter, sharper and not a sentence in the essay. The same page carries the caveat the short form loses: "The point is not that the status quo is always right, that every fence should remain standing." The LessWrong wiki entry is the other main route by which the label spread, and it collects the counter-arguments alongside it.

  • Software adopted it as a rule about legacy code, not about institutions. Oskar Dudycz’s essay on Chesterton’s Fence and software architecture (17 August 2022) is representative of the genre: the fence becomes the line of code whose purpose is lost, and the reform becomes a refactoring. This is a genuine shift of subject — Chesterton was defending the household, not a retry delay — and it is the sense in which the anchor is used today.

  • The drift is worth naming in one direction only. Nothing in the software reading contradicts the original argument; it narrows it. Where Chesterton’s critics attack the essay’s politics, the engineering use inherits none of it, because a payment service has no opponents to exclude.

  • A prior test on 2026-09-30 measured what naming it changes. On a legacy-modernisation scenario that did not imply the principle, no baseline named it unprompted. A weak-tier model without the anchor called removing always-on feature flags a "safe, high-confidence win"; with the anchor it inserted an "Understand the fence" phase and asked whether the flags were finished rollouts or kill switches for a known bad vendor path. A strong-tier baseline was already cautious, and what the anchor added there was method — read the runbook and the alert definitions before the code — plus an explicit rule for when removal is earned. See the prior-test register.

Crisis and Emergency Risk Communication (CERC)

Details
Full Name

Crisis and Emergency Risk Communication

Also known as

CERC — but see Common Misunderstandings: the bare acronym does not carry the meaning

Core Concepts:

  • Be First. An information vacuum does not stay empty. Communicating early, with a timestamp and an explicit account of what is not yet known, beats waiting for a complete picture.

  • Be Right. Accuracy over completeness: separate what is confirmed from what is unknown from what is being investigated, and commit in advance to correcting what turns out wrong.

  • Be Credible. Honesty and consistency over reassurance. Admitting uncertainty preserves the standing you will need for the next message.

  • Express Empathy. Name the disruption and the distress before explaining the cause. People who feel unacknowledged stop reading.

  • Promote Action. Give something concrete and feasible to do. Action restores a sense of control and displaces speculation.

  • Show Respect. Address the audience as capable adults. Dismissing concerns as irrational forfeits the trust the other five principles are spending.

  • Communication under uncertainty is the design premise. The framework assumes you must speak before the facts are in — which is exactly the situation a status update during an unresolved incident is written in.

  • The crisis has a lifecycle. Preparation, initial reaction, maintenance, resolution, evaluation. What the audience needs, and therefore what the message should carry, differs by phase.

When to Use:

  • Writing the first public statement about an incident whose cause is not yet known

  • Status pages, customer notifications and internal updates while an outage is still unresolved

  • Security disclosures, where the temptation to wait for certainty is strongest and most costly

  • Preparing the communication plan before the incident, which is the phase the framework treats as primary

Common Misunderstandings:

  • Using the bare acronym. "CERC" alone is not reliable vocabulary. Asked without context, a frontier model returns India’s Central Electricity Regulatory Commission, Canada Excellence Research Chairs and a coastal engineering centre before it reaches this framework — and in our measurement it did not reach it at all. Spell the name out. The prior-test register carries the evidence.

  • Reading "Be First" as speed over accuracy. It is first with what is known, including the fact that little is. The two principles constrain each other rather than compete.

  • Treating empathy as a tone. It is a content requirement — naming the concrete effect on the reader — not a softer register applied to the same sentences.

Criticism:

  • The framework has almost never been tested, and that is the central objection. Ann Neville Miller, Chad Collins, Lindsay Neuberger, Andrew Todd, Timothy L. Sellnow and Laura Boutemen, "Being First, Being Right, and Being Credible Since 2002: A Systematic Review of Crisis and Emergency Risk Communication (CERC) Research", Journal of International Crisis and Risk Communication Research (19 March 2021). They record the charge — CERC "has been criticized as lacking the coherence and unity necessary to serve as a framework for research" — and then measure it: "A total of 4,471 articles in 20 languages were screened, 400 full texts examined, and 19 articles included in the research and theory analysis, of which one tested tenets of the CERC model." Their conclusion: "CERC has rarely been theoretically tested, and we argue that reformulation of the propositions is necessary for empirical support of the model to proceed." The framework is distilled practice, not an empirically established model, and it should be named as such.

  • Its own custodian departed from it in the crisis that mattered most. Molly A. Sauer, Shaun Truelove, Amelia K. Gerste and Rupali J. Limaye organise their analysis of the US COVID-19 response around the six principles and find the credibility principle broken by the CDC itself. On the revised school-reopening guidance of late July 2020: "This perceived bowing to political pressure, rather than relying on scientific rigor, was another blow to the CDC’s credibility." "A Failure to Communicate? How Public Messaging Has Strained the COVID-19 Response in the United States", Health Security 19(1), 65—​74 (18 February 2021). This is evidence about institutions under pressure rather than about the principles — and it is the case every reader will have in mind.

  • No citable German-language criticism was found, and no pass was run in French, Spanish, Chinese, Japanese or Korean. Given that the systematic review above screened 20 languages and still found near-nothing, thinness is plausible here rather than merely unmeasured — but the honest statement remains: absent in our search.

Current Status:

  • There is no single current edition of the manual. The CDC now serves it as per-chapter PDFs with different years: Introduction to CERC (2018), The Psychology of a Crisis (2019), Messages and Audiences (2018), Community Engagement (2018), Crisis Communication Plans (2014), Spokesperson (2014), Working with the Media (2014). Manual index, page date stamp 20 November 2024. Citing "the 2018 edition" is therefore only partly right.

  • Older CERC links are probably stale. The content moved to the /cerc/php/…​ URL scheme in the 2024 site reorganisation. The six-principle set itself appears in current CDC material carrying 2024 date stamps, so the framework is live rather than archived.

  • The model paper. Reynolds B, Seeger MW, "Crisis and emergency risk communication as an integrative model", Journal of Health Communication 10(1), 43—​55 (2005). Attribution is split in practice and worth keeping split: the integrative model paper is Reynolds and Seeger; the manual, the training programme and the six-principle formulation are the CDC’s as an institution.

  • Whether the principle wording drifted between the 2012, 2014 and 2018 chapter generations we did not establish. The chapter structure demonstrably changed; the six principles appear stable, which is an observation and not a verified continuity.

Decisional Balance Sheet

Details
Also known as

Benjamin Franklin Analysis, Moral Algebra, Pros-and-Cons Sheet

Core Concepts:

Four-Cell Matrix

The full Janis & Mann form has four categories of consequence for each alternative — utilitarian gains/losses for self, utilitarian gains/losses for significant others, self-approval/disapproval, and approval/disapproval from others. Stretches "pros and cons" beyond instrumental outcomes into identity and social cost.

Simplified Two-Column Form

The everyday "pros vs cons" list popularised by Benjamin Franklin (1772 letter to Joseph Priestley). Strictly a degenerate case of the four-cell matrix — useful for quick decisions, lossy for complex ones.

Weighting

Each entry gets a numeric weight reflecting its importance. The decision is not a vote count — the discipline is to make trade-offs explicit, not to mechanise the choice.

Resolving Ambivalence

The artifact’s primary purpose is not arithmetic but surfacing concerns the decider has not yet articulated. Listing the cons of a tempting option, or the pros of the rejected one, breaks the "all pros, no cons" framing that drives impulsive decisions.

Decisional Conflict

Janis & Mann’s parent theory; high-stakes decisions produce stress that distorts judgment. The balance sheet is one of several debiasing techniques alongside vigilant information search and contingency planning.

Motivational Interviewing Variant

In the Prochaska–DiClemente Stages of Change model and Miller & Rollnick’s Motivational Interviewing, the balance sheet is used to elicit change-talk: the client says the cons of staying the same and the pros of changing — moving them through ambivalence rather than persuading them.

Limits

The model is deliberative, not intuitive. It works poorly under time pressure and for decisions dominated by uncertainty (where Pugh Matrix or scenario-based methods fit better). It also doesn’t surface options that aren’t on the list — separate from the option-generation step.

Key Proponents

Irving Janis & Leon Mann ("Decision Making: A Psychological Analysis of Conflict, Choice, and Commitment", 1977 — the formal four-cell model). Benjamin Franklin (1772 letter, "moral algebra" — the informal pros/cons ancestor). William R. Miller & Stephen Rollnick ("Motivational Interviewing", 1991) for the clinical adaptation.

Historical Context

Franklin’s pros/cons letter is one of the earliest documented decision-aid techniques in the Western tradition. Janis & Mann turned it into a research instrument in the 1970s; the simplified two-column form has spread through self-help, coaching, and Motivational Interviewing into mainstream use. Now a staple of decision coaching, financial advisory, and health-behaviour-change interventions.

When to Use:

  • Personal or career decisions where the alternatives are roughly comparable and the deciding factor is the decider’s own clarity

  • Coaching conversations where the client is stuck in ambivalence — the four-cell version surfaces concerns the simple pros/cons list misses

  • Pre-mortem variant: pre-listing the "approval/disapproval from others" cell often predicts political resistance the team forgot to address

  • Motivational Interviewing settings — health behaviour, addiction recovery, career changes

  • Decision documentation in low-formality contexts where a full ADR is overkill but "we considered the alternatives" must be visible

  • Pugh Matrix — scores alternatives against weighted criteria; complement when uncertainty or technical trade-offs dominate over personal/social cost

  • ADR according to Nygard — captures architecture decisions with Context/Decision/Consequences; the balance sheet feeds the Consequences section

  • MoSCoW — prioritisation among items chosen after the decision is made; the balance sheet helps decide whether to do the work at all

Devil’s Advocate

Details
Full Name

Devil’s Advocate (Latin: Advocatus Diaboli)

Core Concepts:

Systematic Counter-Argumentation

Present opposing viewpoints even if not personally held

Assumption Challenging

Question premises and surface hidden assumptions

Stress-Testing Ideas

Identify weaknesses before they become problems

Steelmanning

Present the strongest version of the opposing argument, not a strawman

Intellectual Honesty

Separate idea evaluation from ego or political concerns

Pre-Mortem Thinking

Imagine failure scenarios to prevent them

Dialectical Reasoning

Thesis + Antithesis → Synthesis

Risk Identification

Surface potential problems proactively

Key Origin

Catholic Church canonization process (Promotor Fidei role, formalized 1587), secularized in critical thinking and decision-making

Historical Context

400+ years as formalized practice in the Church, adopted widely in law, philosophy, business strategy, and red teaming

When to Use:

  • Critical design or architecture decisions where failure is costly

  • Security threat modeling (red teaming)

  • Evaluating business strategies or proposals

  • Pre-mortems before launching significant initiatives

  • Code review where you want to challenge assumptions

  • Risk assessment and contingency planning

  • Any high-stakes decision where being wrong is expensive

  • Red teaming (security context)

  • Pre-mortem analysis

  • Dialectical reasoning

  • Critical thinking frameworks

  • Steelmanning (vs. strawmanning)

Example Prompt Pattern:

I propose [idea/design/decision].
Play devil's advocate: What are the strongest arguments against this approach?

DMADV

Details
Full Name

Define, Measure, Analyze, Design, Verify

Also known as

DFSS, Design for Six Sigma

Core Concepts:

Quality is Designed In, Not Inspected In

DMADV exists because the cheapest place to remove a defect is the drawing board. Once a product or process is built, dmaic can only push its capability toward the limit the design allows. DMADV sets that limit.

The Five Phases Owe Different Deliverables Than DMAIC’s

Same first three letters, different work:

  • Define — the design mandate: customer segments, the business case, and the scope of what is being created. Not a defect to be reduced, but a gap to be filled.

  • Measure — the Voice of the Customer translated into measurable CTQs (Critical to Quality) with targets and tolerances. There is no process to baseline yet, so "measure" means quantify the requirement, not the status quo.

  • Analyze — generate and compare design concepts against the CTQs, then pick one. This is the phase where pugh-matrix and kano-model earn their keep.

  • Design — the detailed design: parameters, tolerances, and a predicted capability for each CTQ, usually with fmea on the chosen concept and designed experiments on the critical parameters.

  • Verify — build it, run pilot production, and demonstrate that the delivered thing meets the CTQs before handover to operations.

Verify is Not Control

DMAIC’s last phase sustains a gain that already exists. DMADV’s last phase proves a prediction. The question is not "is it still holding?" but "did the design do what the model said it would?" Handover to an operational control plan happens after Verify, which is where the two roadmaps meet.

Predicted Capability Instead of Measured Capability

Through Analyze and Design there is no process to measure, because it does not exist yet. Prototypes, DOE runs and simulations do produce data, but the capability of the future process is predicted from models — transfer functions, tolerance stacks, capability estimates — and only confirmed against the real thing in Verify. That gap between predicted and demonstrated capability is the method’s core bet and the source of most of its criticism.

Design Freeze as a Tollgate

Like DMAIC, phases end in formal reviews and a project can be stopped at one. The tollgate at the end of Design is the expensive one: after it, changes cost an order of magnitude more.

The Trigger That Picks DMADV

Use DMADV when the process does not exist yet, or when an existing process is so far from the requirement that improving it cannot close the gap. If a capable process is merely running badly, DMADV is the wrong tool and dmaic is the right one.

When to Use:

  • Designing a new product, service or process where the quality target is fixed before the first prototype

  • Replacing a process whose entrenched capability cannot reach the requirement, no matter how well it is tuned

  • Translating fuzzy customer wishes into numeric, testable acceptance targets before the architecture is chosen — the CTQ step is useful far outside manufacturing

  • Comparing design concepts on explicit criteria rather than on whoever argues loudest

  • As the counterpart to dmaic in a portfolio: naming which of the two applies is itself a decision worth making out loud

Common Misunderstandings:

  • ❌ "DMADV and DMAIC differ only in the last two letters" — they differ in what Measure and Analyze mean. DMAIC measures a process; DMADV quantifies a requirement. DMAIC analyses causes; DMADV analyses concepts.

  • ❌ "DFSS is a standardised roadmap like DMAIC" — it is not. DMADV, IDOV and DDICA all circulate under the DFSS label, and no single one won.

  • ❌ "Verify means testing the finished product" — Verify means demonstrating the predicted capability on pilot output, against the CTQs fixed in Measure.

  • ✓ "DMADV is a stage-gate design process with a statistics habit" — fair, and the reason it collides with design cultures that work by iteration.

Criticism:

  • Applied to invention, it damages invention. The most-cited case is 3M. Brian Hindo’s report names DFSS explicitly as one of the two Six Sigma tools CEO James McNerney imported: "The other flavor is called Design for Six Sigma, or DFSS, which purports to systematize a new product development process." Post-it note inventor Art Fry "places the blame for 3M’s recent lack of innovative sizzle squarely on Six Sigma’s application in 3M’s research labs", and 3M R&D vice-president Larry Wendling conceded: "We were letting, I think, the process get in the way of doing the actual invention." Successor CEO George Buckley "loosened the reins a bit by removing 3M research scientists' obligation to hew to Six Sigma objectives." Hindo, "At 3M, A Struggle Between Efficiency And Creativity", BusinessWeek, 11 June 2007.

  • The evidence points the same way beyond the anecdote. The same report cites work by Wharton’s Mary Benner and Harvard’s Michael L. Tushman analysing patents in paint and photography firms before and after a quality drive: "after the quality push, patents issued based primarily on prior work made up a dramatically larger share of the total, while those not based on prior work dwindled." A design method that shifts output toward the incremental is a poor fit for the phase whose job is the non-incremental.

  • The translation tool at DMADV’s heart produces numbers that do not mean what designers think they mean. Andrew Olewnik and Kemper Lewis studied the House of Quality, the QFD matrix that converts customer attributes into engineering targets in the Measure phase, and concluded that "while the tool offers conceptual support to the design process, the quantitative information that results is largely invalid." Olewnik & Lewis, "Limitations of the House of Quality to provide quantitative design information", International Journal of Quality & Reliability Management 25(2), 2008, pp. 125–146.

  • Its optima are model optima. The Design for Six Sigma overview states the standing objection to the statistical-modelling step plainly: even the best statistical model is an approximation to reality, so an estimated optimum need not be an actual optimum. DMADV inherits every weakness of the model it designs against, and it commits to that model before there is anything to measure.

Current Status:

  • DMAIC was standardised; DMADV was not. Six Sigma’s improvement road became ISO 13053-1:2011, whose title says "Part 1: DMAIC methodology" — see dmaic. The design road has no comparable single roadmap: DMADV shares the DFSS label with IDOV (identify, design, optimise, verify) and DDICA, among others. Anyone who says "we run DFSS" has said less than they think.

  • The name still travels better than the practice. DMADV remains the canonical answer to "what is the design-side counterpart of DMAIC?" and that is the prior a model reliably serves. Which phases a given organisation actually runs varies far more than the acronym suggests.

  • Its tools outlived the roadmap. QFD, pugh-matrix, design fmea and designed experiments are all in routine use in product development without anyone invoking DMADV. As an anchor, DMADV is most useful as the name of the sequence; the individual tools have their own, stronger priors.

DMAIC

Details
Full Name

Define, Measure, Analyze, Improve, Control

Also known as

the Six Sigma improvement cycle, DMAIC roadmap

Core Concepts:

Five Gated Phases

The cycle runs in a fixed order, and each phase owes a defined deliverable before the next begins:

  • Define — the business problem, goal, scope and timeline, captured in a project charter with the customer’s CTQs (Critical to Quality)

  • Measure — a baseline of current performance, with operational definitions and a check that the measurement system itself is trustworthy

  • Analyze — root causes, identified and validated against the data, not merely proposed

  • Improve — solutions that address those causes, piloted before rollout

  • Control — a control plan that holds the gain: monitoring, response plans, ownership

Measurement Before Improvement

The gate between Measure and Analyze is the method’s backbone. No improvement is proposed before a baseline exists, so the effect can be demonstrated rather than asserted.

Root Cause Before Solution

Analyze is deliberately separated from Improve, which forces causes to be established before remedies are designed — the opposite of the usual reflex to solution first.

Tollgate Reviews

Phase transitions are formal reviews, not soft handovers. A project can be stopped at a gate.

The Control Phase is the Differentiator

Most improvement approaches end when the fix ships. DMAIC treats sustaining the gain as its own phase, typically with SPC control charts — this is where the anchor meets spc, control-chart-shewhart and nelson-rules.

DMADV, the Sibling

DMAIC improves an existing process. For a new product or process design, Six Sigma uses DMADV (Define, Measure, Analyze, Design, Verify), also called DFSS. Naming the wrong one sends the output down the wrong road.

PDCA Lineage

The Six Sigma project methodologies are inspired by W. Edwards Deming’s Plan-Do-Study-Act cycle; DMAIC is its phase-gated, measurement-heavy descendant.

Key Proponents

Bill Smith, who introduced Six Sigma at Motorola in 1986; Mikel J. Harry; General Electric, where Jack Welch made it central to business strategy in 1995.

When to Use:

  • Improving an existing process whose performance is unsatisfactory but whose cause is unknown

  • Any task where the temptation is to jump straight to solutions — DMAIC forces a baseline and a validated cause first

  • Quality and reliability work that has to stay fixed, because the Control phase is explicit

  • Structuring an improvement initiative into reviewable stages with named deliverables

  • As the frame around spc: DMAIC is the project, SPC is what runs in its Control phase

Common Misunderstandings:

  • ❌ "DMAIC is for manufacturing only" — ISO 13053-1 explicitly covers service and transactional processes

  • ❌ "DMAIC designs new processes" — that is DMADV; DMAIC improves existing ones

  • ❌ "The phases can be reordered or skipped" — the gates are the method; without Measure before Improve it is just a to-do list

  • ✓ "DMAIC is PDCA with gates and statistics" — a fair summary, and the basis of one of its criticisms

Criticism:

  • Not original. Quality expert Joseph M. Juran, via the Six Sigma overview: "there is nothing new there. It includes what we used to call facilitators. They’ve adopted more flamboyant terms, like belts with different colors." The core loop is Deming’s PDSA under new branding.

  • It can suppress the work it measures. A BusinessWeek report on James McNerney’s introduction of Six Sigma at 3M found it stifled creativity, and the method was withdrawn from the research function. Design News editor John Dodge: "excessive metrics, steps, measurements and Six Sigma’s intense focus on reducing variability water down the discovery process." Variance reduction is the wrong objective where variance is the point.

  • Most projects fail. A 2010 Wall Street Journal figure cited in the same overview puts the failure rate of Six Sigma projects above 60%.

  • The statistics are contested. Statistician Donald J. Wheeler dismissed the 1.5-sigma shift — the assumption underpinning the "3.4 defects per million" headline — as "goofy" (2004). Over-reliance on statistical method and misreading of p-values are recurring complaints.

Current Status:

  • DMAIC is unusual among management methods in being standardised: ISO 13053-1:2011 ("Quantitative methods in process improvement — Six Sigma — Part 1: DMAIC methodology") specifies best practice for each phase, the project roles, and their training; Part 2 covers the tools per phase. Its scope explicitly includes service and transactional processes, not only manufacturing.

  • In practice the dominant contemporary form is Lean Six Sigma, which pairs DMAIC’s measurement discipline with Lean’s focus on flow and waste. The prior most training data serves is the five-phase DMAIC cycle as described here.

Double Diamond

Details
Full Name

Double Diamond Design Process Model

Also known as

4Ds Model, Design Council Double Diamond

Core Concepts:

Two Diamonds, Four Phases

Discover → Define → Develop → Deliver. Each diamond is one divergent-convergent cycle. The first diamond explores and frames the problem; the second diamond explores and ships the solution.

Discover (Divergent, Problem Space)

Broad research — interviews, observation, immersion, data analysis. Goal: widen the understanding of what’s actually going on, not jump to causes.

Define (Convergent, Problem Space)

Synthesize findings into a sharp problem statement. The famous slogan: "Are we solving the right problem?" — the diamond ends with a problem worth solving, not a list of features.

Develop (Divergent, Solution Space)

Generate many candidate solutions — sketches, prototypes, co-design workshops. Diverge widely before narrowing; resist solution fixation.

Deliver (Convergent, Solution Space)

Test, refine, ship. The chosen concept is iterated until it’s production-ready; failed candidates are explicitly killed rather than left lingering.

Design the Right Thing, Then Design the Thing Right

The canonical summary. The first diamond addresses "right thing" (problem worth solving); the second addresses "thing right" (solution that works).

Divergent Before Convergent

A hard discipline at every phase. Premature convergence — picking the obvious problem or obvious solution — is the failure mode the model is designed to prevent.

Iteration, Not Waterfall

The diamonds are not strictly linear. Learnings in Develop frequently send the team back to Discover or Define. The 2019 Framework for Innovation update made this explicit.

Mindsets and Principles

The Design Council pairs the four phases with four principles (Put people first, Communicate visually and inclusively, Collaborate and co-create, Iterate, iterate, iterate) — the diamonds without the mindset is just process theater.

Key Proponents

UK Design Council (originally published 2005; expanded as Framework for Innovation in 2019). Built on the divergent-convergent tradition of J.P. Guilford (1956) and Béla H. Bánáthy.

Historical Context

Developed by the Design Council in 2005 after research into how leading design organizations actually worked. The 2019 update reframed it as a system-level innovation framework, adding the principles, key roles, and explicit iteration arrows. Adopted broadly in UX, service design, government innovation (UK GDS, NHS, Danish Mindlab), and design education.

When to Use:

  • Framing UX or service design projects when the team is at risk of jumping to solutions

  • Innovation workshops and design sprints — the diamonds give a shared visual model for sequencing divergent and convergent work

  • Discovery phases of product development when the problem itself is not yet well understood

  • Teaching design thinking — the model is more concrete than abstract "design thinking" because it names the four moves

  • Communicating why a discovery phase is necessary to stakeholders who want to skip straight to delivery

  • Jobs to be Done — sharpens the Define output by reframing customer needs as functional, emotional, and social jobs

  • Problem Space (NVC) — separates needs from strategies; complements the first-diamond discipline of staying in problem space

  • XY Problem — anti-pattern that the first diamond is designed to prevent (solving Y before understanding X)

  • MVP — the Deliver output is often shaped as an MVP to validate the chosen solution against the defined problem

Fermi Estimation

Details
Also known as

Order-of-Magnitude Estimation, Back-of-the-Envelope Calculation, Fermi Problem, Guesstimation

Core Concepts:

Decomposition

Break an unknown quantity into a chain of smaller sub-quantities you can each estimate with some confidence

Order-of-magnitude reasoning

Reason in powers of ten; aim to land the right power of ten rather than an exact figure

Bracketing

For each sub-quantity, pick a plausible lower and upper bound, then take the geometric mean of the bounds as the estimate

Error cancellation

Independent over- and under-estimates tend to cancel, so the product of many rough guesses is often within a factor of 2-3 of the true value

Sanity check / sizing

Use the estimate to test whether a claim, design, or measured number is even plausible before investing in precision

The piano-tuner problem

Fermi’s classic teaching example — "How many piano tuners are there in Chicago?" — solved by chaining population, pianos per household, tuning frequency, and tuner throughput

Key Proponents

Enrico Fermi (estimated the Trinity-test yield by dropping paper scraps in the blast wave, landing within an order of magnitude); Lawrence Weinstein and John A. Adam ("Guesstimation: Solving the World’s Problems on the Back of a Cocktail Napkin", Princeton University Press, 2008)

When to Use:

  • Sizing a system before committing to detailed analysis (capacity, cost, traffic)

  • Build-vs-buy and feasibility checks where exact numbers are unavailable

  • Interview and whiteboard estimation problems

  • Validating a surprising metric or vendor claim against rough physical limits

  • Prompting an LLM to sanity-check a quantitative estimate by decomposing it and reasoning in powers of ten

Feynman Technique

Details
Full Name

Feynman Technique (also Feynman Learning Method)

Core Concepts:

Explain Simply

Teach the concept in simple language as if to a beginner (traditionally "explain to a 12-year-old")

Identify Gaps

When you struggle to explain, you’ve found gaps in your understanding

Return to Source Material

Go back and re-learn the parts you couldn’t explain clearly

Simplify and Use Analogies

Refine explanation using plain language and concrete examples

Iterative Refinement

Repeat the cycle until you can explain clearly and simply

No Jargon Hiding

Inability to avoid jargon signals lack of true understanding

Active Learning

Transform passive reading into active teaching

Metacognition

Become aware of what you don’t know

Key Attribution

Richard Feynman (Nobel Prize-winning physicist, 1965), famous for making complex physics accessible

Historical Context

Feynman was renowned for his teaching ability and his belief that deep understanding meant being able to explain simply. The "technique" is a formalization of his learning approach.

When to Use:

  • Learning new technical concepts or frameworks

  • Validating your understanding before using knowledge in practice

  • Preparing to teach or present a topic

  • Debugging conceptual confusion

  • Code review where you explain your design choices simply

  • Documentation writing (if you can’t explain it simply, you don’t understand it)

Four Steps (Canonical Form):

  1. Choose a concept: Pick the topic you want to understand

  2. Teach it to a child: Write an explanation in simple terms

  3. Identify gaps and review: Where you struggle, study more

  4. Simplify and analogize: Refine your explanation, use examples

  • Rubber Duck Debugging (explaining to understand)

  • Learning by teaching

  • Active recall

  • Elaborative interrogation

  • Plain language movement

    Quote

    "If you can’t explain it simply, you don’t understand it well enough." (Often attributed to Einstein, but embodies Feynman’s philosophy)

First Principles Thinking

Details
Full Name

First Principles Thinking

Also known as

Reasoning from First Principles, Reasoning from Fundamentals

Core Concepts:

Reduce to fundamentals

Break a problem down to the basic truths that cannot be deduced from anything more fundamental, then reason upward from those

Reason vs. analogy

Contrast with reasoning by analogy ("we do it this way because that’s how it’s done") — first principles rebuild the answer from the ground up

Challenge inherited assumptions

Each "requirement" or "constraint" is interrogated: is it a law of nature, or merely convention/legacy that can be discarded?

Ground-up synthesis

After identifying the irreducible elements, recombine them into a solution unconstrained by how the problem was solved before

Cost of the method

Powerful but expensive — reserve it for high-stakes or stuck problems; reasoning by analogy is fine for routine decisions

Key Proponents

Rooted in Aristotle (the "first cause"/archē); sharpened by René Descartes' methodical doubt; popularized in modern engineering discourse (e.g. Elon Musk’s cost-of-batteries example)

When to Use:

  • A problem feels blocked because "that’s just how it’s done"

  • Re-examining requirements, cost structures, or architecture constraints

  • High-stakes design decisions where analogy may mislead

  • Teaching learners to separate fundamental truths from convention

When NOT to Use:

  • Routine decisions where established patterns are good enough — the method is costly

  • When proven best practices already encode hard-won fundamentals

Five Whys (Ohno)

Details
Full Name

Five Whys Root Cause Analysis

Core Concepts:

Iterative Causal Analysis

Ask "Why?" repeatedly (typically ~5 times) to drill down to root causes

Root Cause vs. Symptom

Distinguish between surface symptoms and underlying causes

Causal Chain

Each answer becomes the subject of the next "Why?" question

Actionable Root Cause

Continue until you reach a cause that can be acted upon

Simplicity

No complex tools or statistical analysis required

Team-Based Investigation

Collaborative exploration of causal relationships

Avoiding Blame

Focus on process failures, not individual fault

Countermeasure Identification

Once root cause is found, design interventions

Key Proponent

Taiichi Ohno (Toyota Production System, 1950s)

Historical Context

Core tool in Lean Manufacturing and Toyota Production System (TPS), foundational to continuous improvement (Kaizen)

When to Use:

  • Incident post-mortems in software/DevOps

  • Debugging when surface fixes don’t resolve the issue

  • Process improvement initiatives

  • Understanding recurring problems

  • Quality defect analysis

  • Any situation where symptoms are clear but causes are not

  • Kaizen (continuous improvement)

  • Root Cause Analysis (RCA)

  • Fishbone Diagram (Ishikawa) – complementary tool

  • A3 Problem Solving (Toyota)

  • DevOps post-mortem culture

Pitfall to Avoid:

  • Stopping too early at a symptom rather than root cause

  • Pursuing a single causal chain when multiple factors contribute (use Fishbone Diagram for complex causality)

  • Blame-focused questioning rather than system-focused

Example Application:

Problem: Website is down
Why? → Database connection failed
Why? → Connection pool exhausted
Why? → Long-running queries not timing out
Why? → No query timeout configured
Why? → Default configuration was never reviewed for production
Root Cause: Configuration review process missing
Countermeasure: Establish pre-production configuration checklist

Criticism:

  • Alan J. Card, "The problem with '5 whys'" (BMJ Quality & Safety, 2017) — no evidence of effectiveness despite wide institutional adoption; the technique pushes investigators down a single linear causal path and its results are not reproducible across teams

  • John Allspaw, "The Infinite Hows (or, the Dangers of the Five Whys)" (2014) — "why" questions invite blame and narrative bias in complex systems; he proposes asking "how" about the conditions instead

  • The deeper objection: in complex systems a single root cause often does not exist — incidents emerge from interacting contributing factors, which a five-step linear chain cannot represent

FMEA

Details
Full Name

Failure Mode and Effects Analysis

Also known as

FMECA (Failure Mode, Effects and Criticality Analysis) when a criticality step is added; Design FMEA (DFMEA) and Process FMEA (PFMEA) by scope

Core Concepts:

Bottom-Up, Not Top-Down

FMEA starts at the component or process step and asks what can fail here, then traces the effect outward. Fault tree analysis works the other way, from an undesired event down to its causes. Picking the wrong direction produces a plausible-looking document that answers a question nobody asked.

Three Questions Per Failure Mode

For every way an item can fail, the analysis records its effect (what the customer or system notices), its cause (why it happens), and its controls (what prevents it or detects it). These are separate columns because they have separate remedies: prevention attacks the cause, detection attacks the escape.

Three Ratings, and What Used to Be Done With Them

Each failure mode is rated for Severity, Occurrence and Detection, classically on a 1–10 scale. The traditional Risk Priority Number is their product — RPN = S × O × D — used to rank what gets fixed first. That multiplication is where the method’s central controversy sits; see Criticism and Current Status.

Prevention Beats Detection

A control that stops a failure mode from occurring is worth more than one that catches it afterwards, and the rating scheme is meant to reflect that. Systems that chase a low RPN often improve Detection because it is cheapest, which lowers the number without lowering the risk.

Forward-Looking, Unlike Root Cause Analysis

five-whys and ishikawa-diagram work backwards from something that already happened. FMEA works forwards from something that has not happened yet, which makes it a sibling of premortem in intent and of stride in structure — both enumerate failure modes against a model before there is damage to investigate.

A Living Document, Not a Deliverable

An FMEA that is written once for an audit and never reopened has lost its function. Its value is in being revisited when the design, the process or the field data change.

Key Milestones

Procedures were described in 1949 in the US military document MIL-P-1629, revised as MIL-STD-1629A in 1980; NASA contractors applied variants across Apollo, Viking, Voyager and Skylab; Ford introduced FMEA after the Pinto affair and extended it to process FMEA; AIAG published the first automotive FMEA standard in 1993.

When to Use:

  • Designing or changing something whose failure is expensive, dangerous or hard to reverse

  • Before a launch, migration or cutover, to enumerate failure modes while there is still time to add controls

  • Safety and regulatory work, where an auditable record of considered failure modes is itself a requirement — see iec-61508-sil-levels

  • In software: dependency and interface failure analysis, resilience reviews, and anything where "what happens when this call never returns?" needs a written answer

  • As the risk counterpart to dmaic: FMEA is a standard tool in its Analyze and Improve phases

Common Misunderstandings:

  • ❌ "FMEA finds the root cause of an incident" — it is a prospective method. For an incident that already happened, use five-whys or ishikawa-diagram.

  • ❌ "A low RPN means low risk" — a severity-10 failure mode with a low RPN is still a severity-10 failure mode. The number hides exactly what matters most.

  • ❌ "FMEA covers combined failures" — used bottom-up it finds single-point failure modes. Failures that require two subsystems to fail together are largely invisible to it.

  • ❌ "RPN is what FMEA is" — the automotive standard has dropped RPN in favour of Action Priority. The ratings survived; the multiplication did not.

  • ✓ "FMEA is a structured pessimism exercise with an audit trail" — fair, and the reason it pairs well with premortem.

Criticism:

  • The RPN ranks things wrongly, by construction. The FMEA overview states the defect precisely: "The multiplication of the severity, occurrence and detection rankings may result in rank reversals, where a less serious failure mode receives a higher RPN than a more serious failure mode." Rank reversal is not an error in applying the method; it follows from multiplying ordinal ratings.

  • Arithmetic on ordinal scales is not a small sin. Michael Krisper catalogues the problem class that the RPN belongs to — "ordinal scales, semi-quantitative arithmetics, range compression, risk inversion, ambiguity, and neglection of uncertainty" — across 24 documented problems with ordinal risk matrices, and argues for fully quantitative risk assessment instead. Krisper, "Problems with Risk Matrices Using Ordinal Scales", arXiv:2103.05440, 2021.

  • The replacement drew its own criticism, from FMEA practitioners. Richard Harpster argued against the AIAG-VDA design FMEA before it shipped, holding that its structure/function/failure-tree approach is "both ineffective as a risk management tool and very inefficient", that it "more closely resembles a fault tree analysis than a Design FMEA process", and that engineers "will not spend the time and effort to develop verifyable functions/requirements for each of the sub-assemblies". Harpster, "The Case Against the AIAG-VDA DFMEA", Quality Digest, 31 January 2018.

  • Complexity is a risk of its own. Carl S. Carlson, author of Effective FMEAs, lists five concerns with the new handbook: it "adds considerable new terminology and other complexities", it "consumes valuable time on potentially lower-risk tasks", "enforcing causes at next lower level can miss important causes", it was published before a corresponding standard existed, and it "does an inadequate job of clearly identifying high-risk interfaces". Carlson, "Reviewing AIAG / VDA FMEA Handbook", Accendo Reliability, 1 December 2022. His point is that complexity can bury the high-risk items it was meant to surface.

  • Used alone it does not carry the weight put on it. The same FMEA overview reports that in healthcare the method showed "limited validity when used in isolation", with scoping and organisational boundaries strongly affecting the result. Where the boundary is drawn decides what the analysis can find.

Current Status:

  • The automotive world replaced RPN with Action Priority in 2019. The AIAG & VDA FMEA Handbook, first edition, was published in June 2019 and replaced AIAG’s 4th-edition FMEA manuals and VDA Volume 4. Mary Rowzee describes the change: "the recommended method of combining these three indices into a single composite value is no longer the risk priority number" — instead a three-axis reference table assigns each failure mode a high, medium or low Action Priority. Rowzee, "Understanding AIAG-VDA’s FMEA Process and Approach", Quality Digest, 18 June 2020. A second source puts it flatly: "the Risk Priority Number or RPN has been eliminated. It has been replaced by the AP or Action Priority process." Quality-One, AIAG & VDA FMEA.

  • The handbook also reorganised the method into seven steps — planning and preparation, structure analysis, function analysis, failure analysis, risk analysis, optimisation, results documentation — which is a different shape from the column-by-column worksheet most training data describes (Rowzee, as above).

  • RPN has not disappeared outside automotive. The generic standards remain in use — IEC 60812 for FMEA and FMECA, SAE J1739 in the automotive space — and RPN is still the dominant prior in most non-automotive material. When a prompt says "FMEA", expect the model to reach for Severity × Occurrence × Detection unless Action Priority is named.

  • Consequence for prompting: naming the edition matters here more than for most anchors. "FMEA" gets the classic worksheet; "AIAG & VDA FMEA (2019)" gets seven steps and Action Priority. The two produce different artefacts.

Genchi Genbutsu

Details
Full Name

Genchi Genbutsu (現地現物) — "the actual place, the actual thing"

Also known as

go and see, go to gemba, go see for yourself, one of the five principles of the Toyota Way 2001

Core Concepts:

Two Words, Two Demands

Art Smalley reads the characters apart: 現地 (genchi) is "the actual place" where work happens; 現物 (genbutsu) is "the actual thing itself — not reports or descriptions of it". Both halves must be satisfied. Going to the place and then reading a dashboard there satisfies neither.

Go Yourself

The person who will decide is the person who must observe. Delegating the looking and receiving a summary reintroduces exactly the layer of abstraction the principle exists to remove.

Gemba Is the Sibling Term

Gemba (現場) is the actual place — "the scene", in the sense a Japanese journalist or detective would use. Smalley notes both terms share 現 (gen), "present" or "actual", and calls this "Toyota’s linguistic emphasis on reality versus assumption". Genchi genbutsu is the practice; gemba is where it happens.

The Ohno Circle

The canonical illustration. Taiichi Ohno would chalk a circle on the factory floor and have an engineer stand in it and watch the process. Christoph Roser: "Often, a disciple stood in the circle for hours before Ohno was satisfied." The point was not endurance but perception — the premise is that most people do not see what is in front of them, and that hours of watching reveal what a walk-past cannot.

Observation Before Hypothesis

Genchi genbutsu sits upstream of every cause-hunting method. It is what makes a five-whys chain worth anything: without direct observation the first "why" is answered from memory, and every later one inherits the guess.

Why This Matters for an LLM

Named, it pushes toward reading the actual code, the actual log line, the actual trace, the actual failing test — before theorising. A model’s default is to answer from the pattern it already carries, which is precisely the report-not-the-thing failure the principle targets. "Genchi genbutsu" is a short instruction to go and look first.

When to Use:

  • Before proposing a cause for any bug: read the failing output, not the description of it

  • When a summary, ticket or handover is the only evidence available — the term names what is missing

  • Requirements work, where what users say they do and what they do diverge

  • Incident review, where the trace and the log are the genbutsu and the reconstruction is not

  • Any time an explanation feels plausible and no one has yet looked

Common Misunderstandings:

  • ❌ "It means walking the factory floor" — the place is whatever place the work actually happens, including a terminal and a log

  • ❌ "A gemba walk is genchi genbutsu" — a scheduled tour can be either the practice or a substitute for it

  • ❌ "Go and see means go and check" — Smalley lists "confirming preexisting conclusions rather than observing openly" first among the common mistakes

  • ❌ "One visit is enough" — "single visits instead of repeated observation" is another of Smalley’s named failures

  • ✓ "It is the observation step that five-whys depends on" — correct, and the reason the two belong together

Criticism:

  • In practice it becomes theatre. Annette Franz’s critique is aimed at the practice as executed by leaders: when treated as an inspection, "employees perform. They hide problems, sanitize reality, and the walk becomes a staged event, not a learning exercise." Her sharper point concerns credibility: "When leaders repeatedly ask, 'What’s getting in your way?' and nothing changes, credibility erodes fast." And without discipline, "Gemba collapses into performative leadership" — "Gemba becomes expensive theater." Franz’s own conclusion is that the method is not the fault: leaders are. Franz, "Gemba Walks Don’t Fail. Leaders Do." (18 March 2026).

  • The observed change under observation. The staged-event problem is not only a leadership failing; it is a measurement problem the principle does not solve. What genchi genbutsu delivers is the actual place under the condition of being watched, and nothing in the method separates the two.

  • The Ohno circle does not transplant. Christoph Roser is direct about the limits of imitating it: "Not everybody is willing to observe a process for potentially hours on end. There is a risk of the trainee becoming upset about this 'waste of time.'" He adds the practical precondition that it "works only where workers have the time to answer your questions" and that you "must not interrupt their work", and argues for adapting the exercise rather than copying it. Roser, "Taiichi Ohno’s Chalk Circle" (5 January 2016, updated 21 August 2025).

  • The story’s provenance is thinly sourced. Roser’s account, like most, presents the chalk circle as established fact without documentary evidence. Treat it as a teaching legend that carries the idea, not as a verified episode.

Current Status:

  • Formally codified at Toyota. Smalley records that when Toyota wrote down its management philosophy for a global workforce, genchi genbutsu became one of the five key principles of the Toyota Way 2001, alongside Challenge, Kaizen, Respect and Teamwork. Smalley, "Genchi Genbutsu", TPS Encyclopedia.

  • The failure modes are catalogued, which is itself a sign of drift. Smalley lists five recurring mistakes: confirming preexisting conclusions instead of observing openly; single visits instead of repeated observation; delegating the observation to subordinates; physical presence without active attention; and limiting the practice to factory floors. A principle needs such a list only once the ritual has outgrown the substance.

  • "Gemba walk" is now the dominant Western form of the term — a scheduled leadership round rather than an engineer standing still for three hours. Both senses live in current training data; the walk is the one a model is likelier to produce unprompted.

Ishikawa Diagram

Details
Full Name

Ishikawa Cause-and-Effect Diagram

Also known as

fishbone diagram, cause-and-effect diagram, Fishikawa

Core Concepts:

One Effect, Many Branches

The problem statement sits at the head of the fish. A spine runs to it, and labelled bones branch off, each carrying causes of one kind, with sub-causes branching off those. The shape exists to hold parallel causes side by side.

The Division of Labour With Five Whys

five-whys follows one causal chain downward and is at its best when the chain is real and single. The fishbone spreads across several chains at once and is the tool for problems with contributing factors rather than a cause. Running 5 Whys on a multi-factor problem produces a confident answer about one branch; running a fishbone on a simple chain produces five near-empty branches. Choose by the shape of the causality, not by habit.

Categories as Memory Aids

The branch labels are prompts, not a taxonomy. The manufacturing set is the 5 Ms — Manpower, Machine, Material, Method, Measurement — extended to 8 with Mission, Management and Maintenance. Services use 4–5 Ss (Surroundings, Suppliers, Systems, Skill, Safety); product marketing uses 8 Ps. Software teams routinely invent their own set, and that is within the method rather than a deviation from it.

Structured Brainstorming, Not Evidence

What the diagram produces is a list of suspects. It does not rank them, does not test them and does not tell you which one acted. The step that follows — going to the data — is not part of the diagram, which is why so many fishbones end where the real work should have started.

Sub-Causes are Where the Value Is

A branch with one word on it has recorded a category, not a cause. The technique earns its keep two and three levels down, where "Method" becomes a specific step performed in a specific wrong way.

One of the Seven Basic Tools

The fishbone diagram sits alongside the check sheet, histogram, Pareto chart, graphs, scatter diagram and stratification. Together with PDCA and the QC-story format, this set became the foundation of kaizen in Japan.

Key Proponent

Kaoru Ishikawa, who popularised the technique in the 1960s while pioneering quality management at Kawasaki Heavy Industries' shipyards; the basic concept goes back to the 1920s.

When to Use:

  • Incident and defect analysis where several factors plausibly contributed and no single chain explains the outcome

  • Early in an investigation, to widen the candidate set before narrowing it — the opposite move from five-whys

  • Group settings, where the branches give quieter participants a structured place to contribute

  • In the Analyze phase of dmaic, as the standard generator of cause hypotheses that the data then confirms or kills

  • Whenever a team has already converged on one explanation and needs to see what else is on the board

Common Misunderstandings:

  • ❌ "The fishbone finds the root cause" — it generates candidates. Evidence decides, and the diagram contains none.

  • ❌ "You must use the 6 Ms" — the categories are prompts. A set that fits the domain beats a memorised one.

  • ❌ "It replaces 5 Whys" — they answer different shapes of question. Parallel causes: fishbone. One chain: five-whys. Often both, in that order.

  • ❌ "A filled diagram is a finished analysis" — a filled diagram is a hypothesis list that has not been tested yet.

  • ✓ "It is mece thinking applied to causes" — fair as an aspiration; the categories overlap in practice, which is one of the criticisms below.

Criticism:

  • It offers no definition of what it is looking for. Mark Paradies of TapRooT lists the gaps bluntly: "there is no guidance for building the bones of the fish. The building of the bone structure depends on the knowledge of the investigator", the technique lacks "any guidance for what a 'root cause' is", and selecting causes by voting "is simply the team’s opinion. It doesn’t prove that the selected cause caused the incident." He adds that the method "provide[s] no guidance to help investigators develop effective corrective actions". Paradies, "Fishbone Diagram Root Cause Analysis — Pros & Cons", 7 October 2020.

  • Forcing an incident into a fixed shape is not analysis. Mark Galley of ThinkReliability objects to the premise itself: "The premise of the fishbone is there is one single effect for a given problem", which "does not reflect the nature of real problems". On the categories: "Making the incident fit into a predefined shape is contrived, not scientific" — the incident already happened and therefore has a structure of its own, which the template overwrites. Galley, "Updating the Fishbone Diagram", 1 February 2021.

  • Brainstorming displaces evidence-gathering. Galley’s practical objection is about where the hour goes: rather than speculating, investigators should "spend that time gathering specific evidence to support or disprove the possible causes". A diagram full of unverified branches can feel like progress while producing none.

  • It cannot surface what the room does not know. Because the branches come from the participants, the diagram inherits their blind spots and has no mechanism to reveal the omission. Paradies makes the same point about investigators without human-factors training guessing at causes. This limitation is structural, not a matter of facilitation skill.

Current Status:

  • Canonical and unchanged. The diagram is documented as "one of the seven basic tools of quality control", with Ishikawa popularising it in the 1960s at the Kawasaki shipyards. Ishikawa diagram overview. There is no edition drift here: the 1960s tool and the tool taught today are the same tool.

  • The category sets multiplied, the method did not. 5 Ms, 8 Ms, 8 Ps and 4–5 Ss all circulate (same source), and teams invent domain-specific sets freely. When precision matters, name the category set in the prompt — otherwise expect the manufacturing 6 Ms by default.

  • Its place in the quality canon is documented and stable. Ronald D. Moen and Clifford L. Norman list the seven basic tools — "check sheet, histograms, Pareto chart, fishbone diagram, graphs, scatter diagrams and stratification" — and trace them, together with the PDCA cycle and the QC-story format, to the foundation of kaizen in Japan. Moen & Norman, "Circling Back", Quality Progress, November 2010, ASQ.

  • The criticism comes from the RCA profession, not from quality management. The sharpest objections are raised by practitioners who sell structured root-cause methods and who position the fishbone as the thing their approach replaces. That does not make the objections wrong — the missing definition of "root cause" and the absent evidence step are real — but it explains where the discourse lives and why quality-management sources report none of it.

Kaizen

Details
Full Name

Kaizen (改善) — kai, "change", plus zen, "for the better"; conventionally rendered "continuous improvement"

Also known as

continual improvement, gemba kaizen, daily kaizen; popularised in the West by Masaaki Imai (1930–2023), founder of the Kaizen Institute (1985)

Core Concepts:

Small, Continuous, By Everyone

The unit is the small change made by the person doing the work, repeated without end. Imai’s most-quoted formulation, as reported by Mark Graban: "Kaizen is everyone, everywhere, every day." The improvement is not delegated to a specialist function.

Kaikaku Is the Deliberate Contrast

Kaikaku (改革) is radical, discontinuous change — Jim Womack glosses it as "the Japanese word for revolution, in contrast with kaizen, which is incremental improvement". The pair is what keeps kaizen precise: without kaikaku as its opposite, "continuous improvement" drifts into meaning any change at all. Womack’s own position is sequential: "lean transformation will always need to begin with evolution: kaizen and model lines…These create the basic stability", and only afterwards "we really do need to go fast".

Standardise the Gain, Then Improve From the New Standard

The second thing that keeps the term precise. An improvement that is not written into the standard is not kaizen; it is a good day. Art Smalley: "Permanent conditions change when the gains get built into standards and held by an operating system that runs daily", with "standardized work as the mechanism connecting daily management to daily improvement — not as a document in a binder". Standard and improvement alternate: the standard is the floor the next improvement starts from, never a freeze.

A Habit, Not a Project

Graban summarises Imai’s position: "Not a project. Not an event. A daily practice, distributed across the entire organization, expected of everyone — not delegated to a kaizen office or a specialist team."

It Needs Something to Look At

Kaizen without muda-mura-muri has no diagnosis and without genchi-genbutsu no evidence. It is the habit; those supply what the habit examines.

In Software

The boy-scout-rule is kaizen scoped to a file. Retrospective actions that actually change the working agreement are kaizen; retrospective actions that produce a list are not, because nothing was standardised.

When to Use:

  • Framing improvement as an everyday obligation of the whole team rather than a quarterly initiative

  • Distinguishing a small, reversible, local change from a redesign — say kaizen or say kaikaku, and the conversation separates

  • Any improvement effort where the gain will evaporate unless the new way becomes the documented default

  • As the daily counterpart to a project-shaped method such as dmaic, and as the cultural ground under toyota-kata

Common Misunderstandings:

  • ❌ "Kaizen means a week-long improvement workshop" — that is a kaizen event, a Western packaging, and the thing the criticism below targets

  • ❌ "Kaizen is any improvement" — kaikaku exists precisely so that the word keeps meaning incremental

  • ❌ "Kaizen is the opposite of standardisation" — it depends on it; without a standard there is nothing to improve from and no way to hold a gain

  • ❌ "Kaizen is a Toyota tool" — it is a management philosophy that Imai generalised well beyond manufacturing

  • ✓ "It is a habit that produces small, standardised changes made by the people doing the work" — accurate

Criticism:

  • The event replaced the habit. Art Smalley’s critique is aimed squarely at the packaged form: "Kaizen events most commonly fail because organizations never make the transition from running improvement events to building an operating and management system that sustains results daily." And on the arithmetic of the format itself: "A one-week event cannot change permanent conditions on its own. At most it is a vehicle for local change and learning." His conclusion is the line the criticism turns on: "The event is not the system. The daily discipline is the system." Smalley, "Why Does Kaizen Fail?", Art of Lean.

  • "Kamikaze kaizen". Smalley reports that Jim Womack coined the term for such efforts — "intense bursts of activity with no lasting effect other than a fiery death". We verified this quotation only in Smalley’s article, not in an original Womack publication; treat it as attributed via Smalley.

  • Imai himself was frustrated by how the West took it up. In his foreword to Healthcare Kaizen, quoted by Graban: "I am profoundly frustrated with the slow pace at which Kaizen strategy has been embraced by the business community", and "Embracing Kaizen is a long-term journey. It is not a flavor of the month and requires the cultural change, commitment and self-discipline that needs to be sustained over many decades." Graban, "In Memoriam: Masaaki Imai" (16 June 2023).

  • Continuous improvement without respect for people is the standard failure. Bob Emiliani: Fake Lean is "the technical application of 'Continuous Improvement' tools and methods, invariably in a zero-sum fashion"; Real Lean requires both continuous improvement and respect for people. Emiliani, "The Backstory: Real vs. Fake Lean" (13 September 2013).

Current Status:

  • The founding text is Kaizen (Ky’zen), the Key to Japan’s Competitive Success — Masaaki Imai, Random House Business Division, New York, 1986, 259 pages. The widely cited later edition is published by McGraw-Hill; the title is often given without the "(Ky’zen)" of the original.

  • The more influential book is the second one. Gemba Kaizen: A Commonsense, Low-Cost Approach to Management (McGraw-Hill, 1997) moved the emphasis to the actual place of work and won the Shingo Research Prize in 1999. Imai’s last book was Strategic KAIZEN (McGraw-Hill, 2021). He died on 12 June 2023, aged 92.

  • The trademarked form is a live complication. The Kaizen Institute, which Imai founded in 1985, writes the term as KAIZEN™ in its own material. The word is simultaneously generic Japanese vocabulary, a management philosophy and a consultancy’s brand — worth knowing when a source’s capitalisation looks odd.

  • "Kaizen event" remains the dominant Western usage despite the criticism above, and it is the sense a model is likeliest to reach for. Naming daily kaizen, or naming kaikaku as the contrast, is what steers it back.

Luhmann’s System Theory

Details
Full Name

Luhmann’s Sociological System Theory (Luhmannsche Systemtheorie)

Also known as

Theory of Autopoietic Social Systems, Functional-Structural Systems Theory

Core Concepts:

System/Environment Difference

A system defines itself by drawing a distinction (Differenz) between itself and its environment. "Es gibt kein System ohne Umwelt. Hier ist das System, dort die Umwelt. Wer das sagt, unterscheidet zwischen diesen beiden." (Luhmann, Einführung in die Systemtheorie, Kap. II)

Operational Closure

Systems reproduce themselves through their own operations. Social systems operate through communication, psychic systems through thought. No operation crosses the boundary. "Selbstreferentielle Geschlossenheit ist nur in einer Umwelt, ist nur unter ökologischen Bedingungen möglich."

Autopoiesis

Systems produce and reproduce their own elements. A system exists as long as operations connect to operations. "Ein System erhält sich dadurch, dass Operationen aneinander anschließen."

Structural Coupling

Systems cannot directly interact, but they can build expectation structures that make them sensitive to specific irritations from their environment. Language couples psychic and social systems.

Double Contingency

The foundational paradox of social interaction: "I will do what you want if you do what I want" — resolved only through the emergence of social systems. "Das gesamte Soziale kann als Antwort auf das Problem der doppelten Kontingenz gesehen werden." (Soziale Systeme, Kap. IV)

Self-Reference / Self-Observation

Systems observe themselves by distinguishing self-reference from external reference (Fremdreferenz). "Beobachten heißt: unterscheiden (→ differenzieren)."

Communication as Operation

Social systems consist of communication, not of people. Communication is the synthesis of information, utterance, and understanding.

Complexity Reduction

Systems reduce environmental complexity through selection. "Sinn" (meaning) is the medium through which psychic and social systems process complexity.

Functional Differentiation

Modern society differentiates into function systems (economy, law, politics, science, religion) each with their own binary code.

Key Proponents

Niklas Luhmann (Soziale Systeme, 1984; Einführung in die Systemtheorie, Vorlesung 1991/92, hg. v. Dirk Baecker), Humberto Maturana (autopoiesis, biological roots)

When to Use:

  • Analyzing complex socio-technical systems where boundaries are contested

  • Designing system architectures that respect operational closure of subsystems

  • Understanding why direct control often fails (systems can only be perturbed, not instructed)

  • Modeling emergent behavior in multi-agent or organizational systems

  • Identifying feedback loops and unintended consequences in automation design

  • Distinguishing between the system’s perspective and the observer’s perspective

Relationship to Other Anchors:

  • Foundation for the System-Theoretic Semantic Anchors framework (see separate proposal)

  • Complements Cynefin Framework (complexity classification) with operational theory

  • Provides the theoretical basis for Semantic Contracts (structural coupling, see separate proposal)

  • Contrasts with simpler input-output models of systems (e.g., early cybernetics)

  • Related to Feynman Technique at the meta-level: Luhmann demands understanding systems through their own logic

    Historical Context

    Luhmann developed his theory across 30+ books and 500+ articles. The Einführung in die Systemtheorie is a transcribed lecture course from 1991/92 and is considered the most accessible entry point. His work fundamentally challenges common-sense notions of communication, causality, and control.

Morphological Box

Details
Full Name

Morphological Analysis / Morphological Box (German: Morphologischer Kasten)

Core Concepts:

Multi-dimensional decomposition

Break complex problem into independent parameters/dimensions

Variant enumeration

Identify possible values/options for each parameter

Matrix construction

Organize parameters and variants in table/box form

Combinatorial exploration

Systematically examine combinations of variants

Constraint filtering

Eliminate infeasible or contradictory combinations

Novel solution discovery

Find non-obvious solutions through systematic recombination

Complete solution space

Ensure all possibilities are considered

Structured creativity

Systematic approach to innovation and ideation

Key Proponent

Fritz Zwicky (1940s-1960s, California Institute of Technology)

Historical Context

Developed for aerospace engineering problems (jet engines, spacecraft propulsion), now widely applied in product development, system design, and innovation management.

When to Use:

  • Exploring design alternatives for complex systems

  • Product feature combination analysis

  • Technology selection with multiple dimensions

  • Architecture decision-making with independent parameters

  • Innovation workshops and ideation sessions

  • Requirements engineering for product variants

  • Solution space mapping before evaluation

Example Application:

Problem: Design a developer documentation system
Parameters:
├─ Format: Markdown, AsciiDoc, reStructuredText, API-first
├─ Hosting: GitHub Pages, Netlify, Read the Docs, S3+CloudFront
├─ Generator: Static (Hugo, Jekyll), Dynamic (Docusaurus), Custom
└─ Versioning: Git-based, Version selector, Branch-per-version

Matrix generates 4 × 4 × 3 × 3 = 144 possible combinations
Filter by constraints (e.g., "AsciiDoc + Hugo not well-supported")
→ Identify ~20 feasible solutions for evaluation with Pugh Matrix
  • MECE Principle (for parameter independence)

  • Pugh Matrix (for evaluating generated alternatives)

  • Design of Experiments (DOE)

  • Combinatorial design

  • Solution space exploration

Complementary Tools:

  • Use Morphological Box to generate alternatives

  • Then apply Pugh Matrix to evaluate and select best option

  • Use MECE to ensure parameter independence

Pitfalls to Avoid:

  • Parameters that are not independent (violates combinatorial logic)

  • Too many parameters leading to combinatorial explosion

  • Stopping at matrix creation without exploring combinations

  • Forgetting to filter out infeasible combinations

Muda, Mura, Muri

Details
Full Name

Muda (無駄), Mura (斑), Muri (無理) — waste, unevenness, overburden; the "three Ms" of the Toyota Production System

Also known as

the 3Ms, the three evils, the seven wastes (muda only), TIMWOOD / TIMWOODS (muda only)

Core Concepts:

Anchor the Triple, Not Muda Alone

This is the whole reason the anchor exists. Naming only waste hides what produces the waste. Muda is the symptom that is easy to see and easy to count; mura and muri are the conditions that regenerate it after every clean-up.

The Three, Defined

The Lean Enterprise Institute’s lexicon:

  • Muda — "Any activity that consumes resources without creating value for the customer."

  • Mura — "Unevenness in an operation; for example, a gyrating schedule not caused by end-consumer demand but rather by the production system, or an uneven work pace in an operation causing operators to hurry and then wait."

  • Muri — "Overburdening equipment or operators by requiring them to run at a higher or harder pace with more force and effort for a longer period of time than equipment designs and appropriate workforce management allow."

The Causal Chain Runs Mura → Muri → Muda

Jim Womack argues for reversing the conventional recital order: "I would tell them to have it read 'Mura, muri, muda.'" His reason is the mechanism itself — "The inevitable result is that mura creates muri that undercuts previous efforts to eliminate muda." Unevenness forces people and machines past their design point; overburden then manufactures the very waste that was eliminated last quarter.

The Seven Wastes

Ohno’s categories are transporting, inventory, motion, waiting, over-production, over-processing and defects. Over-production is traditionally treated as the worst, because it generates most of the others.

The Eighth Waste Is a Later Addition

"Unused skills" was appended to the original seven, "as resolving this waste is a key enabler to resolving the others". The mnemonic "TIM WOOD" covers the seven; "TIM WOODS", with the S for skills, covers eight. The eighth is not Ohno’s.

Type One and Type Two Muda

The lexicon distinguishes waste that cannot be removed quickly (rework a current process cannot avoid) from waste that kaizen can remove at once. The distinction stops "eliminate all waste" from being an instruction nobody can follow.

In Software

Mura is the release train that ships nothing for three weeks and everything on Thursday; muri is the sprint committed at 110% capacity; muda is the rework, the queue, the half-finished branch. Attacking the rework without touching the batching is the mistake the triple names.

When to Use:

  • Whenever a "waste elimination" or efficiency effort is being planned, to force the question of what regenerates the waste

  • Capacity and scheduling discussions — mura and muri are the vocabulary that batching and overcommitment otherwise lack

  • Retrospectives where the same waste keeps returning after being removed

  • As the diagnostic layer under kaizen: kaizen is the habit, the three Ms are what it looks for

Common Misunderstandings:

  • ❌ "Lean is about eliminating waste" — that is muda only, and Womack’s argument is that muda-first is the wrong order

  • ❌ "There are eight wastes" — there are Ohno’s seven plus a later, widely adopted eighth; the distinction matters when citing him

  • ❌ "Muri means working hard" — it means being required to run past the design point of the person or machine, which is a property of the system, not of effort

  • ❌ "Mura is just variation" — it is unevenness manufactured by the system itself, not demand variation from the customer

  • ✓ "Fix mura first and much of the muda stops coming back" — this is Womack’s point exactly

Criticism:

  • The conventional ordering teaches the wrong reflex. Womack’s essay is itself a criticism of how the three Ms are usually taught and used — muda first, as a hunt for visible waste, with mura and muri as footnotes. He locates the failure in the sequence: "mura creates muri that undercuts previous efforts to eliminate muda", so a muda-first programme is structurally condemned to repeat itself. Womack, "Mura, Muri, Muda?", Lean Enterprise Institute (6 July 2006).

  • Muri, read from the shop floor, is the point of the system rather than a defect in it. Jane Slaughter’s account of "management by stress" describes a system tuned so that "The ideal state is achieved when the plant is running with all stations just on the line between green and yellow" — that is, deliberately at the edge of overburden, using the operator’s inability to keep up as the signal for where to improve next. On this reading, muri is not an accident the method removes but a lever the method applies. Slaughter, "Management by Stress", Multinational Monitor, January/February 1990.

  • Waste-hunting without the people half is the common failure mode. Bob Emiliani’s Real Lean / Fake Lean distinction names it: Fake Lean is "the technical application of 'Continuous Improvement' tools and methods, invariably in a zero-sum fashion", while Real Lean is "the application of both 'Continuous Improvement' and 'Respect for People'". His summary of what actually happened: "Lean intends to correct two big problems in organizations: bad processes and bad management. But it usually corrected only one – bad processes." Emiliani, "The Backstory: Real vs. Fake Lean" (13 September 2013).

Current Status:

  • Womack’s reordering has not displaced the conventional recital. "Muda, mura, muri" remains the common sequence in training material and in most model output, twenty years after the essay. Expect a model to produce the muda-first order and the seven wastes list unless the causal chain is named explicitly.

  • "The seven wastes" now usually means eight. TIMWOODS, with unused skills or unused human potential added, is the version most current material teaches. Attributing all eight to Ohno is a common and avoidable error.

  • Type One / Type Two muda is fading from popular usage even though it remains in the Lean Enterprise Institute lexicon. It is the distinction that makes waste lists actionable, and it is the first thing dropped in short-form summaries.

Occam’s Razor

Details
Full Name

Occam’s Razor (also spelled Ockham’s Razor)

Also known as

Law of Parsimony, Principle of Parsimony, Lex Parsimoniae, "Entities should not be multiplied beyond necessity"

Core Concepts:

Core rule

Among competing hypotheses that explain the same observations equally well, prefer the one that requires the fewest assumptions. The razor shaves off unnecessary entities, causes, or mechanisms.

What it is not
  • Not a rule to be brief or terse — that is a stylistic choice, not an epistemic one.

  • Not a proof that the simpler answer is true — only a guide to which hypothesis to prefer, investigate first, or commit to under uncertainty.

  • Not a licence for KISS-style solution simplification — Occam operates at the level of explanations, KISS at the level of solutions. They overlap but are not the same razor.

How it is used
  • As a selection filter under uncertainty — when two stories fit the data, start with the one that assumes less.

  • As a debugging heuristic — before assuming a bug requires a race condition plus caching layer plus stale DNS, check whether a single off-by-one explains everything.

  • In architecture decisions — a design that needs three new components to justify itself is evidentially weaker than one that reuses existing pieces.

  • In diagnostic reasoning — prefer explanations grounded in the system’s known mechanics over ones that require novel failure modes.

Limits and counters

The razor is a prior, not a verdict. Reality is frequently non-parsimonious, and "simpler" is relative to a chosen ontology. Einstein’s corollary — "as simple as possible, but no simpler" — warns against under-fitting. Pair Occam with evidence, not as a substitute for it.

Key Proponents

William of Ockham (c. 1287–1347, Summa Logicae, Quodlibetal Questions); the principle predates Ockham in Aristotle and Scotus but carries his name due to his repeated methodological use of it. Modernised by Bertrand Russell and formalised as minimum-description-length / Bayesian simplicity priors in 20th-century philosophy of science.

When to Use:

  • Debugging: triage competing theories of a bug before instrumenting for all of them

  • Architecture review: challenge proposals that introduce new components to explain observed requirements

  • Root-cause analysis: pair with Five Whys to avoid stopping at an elaborate but unjustified explanation

  • Incident response: the outage likely has one cause matching the data, not a conspiracy

  • Requirements clarification: pick the interpretation that requires fewest hidden assumptions about the user

  • LLM prompting: ask the model to prefer the explanation with the fewest moving parts when diagnosing

  • KISS Principle - Sibling razor applied to solutions rather than explanations

  • YAGNI - Applies parsimony to future requirements: don’t build what you can’t justify

  • Five Whys - Occam helps pick which "why" to pursue when the chain forks

  • MECE Principle - Both disciplines of hypothesis hygiene; MECE ensures coverage, Occam ranks by parsimony

  • Devil’s Advocate - Devil’s Advocate stress-tests the hypothesis Occam has selected

PDCA

Details
Full Name

Plan-Do-Check-Act

Also known as

the Deming cycle, the Deming wheel, the Shewhart cycle; PDSA (Plan-Do-Study-Act) in Deming’s own wording

Core Concepts:

Four Steps, Repeated Forever

The loop is deliberately small and deliberately endless:

  • Plan — state the problem, form a hypothesis about cause and remedy, and decide how the result will be judged

  • Do — carry out the change, preferably on a small scale

  • Check — compare the observed result with what was expected

  • Act — standardise the change if it worked, or return to Plan if it did not

The Scientific Method, Shrunk to Fit a Shop Floor

PDCA is an experiment loop: hypothesis, trial, evaluation, decision. Its ancestor is Shewhart’s 1939 sequence of specification, production and inspection, which he bent from a straight line into a circle precisely because "these three steps must go in a circle instead of in a straight line".

Small Scale First

The Do step is meant to be a test, not a rollout. Running the change on a small scale is what keeps a failed hypothesis cheap — and what makes the Check step interpretable at all.

Act Means Standardise or Loop

The step most often skipped. A successful change that is not written into the standard decays; a failed change that is not fed back into Plan teaches nothing. Act is where the loop either compounds knowledge or leaks it.

The Engine Under Kaizen

PDCA, the seven basic quality tools and the QC-story format became the foundation of kaizen in Japan. When a text says "continuous improvement" without naming a method, PDCA is usually what it means.

Ancestor of the Phase-Gated Cycles

dmaic is PDCA with gates, measurement discipline and statistics bolted on; dmadv is the same lineage applied to design. Both descend from this four-step loop.

Deming Preferred "Study"

Deming warned that "check" is misleading, because the English word means "to hold back". His own late formulation is PDSA — Plan-Do-Study-Act — where Study asks what was learned, not merely whether the target was hit. See Current Status: the naming split is not cosmetic.

When to Use:

  • Any improvement where the remedy is a hypothesis rather than a known fix

  • Small, reversible changes that can be tested before they are committed — the loop’s economics depend on the test being cheap

  • As the frame for retrospectives, incident follow-ups and process experiments that would otherwise end at "we should do better"

  • Where an organisation needs a shared vocabulary for "we tried it, here is what we learned" — PDCA gives the four slots

  • As the structural skeleton of a management system: ISO 9001:2015 and its siblings are organised around exactly these four steps

Common Misunderstandings:

  • ❌ "Deming invented PDCA" — he did not. Japanese executives recast his 1950 Deming wheel into PDCA in 1951; Deming later wrote, "How the PDCA ever came into existence I know not."

  • ❌ "PDCA and PDSA are two names for one thing" — Deming himself denied it: asked how the QC circle and the Deming circle relate, he answered, "They bear no relation to each other."

  • ❌ "Check means verify the deliverable" — Check compares result with prediction. Without a prediction recorded in Plan, there is nothing to check against.

  • ❌ "One pass through the cycle is a PDCA" — the method is the repetition. A single loop is an experiment, not an improvement system.

  • ✓ "PDCA is the scientific method wearing work clothes" — fair, and the reason its critics measure it against scientific standards.

Criticism:

  • Almost nobody runs it as specified. Michael J. Taylor and colleagues reviewed 73 peer-reviewed healthcare articles that claimed to apply PDSA and found that only two met all five core principles of the method. "Less than 20% (14/73) fully documented the application of a sequence of iterative cycles", and "only 15% (7/47) reported the use of quantitative data at monthly or more frequent data intervals to inform progression of cycles." Their conclusion is blunt: "the varied practice compromises its effectiveness as a method for improvement." Taylor, McNicholas, Nicolay, Darzi, Bell & Reed, "Systematic review of the application of the plan–do–study–act method to improve quality in healthcare", BMJ Quality & Safety 23(4), 2014, pp. 290–298. The finding cuts both ways: it is a criticism of practice, and it makes claims of PDCA’s effectiveness hard to evaluate, since what was measured was rarely the method.

  • Deming rejected the version everyone uses. Ronald D. Moen and Clifford L. Norman document the objection from the source. In a letter of 17 November 1990, Deming wrote: "Be sure to call it PDSA, not the corruption PDCA." He "warned his audiences that the PDCA version is frequently inaccurate because the English word 'check' means 'to hold back'". Moen & Norman, "Circling Back", Quality Progress, November 2010, ASQ. Calling PDCA "the Deming cycle" attributes to Deming a cycle he publicly disowned.

  • The two cycles are aimed at different levels. At a US Government Accounting Office roundtable, Deming was asked how the QC circle and the Deming circle relate: "They bear no relation to each other. The Deming circle is a quality control program. It is a plan for management. … Maybe you could say that the Deming circle is for management, and the QC circle is for a group of people that work on faults encountered at the local level" (same source). Teams that adopt PDCA for strategy are using a local fault-fixing loop for a job it was not shaped for.

  • Check without prediction degrades into review. The gap Moen, Nolan and Provost closed in 1991 by requiring prediction and theory in the Plan step is exactly the gap the Taylor review measured twenty years later: cycles run without recorded predictions and without data over time cannot produce the deductive-inductive interplay that makes the loop scientific.

Current Status:

  • The naming split is documented, and the popular name is the "corrupted" one. Moen and Norman lay out the lineage: Shewhart’s cycle (1939) → Deming wheel (1950, JUSE seminar: design, production, sales, research) → Japanese QC’s PDCA (1951, per Masaaki Imai, with no individual ever claiming authorship) → Ishikawa’s expanded PDCA for TQC (1985) → Deming’s Shewhart cycle (1986) → Deming’s PDSA, "the Shewhart Cycle for Learning and Improvement" (1993). PDCA won the popularity contest; PDSA carries Deming’s intent.

  • The split is now regional and professional, not resolved. Healthcare quality improvement writes PDSA, following Deming and the Model for Improvement that Langley, Nolan and colleagues built on the PDSA cycle in 1994. Manufacturing, Lean and the ISO management-system world write PDCA. Both priors are strong; a prompt that needs the learning emphasis should say PDSA and say why.

  • PDCA is embedded in the ISO management-system standards. ISO 9001:2015 names the Plan-Do-Check-Act cycle explicitly in its introduction and organises its requirement clauses along it — planning (6) as Plan, support and operation (7, 8) as Do, performance evaluation (9) as Check, improvement (10) as Act. Overview of the ISO 9001:2015 PDCA structure. That embedding is why the four-letter form will not go away, whatever Deming wrote.

Premortem

Details
Full Name

Project Premortem

Also known as

Pre-mortem, prospective hindsight exercise

Core Concepts:

  • The failure is a premise, not a possibility. The group is told the plan has already failed, comprehensively, and is asked why. This is the whole technique; everything else is staging.

  • Prospective hindsight. Explaining an event stated as fact produces more concrete reasons than speculating about an event that might happen.

  • Before commitment, not after. A postmortem examines a corpse; a premortem examines a plan that can still be changed.

  • Everyone writes first. Each participant lists reasons independently before anything is shared, so the most senior voice does not set the frame.

  • Round-robin collection. Reasons are read out one per person per turn, which surfaces the quiet objections that a free discussion buries.

When to Use:

  • Before committing to a plan that is hard to reverse — a migration, a re-platforming, a fixed-date release

  • When a team has converged suspiciously fast and nobody is arguing

  • When the people who see the risks report to the people who made the plan

  • As a complement to a risk register: the register lists known risks, the premortem generates the ones nobody wrote down

Common Misunderstandings:

  • Softening the question. Asking "what could go wrong?" instead of "it failed — why?" reverts the exercise to ordinary risk brainstorming and loses the effect the technique is named for.

  • Treating it as pessimism. The purpose is to license dissent, not to kill the plan. It usually ends with a modified plan, not a cancelled one.

  • Running it after the decision. Once commitment is public, the findings have nowhere to go.

Criticism:

  • The evidence chain is weaker than the citation suggests. Behavioural economist Jason Collins documents that the widely repeated "30 percent" figure does not say what it is used to say. Collins traces it to Mitchell, Russo and Pennington (1989), whose result is that prospective hindsight increases the number of reasons generated — and notes explicitly: "Mitchell, Russo, and Pennington (1989) did not assess the quality of the reasons." The common paraphrase, that the technique improves the ability to correctly identify reasons by 30 percent, originates in Klein’s 2007 restatement rather than in the study.

  • The academic literature is thin. Collins states it plainly: "The academic literature on the premortem is thin." The technique’s standing rests largely on practitioner reports and on Klein’s own 2010 study with Veinott and Wiggins, not on independent replication.

  • No independent methodological critique was found. A search in English and German turned up no failed replication, no meta-analysis, and no peer-reviewed critique of the technique itself. Note the frame: the journals where such an evaluation would most plausibly sit — work on structured analytic techniques in Intelligence and National Security and the International Journal of Intelligence and CounterIntelligence — are paywalled and were not read. This is an absence in our search, not a demonstrated absence in the literature.

Current Status:

  • Established and unchanged. Klein’s own description in Psychology Today (January 2021) matches the 2007 original; there is no revised edition or successor method to drift toward. He dates the technique’s origin to roughly three decades before that writing, with the first formal description in "Performing a Project Premortem", Harvard Business Review 85(9), 18–19, September 2007.

  • The failure modes Klein names are execution errors, not limits. He lists three: softening the question, running it too slowly, and letting a senior participant dominate instead of going round-robin. These are the author’s caveats about his own method, which is a different thing from independent criticism.

Second-Order Thinking

Details
Full Name

Second-Order Thinking

Also known as

Second-level thinking (Howard Marks); second- and third-order consequences (Ray Dalio)

Core Concepts:

  • And then what? The first-order effect is the one the decision was made for. The second-order effect is what happens once people adapt to the first.

  • First-order effects are visible and immediate; second-order effects are delayed and often dominant. The delay is why they lose arguments they should win.

  • Chains, not lists. The move is to follow one consequence into the next, rather than to enumerate more consequences at the same level.

  • The consequences that decide the outcome are usually behavioural. Rules change incentives, incentives change behaviour, and behaviour produces the effect nobody planned.

  • Applies to the status quo too. Not acting has second-order effects as well, and they are easy to omit because nothing appears to happen.

When to Use:

  • Evaluating a policy or process change that people will adapt to — review rules, quality gates, on-call schedules, incentive structures

  • Assessing a technical decision whose cost arrives later than its benefit

  • Whenever a proposal’s argument consists entirely of its immediate effect

  • As a counterweight when a metric is about to become a target

Common Misunderstandings:

  • Adding more items instead of going deeper. Twenty first-order effects are still first-order. One consequence followed three steps is the technique.

  • Treating it as an argument against acting. It changes what you decide, not whether you decide. Inaction gets the same analysis.

  • Confusing it with risk analysis. A risk is an event that may or may not occur. A second-order effect is a consequence a decision sets in motion once people adapt to it — likely rather than certain, but systematic rather than accidental, and nobody has reacted to it yet.

Criticism:

  • No named critique of the term itself was found. A search in English and German produced no cited author arguing that second-order thinking is trivial, unfalsifiable or unusable. What search engines return as criticism — analysis paralysis, time cost, context dependence — appears in advice blogs without attribution and does not qualify.

  • The literature that popularised it is contested. The criticism lands on the mental-models genre rather than on this term. Cedric Chin names Farnam Street directly in "The Mental Model Fallacy": "The mental model fallacy is that it’s worth it to read descriptions of mental models, written and aggregated by non-practitioners, in the pursuit of self-improvement and success", and adds that "the most valuable mental models do not survive codification". Richard Hughes-Jones argues in "The Mental Models Paradox" that such frameworks "make us smarter but only up to a point, after which they can actually constrain our thinking". Data scientist Boris Gorelik reviews Parrish’s The Great Mental Models at two out of five, calling it "ambitious but yet shallow".

  • None of those three critics discusses second-order thinking. They criticise the packaging, not this entry. The distinction matters, and readers should not take the citations as a verdict on the technique.

Current Status:

  • The name that works is not the name in the sources. Howard Marks contrasts "first-level" with "second-level thinking" in The Most Important Thing (Columbia University Press, 2011). Ray Dalio’s principle reads "Consider second- and third-order consequences, not just first-order ones". Neither writes "second-order thinking". That phrasing belongs to the popularisers, chiefly Farnam Street, which adopts it as its own heading while stating plainly that Marks "calls it second-level thinking" and quoting Dalio on "second- and third-order consequences" — the rename is deliberate and documented on the page that performs it. The entry is named for the string that reliably triggers the concept, not for the string with the better provenance — and those diverge here. See the prior-test register for the measurement behind that choice.

  • The idea is much older than the label. Frédéric Bastiat’s "Ce qu’on voit et ce qu’on ne voit pas" states the core move for economics: judge a measure by its unseen later effects, not only by its visible immediate one. French Wikisource carries the text and dates the pamphlet to July 1850, Bastiat’s last. Robert K. Merton formalised a close relative in "The Unanticipated Consequences of Purposive Social Action", American Sociological Review 1(6), December 1936, 894–904.

Simon’s Constructivism

Details
Full Name

Simon’s Introduction to System Theory and Constructivism

Also known as

Simon’s Systemic Epistemology, Clinical Epistemology

Core Concepts:

Systemic Thinking = System-Theoretic Explanation

"Systemtheorie beschäftigt sich mit der 'Welt der Objekte'; aber sie isoliert sie nicht aus ihren realen Zusammenhängen, sondern setzt sie in Beziehung zueinander." Systemisches Denken ist systemtheoretisches Erklären — nicht nur Beschreiben. (Simon, Einführung in Systemtheorie und Konstruktivismus, Vorbemerkung)

Emergent Properties

"Systeme sind aus mehreren Teilen zusammengesetzte Einheiten, deren Eigenschaften emergent, d.h. nicht durch die schlichte Addition der Eigenschaften ihrer Teile herstellbar waren." (Kap. 1)

Trivial vs. Non-Trivial Machines

Trivial machines are predictable (same input → same output). Non-trivial machines depend on internal state — they are history-dependent and not fully predictable. Social systems are non-trivial machines. (Kap. 3.1)

Cybernetics of Cybernetics (2nd Order)

The observer is always part of the observed system. "Die Kybernetik der Kybernetik — der Beobachter wird in die Beobachtung einbezogen." (Kap. 3.2)

Viability vs. Truth

"Wahrheit vs. Viabilität — Die 'Passung' zwischen Landschaft und Landkarte." Knowledge is not "true" in an absolute sense, but viable if it enables successful operation in a given environment. (Kap. 4.5)

Information as "Differences that Make a Difference"

(Gregory Bateson) Information is not transmitted but created by the receiver. "Unterschiede, die Unterschiede machen." The Sender-Receiver model is replaced by circular causality. (Kap. 4.1)

Beobachtung = Unterscheiden und Bezeichnen

Every observation draws a distinction and names one side. The other side remains unmarked. (Kap. 4.3, following George Spencer-Brown)

Operational Closure

"Systeme sind operativ geschlossen und können nur nach ihrer eigenen Logik operieren." (Kap. 3.4)

Perturbation vs. Instruction

"Systeme können nicht instruiert, nur irritiert (perturbiert) werden." — A crucial principle for any intervention design. (Kap. 3.5)

Structural Coupling + Co-Evolution

Systems shape each other’s environments over time, leading to coordinated structural drift without direct causality. (Kap. 5.1)

Meaning Dimensions (Social, Factual, Temporal)

Every communication (in Luhmann’s sense) operates simultaneously in three dimensions: social (who), factual (what), temporal (when). (Kap. 6.4, following Luhmann)

Key Proponents

Fritz B. Simon (Einführung in Systemtheorie und Konstruktivismus, 2006, 8. Aufl. 2017), Humberto Maturana (autopoiesis), Gregory Bateson (cybernetics), Heinz von Foerster (constructivism), Ernst von Glasersfeld (radical constructivism)

When to Use:

  • Training teams in systemic thinking for complex problem-solving

  • Designing interventions where direct control is impossible (organizations, families, ecosystems)

  • Understanding why the same input produces different results in human systems

  • Developing feedback-aware designs for socio-technical systems

  • Distinguishing between explanation, description, and evaluation in requirements

  • Building awareness of observer bias in system design and analysis

Relationship to Other Anchors:

  • Pedagogical bridge between Luhmann’s System Theory and practical application

  • Theoretical foundation for Systemic Consulting methods

  • Provides the epistemological basis for the System-Theoretic Semantic Anchors framework (see separate proposal)

  • "Ten Commandments of Systemic Thinking" (Kap. 7) are a direct precursor to Semantic Contracts (see separate proposal)

  • Contrasts with purely technical systems theory (e.g., general systems theory, Bertalanffy)

    Quote

    "Regeln kann man leichter verändern als Menschen." (Fritz B. Simon)

SIPOC

Details
Full Name

Suppliers, Inputs, Process, Outputs, Customers

Also known as

COPIS when filled out in reverse; high-level process map; process scoping diagram

Core Concepts:

Five Columns, One Page

Every SIPOC is the same table. Suppliers provide the Inputs; the Process — five to seven steps, no more — turns them into Outputs; the Customers receive them. The one-page limit is not a convention, it is the tool. A SIPOC that needs a second page has become a process map and lost its job.

Its Job is Drawing the Boundary

SIPOC answers "where does this process start and stop, and who is on each side?" before anyone argues about what is wrong inside it. In dmaic it belongs to the Define phase, and it is also a standard opener for kaizen events.

Process First, Then Outward

The usual fill order is P → O → C → I → S: name the process steps, then what comes out, then who receives it, then what goes in, then who supplies it. Starting with Suppliers invites a shopping list; starting with the Process keeps the scope honest.

Customers are Plural and Named

The Customers column forces the question of who exactly receives each output — internal handover partners included. Most scoping arguments turn out to be disagreements hiding in this column.

Boundary Objects, Not Detail

Inputs and Outputs are the things that cross the boundary: documents, data, decisions, material. Anything that never crosses the line belongs inside the Process column or nowhere.

COPIS Reverses the Reading

"To emphasize putting the needs of the customer foremost, the tool is sometimes called COPIS and the process information is filled out in reverse order by starting with the customer and working upstream to the supplier." Same five columns, opposite direction, different conversation: COPIS starts from what the customer needs and asks what must be true upstream.

Where it Sits Among the Tools

SIPOC scopes, ishikawa-diagram hypothesises causes inside that scope, and detailed process mapping comes later. Using SIPOC for any of the other two jobs is the most common way to waste it.

When to Use:

  • At the start of a process improvement effort, before the problem statement is fixed — the scope argument is cheaper on one page

  • Whenever "the process" means different things to different people in the room

  • For system boundaries in software work: SIPOC maps cleanly onto "who calls us, what do they send, what do we return, who consumes it"

  • As a Define-phase artefact in dmaic, and to frame the customer side of dmadv before CTQs are written

  • As a warm-up before event-storming or detailed modelling, to agree what is in and out of scope

Common Misunderstandings:

  • ❌ "A SIPOC is a process map" — it is deliberately the opposite: five to seven steps, no branching, no swim lanes. Detail is someone else’s tool.

  • ❌ "Customers means paying customers" — it means whoever receives an output, mostly colleagues.

  • ❌ "COPIS is a different tool" — same table, reversed reading order, customer-first.

  • ❌ "Once drawn, it is done" — the SIPOC is a scoping agreement, and scoping agreements go stale.

  • ✓ "SIPOC is a boundary contract in table form" — fair, and it explains why the arguments it triggers are the point rather than a delay.

Criticism:

  • Most of them are decoration. Christian Loyer, then plant manager at Ecolab, writes that the large majority of SIPOCs have no real meaning and make no difference in continuous improvement projects, because they are "not detailed enough" and "not integrated at all" — the columns are filled in but never linked, so nobody can say which supplier feeds which input, or which step produces which output. Loyer, "Using an Integrated SIPOC for Better Results", Process Excellence Network, 3 June 2011.

  • Clarity is mistaken for understanding. The tool’s tidiness is itself a hazard: a finished SIPOC can give the impression that the process is understood when only its most general elements have been captured. "Using SIPOC alone won’t stop problems occurring within processes", and "it’s very simplistic, so it only serves as a starting point for process mapping". Think Insights, "SIPOC Process Analysis".

  • It inherits the blind spots of whoever is in the room. "Your SIPOC model is only as good as the people who created it. If key people are missing when its created then it’s likely important items will be missing" (same source). The tool has no mechanism that surfaces its own omissions — a weakness it shares with every brainstorming-based artefact, including ishikawa-diagram.

  • The named criticism is thin, and that is worth saying. We found no academic or book-length critique of SIPOC specifically; the objections above come from practitioner writing. Our search covered English and German sources only. That is a limit of our search, not evidence that no critique exists.

Current Status:

  • Old, stable, and unowned. SIPOC "was in use at least as early as the total quality management programs of the late 1980s" and continues in use today; it is described as a simplification of Philip Crosby’s process model. SIPOC overview. No single author claims it, which is one reason the five column names are stable while everything around them varies.

  • Its home is the Define phase. The tool "is often presented at the outset of process improvement efforts such as kaizen events or during the 'define' phase of the DMAIC process" (same source). That is the prior a model will serve: ask for a SIPOC and expect a Six Sigma-flavoured scoping table.

  • COPIS is a live variant, not a historical footnote. Customer-first ordering is the standard answer where the improvement is driven by customer need rather than by internal defects. Naming COPIS instead of SIPOC changes which column the conversation starts in — a small prompt lever with a real effect.

  • Practitioner extensions circulate. Integrated and augmented forms — linking the columns to each other, or adding requirements and measures — exist precisely because the plain five-column table stops short. None has displaced the original five letters.

Systemic Consulting (Heidelberg School)

Details
Full Name

Systemic Consulting according to the Heidelberg School

Also known as

Systemische Beratung, Systemic Therapy and Consulting, Heidelberg Model

Core Concepts:

Consulting as Communication

"Was all diese Beratungsansätze miteinander verbindet: Es sind Formen der Kommunikation." (Simon, Einführung in die (System-)Theorie der Beratung, 2014) — The consulting process is analyzed through the lens of communication theory.

All-Partiality (Allparteilichkeit)

The consultant takes no side but is partial to all sides simultaneously. "Rollenklärung des Therapeuten sowie Allparteilichkeit und das Prinzip der Neutralität." (Simon/Rech-Simon, Zirkuläres Fragen)

Neutrality

The consultant remains neutral toward persons, toward the problem, and toward change. Not cold distance, but active multiperspectivity.

Circular Questions

Instead of linear cause-effect questions ("Why did X happen?"), circular questions explore relationships, differences, and feedback loops: "What would Y say about X’s behavior?" "What needs to happen for the pattern to change?" "Zirkuläres Fragen zielt darauf, die gegenseitige Bedingtheit des Verhaltens von Menschen zu verdeutlichen."

Context Clarification

"Die Kontextklärung für Therapeuten ist immer klarer als für Patienten." — Before any intervention, the context must be clarified: who referred, what are the expectations, what is the mandate?

Problem as Emergent Pattern

Problems arise from relational patterns, not from individual deficiencies. Changing the pattern changes the problem.

No Instruction, Only Irritation

The consultant cannot dictate changes (systems are operatively closed) but can offer perturbations that the system may or may not integrate.

Reframing / Positive Connotation

Every behavior that appears dysfunctional is reframed as having a positive function for the system. "Which adaptive function does the status quo serve?"

Hypothesizing

Before meeting a client, the team generates hypotheses about the system’s dynamics. Hypotheses are treated as provisional and falsifiable.

Systemic Interview Structure

Clarify referral context → define goals → explore attempted solutions → identify resources → hypothesize patterns → offer intervention.

Key Proponents

Fritz B. Simon (Einführung in die (System-)Theorie der Beratung, 2014), Helm Stierlin, Gunthard Weber (Heidelberg School), Paul Watzlawick, Jay Haley, John Weakland (MRI Palo Alto), Mara Selvini Palazzoli (Milan Group)

When to Use:

  • Facilitating organizational change where linear approaches have failed

  • Mediating conflicts between stakeholders with incompatible perspectives

  • Designing human-centered automation that respects user autonomy

  • Coaching teams through complex adaptive challenges

  • Any situation where the interventionist is part of the system (no external vantage point)

  • Evaluating whether a proposed technical solution addresses relational dynamics

Relationship to Other Anchors:

  • Operationalizes Simon’s Constructivism into concrete practice

  • Provides the "how" for the System-Theoretic Semantic Anchors framework (especially Stakeholder and Trust anchors, see separate proposal)

  • Direct precursor to Semantic Contracts — the consulting mandate functions as a semantic contract between consultant and client (see separate proposal)

  • Complements Cynefin Framework by providing intervention methods for the Complex domain

  • Contrasts with expert-driven consulting (which assumes instruction is possible)

Toyota Kata

Details
Full Name

Toyota Kata — Managing People for Improvement, Adaptiveness and Superior Results (Mike Rother, McGraw-Hill, 4 August 2009)

Also known as

Improvement Kata and Coaching Kata, IK/CK, Starter Kata, scientific thinking routine

Core Concepts:

Two Routines, Not One Method

Toyota Kata names a pair. The Improvement Kata is what the learner practises; the Coaching Kata is what the coach practises while the learner works. Naming only one of them loses the point, because the routine survives in an organisation through the coaching, not through the worksheet.

The Improvement Kata, in Four Steps

The learner cycles through:

  • Direction or challenge — where the organisation is going, set long-range and rarely revisited

  • Grasp the current condition — measured and observed at the process itself, not inferred from a report

  • Establish the next target condition — a description of how the process should operate by a set date

  • Experiment toward the target condition — one obstacle at a time, one experiment at a time, each with a prediction

A Target Condition Is a Described Process Condition

This is the load-bearing idea and the one most often dropped. A target condition says how the process works — the pattern, the sequence, the characteristics, plus the date — not merely which number should be higher by when. That is exactly what separates it from an okr Key Result or a KPI target. A number tells you whether you arrived; a target condition tells you what arriving looks like, so an experiment can be designed against it.

The Coaching Kata Is Five Questions

Christoph Roser renders the card as: 1. "What is the target condition?" 2. "What is the actual condition now?" 3. "What obstacles prevent you from reaching the target condition? Which ones are you addressing now?" 4. "What is your next step (your next PDCA cycle)?" 5. "Where can we go and see what we have learned from taking that step?" The coach asks; the coach does not answer.

The Threshold of Knowledge

Work happens at the edge of what is known. Where the path is clear, no kata is needed. The routine exists for the grey zone between current and target condition, where the honest answer is "we do not know yet" and the only way forward is a cheap, fast, predicted experiment.

Starter Kata, Not Finishing Kata

Rother calls the prescribed forms starter kata — scaffolding for practising scientific thinking, meant to be outgrown. Treating the worksheet as the deliverable inverts the intent.

When to Use:

  • Chronic problems that resisted a one-shot fix, where the cause is genuinely unknown

  • Turning a vague "we should get faster" into something testable: a described condition plus a date

  • Coaching — the Five Questions give a manager a way to develop a person without taking the problem away from them

  • Any place where goals are set but no route is described; the kata forces the gap between target and current condition into the open

  • As the daily-practice counterpart to a project-shaped method such as dmaic

Common Misunderstandings:

  • ❌ "A target condition is a target number" — it describes how the process should operate, with the number as one attribute among several

  • ❌ "The Five Questions are the method" — they are the coach’s half, worthless without a learner who has practised the Improvement Kata

  • ❌ "Kata means rigid ritual" — Rother’s starter kata are practice forms to be outgrown, like scales for a musician

  • ❌ "Toyota teaches this under this name" — Rother derived and named the routines from observing Toyota; the framing is his

  • ✓ "It is PDCA with a coach and a described destination" — a fair short summary

Criticism:

  • The training industry has overtaken the practice. Christoph Roser, professor at Karlsruhe University of Applied Sciences: "the promotion and training of kata has overtaken the actual improvement process", and on the credential market, "I am not sure if a ~3-hour online Toyota Kata course really prepares someone to be a coach" — "true skill comes only from practice". He states plainly, "I am not overly fond of it" about kata-as-business, while holding that the underlying concept "is sound and valid". Roser, "Toyota Kata" (11 September 2018).

  • Managers grab the coaching card first. Mark Rosenthal observes that managers "want to jump right into coaching" because "the '5 Questions' and some of them think that is all there is to it", and warns: "Until you have struggled as a learner to apply the Improvement Kata…please don’t just pick up the 5 Questions card." Rosenthal, "Mike Rother: The Toyota Kata Practice Guide" (21 December 2017).

  • The 2009 book told you what, not how. The same review describes the original as "a fairly high-level summary of research findings" that largely omitted "step-by-step guide of how to practice and what to practice" — which is why a separate practice guide had to follow eight years later.

  • Scientific thinking arrived without scientific scepticism. Bob Emiliani credits Rother’s 2009 book with putting "scientific thinking" into the Lean vocabulary, then argues the community never took the rest of the package: "The Lean community is anything but scientifically skeptical", with practitioners behaving as "true believers". Emiliani, "Scientific Thinking Without Skepticism" (30 June 2026).

Current Status:

  • The how-to gap was closed by a second book. Rother published The Toyota Kata Practice Guide (McGraw-Hill, 2017) as the practice manual the 2009 book lacked — confirmed in Rosenthal’s review above. When a model has read only the 2009 material, expect the concepts without the drills.

  • Absorbed into the Toyota Way rather than replacing it. Jeffrey Liker restructured his Toyota Way model to put scientific thinking at its centre and positions the kata as the mechanism for developing it: "perhaps we can view the kata as a catalyst that juices scientific thinking, which, in turn, is the engine that drives the Toyota Way." He is explicit that this is not a substitution: "Does this mean that Toyota Kata now replaces the Toyota Way since scientific thinking is at the center? Certainly not." Liker, Lean Enterprise Institute (18 March 2022).

  • The name is Rother’s, not Toyota’s. Liker describes Rother as adopting "kata" from martial arts practice to label routines he observed. We found no source showing that Toyota itself teaches these routines under that name — treat "Toyota Kata" as the title of a book about Toyota, not as internal Toyota vocabulary.

Value Stream Mapping

Details
Full Name

Value Stream Mapping

Also known as

VSM; material and information flow mapping (the original Toyota name); value stream analysis

Core Concepts:

Two Maps, Not One

The method’s backbone is the pair. A current-state map records the value stream as it actually runs today, walked backwards from the customer. A future-state map shows the stream as it should run after improvement. A map without its counterpart is a picture, not a method.

Material Flow and Information Flow on One Sheet

The lower half of the sheet follows the product; the upper half follows the signals that tell each step what to make and when. Drawing both together is what exposes the scheduling decisions that create the queues — the reason Toyota called it material and information flow mapping.

The Timeline Separates Process Time from Waiting Time

A stepped line along the bottom splits total lead time into the minutes work is actually being done and the hours or days it spends waiting. The ratio of the two is flow efficiency, and in most real streams it is shockingly small. This separation is the single most transferable idea in the method.

Door to Door, One Product Family

The scope is a single product family across one facility or one end-to-end service, not the whole company and not one workstation. Too narrow and you optimise a local step; too broad and the map becomes wallpaper.

Waste Is Found, Not Assumed

The map is a diagnostic. Inventory piles, rework loops, and batch-and-queue scheduling become visible as symbols, which is why the book is called Learning to See.

A Plan Is Part of the Deliverable

Rother and Shook end with a value-stream plan — who does what by when — so the future state is scheduled, not merely drawn.

Key Proponents

Mike Rother and John Shook, whose workbook Learning to See: value-stream mapping to create value and eliminate muda (Lean Enterprise Institute, Brookline MA, 1999) introduced the technique to an English-speaking audience. The practice itself comes from Toyota.

When to Use:

  • Diagnosing why an end-to-end delivery takes weeks when the work in it takes hours

  • Making queueing and handover cost visible to people who only ever see their own step

  • Before a larger improvement programme, as the Define/Measure groundwork a dmaic project needs

  • In software delivery, to measure flow efficiency across commit, review, test, and release rather than optimising one stage

  • Any linear, repeatable flow with a recognisable product family

Common Misunderstandings:

  • ❌ "A value stream map is a process flowchart" — a flowchart shows steps; a VSM adds information flow, inventory between steps, and a lead-time timeline

  • ❌ "You map the whole organisation" — one product family, door to door

  • ❌ "The current-state map is the deliverable" — without a future state and a plan, nothing changes

  • ❌ "It works anywhere" — it assumes a reasonably linear flow

  • ✓ "The point is the gap between process time and lead time" — that gap is what the method was built to reveal

Criticism:

  • It ignores variability, and variability is what actually creates the queues. Todd R. Zabelle, writing for the Project Production Institute, argues from operations science that "focusing only on waste (muda) ignores variability (muri), and the fact that variability has to be buffered regardless whether by capacity, inventory or time." He also faults the "value-added fantasy" — the assumption that cutting non-value-added time automatically raises efficiency — for overlooking the VUT equation and Little’s Law, and notes that VSM "does not provide a means for diagnosing the causes of long cycle times" and "frequently does not compute utilization and thus misses situations where a production system is facing demand in excess of capacity." Zabelle, "Operations Science View of Value Stream Mapping" (6 December 2018).

  • Nothing checks whether the future state is reachable. Same source: "while there is a design step in Value Stream Mapping to depict a 'future state,' there aren’t any means to confirm whether the future state is actually achievable." The map asserts a target; it does not test it.

  • It does not fit unstructured work. Christoph Roser rules out job shops, where "the material flow is not standardized and may differ for every part. This makes a value stream map difficult to draw, and hence usually quite incomplete," and indirect and administrative areas, "because they often have no structured flow. Swim lanes are much better here." Roser, "When to Do Value Stream Maps (and When Not!)" (28 July 2015, updated 21 August 2025). This is the limit software teams hit first.

  • Mapping crowds out improving. Roser again: "the Western world puts too much emphasis on value stream mapping. Many invest too much time in making a value stream and then have no time or energy left to actually improve the situation on the shop floor," adding that maps "are often pushed by consultants that need to familiarize themselves with the shop floor of their client."

  • Detail kills it. Roser puts the sweet spot at "between 4 and 15 process boxes" and says "anything above 30 is a waste of time," reporting from his own experience: "I once made the mistake of doing a value stream map with over 60 process boxes, but nothing useful came ever out of this." An oversized map becomes "in effect a wallpaper that looks pretty and impresses people." Roser, "Practical Tips for Value Stream Mapping" (18 August 2015, updated 21 August 2025).

Current Status:

  • The 1999 workbook is still the reference text. Learning to See (Lean Enterprise Institute, 1999) remains in print and in LEI’s catalogue, which describes the same two-step sequence the anchor names: "You begin by mapping the current state of the value stream, looking for all the sources of waste. After identifying the waste, you draw a map of a leaner future state and a value-stream plan to guide implementation." LEI, Learning to See.

  • Rother’s own work moved on. His later books are Creating Continuous Flow (2001) and Toyota Kata (2009), which teaches an iterative improvement routine rather than a map. Wikipedia, Mike Rother. Whether he moved because mapping alone failed to produce lasting change is a common claim in the lean community; no statement to that effect could be confirmed from a primary source, so it is not asserted here.

  • In software the term has drifted. "Value stream management" in DevOps tooling usually means dashboards over delivery-pipeline metrics, not a hand-drawn current-state and future-state pair. When precision matters, say which one you mean.

What Would Chuck Norris Do? (WWCND)

Details
Full Name

What Would Chuck Norris Do?

Also known as

WWCND, Chuck Norris framing, "What would Chuck do?"

Core Concepts:

What the anchor activates

A disposition, not a methodology: commit to the most direct, effective solution; refuse hedging; refuse premature optimisation; refuse ceremony that does not buy risk reduction. The activation is driven by the Chuck Norris facts meme corpus (circa 2005–) and its well-established software subcorpus ("Chuck Norris doesn’t write unit tests — the code is too afraid to fail"), both of which are densely present in modern LLM training data.

Scope note

WWCND is a Tier 3, qualified anchor. It is not self-standing in the way that GoF Patterns or DDD are. Used bare it produces humour with signal; used with a short qualifier — "WWCND: commit to the most direct solution" — it behaves reliably across scenarios. It activates one disposition, not an interconnected body of engineering knowledge.

How it differs from neighbours
  • Devil’s Advocate activates contrary-argument generation — a rhetorical operation against a stated position. WWCND activates direct-commitment problem-solving. Complementary, not substitutable, in the same way KISS and YAGNI coexist.

  • KISS constrains the shape of a solution toward simplicity. WWCND constrains the stance toward commitment under uncertainty. A WWCND recommendation can still be a complex solution if that is the most direct one.

  • Rambo and other action-hero framings produce convergent recommendations but different vocabulary: military metaphors ("fortify the perimeter") rather than software-native framing ("Microservices migrate to Chuck Norris, not the other way around").

Why it works

The Chuck Norris humour format is built on absurd competence — the subject overcomes constraints that would stop anyone else. Applied to software problems, that frame consistently steers the model toward action-biased, commitment-first answers and away from multi-option hedging. Cross-model testing (see below) shows the activation is stable enough to treat as an anchor rather than a stylistic quirk.

Empirical validation

Validated by Cornelius Schumacher (Protocol v3, April 2026) across Claude Sonnet 4.6, Gemini 3.1 Pro, and GPT-5.3 Codex: 19 prompts × N=2 = 114 manually scored responses. Key results: WWCND exceeds a "be direct, don’t hedge" control condition on engagement (12/12 scenario-model pairs) and insight quality (12/12); three independent models converged on the same primary recommendation in all four test scenarios (12/12 agreement); five architectural patterns (Strangler Fig, modular monolith / packwerk, team expertise, regression-for-specific-bug, CI gate) appeared unprompted across all three models. Full report: https://github.com/cornelius/what-would-chuck-norris-do

Known limitation

GPT-5.3 Codex activates the decisiveness signal but not the character voice — it treats all persona anchors with a uniform pragmatic style. Expect diminished distinctiveness on Codex-class models. The recommendation content is consistent; the framing is muted.

Key Proponents

Ian Spector, The Truth About Chuck Norris (Gotham Books, 2007); Ian Spector and Chuck Norris, The Official Chuck Norris Fact Book (Thomas Nelson, 2009) — co-authored with Norris. Empirical catalog validation: Cornelius Schumacher, Protocol v3 (April 2026).

When to Use:

  • Breaking decision paralysis — teams stuck in a prolonged trade-off debate where any reasonable commitment is better than continued deliberation

  • Counter-balancing excessive hedging — when a previous answer is multi-optioned to the point of uselessness, apply WWCND to collapse to a recommendation

  • Architecture or technology picks where the differences are marginal and the cost of not deciding exceeds the cost of a suboptimal pick

  • Pairing with Devil’s Advocate — WWCND commits, Devil’s Advocate then stress-tests the commitment. Together they avoid both paralysis and overcommitment.

  • Avoid in situations that require calibrated judgment between genuinely different outcomes — the anchor’s commitment bias can underweight nuance

  • Devil’s Advocate - Complementary partner: WWCND commits, Devil’s Advocate challenges

  • KISS Principle - Sibling in the simplification family, applied to solutions rather than stance

  • YAGNI - Both resist ceremony and speculative complexity

  • Occam’s Razor - Occam selects the most parsimonious explanation; WWCND commits to the most direct response

XY Problem

Details
Also known as

Solution Fixation, Asking the Wrong Question

Core Concepts:

X is the Real Problem

The underlying goal the asker actually wants to achieve

Y is the Attempted Solution

The approach the asker has chosen, often based on an incomplete model of X

The Question Hides X

The asker phrases their request as "How do I do Y?" — X is never stated, only assumed by the asker

Solution Fixation

Commitment to Y obscures whether Y solves X at all, and may rule out simpler approaches

Goal-Step Confusion

Conflating "what I want" with "the steps I think will get me there"

Recognition Heuristic

Y looks unusual, brittle, or disproportionate to the questioner’s apparent expertise — usually a sign that X is hidden

Resolution by Probing

Ask "What are you actually trying to accomplish?" — surface X, then propose solutions for X (which may or may not include Y)

Asker’s Discipline

State X first, then your attempted Y, then the specific blocker — this lets the helper validate the whole chain

Key Proponents

Mark Jason Dominus (coined the term in a 2001 post to comp.lang.perl.misc), Eric S. Raymond ("How To Ask Questions The Smart Way", 2001 — "describe the goal, not the step")

Historical Context

Crystallized in Usenet and IRC help culture of the early 2000s; canonical reference at https://xyproblem.info/ and Greg’s Wiki (mywiki.wooledge.org/XyProblem); now part of the standard vocabulary on Stack Overflow, Hacker News, and software help channels.

When to Use:

  • As a helper, when a question feels strange, over-specific, or asks for an awkward technical workaround — pause and ask for the underlying goal

  • In LLM dialogues, to break out of solution-fixation when a model keeps trying to make Y work

  • In requirements clarification, when a stakeholder demands a specific feature that looks like a workaround for an unstated need

  • In code review, when a change looks like a hack — check whether the wrong problem is being solved

  • In support tickets and bug reports, to redirect from "this UI doesn’t let me do Y" toward "what task X were you doing?"

  • As an asker, to discipline yourself to state the goal before the attempt

  • Socratic Method — questioning to surface the underlying problem

  • BLUF — the asker’s analogue: lead with the goal, not the step

  • Problem Space (NVC) — distinguish needs from strategies, the same X/Y move from a Nonviolent Communication frame

    Counter-example

    Concrete reproduction steps for a confirmed bug — the steps are the problem, not a workaround for it.

Requirements Engineering

Cockburn Use Cases

Details
Full Name

Cockburn Use Cases (Writing Effective Use Cases)

Also known as

Fully Dressed Use Cases, Goal-Level Use Cases, Cockburn Format

Core Concepts:

Fully Dressed Format

A structured textual template for describing system behavior from the actor’s perspective. Each use case includes: Primary Actor, Stakeholders & Interests, Preconditions, Trigger, Main Success Scenario (numbered steps), Extensions (alternative/failure paths with step references), Postconditions (success guarantee and minimal guarantee), and Technology & Data Variations.

Goal Levels

Three abstraction levels that organise use cases into a hierarchy:

  • Summary (Kite/Cloud) — business-process-level goals spanning multiple user sessions. Example: "Manage customer lifecycle."

  • User Goal (Sea Level) — the sweet spot: one actor, one sitting, one measurable outcome. Example: "Place an order." Most use cases live here.

  • Subfunction (Fish/Clam) — steps that support a user goal but are not goals in themselves. Example: "Authenticate user." Extract only when reused across multiple user-goal use cases.

Scope

Defines the system boundary — what is inside the "design scope" and what is an external actor. Cockburn uses icons (a box for the system, a person for actors) to make the boundary visual. Getting scope right prevents use cases from being either too vague (organisational scope) or too detailed (component scope).

Actor-Goal List

The discovery technique: list every actor and every goal they have against the system. This produces a candidate use case list before writing any prose. The goal level test: "Does the actor go home happy if this goal is achieved?" filters out subfunctions masquerading as user goals.

What Cockburn does not prescribe

Cockburn’s format is deliberately prose-based and notation-agnostic. It does not mandate Activity Diagrams, Gherkin, EARS, or any formal syntax. Those are complementary representations that can be layered on top — Activity Diagrams for visual flow, Gherkin for executable acceptance criteria, EARS for structured requirement statements.

Key Proponents

Alistair Cockburn (Writing Effective Use Cases, Addison-Wesley, 2001). The book remains the canonical reference; Cockburn also contributed to the Agile Manifesto and Crystal methodologies.

When to Use:

  • Discovering what a system needs to do before deciding how to build it — the Actor-Goal List is a fast, structured brainstorm

  • Structuring requirements conversations with stakeholders who think in scenarios, not features

  • Decomposing a large system into manageable behavioural units at the right granularity (goal-level test)

  • Brownfield theory recovery: reconstructing what a system does by writing use cases from observed behaviour

  • Feeding downstream artifacts: each use case becomes a natural unit for Activity Diagrams, Gherkin scenarios, and test plans

  • Complementing arc42: use cases populate Section 6 (Runtime View) and inform Section 3 (Context and Scope)

  • Gherkin - Executable acceptance criteria that can be derived from each extension path in a use case

  • BDD Given/When/Then - Formalises the scenario steps that Cockburn describes in prose

  • EARS Requirements - Structured syntax for individual requirement statements; complements Cockburn’s scenario-level structure

  • arc42 - Use cases feed Section 6 (Runtime View) and inform Section 3 (Context and Scope)

  • ISO 25010 - Quality goals that use case extensions should address (error handling, performance, security)

Further Reading:

  • Anchors and Training Data - why this anchor reflects Cockburn’s craft rather than Jacobson’s later Use-Case 2.0/3.0, and what that reveals about how anchors depend on training data.

Current Status:

  • Writing Effective Use Cases (2001) never had a second edition and remains the canonical craft text — and the densest, most reliably activated LLM prior for use-case writing

  • Jacobson’s successor exists and works as an anchor of its own: Use-Case 2.0 (Jacobson, Spence & Bittner, free ebook, 2011) adapts use cases to iterative delivery via use-case slices

  • Use Case 3.0 (de Mendonca & Jacobson, v1.0, 2024) does exist — but it is too young to be an anchor: LLMs hold no dense prior for it (see Further Reading above), so supply its definition in the prompt if you want 3.0 semantics. Jacobson and Cockburn realigned their craft in "Use Cases are Essential" (ACM Queue, 2023)

Connextra User Story Format

Details
Full Name

Connextra user story format — the three-part user story template devised at Connextra, London

Also known as

the user story template, the three-part story template, the "As a … I want … so that …" format, role-goal-benefit

Core Concepts:

Always Say the Qualified Name

Use "the Connextra user story format", never the bare company name. The bare name does not resolve to this concept in weaker models — see Current Status for the measurement. The qualified string is the anchor; "Connextra" alone is a trap.

Three Slots, One Sentence

As a <role>, I want <goal or capability>, so that <benefit>. Mike Cohn writes the skeleton as "As a …, I … so that …." — who, what, why. The third slot is the one most often dropped and the only one that carries the reason the work is worth doing.

A Form, Not a Quality Standard

invest judges whether a story is any good — independent, negotiable, valuable, estimable, small, testable. This anchor names the shape the sentence takes. A story can fill all three slots and still fail every INVEST letter.

The Sentence Is the Promise of a Conversation, Not the Requirement

The card exists to be talked about. This is the point the template’s own critics press hardest, and it is part of the concept rather than an objection to it.

Where It Sits Among the Neighbours

The Connextra form writes the story; bdd-given-when-then writes its acceptance criteria; user-story-mapping arranges many stories along a user’s journey; jobs-to-be-done and the job story offer a different sentence with a different unit of analysis.

The Attributable Name

Most practitioners know the template with no name at all. "Connextra" is what makes it citable — a specific team at a specific London company in the early 2000s, rather than anonymous agile folklore.

When to Use:

  • Turning stakeholder notes into backlog items, where the benefit clause is the test of whether anyone knows why the item exists

  • Reviewing a backlog for stories whose role slot says "system" or "developer", a reliable sign the item is a task

  • Teaching the form to a team new to stories, as a learning aid with an explicit exit — see the Criticism section

  • Asking an LLM to draft backlog items, where naming the qualified form imposes the three-part shape; on a maintainer-backlog task that contained no user story at all, naming it imposed the template on the answer

  • Deciding deliberately between this form and a job story, rather than defaulting

Common Misunderstandings:

  • ❌ "Connextra is a coding kata" — it is a London software company; this specific confabulation is what weaker models produce from the bare name

  • ❌ "Connextra format and INVEST are the same thing" — one is the sentence’s form, the other is a quality check on the result

  • ❌ "A story is the sentence on the card" — the card is a token for a conversation; Jeff Patton’s whole objection is aimed at this reading

  • ❌ "Everything in the backlog must fit the template" — Mike Cohn, who popularised it, says otherwise in plain words (see Criticism)

  • ❌ "As a system, I want …" — no beneficiary, therefore no benefit clause worth writing; that item is a task

  • ✓ "It is the standard three-part form for a user story, and its author is attributable" — accurate, and the reason it belongs next to invest rather than inside it

Criticism:

  • Jeff Patton: the template turned stories into requirements. Announcing User Story Mapping, Patton describes the book’s purpose as "saving stories from the template zombies (that have turned them into yet another annoying way to express software requirements), and instead having really high-fidelity conversations about how our product helps people." Patton, "Jeff Patton’s Book Released: User Story Mapping" (30 January 2015). The objection is not that the form is wrong but that filling it in has replaced the conversation it was meant to start.

  • Alan Klement and Intercom: three structural defects, and a different sentence. Klement lists the problems with the user story format as "They use Personas.", "They couple implementation with motivations and outcomes." and "They ignore context, situations, and anxieties." On the coupling: when a feature fails, "because implementation was coupled with motivations and outcomes. Because of the coupling, how can anyone know what was wrong?" His replacement is the job story, "When [situation]…[motivation]…[expected outcome]." Klement, "Designing Features Using Job Stories", Inside Intercom (23 December 2013). See jobs-to-be-done.

  • Chris Matts: put the value first. Matts' Feature Injection reverses the order so the business benefit opens the sentence — Liz Keogh prints his template as "In order to <deliver some business benefit> <these people> will need <these features>." The objection is about emphasis: the Connextra form opens with the stakeholder, so the benefit arrives last and is the easiest slot to leave empty. Keogh, "Feature Injection and handling technical stories" (10 September 2008).

  • Mike Cohn, who popularised the template, limits it himself. "When expressing something in the standard user story template doesn’t make sense, don’t use that template." He warns that "too many stories are written as just 'as a user…'", which may "indicate a system not well suited to user stories", and on being made to comply: "The last thing I need would be a Scrum Master insisting I write it to follow a template." Cohn, "User Story Template: What It Is and Why It Works So Well", Mountain Goat Software.

  • German-language criticism makes the same point about narrowed thinking. Die Produktwerker: "Aber wer alles in das Format „Als (Nutzer) möchte ich…, damit …" zwängt, läuft Gefahr, das Denken zu verengen." Die Produktwerker, "Die fünf größten Fehler bei der Arbeit mit User Stories" (July 2025).

Current Status:

  • The bare company name confabulates, with no hedging. Asked "What is Connextra?", claude-haiku-4-5 in a clean room answered that it is "a software development kata (coding exercise) created by Emily Bache" and went on to describe a refactoring exercise that does not exist. An invented answer under a confident heading. Use the qualified form.

  • The qualified form reaches the concept. "The Connextra user story format" produced the right template, dated it to 2001 and credited the Connextra team on the same weak tier.

  • The origin is attributable to a team and a company; the exact year is not as firm as it is usually printed. Mike Cohn writes that the template "originated with agile coach Rachel Davies at a UK company, Connextra, in the early 2000s". Seb Rose’s account agrees on the person and place: "The challenges teams had writing user stories led to the creation of the Connextra template by Rachel Davies in the early 2000s." Rose, "User stories and BDD (part #1)" (31 October 2019). Both sources say "early 2000s"; the widely repeated date of 2001 did not appear in either, and Davies is reported to credit the Connextra team rather than herself. Credit the team, and say "around 2001" rather than asserting it.

  • Popularised, not authored, by Cohn. User Stories Applied (2004) and Agile Estimating and Planning are why the form is near-universal.

Domain Storytelling according to Hofer and Schwentner

Details
Full Name

Domain Storytelling, as described by Stefan Hofer and Henning Schwentner in Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software (Addison-Wesley, Vaughn Vernon Signature Series, 2021; ISBN 978-0-13-745891-2). Method site: https://domainstorytelling.org

Also known as

Domain Stories

Core Concepts:

A Pictographic Language

A domain story is drawn with three building blocks: actors (a person, a group or a software system) as icons, work objects (documents, physical things, digital objects) as icons, and activities as arrows labelled with verbs from the domain language. Actors and work objects are nouns, activities are verbs.

Numbered Sentences

Each activity is one sentence — who (actor) does what (activity) with what (work object) with whom (other actor). A sequence number at the origin of the arrow puts the sentences in order, so the picture can be read back as a story.

One Concrete Story per Diagram

The notation has no symbols for conditionals, variations or alternatives. A domain story is one concrete, meaningful example: start with the most common case and the happy path, record small variations as annotations, and model important alternatives as separate stories.

Avoid Premature Abstraction

First understand typical cases by telling stories, then collect the rules. Generalised process models drawn too early are often wrong.

Scope Factors

Each story has a chosen scope: coarse-grained or fine-grained; as-is or to-be; pure (without software) or digitalized (with software systems as actors).

A Workshop, Not a Diagram

Domain experts tell, a moderator records step by step where everyone can see it, and asks "what happens next?". At the end, the moderator retells the story from the start to get agreement. The picture serves the people telling the story first, and is a memory aid afterwards.

Egon.io

Open-source, browser-based modeler for domain stories, maintained by WPS (https://egon.io, https://github.com/WPS/egon.io).

Bridge to DDD

Domain stories help find boundaries between subdomains and bounded contexts, collect the domain language that becomes a ubiquitous language, and decide which concepts become which DDD building blocks.

When to Use:

  • Learning a domain from its experts before writing requirements or code

  • Building a shared language between domain experts and developers

  • Finding subdomain and bounded-context boundaries in a domain-driven-design effort

  • Comparing an as-is process with a to-be process, with and without the planned software

  • Driving a model: "write this as a domain story: numbered sentences of the form actor — activity — work object — actor, one concrete case, variations as annotations" asks for the notation, not a flowchart

Common Misunderstandings:

  • ❌ "Domain Storytelling is a flowchart with icons" — it has no branches; each alternative is its own story

  • ❌ "Draw everything that can happen" — a story describes one case; rules come after the typical cases are understood

  • ❌ "Domain Storytelling and Event Storming are rivals" — the authors name event-storming as a technique to continue with; Event Storming starts from events on a timeline, Domain Storytelling from actors and their work

  • ✓ "One concrete story, told by the experts, read back in numbered sentences"

Current Status:

Double Diamond

Details
Full Name

Double Diamond Design Process Model

Also known as

4Ds Model, Design Council Double Diamond

Core Concepts:

Two Diamonds, Four Phases

Discover → Define → Develop → Deliver. Each diamond is one divergent-convergent cycle. The first diamond explores and frames the problem; the second diamond explores and ships the solution.

Discover (Divergent, Problem Space)

Broad research — interviews, observation, immersion, data analysis. Goal: widen the understanding of what’s actually going on, not jump to causes.

Define (Convergent, Problem Space)

Synthesize findings into a sharp problem statement. The famous slogan: "Are we solving the right problem?" — the diamond ends with a problem worth solving, not a list of features.

Develop (Divergent, Solution Space)

Generate many candidate solutions — sketches, prototypes, co-design workshops. Diverge widely before narrowing; resist solution fixation.

Deliver (Convergent, Solution Space)

Test, refine, ship. The chosen concept is iterated until it’s production-ready; failed candidates are explicitly killed rather than left lingering.

Design the Right Thing, Then Design the Thing Right

The canonical summary. The first diamond addresses "right thing" (problem worth solving); the second addresses "thing right" (solution that works).

Divergent Before Convergent

A hard discipline at every phase. Premature convergence — picking the obvious problem or obvious solution — is the failure mode the model is designed to prevent.

Iteration, Not Waterfall

The diamonds are not strictly linear. Learnings in Develop frequently send the team back to Discover or Define. The 2019 Framework for Innovation update made this explicit.

Mindsets and Principles

The Design Council pairs the four phases with four principles (Put people first, Communicate visually and inclusively, Collaborate and co-create, Iterate, iterate, iterate) — the diamonds without the mindset is just process theater.

Key Proponents

UK Design Council (originally published 2005; expanded as Framework for Innovation in 2019). Built on the divergent-convergent tradition of J.P. Guilford (1956) and Béla H. Bánáthy.

Historical Context

Developed by the Design Council in 2005 after research into how leading design organizations actually worked. The 2019 update reframed it as a system-level innovation framework, adding the principles, key roles, and explicit iteration arrows. Adopted broadly in UX, service design, government innovation (UK GDS, NHS, Danish Mindlab), and design education.

When to Use:

  • Framing UX or service design projects when the team is at risk of jumping to solutions

  • Innovation workshops and design sprints — the diamonds give a shared visual model for sequencing divergent and convergent work

  • Discovery phases of product development when the problem itself is not yet well understood

  • Teaching design thinking — the model is more concrete than abstract "design thinking" because it names the four moves

  • Communicating why a discovery phase is necessary to stakeholders who want to skip straight to delivery

  • Jobs to be Done — sharpens the Define output by reframing customer needs as functional, emotional, and social jobs

  • Problem Space (NVC) — separates needs from strategies; complements the first-diamond discipline of staying in problem space

  • XY Problem — anti-pattern that the first diamond is designed to prevent (solving Y before understanding X)

  • MVP — the Deliver output is often shaped as an MVP to validate the chosen solution against the defined problem

EARS-Requirements

Details
Full Name

Easy Approach to Requirements Syntax

Core Concepts:

Ubiquitous requirements

"The <system> shall <requirement>"

Event-driven requirements

"WHEN <trigger> the <system> shall <requirement>"

Unwanted behavior

"IF <condition>, THEN the <system> shall <requirement>"

State-driven requirements

"WHILE <state>, the <system> shall <requirement>"

Optional features

"WHERE <feature is included>, the <system> shall <requirement>"

Structured syntax

Consistent templates for clarity

Testability

Requirements written to be verifiable

Key Proponent

Alistair Mavin (Rolls-Royce)

When to Use:

  • Safety-critical systems

  • Regulated industries (aerospace, automotive, medical)

  • When requirements traceability is essential

  • Large, distributed teams

Event Storming according to Alberto Brandolini

Details
Full Name

Event Storming

Also known as

EventStorming (Brandolini)

Core Concepts:

Domain events on a timeline

Model the domain as past-tense domain events (orange stickies) placed left-to-right on a wide wall, reconstructing how the business actually unfolds over time

The colour notation

A fixed sticky vocabulary — orange = Domain Event, blue = Command, yellow = Aggregate, lilac = Policy (reactive "whenever… then…"), green = Read Model, pink = External System, red = Hotspot (conflict, question, assumption)

Three levels

Big Picture (explore the whole domain with all stakeholders), Process Modeling (zoom into one flow: command → event → policy → command), Design Level (aggregates, commands and events detailed enough to drive implementation)

Pivotal events

Events that mark phase transitions or boundaries — strong candidates for bounded context seams

Hotspots

Make conflicts, unknowns and assumptions explicit on the wall instead of glossing over them — they become the agenda

Chaotic exploration → enforced timeline

Everyone adds events in parallel first (diverge), then the group orders and de-duplicates them into a coherent line (converge)

Key Proponents

Alberto Brandolini (first run 2012, "Introducing EventStorming" blog post 2013; Leanpub book, continuously updated)

When to Use:

  • Kicking off a Domain-Driven Design effort — discovering bounded contexts and aggregate boundaries collaboratively

  • Aligning business and engineering on a shared, visual domain model

  • Before deciding on an event-driven or CQRS architecture — discover the events/commands first

  • Reverse Event Storming on legacy systems (well suited to an AI agent): extract state transitions → map to Domain Events → cluster into Aggregates → surface Bounded Contexts

When NOT to Use:

  • Trivial CRUD domains with no meaningful process or business rules

  • Solo modeling where the collaborative, cross-role discovery — the whole point — is absent

  • Domain-Driven Design — the vocabulary (aggregates, bounded contexts) Event Storming discovers; often the on-ramp to DDD

  • User Story Mapping — activity-centric mapping vs. event-centric discovery

  • CQRS — commands and read models found on the wall feed a later CQRS decision

  • Event-Driven Architecture — the modeling step that precedes deciding how events are routed

  • Domain Storytelling — actor-centric stories of one concrete case vs. event-centric discovery on a timeline; often used as a companion

INVEST

Details
Full Name

INVEST Criteria for User Stories

Also known as

INVEST Checklist, INVEST Mnemonic

Core Concepts:

INVEST = Independent / Negotiable / Valuable / Estimable / Small / Testable

Independent

Stories should be self-contained and deliverable in any order; avoid dependencies between stories that force a fixed implementation sequence

Negotiable

Stories are not contracts; the details are open to discussion between team and stakeholders until they enter a sprint

Valuable

Every story must deliver clear value to the user or business; stories that only serve technical needs should be wrapped in user-visible value

Estimable

The team must be able to estimate the story’s size; if they cannot, the story is too large, too vague, or requires a spike

Small

Stories should be small enough to complete within a single sprint; large epics must be broken down before entering a sprint

Testable

Stories require concrete acceptance criteria so developers and testers can verify completion; untestable stories hide ambiguity

Key Proponent

Bill Wake ("INVEST in Good Stories, and SMART Tasks", 2003)

When to Use:

  • Reviewing user stories before sprint planning to assess readiness

  • Splitting epics into smaller, deliverable stories

  • Coaching teams on what constitutes a well-formed user story

  • During backlog refinement to identify stories that need more work

  • As a Definition of Ready checklist for story acceptance into a sprint

Related Anchors:

Kano Model

Details
Also known as

Kano Analysis, Kano-Modell, Customer Satisfaction Model

Core Concepts:

Two-dimensional Quality

Customer satisfaction is not the simple inverse of dissatisfaction — they are two separate axes (presence/absence of a feature × resulting satisfaction)

Five Feature Categories

Every feature falls into one of five classes that map differently onto the satisfaction curve

Must-be (Basic, Threshold)

Expected baseline — absence causes strong dissatisfaction, presence is taken for granted and earns no credit (e.g., car has wheels, app does not lose data)

One-dimensional (Performance, Linear)

Satisfaction grows roughly linearly with how well the feature is delivered (e.g., fuel efficiency, response time, battery life)

Attractive (Excitement, Delighter)

Unexpected — absence causes no dissatisfaction, presence delights and differentiates (e.g., a thoughtful onboarding gesture, a surprising shortcut)

Indifferent

Customer does not care either way — flag for cost reduction

Reverse

Presence actually causes dissatisfaction for the target segment — flag for removal or segmentation

Functional / Dysfunctional Questionnaire

For each candidate feature, ask the user two paired questions: "How would you feel if this feature were present?" and "How would you feel if it were absent?". The cross-tab of answers maps the feature to one of the five categories

Time Decay

Categories migrate over time. Today’s Delighter becomes tomorrow’s Performer and eventually a Must-be as the market matures (mobile camera, HTTPS, dark mode)

Key Proponent

Noriaki Kano (Tokyo University of Science), originally published in 1984 in the Japanese journal Hinshitsu ("Quality")

Historical Context

Developed in the context of Japanese quality management, alongside Total Quality Management and the Kaizen movement; widely adopted in product management, UX research, and requirements engineering since the late 1990s.

When to Use:

  • Prioritising features in a product backlog beyond raw business value

  • Distinguishing the "non-negotiables" (Must-be) from the "wow features" (Delighter) before estimation

  • User research where you need to understand why a feature affects satisfaction, not just whether users like it

  • MVP scoping: ensure all Must-be features are covered before investing in Delighters

  • Product strategy reviews: spot Delighters that have decayed into Performers or Must-be and update positioning

  • Combining with MoSCoW Method — Must-be → Must, Performance → Should, Delighter → Could

  • MoSCoW Method — complementary prioritisation lens (organisation-driven), often combined with Kano (customer-driven)

  • Jobs To Be Done — discovery side: what job is the customer hiring the feature for, before classifying its impact

  • EARS Requirements — once a feature is classified as Must-be, EARS gives it the unambiguous wording

    Counter-example

    Pure ROI-based ranking — useful but blind to the asymmetry between dissatisfaction (Must-be) and delight (Attractive). Kano corrects that.

Laddering (Interview Technique)

Details
Also known as

Means-End Laddering, Laddering Interview

Core Concepts:

Means-end chain

A laddering interview reconstructs the chain attribute → consequence → value: a concrete feature of a product or solution, the consequence it produces for the user, and the personal value that consequence serves. The chain is the unit of insight, not any single answer.

Laddering up

Probe toward abstraction with "Why is that important to you?" repeatedly, climbing from attributes through consequences toward the respondent’s underlying goals and values.

Laddering down

Probe toward specifics with "How?" or "Can you give an example?" to move from a stated value or abstract need back down to concrete attributes and observable behaviour.

Bidirectional movement

Unlike single-direction questioning, a skilled interviewer moves both up and down the ladder within one session to map the whole value hierarchy and to verify links.

Contrast with Five Whys

Five Whys is a unidirectional root-cause technique that drills down one causal chain to a single defect or systemic cause. Laddering is bidirectional and surfaces a hierarchy of personal values and motivations, not a single root cause — it asks "why does this matter to you" (motivational), not "why did this fail" (causal).

Hierarchical value map

The aggregate analytical output across respondents — a graph linking common attributes, consequences, and values, used to find the dominant means-end paths a design or message should target.

Soft vs. hard laddering

Soft laddering uses free, probe-driven personal interviews; hard laddering uses structured forms or surveys that force the respondent up the ladder. Soft yields richer data, hard scales better and reduces interviewer bias.

Key Proponents

George Kelly (Personal Construct Psychology, 1955) and Dennis Hinkle (Ohio State PhD dissertation, 1965, "The change of personal constructs from the viewpoint of a theory of construct implications") originated laddering of constructs; Thomas J. Reynolds and Jonathan Gutman adapted it for means-end marketing research ("Laddering Theory, Method, Analysis, and Interpretation", Journal of Advertising Research, 1988)

When to Use:

  • Eliciting the why behind a stated requirement or feature request, when the surface ask hides a deeper goal

  • User and customer research where motivations and personal values drive adoption

  • Designing product messaging, positioning, or value propositions grounded in user values

  • Prioritising features by tracing each back to the value it ultimately serves

  • Moving an interview past superficial preferences toward actionable, goal-level insight

Criticism:

Current Status:

  • Originating in 1950s-60s clinical Personal Construct Psychology, laddering crossed into marketing and consumer research via Reynolds and Gutman (1988) and is now standard in UX research, requirements elicitation, and brand strategy. The hard/soft distinction (Grunert and Grunert, 1995) remains the live methodological axis, with recent work extending laddering to online and remote interview settings.

MoSCoW

Details
Full Name

MoSCoW Prioritization Method

Also known as

MoSCoW Analysis, MoSCoW Method

Core Concepts:

MoSCoW = Must have / Should have / Could have / Won’t have

Must have

Non-negotiable requirements essential for the current delivery; without them the solution is unusable or unsafe

Should have

Important requirements that are not vital; painful to leave out but the solution is still viable without them

Could have

Desirable but not necessary requirements; included only if time and resources permit

Won’t have (this time)

Requirements explicitly agreed to be out of scope for the current iteration; may be reconsidered in future

Timeboxed context

Prioritization is always relative to a fixed timebox, not permanent

Stakeholder alignment

Prioritization is a collaborative activity that builds shared understanding

Scope control

Explicit "Won’t have" category reduces scope creep by surfacing deferred items

Key Proponent

Dai Clegg (Dynamic Systems Development Method / DSDM, 1994)

When to Use:

  • Sprint and release planning in agile teams

  • Scoping a Minimum Viable Product (MVP)

  • Negotiating scope with stakeholders under time or budget constraints

  • Prioritizing a backlog when resources are limited

  • Aligning cross-functional teams on delivery expectations

Related Anchors:

PRD

Details
Full Name

Product Requirements Document

Also known as

Product Spec, Feature Spec, Requirements Specification

Core Concepts:

Problem statement

Clear articulation of the problem to be solved and the target users

Goals and success metrics

Measurable outcomes that define what "done" looks like (KPIs, OKRs)

User personas and use cases

Who will use the product and what they are trying to accomplish

Functional requirements

What the system must do — features, behaviors, and capabilities

Non-functional requirements

Quality attributes — performance, security, scalability, accessibility

Scope and out-of-scope

Explicit boundaries to prevent scope creep and align stakeholders

Constraints and assumptions

Technical, business, regulatory, or timeline constraints

Open questions

Unresolved decisions or dependencies that must be tracked

Key Proponents

Marty Cagan ("Inspired"), Roman Pichler ("Strategize")

When to Use:

  • Before starting design or development of a new product or major feature

  • When aligning cross-functional teams (engineering, design, marketing, legal)

  • To provide a shared reference for scope negotiations and tradeoff decisions

  • When stakeholder sign-off or compliance documentation is required

  • As a living document updated throughout the product discovery process

Nonviolent Communication (Rosenberg)

Details
Also known as

NVC, Problem Space NVC, Gewaltfreie Kommunikation (GFK)

Core Concepts:

Observations

Concrete, objective facts without evaluation or judgment. "The deploy failed three times this week" instead of "The deploy always fails."

Feelings

Emotions arising from observations. "I feel frustrated" instead of "This is frustrating."

Needs

Universal human needs underlying feelings. Reliability, autonomy, clarity, safety. The real driver behind every request.

Requests

Specific, actionable asks (not demands). "Could we add a pre-deploy check?" instead of "Fix the deploy process."

Four-step process

Observe → Feel → Need → Request. Each step builds on the previous one.

Key Proponent

Marshall Rosenberg ("Nonviolent Communication: A Language of Life", 1999)

When to Use:

  • Tell an LLM: "Reformulate this complaint using NVC according to Rosenberg"

  • Tell an LLM: "Write this stakeholder email in NVC style — observation, feeling, need, request"

  • Requirements elicitation that uncovers real user needs behind feature requests

  • Conflict resolution in teams and retrospectives

  • Transforming vague complaints into actionable requirements

  • Socratic Method — complementary: NVC for expressing, Socratic for exploring

  • BLUF — contrasting style: BLUF is conclusion-first, NVC is empathy-first

QFD

Details
Full Name

Quality Function Deployment (品質機能展開, hinshitsu kinō tenkai)

Also known as

the House of Quality (its best-known matrix, not the method itself); voice-of-the-customer deployment

Core Concepts:

Deployment, Not Translation

QFD carries customer needs through a chain of matrices — customer needs into technical characteristics, those into part characteristics, those into process and production requirements. Each matrix inherits the priorities of the one before, so a need that mattered at the start still has weight at the machine. The word in the name is deployment: priority propagates.

The House of Quality

The first matrix, and the signature artifact. Customer needs (the WHATs) form the rows, measurable technical characteristics (the HOWs) the columns, and the body records how strongly each characteristic serves each need. Side rooms hold customer importance ratings and a competitive benchmark; the basement holds target values for each characteristic.

The Correlation Roof Is the Part Nothing Else Has

The triangular roof sits above the columns and records how the technical characteristics relate to each other — which ones reinforce, and, crucially, which ones conflict. Lighter and stiffer; faster and cheaper to run; more secure and simpler to operate. A pugh-matrix scores options against criteria and a kano-model classifies needs; neither asks what the engineering parameters do to each other. The roof forces those tradeoffs into the open before a design is chosen.

Targets, Not Wishes

The output is a ranked set of technical characteristics with numeric target values. "Responsive" becomes a millisecond figure. QFD is the machinery that gets from adjective to number.

Customer Voice Stays Customer Voice

Needs are recorded in the customer’s words and only then mapped. The discipline exists because the usual failure is an engineer silently substituting a solution for a need.

Key Proponents

Yoji Akao and Shigeru Mizuno developed the method in Japan; Wikipedia dates the start to 1966 and records that "with the late Shigeru Mizuno, he developed Quality Function Deployment". The first large-scale application is the one everyone cites: the House of Quality "appeared in 1972 in the design of an oil tanker by Mitsubishi Heavy Industries". The yard is almost always named as Kobe; no primary source naming it could be confirmed, so this anchor stops at the company. Sources: Wikipedia, Yoji Akao and Wikipedia, Quality function deployment.

When to Use:

  • Turning a pile of vague stakeholder wishes into a ranked, measurable set of technical targets

  • Early product or architecture definition, before options are generated — QFD frames the criteria a pugh-matrix will later score against

  • Whenever quality attributes conflict and somebody has to name the tradeoff out loud

  • As the requirements front end of a dmaic or DMADV project, where the customer’s CTQs need to be derived rather than asserted

  • Cross-functional work where marketing, design, and engineering keep talking past each other

Common Misunderstandings:

  • ❌ "QFD is the House of Quality" — the House is one matrix in a chain; the QFD Institute calls this "a most common myth"

  • ❌ "QFD scores options" — it derives characteristics and targets; scoring competing designs is the pugh-matrix job

  • ❌ "QFD replaces talking to customers" — it is a way to process the voice of the customer, not a substitute for collecting it

  • ❌ "Bigger matrices are more thorough" — size is the dominant failure mode

  • ✓ "The roof is where the conflicts live" — the most quoted reason to reach for QFD rather than a simpler tool

Criticism:

  • The numbers it produces are not the kind of numbers engineers think they are. Andrew Olewnik and Kemper Lewis, "Limitations of the House of Quality to provide quantitative design information", International Journal of Quality & Reliability Management 25(2), 125–146 (2008), DOI 10.1108/02656710810846916. They argue that while the House supports conceptual design, "the quantitative information that results is largely invalid", because designers interpret the numerical outputs in ways the method’s own assumptions do not license — and that relying on those outputs "can lead to potentially invalid and/or poor decisions". Abstract at Emerald.

  • The matrix does not scale, and its authors' own institute says so. The QFD Institute: "In some projects, the HoQ can have 1000 rows x 1000 columns = 1,000,000 relationships to examine and quantify. This could take years to complete!" It adds that "95% of the customer needs and functional/non-functional requirements identified in HoQ are too low priority to assign engineering resources or budget to improve." QFD Institute, "Classical, Blitz, or Reverse QFD".

  • Western practice adopted the picture and dropped the method. Glenn Mazur, via the QFD Institute: "Consider the HoQ as a highway interchange between the customer and the engineer. To limit QFD to only this tool is like building the interchange in an empty field without connecting roads." The Institute calls HoQ-only QFD "a most common myth" and notes the House "is neither the starting point nor the finish in most QFD studies." QFD Institute, "What is House of Quality (HoQ)?".

  • The arithmetic was questionable from the start. Mazur again, writing on the ISO standard: "Quality professionals have long decried the abacus math in Japanese models brought to the U.S. in the 1980s" — ordinal rating scales lacking "equality of intervals" were nevertheless multiplied and summed. Mazur, "ISO 16355: The New Standard for QFD, Part 1", Quality magazine, 26 August 2024.

Current Status:

  • QFD is standardised, and the standard demotes the House. The nine-part ISO 16355 series covers QFD; Part 1 is ISO 16355-1:2021, "Application of statistical and related methods to new technology and product development process — Part 1: General principles and perspectives of quality function deployment (QFD)", edition 2, approved 31 May 2021, superseding the 2015 first edition. Mazur summarises the shift: "The House of Quality and other time- and resource-intensive matrices are now optional and more efficient effect-to-cause diagrams are recommended for most projects."

  • Blitz QFD is the lean answer to the complexity complaint. The QFD Institute created it "to address the trend towards Lean Thinking and Agile Development"; in Blitz QFD "the House of Quality may be completely unnecessary", replaced by a Maximum Value Table and an effect-to-cause wishbone that deploy only the top-priority needs.

  • Note the split between name and artifact. The strong prior in most models is the House of Quality picture, not the full deployment chain or the ISO process. When you name QFD, say which you mean.

Quality Attribute Scenario

Details
Full Name

Quality Attribute Scenario

Also known as

Quality Scenario, Six-Part Scenario

Core Concepts:

Purpose

Turn a vague quality goal ("the system must be fast") into a concrete, testable statement. A scenario without a measurable response is a wish, not a requirement.

Six Parts

Every scenario is specified through six elements: Source (the entity generating the stimulus), Stimulus (the condition arriving at the system), Artifact (the part of the system stimulated), Environment (the conditions under which it occurs — normal load, overload, startup, degraded mode), Response (the activity that results), Response Measure (the response quantified so the requirement is verifiable).

Response Measure

The decisive part. Without a measure — a latency, a percentile, a throughput, a recovery time — a scenario cannot be tested and is not a requirement.

General vs. Concrete Scenarios

A general scenario is a reusable template for a quality attribute; a concrete scenario instantiates it for one specific system with literal values.

Relation to Quality Attributes

Scenarios make ISO/IEC 25010 characteristics operational — each characteristic (performance efficiency, reliability, security…​) is expressed as one or more concrete scenarios.

Key Proponents

Len Bass, Paul Clements, Rick Kazman ("Software Architecture in Practice", SEI / Carnegie Mellon University)

When to Use:

  • Writing arc42 Chapter 10 quality requirements as testable statements rather than adjectives

  • Building an ATAM utility tree, where each leaf is a prioritized concrete scenario

  • Specifying non-functional requirements that QA must later verify

  • Recovering quality requirements from a brownfield codebase — deriving the response measure from a literal threshold, timeout, or budget in the code

  • ATAM — uses quality attribute scenarios as the leaves of its utility tree

  • arc42 Architecture Documentation — Chapter 10 quality requirements are expressed as scenarios

  • ISO/IEC 25010 — the quality characteristics that scenarios make concrete

  • EARS Requirements — a comparable discipline of making requirements precise and testable

req42 Requirements Framework

Details
Full Name

req42 — Framework for Pragmatic, Agile Requirements

Also known as

the requirements companion to arc42

Core Concepts:

Twelve "drawers"

A lightweight template of twelve sections, deliberately mirroring arc42’s structure, for capturing agile requirements without drifting into heavyweight specification. Fill only the drawers a project actually needs.

01 Business Goals

Why the product exists and what success looks like

02 Stakeholders

Who has an interest in the system and what they expect

03 Scope

What is in and out — the system boundary

04 Product Backlog

Features, user stories, and product ideas

05 Supporting Models

Diagrams and models that clarify the requirements (context, data, processes)

06 Quality Requirements

Quality goals and scenarios — the focus that sets req42 apart from pure backlog management

07 Constraints

Conditions that limit design and implementation decisions

08 Domain Terminology

Shared vocabulary; a glossary

09 Assets

Existing things to reuse or protect

10 Teams

Who builds the product

11 Roadmap

Planned sequence of delivery over time

12 Risks / Assumptions

Open risks and the assumptions the plan rests on

Goals in PAM form

The template recommends writing each business goal as PAM: Purpose (what the product should achieve), Advantage (the benefit for stakeholders — "at least as important as the P"), and Metric (how you know the goal is reached; the tips also say "Measure"). A goal that is not measurable is not a goal. Keep to a handful of goals, one to five. If writing all three is too much, write down at least the purpose and talk through advantage and metric with the stakeholders and the team. Sources: chapter 1 of the template; tips A-1-03, A-1-10, A-1-11 and B-05.

Top-down from vision to story

req42 presents requirements top-down: vision and goals in chapter 1, scope in chapter 3, and in chapter 4 a product backlog of epics that contain features that contain user stories. Explain and communicate top-down, but work in whatever order the situation needs (tip B-04). Separate vision from goals only in large projects, where a long-range vision is refined into measurable goals per year and per release (A-1-06, A-1-07). Without goals, a team risks finding out too late that its individual activities were not goal-oriented (A-1-01).

Pairs with arc42

req42 documents the requirements (the "what" and "why"); arc42 documents the architecture (the "how"). The two share authorship, structure, and tooling, so they combine seamlessly.

Docs-as-code

Distributed as an AsciiDoc template built with the arc42 generator; version-controllable, diffable, and toolchain-friendly. Licensed CC BY-SA 4.0 (free and open source).

Key Proponents

Dr. Peter Hruschka and Markus Meuten (https://req42.de). Hruschka is a principal of the Atlantic Systems Guild, IREB founding member, and co-creator of arc42; req42 also draws on the Volere requirements tradition.

When to Use:

  • Documenting requirements in an agile context without abandoning structure

  • Giving a product backlog a frame for quality requirements, constraints, and risks — not just user stories

  • Pairing a requirements document with an arc42 architecture document so both share structure and tooling

  • Lightweight, docs-as-code requirements that live next to the code in version control

Current Status:

  • Far less widely known than its sibling arc42. An LLM recognizes "req42" mainly because of arc42’s name and structure; the training-data prior on req42’s own twelve-section content is thin, so the model may extrapolate from arc42 rather than recall req42 accurately. Verify section names against the source (https://docs.req42.de, https://github.com/Hruschka/req42-framework) rather than trusting recall.

  • Actively maintained as a free, open-source template (CC BY-SA 4.0) on GitHub, with section-level guidance at https://docs.req42.de — the same docs-as-code model as arc42.

  • A prior test on 2026-10-15 confirmed the thin prior and lowered the tier to ★★☆. The weak tier does not recognise "req42" and names no creator; a mid-tier model credits Hruschka and Gernot Starke, the arc42 pair. Only the strong tier turned "use req42" into goals in PAM form. The bare acronym "PAM" returns Privileged Access Management on every tier. Naming both works on every tier, the weak one included: "write them as PAM goals, as req42 recommends". In prompts, write Purpose / Advantage / Metric out or name PAM together with req42. See the prior-test register.

SIPOC

Details
Full Name

Suppliers, Inputs, Process, Outputs, Customers

Also known as

COPIS when filled out in reverse; high-level process map; process scoping diagram

Core Concepts:

Five Columns, One Page

Every SIPOC is the same table. Suppliers provide the Inputs; the Process — five to seven steps, no more — turns them into Outputs; the Customers receive them. The one-page limit is not a convention, it is the tool. A SIPOC that needs a second page has become a process map and lost its job.

Its Job is Drawing the Boundary

SIPOC answers "where does this process start and stop, and who is on each side?" before anyone argues about what is wrong inside it. In dmaic it belongs to the Define phase, and it is also a standard opener for kaizen events.

Process First, Then Outward

The usual fill order is P → O → C → I → S: name the process steps, then what comes out, then who receives it, then what goes in, then who supplies it. Starting with Suppliers invites a shopping list; starting with the Process keeps the scope honest.

Customers are Plural and Named

The Customers column forces the question of who exactly receives each output — internal handover partners included. Most scoping arguments turn out to be disagreements hiding in this column.

Boundary Objects, Not Detail

Inputs and Outputs are the things that cross the boundary: documents, data, decisions, material. Anything that never crosses the line belongs inside the Process column or nowhere.

COPIS Reverses the Reading

"To emphasize putting the needs of the customer foremost, the tool is sometimes called COPIS and the process information is filled out in reverse order by starting with the customer and working upstream to the supplier." Same five columns, opposite direction, different conversation: COPIS starts from what the customer needs and asks what must be true upstream.

Where it Sits Among the Tools

SIPOC scopes, ishikawa-diagram hypothesises causes inside that scope, and detailed process mapping comes later. Using SIPOC for any of the other two jobs is the most common way to waste it.

When to Use:

  • At the start of a process improvement effort, before the problem statement is fixed — the scope argument is cheaper on one page

  • Whenever "the process" means different things to different people in the room

  • For system boundaries in software work: SIPOC maps cleanly onto "who calls us, what do they send, what do we return, who consumes it"

  • As a Define-phase artefact in dmaic, and to frame the customer side of dmadv before CTQs are written

  • As a warm-up before event-storming or detailed modelling, to agree what is in and out of scope

Common Misunderstandings:

  • ❌ "A SIPOC is a process map" — it is deliberately the opposite: five to seven steps, no branching, no swim lanes. Detail is someone else’s tool.

  • ❌ "Customers means paying customers" — it means whoever receives an output, mostly colleagues.

  • ❌ "COPIS is a different tool" — same table, reversed reading order, customer-first.

  • ❌ "Once drawn, it is done" — the SIPOC is a scoping agreement, and scoping agreements go stale.

  • ✓ "SIPOC is a boundary contract in table form" — fair, and it explains why the arguments it triggers are the point rather than a delay.

Criticism:

  • Most of them are decoration. Christian Loyer, then plant manager at Ecolab, writes that the large majority of SIPOCs have no real meaning and make no difference in continuous improvement projects, because they are "not detailed enough" and "not integrated at all" — the columns are filled in but never linked, so nobody can say which supplier feeds which input, or which step produces which output. Loyer, "Using an Integrated SIPOC for Better Results", Process Excellence Network, 3 June 2011.

  • Clarity is mistaken for understanding. The tool’s tidiness is itself a hazard: a finished SIPOC can give the impression that the process is understood when only its most general elements have been captured. "Using SIPOC alone won’t stop problems occurring within processes", and "it’s very simplistic, so it only serves as a starting point for process mapping". Think Insights, "SIPOC Process Analysis".

  • It inherits the blind spots of whoever is in the room. "Your SIPOC model is only as good as the people who created it. If key people are missing when its created then it’s likely important items will be missing" (same source). The tool has no mechanism that surfaces its own omissions — a weakness it shares with every brainstorming-based artefact, including ishikawa-diagram.

  • The named criticism is thin, and that is worth saying. We found no academic or book-length critique of SIPOC specifically; the objections above come from practitioner writing. Our search covered English and German sources only. That is a limit of our search, not evidence that no critique exists.

Current Status:

  • Old, stable, and unowned. SIPOC "was in use at least as early as the total quality management programs of the late 1980s" and continues in use today; it is described as a simplification of Philip Crosby’s process model. SIPOC overview. No single author claims it, which is one reason the five column names are stable while everything around them varies.

  • Its home is the Define phase. The tool "is often presented at the outset of process improvement efforts such as kaizen events or during the 'define' phase of the DMAIC process" (same source). That is the prior a model will serve: ask for a SIPOC and expect a Six Sigma-flavoured scoping table.

  • COPIS is a live variant, not a historical footnote. Customer-first ordering is the standard answer where the improvement is driven by customer need rather than by internal defects. Naming COPIS instead of SIPOC changes which column the conversation starts in — a small prompt lever with a real effect.

  • Practitioner extensions circulate. Integrated and augmented forms — linking the columns to each other, or adding requirements and measures — exist precisely because the plain five-column table stops short. None has displaced the original five letters.

Twin Peaks Model according to Nuseibeh

Details
Full Name

Twin Peaks model, from Bashar Nuseibeh, "Weaving Together Requirements and Architectures" (IEEE Computer 34(3), March 2001, pp. 115—​119, doi:10.1109/2.910904).

Also known as

Twin Peaks, the Twin Peaks of requirements and architecture

Core Concepts:

Two Peaks, Developed Together

Requirements engineering and architectural design are separate activities, but they run concurrently and feed each other. Neither is finished before the other starts.

Equal Status

The name reflects that both peaks are equally high: the requirements specification and the architecture carry the same weight. Requirements do not simply "flow down" into an architecture.

Against Frozen Requirements

Nuseibeh argues against a waterfall-like process that produces artificially frozen requirements documents for the next phase, and against architectures so constrained that they resist the requirement changes they meet later.

A Partial Spiral

The model is a simplified, finer-grained form of the spiral life cycle. Each turn refines the requirements and the architecture a little further, in alternation.

Architecture Feeds Back Into Requirements

Architectural decisions make requirements more concrete or force their re-evaluation. An option can make a requirement cheap, expensive or impossible, so the feedback runs in both directions.

Stable Yet Adaptable

The aim is an architecture that stays stable yet adapts as the requirements around it keep changing.

When to Use:

  • Projects where requirements are still moving while the architecture has to start

  • Pushing back on "finish the spec first, then design" in a plan or in an AI agent’s workflow

  • Linking quality requirements and architectural decisions, e.g. a req42 goal or quality scenario to an arc42 decision

  • Driving a model: "work in Twin Peaks style — after each requirement, name the architectural consequence, and after each architectural option, name the requirement it puts at risk" asks for the alternation, not a two-phase document

Common Misunderstandings:

  • ❌ "Twin Peaks" alone — without "model" or "Nuseibeh", the term is ambiguous with the TV series; use the qualified form

  • ❌ "Requirements first, then architecture, but iterate" — the model asks for concurrent work, not alternating phases with hand-overs

  • ❌ "Architecture follows from the requirements" — in Twin Peaks the architecture also changes the requirements

  • ✓ "Refine requirements and architecture together, and let each constrain the other"

Current Status:

  • The 2001 article is a short column, not a full method; the follow-up literature fills in practices. Jane Cleland-Huang, Robert S. Hanmer, Sam Supakkul and Mehdi Mirakhorli, "The Twin Peaks of Requirements and Architecture" (IEEE Software 30(2), 2013, doi:10.1109/MS.2013.39), and the IEEE TwinPeaks workshop series (from 2012) carry the idea forward.

User Story Mapping

Details
Full Name

User Story Mapping according to Jeff Patton

Core Concepts:

Narrative flow

Horizontal arrangement of user activities

User activities

High-level tasks users perform

User tasks

Steps within activities

Walking skeleton

Minimal end-to-end functionality first

Release planning

Horizontal slices for releases

Prioritization by value

Vertical ordering by importance

Shared understanding

Collaborative mapping builds team alignment

Big picture view

See the whole journey, not just backlog items

Opportunity for conversation

Stories as placeholders for discussion

Key Proponent

Jeff Patton ("User Story Mapping", 2014)

When to Use:

  • Planning new products or major features

  • When backlog feels overwhelming or fragmented

  • Release planning for incremental delivery

  • Onboarding team members to product vision

Software Architecture

ADR according to Nygard

Details
Full Name

Architecture Decision Records according to Michael Nygard

Core Concepts:

Lightweight documentation

Short, focused records

Standard structure
  • Title

  • Status (proposed, accepted, deprecated, superseded)

  • Context (forces at play)

  • Decision (what was chosen)

  • Consequences (both positive and negative)

Immutability

ADRs are never deleted, only superseded

Version control

ADRs stored with code

Decision archaeology

Understanding why past decisions were made

Evolutionary architecture

Supporting architecture that changes over time

Key Proponent

Michael Nygard

When to Use:

  • All software projects (low overhead, high value)

  • Distributed teams needing shared understanding

  • When onboarding new team members

  • Complex systems with evolving architecture

arc42 Architecture Documentation

Details
Full Name

arc42 Architecture Documentation Template

Core Concepts:

12 standardized sections

From introduction to glossary

Section 1

Introduction and Goals

Section 2

Constraints

Section 3

Context and Scope

Section 4

Solution Strategy

Section 5

Building Block View

Section 6

Runtime View

Section 7

Deployment View

Section 8

Crosscutting Concepts

Section 9

Architecture Decisions (ADRs)

Section 10

Quality Requirements

Section 11

Risks and Technical Debt

Section 12

Glossary

Pragmatic documentation

Document only what’s necessary

Multiple formats

AsciiDoc, Markdown, Confluence, etc.

Key Proponents

Gernot Starke, Peter Hruschka

When to Use:

  • Medium to large software projects

  • When stakeholder communication is critical

  • Long-lived systems requiring maintainability

Current Status:

  • The current release is template version 9.0 (July 2025); the 12-section structure has been stable for many years — v9’s main change splits Section 10 into a quality-requirements overview (10.1) and detailed scenarios (10.2)

  • What evolves is the material around the skeleton: help texts, translations, the tips-and-examples site docs.arc42.org, and the arc42 quality model (Q42) — a prior trained on v7/v8 material knows the section structure correctly but misses the Section-10 split and Q42

ATAM

Details
Full Name

Architecture Tradeoff Analysis Method

Also known as

Architecture Evaluation, ATAM Review

Core Concepts:

Utility Tree

Hierarchical decomposition of system quality goals into concrete, prioritized quality attribute scenarios (e.g., Performance → Response Time → "Search results returned in < 1s under peak load")

Quality Attribute Scenarios

Testable, concrete expressions of quality requirements consisting of stimulus, source, environment, artifact, response, and response measure

Architectural Approaches

Design decisions and patterns (e.g., caching, replication, layering) used to achieve quality attributes

Sensitivity Points

Architectural decisions that significantly affect one specific quality attribute

Tradeoff Points

Architectural decisions that affect two or more quality attributes in conflicting ways — the core insight of ATAM

Risks and Non-risks

Identified architectural decisions that may (risks) or demonstrably will not (non-risks) lead to future problems

Nine-step process

Presentation of ATAM → presentation of business drivers → presentation of architecture → identification of architectural approaches → generation of utility tree → analysis of architectural approaches → brainstorming scenarios → analysis of scenarios → presentation of results

Key Proponents

Rick Kazman, Mark Klein, Paul Clements (SEI / Carnegie Mellon University)

When to Use:

  • Evaluating a software architecture before major investment in implementation

  • When multiple stakeholders have conflicting quality requirements (e.g., performance vs. security)

  • During architecture reviews of safety-critical or high-availability systems

  • When making buy-vs.-build decisions or selecting between competing architectural styles

Bulkhead Pattern

Details
Full Name

Bulkhead, a stability pattern from Michael T. Nygard’s Release It!

Also known as

resource isolation, compartmentalisation, pool isolation; at infrastructure scale, cell-based architecture

Core Concepts:

Partition the Resource, Not the Call

A bulkhead gives each dependency, tenant or workload its own slice of a finite resource — threads, connections, memory, processes, instances — so that one slow or failing consumer can only exhaust its own slice. Microsoft’s Azure Architecture Center states the goal in one line: "Isolate the elements of an application into pools so that if one element fails, the others continue to function."

The Name Is the Design

From a ship’s hull. Azure: "This pattern is named after the sectioned partitions (bulkheads) of a ship’s hull. If the hull of a ship is compromised, only the damaged section fills with water, which prevents the ship from sinking." The ship still takes damage. It does not sink.

The Line Against Circuit Breaker

A circuit breaker stops calling a dependency that keeps failing. A bulkhead caps how much of the system any one dependency can consume, whether it fails or merely gets slow. They answer different failure modes and are normally combined — Azure lists the combination explicitly: "consider combining bulkheads with retry, circuit breaker, and throttling patterns."

Two Implementation Forms

A thread-pool bulkhead gives each dependency its own executor, so a hanging downstream call blocks only that pool — the classic Hystrix form. A semaphore bulkhead caps concurrent calls on the caller’s own thread, with no extra pool. Resilience4j documents the trade: its SemaphoreBulkhead "should work well across a variety of threading and I/O models. It is based on a semaphore, and unlike Hystrix, does not provide 'shadow' thread pool option" — and therefore "it is up to the client to ensure correct thread pool sizing that will be consistent with bulkhead configuration."

The Same Idea at Infrastructure Scale

Separate pods, clusters, accounts or regions per tenant or criticality tier. Azure treats this as the same pattern under a second name: the approach is "also known as a cell-based architecture."

Timeouts Are a Precondition

A bulkhead bounds how many calls can be stuck at once. Without a timeout, "stuck" means forever, and the partition fills up and stays full. The bulkhead then contains the damage instead of preventing it.

When to Use:

  • Designing a service that fans out to dependencies with different latency profiles — a slow third-party payment API next to a fast internal catalogue

  • Separating critical from best-effort consumers of the same service, so a batch job cannot starve interactive traffic

  • Multi-tenant systems, where the question is which blast radius a single noisy tenant gets

  • Reviewing an incident in which one dependency took the whole process down: the missing control is usually a bulkhead, not a retry

  • Together with circuit-breaker and timeouts, as the stability-pattern set rather than one pattern alone

Common Misunderstandings:

  • ❌ "A bulkhead and a circuit breaker do the same job" — one limits concurrency, the other limits repeated failures; a system with only a breaker still dies of a slow dependency that never fails outright

  • ❌ "A bulkhead prevents the failure" — it bounds the blast radius; the partitioned workload still degrades

  • ❌ "Finer partitioning is always safer" — Azure asks you to "determine the level of granularity for the bulkheads" and to weigh "the overhead in terms of cost, performance, and manageability"

  • ❌ "Netflix invented it" — Netflix popularised it through Hystrix and then moved away from that form; the pattern is Nygard’s

  • ✓ "A bulkhead is a cap on how much of my system one dependency may consume" — accurate, and it explains why the hard part is choosing the number

Criticism:

  • Static partitioning buys isolation with wasted capacity, and Microsoft prints the condition under which that trade fails. The Azure Architecture Center lists when not to use the pattern: "Less efficient use of resources might not be acceptable in the project" and "The added complexity isn’t necessary." Reserved capacity that sits idle in one partition while another queues is the cost of the guarantee. Microsoft, "Bulkhead Pattern", Azure Architecture Center (page updated 19 September 2026).

  • The static number is the real objection, and it comes from the organisation that popularised the pattern. Netflix’s own concurrency-limits project exists because fixed limits have to be guessed and then go stale: "in large distributed systems that auto-scale this value quickly goes out of date and the service falls over by becoming non-responsive." Netflix, concurrency-limits README. Netflix’s stated reason for retiring Hystrix is the same shift, toward "more adaptive implementations".

  • The thread-pool form lost its default status on cost grounds. Resilience4j, the successor Netflix names, makes the semaphore the plain case and drops Hystrix’s "shadow" thread pool, pushing pool sizing back to the caller. The extra threads, context switches and memory of a pool per dependency were a price the follow-on library chose not to pay by default. Resilience4j, Bulkhead documentation.

Current Status:

  • A named pattern in the book, verified in the second edition. The Pragmatic Bookshelf table of contents for Release It! Second Edition (2018) lists the Stability Patterns as "Timeouts, Circuit Breaker, Bulkheads, Steady State, Fail Fast". Release It! Second Edition, Pragmatic Bookshelf. The publisher page covers the second edition only; the first edition (2007) is where the stability patterns first appeared.

  • Hystrix is done; Resilience4j is the named successor. The Netflix README states: "Hystrix is no longer in active development, and is currently in maintenance mode", with no further issue review, merges or releases, and points new projects at Resilience4j while existing ones stay on 1.5.18. Netflix/Hystrix. Polly covers .NET.

  • Naming the term changes the answer. On a neutral logistics-platform resilience task, one of three no-anchor baselines on claude-haiku-4-5 proposed bulkheads unprompted and two did not. The term is worth naming.

  • The attribution does not survive the weak tier. Asked who created the pattern, the same model answered creator=Netflix (collective); year=2011 — Hystrix’s popularisation, not Nygard 2007. This entry carries the attribution the model does not.

C4-Diagrams

Details
Full Name

C4 Model for Software Architecture Diagrams

Core Concepts:

Four levels of abstraction
Level 1 - Context

System in its environment (users, external systems)

Level 2 - Container

Applications and data stores that make up the system

Level 3 - Component

Components within containers

Level 4 - Code

Class diagrams, entity relationships (optional)

Zoom in/out

Progressive disclosure of detail

Simple notation

Boxes and arrows, minimal notation overhead

Audience-appropriate

Different diagrams for different stakeholders

Supplementary diagrams

Deployment, dynamic views, etc.

Key Proponent

Simon Brown

When to Use:

  • Communicating architecture to diverse stakeholders

  • Onboarding new team members

  • Architecture documentation and review

  • Replacing or supplementing UML

Current Status:

  • The four levels (System Context, Container, Component, Code) and the supporting diagrams (system landscape, dynamic, deployment) are stable; c4model.com remains actively maintained by Simon Brown with edits into 2026

  • In September 2024 the site was rewritten from a single long page into a multi-page reference with new guidance (modelling microservices, queues and topics, a review checklist) — a prior trained on the old one-pager misses this guidance and the sharpened diagramming-vs-modelling framing around tooling such as Structurizr

CAP Theorem

Details
Full Name

CAP Theorem (Consistency, Availability, Partition tolerance)

Also known as

Brewer’s Theorem

Core Concepts:

The three properties

Consistency (every read sees the most recent write), Availability (every request gets a non-error response), Partition tolerance (the system keeps working despite dropped/delayed messages between nodes)

The trade-off

When a network partition occurs, a distributed system must choose between consistency and availability — it cannot have both during the partition

Partitions are not optional

Real networks partition, so P is a given; the genuine design choice is CP vs AP behaviour while partitioned

Common misreading

"Pick 2 of 3" is a simplification; outside a partition a system can be both consistent and available

PACELC extension

Else (no partition), trade Latency against Consistency — captures the everyday tuning that CAP alone omits (Abadi, 2012)

Key Proponents

Eric Brewer (2000 conjecture, PODC keynote); formally proved by Seth Gilbert & Nancy Lynch (2002); PACELC by Daniel Abadi (2012)

When to Use:

  • Choosing or evaluating a distributed datastore (CP vs AP behaviour)

  • Framing a concrete consistency/availability trade-off for a feature

  • Reasoning about behaviour during network partitions and failover

  • Explaining why strong consistency costs availability or latency

When NOT to Use:

  • For single-node systems with no replication (no partitions to tolerate)

  • As a crude "2 of 3" slogan — prefer the partition-time framing or PACELC

Criticism:

  • Eric Brewer himself, "CAP Twelve Years Later: How the 'Rules' Have Changed" (IEEE Computer, 2012) — the "2 of 3" formulation is misleading; the trade-off is narrower and more nuanced than the slogan suggests

  • Martin Kleppmann, "Please stop calling databases CP or AP" (2015) — CAP’s formal definitions are too narrow to classify real systems; many databases are neither CP nor AP under the theorem’s own terms

  • Alternative named in the discourse: reason with precise consistency models (linearizability, causal consistency, etc.) and the PACELC framing instead of the CP/AP dichotomy

Circuit Breaker

Details
Also known as

Circuit Breaker stability pattern

Core Concepts:

Closed state

Normal operation; calls pass through to the protected resource while the breaker counts failures

Open state

Once failures cross the threshold the breaker trips; further calls fail immediately (fail-fast) without invoking the protected call, preventing resource exhaustion and cascading failure

Half-open state

After a reset timeout the breaker tentatively lets a trial call through to probe whether the dependency has recovered; success closes the breaker, failure re-opens it

Failure threshold

Configured count or rate of failures that trips the breaker from closed to open

Fail-fast

Returning an error instantly instead of blocking on a call known to be failing, freeing threads and connections

Fallback

The client-side strategy when the breaker is open — return cached data, a default, a queued request, or a graceful error

Composes with

Pairs with timeout (bound each call), retry (recover from transient faults), and bulkhead (isolate failures) as a stability-pattern set

Key Proponents

Michael Nygard ("Release It!", Pragmatic Bookshelf, 2007), who introduced it as a stability pattern; Martin Fowler (bliki: CircuitBreaker), who popularized it further

When to Use:

  • Calls across a network boundary to a remote service or dependency that can become slow or unavailable

  • Microservice architectures where one failing service must not cascade into a system-wide outage

  • Integrations with third-party APIs of uncertain reliability

  • Any operation that can exhaust threads, connections, or other bounded resources while waiting on a stuck dependency

  • Prompting an LLM to add resilience to inter-service communication

Current Status:

  • The reference Java implementation in training-data priors is often Netflix Hystrix, which is now frozen. Its README states: "Hystrix is no longer in active development, and is currently in maintenance mode." (final stable release 1.5.18, November 2018)

  • Netflix’s own guidance points elsewhere: "we intend to continue using Hystrix for existing applications, and to leverage open and active projects like resilience4j for new internal projects. We are beginning to recommend others do the same." (Netflix/Hystrix)

  • Resilience4j is the maintained successor in the Java/Spring ecosystem and is recommended by Spring Cloud as the default circuit breaker

  • In service-mesh deployments, circuit breaking is increasingly handled at the infrastructure layer by the sidecar proxy (e.g. Envoy circuit breaking, used by Istio) rather than in application code

Clean Architecture

Details
Full Name

Clean Architecture according to Robert C. Martin

Core Concepts:

The Dependency Rule

Dependencies only point inward

Concentric circles

Entities → Use Cases → Interface Adapters → Frameworks & Drivers

Independent of frameworks

Architecture doesn’t depend on libraries

Testable

Business rules testable without UI, database, or external elements

Independent of UI

UI can change without changing business rules

Independent of database

Business rules not bound to database

Independent of external agencies

Business rules don’t know about outside world

Screaming Architecture

Architecture reveals the intent of the system

SOLID principles

Foundation of the architecture

Key Proponent

Robert C. Martin ("Uncle Bob")

When to Use:

  • Enterprise applications with complex business logic

  • Systems requiring long-term maintainability

  • When team size and turnover are high

  • Projects where business rules must be protected from technology changes

Criticism:

  • Jimmy Bogard, "Vertical Slice Architecture" (2018) — calls the "traditional layered/onion/clean architecture" monolithic in its approach and appropriate for only a minority of requests, criticizing mock-heavy tests and abstractions "around concepts that really shouldn’t be abstracted"; his alternative is Vertical Slice Architecture

  • Derek Comartin, "'Clean Architecture' and indirection. No thanks." (CodeOpinion) — dismisses canonical Clean Architecture examples as "useless indirection": the layering adds cost without paying for itself in typical systems

  • The critiques converge: the dependency rule imposes a fixed indirection tax on every feature, while most changes cut across all layers anyway — the coupling Vertical Slice Architecture organizes around instead

Conway’s Law

Details
Full Name

Conway’s Law

Also known as

The Mirroring Hypothesis

Core Concepts:

Homomorphic force

"Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure" — system boundaries mirror team boundaries

Communication paths

Interfaces in the software appear wherever two teams must coordinate; the cost and friction of cross-team communication shapes where modules are split

Inverse Conway Maneuver

Deliberately structure teams to match the desired architecture, rather than letting an accidental org chart dictate the system

Team Topologies

Modern operationalization (Skelton & Pais) — stream-aligned, platform, enabling, and complicated-subsystem teams sized for a manageable cognitive load

Sociotechnical view

Architecture is not purely technical; org design and system design are two sides of the same decision

Key Proponents

Melvin E. Conway ("How Do Committees Invent?", Datamation 1968); popularized by Fred Brooks ("The Mythical Man-Month"); modern form in Matthew Skelton & Manuel Pais ("Team Topologies", 2019)

When to Use:

  • Planning team structure for a new system or a re-architecture

  • Diagnosing why module boundaries are awkward or why integration is painful

  • Justifying microservice/bounded-context splits along team lines

  • Reviewing whether the org chart is fighting the intended architecture

When NOT to Use:

  • As a deterministic prediction — it is a strong tendency, not a law of physics

  • For tiny single-team systems where there is only one communication path

CQRS (Command Query Responsibility Segregation)

Details
Also known as

CQS at architectural scale

Core Concepts:

Command Query Separation (CQS)

Bertrand Meyer’s principle — methods either change state (commands) or return data (queries), never both

Commands

Write operations that change state and return void; represent intent as immutable command objects

Queries

Read operations that return data with no side effects; safe to retry and cache

Separate read/write models

Independent data models optimized for their respective purpose

Eventual consistency

Read model may lag behind write model; acceptable trade-off for scalability

Event-based synchronization

Domain events propagate changes from write side to read side projections

Independent scalability

Read and write sides can be scaled, deployed, and optimized independently

Event sourcing optional

CQRS does not require event sourcing; the patterns are complementary but independent

Key Proponents

Greg Young (coined CQRS), Bertrand Meyer (CQS origin, "Object-Oriented Software Construction", 1988), Udi Dahan

When to Use:

  • Systems with asymmetric read/write workloads

  • Complex domains where read and write models diverge significantly

  • Event-sourced systems requiring materialized views

  • High-performance systems needing independent scaling of reads and writes

  • Collaborative domains with task-based UIs

Criticism:

  • Martin Fowler, bliki: CQRS — warns that "for most systems CQRS adds risky complexity", a "significant mental leap" that pays off only in specific bounded contexts, not as a default pattern

  • Udi Dahan, one of CQRS’s main proponents, opens "When to avoid CQRS" (2011) with "Most people using CQRS (and Event Sourcing too) shouldn’t have done so" — and adds that CQRS "should not be your top-level architectural pattern"

  • Greg Young himself pushed back on scope creep in "CQRS is not an Architecture" (2012, archived): CQRS is a pattern applied inside a single component, not an architectural style for a whole system

CUPID Properties

Details
Full Name

CUPID — the back story to five properties of joyful code

Also known as

The CUPID properties, joyful code

Core Concepts:

  • Properties, not principles. A principle is a rule you either follow or break. A property is a quality code has more or less of, and that you move toward. This is the distinction the term is built on, and the one most often lost when it is summarised.

  • Composable. Small surface area, few dependencies, clear intent — so the code is easy to pick up, reuse and combine with things its author never saw.

  • Unix philosophy. Does one thing well. Close to single responsibility, but stated from the outside: about what the code does, not about why it would have to change.

  • Predictable. Does what you expect. Behaves consistently, is deterministic where it can be, and is observable enough that you can tell its internal state from its outputs.

  • Idiomatic. Feels natural. Follows the conventions of its language, framework and team, so the next reader spends attention on the problem rather than on the style.

  • Domain-based. Names, structure and boundaries follow the problem domain rather than technical layers or framework concepts.

  • Positioned against SOLID, not on top of it. North’s argument is that SOLID’s criteria are met or missed at the level of a class, while what makes code pleasant to work in is a set of overlapping qualities that reinforce each other.

When to Use:

  • Reviewing a module whose problems are qualities rather than rule violations — a class that breaks no principle and is still unpleasant to work in

  • As a vocabulary for code review, where "this is hard to compose" is a more useful sentence than a principle acronym

  • When SOLID has become a checklist and the discussion has stopped being about the code

Common Misunderstandings:

  • Reading the D as "Domain-driven". It is Domain-based. The pull toward DDD is strong enough that weaker language models make this substitution reliably — see the prior-test register. CUPID’s D is a statement about naming and structure, not an endorsement of a method.

  • Reading the I as "Intelligible". It is Idiomatic. Intelligibility is a consequence North argues for, not the property he named.

  • Treating them as five boxes to tick. They are deliberately not binary, and a scorecard turns them back into the thing they were proposed against.

Criticism:

  • The properties are hard to tell apart from the principles they replace. Stephan Roth, author of Clean C++, measures CUPID against his own test for a good principle — it must give real orientation, be applicable by the team unaided, build shared understanding, be practicable, and be visible in the code afterwards. His verdict: "Dan Norths CUPID-Eigenschaften sind oberflächlich betrachtet nicht falsch, erfüllen aber meines Erachtens diese Qualitätskriterien für gute Prinzipien nicht immer." The concrete complaint is a confusion the acronym invites: "Zudem dürfte es herausfordernd für Anwendende sein, zu unterscheiden, was denn jetzt der genaue Unterschied beispielsweise zwischen Single Responsibility (aus SOLID) und Single Purpose (aus CUPID) ist." He adds that the underlying idea is not in dispute anyway — "Es wird wohl eine weitgehend unumstrittene Vorstellung in unserer Disziplin darüber geben, dass kleine Module/Klassen mit einer klar definierten Aufgabe besser sind als große ‚Gemischtwarenläden'." Roth, developer-world.de (16 June 2025). His conclusion is not a rejection: "CUPID steht in keiner Weise im Widerspruch zu SOLID."

  • The five letters are a selection, not a derivation — and North says so. From the canonical article: "Because CUPID is a backronym, I had several candidates for each letter. I chose these five because they feel 'foundational' somehow". A reader who expects the set to be complete or minimal is expecting something the author did not claim.

  • One frequently misattributed source. Jeroen De Dauw’s "Why Every Single Argument of Dan North is Wrong" (2017) is a defence of SOLID against North’s earlier talk. It predates CUPID by five years and does not mention it. It is worth reading for the dispute CUPID grew out of, and it is not a critique of CUPID.

  • No citable criticism was found on the angle that matters most in review — that a property you move toward cannot be checked the way a rule can. North pre-empts it in the article with his "properties of properties", but we found nobody taking up the argument. English and German were searched; other languages were not, so this is an absence in our search rather than in the discourse.

Current Status:

  • The property set has not changed since publication. The canonical article, "CUPID: for joyful coding", is dated 10 Feb 2022 and lists the five verbatim: "Composable: plays well with others / Unix philosophy: does one thing well / Predictable: does what you expect / Idiomatic: feels natural / Domain-based: the solution domain models the problem domain in language and structure". It is preceded by "CUPID: the back story" (16 Mar 2021), which tells the origin and deliberately withholds the five.

  • The promised follow-ups are unverified. North writes "I will expand on each property in future articles so that this one does not get any longer." We did not confirm that any were published — which is a gap in our check, not evidence that none exist.

  • A dedicated site, cupid.dev, restates the same five with the same one-line definitions. Its own description calls it "based on an article by Daniel Terhorst-North". Whether North maintains it could not be established from the page.

Defense in Depth

Details
Full Name

Defense in Depth — military doctrine adapted to information security; the reference text for the information-assurance reading is the NSA paper "Defense in Depth: A practical strategy for achieving Information Assurance in today’s highly networked environments"

Also known as

layered security, layered defense, the castle model, defence in depth

Core Concepts:

Independence, Diversity, Assumed Failure

Three conditions decide whether a set of controls is defence in depth or just a pile. Independence: a layer must not fail for the same reason as its neighbour. Diversity: different mechanisms, so one exploit does not pass through all of them. Assumed failure: every layer is designed on the premise that the one in front of it has already been breached. A set of correlated controls — same vendor, same parser, same identity provider, same misconfiguration — is one layer wearing several names. This is the part of the idea the term does not reliably carry (see Current Status), so state it rather than assume it.

Nobody Owns the Phrase

This is weaker attribution than most entries in this catalog. The concept is military doctrine — trade space for time, make the attacker spend resources rather than stopping them at a single line — adapted to information security. The NSA paper is the citable information-assurance formulation; the safety-engineering counterpart is James Reason’s Swiss cheese model of accident causation, where the holes in individual layers only matter when they line up. This entry quotes no primary Reason text, having verified none, so it gives neither year nor page for the model.

The NSA Formulation Is Not a Stack of Boxes

The paper’s organising claim is that information assurance "requires a balanced focus on three primary elements: People, Technology and Operations" — so training, policy and incident response are layers in the same sense as a firewall. Its first recommended principle is "Defense in Multiple Places", on the reasoning that "adversaries can attack a target from multiple points using either insiders or outsiders". It calls itself a "best practices" strategy that "recommends a balance between the protection capability and cost, performance, and operational considerations".

Layers Are Weighted, Not Uniform

The same paper tells you to "specify the security robustness (strength and assurance) of each Information Assurance component as a function of the value of what’s it is protecting and the threat at the point of application", with the example that "it’s often more effective and operationally suitable to deploy stronger mechanisms at the network boundaries than at the user desktop". Defence in depth is therefore a budgeting argument, not an instruction to harden everything equally.

Detection and Recovery Are Layers Too

If every layer may fail, something must notice. Monitoring, alerting, incident response and backups belong in the decomposition, not as an afterthought to prevention.

Relation to Least Privilege

least-privilege is what makes a layer’s failure survivable — it bounds what the attacker reaches after the breach. Defence in depth is the arrangement; least privilege sizes each compartment.

When to Use:

  • Designing a control set for a single risky operation — file upload, document rendering, deserialisation, arbitrary code execution

  • Reviewing a security design for correlated failure: which two layers die to the same bug

  • Sandboxing and isolation decisions, where the question is what the next layer assumes

  • Bridging security and safety thinking next to fmea and poka-yoke

  • After a stride threat model, to decide how many independent controls each high-rated threat gets

Common Misunderstandings:

  • ❌ "More controls means more depth" — correlated controls are one layer; the count is of independent failures required, not of products

  • ❌ "Defence in depth is about the network perimeter" — the NSA formulation puts People and Operations alongside Technology

  • ❌ "It is only prevention" — detection, response and recovery are layers

  • ❌ "Zero Trust replaced it" — Zero Trust removes trust in network location; it does not say how many independent controls a given operation needs

  • ✓ "Name each layer, say what it catches when the previous one fails, and show the two are not correlated" — the form that makes the term mean something

Criticism:

  • The sharpest charge is that the strategy fails against an adversary who cannot be removed. Prescott Small, in a SANS/GIAC paper, argues from the breaches of RSA, HBGary and others that "Defense in Depth, as practiced, is unsustainable and the examples show that the enemy cannot be eliminated permanently", and goes further: "Knowing that Defense in Depth, as practiced, actually renders the organization more vulnerable is vital to understanding that there must be a shift in attitudes and thinking to better address the risks faced in a more effective manner." His replacement is a posture he calls Sustained Cyber-Siege Defense. Small, "Defense in Depth: An Impractical Strategy for a Cyber World" (SANS Institute, 20 February 2012). The paper attacks the practice rather than the principle — which is the same move the independence requirement above makes, arrived at from the other side.

  • The literature defines it and then stops. Phil Venables, writing on his own site, charges that the body of guidance offers no design principles at all: "There is a huge number of possible arrangements of controls to achieve defense in depth with little in the way of principles to guide us in how controls should be arrayed." On the standard texts: "Most of the content is essentially a variant of the definition I just gave, together with examples of the need to deploy multiple controls…​Most of the examples are given without much discussion of why they are effective." He also finds the Swiss cheese model too flat — it "does not support defense in depth working at multiple dimensions from policy and governance to technical controls" — and warns that the linear reading "leads to viewing risk and risk mitigation as a simple chain of events without being able to look at the wider system which induced the design factors that led to the event." Venables, "Defense in Depth" (21 May 2022).

  • Read as a shopping list, it produces the opposite of security. Armin Recha names the failure mode directly: "Der zentrale Denkfehler vieler Security-Strategien liegt darin, Defense in Depth als Einkaufsliste zu betrachten" — the central error is treating defence in depth as a shopping list. And on what that yields: "Im schlimmsten Fall entsteht eine trügerische Sicherheit. Formal sind alle notwendigen Komponenten vorhanden, operativ fehlt jedoch die Fähigkeit, Angriffe sauber einzuordnen und kontrolliert zu reagieren" — at worst a deceptive sense of security, every required component formally present while the ability to classify and answer an attack is missing. Recha, "Defense in Depth: Integration statt Einkaufsliste für Resilienz", Security-Insider (8 April 2026). Recha is Regional Vice President DACH at Fastly, so read the piece as a vendor’s argument — the objection stands on its own, the framing is interested.

  • The staffing cost is the practical objection. Jochen Koehler argues the strategy is unreachable for most organisations as practised: "Ohne massiven personellen Aufwand können die allerwenigsten Unternehmen diesen Ansatz praktisch und vor allem erfolgreich umsetzen", and "Unternehmen müssen begreifen, dass mehr Tools nicht zwangsläufig mehr Sicherheit bedeuten" — without massive staffing very few organisations can run the approach successfully, and more tools do not automatically mean more security. Koehler, "Defense in depth: Klingt gut, aber ist es das auch?", iavcworld (21 November 2023). Koehler is VP EMEA Sales at Ontinue; same caveat.

Current Status:

  • The NSA paper survives only in the Internet Archive, and it carries no date. The nsa.gov URL it was published under is dead; the five-page document is retrievable through a Wayback Machine snapshot captured on 11 April 2016 (web.archive.org/web/20160411062620/https://www.nsa.gov/ia/_files/support/defenseindepth.pdf). The quotations above come from that file. The commonly repeated date of "around 2000" is a secondary claim: the document itself prints no date, version or revision. Anyone citing it as a dated standard is citing something the paper does not say.

  • Naming it adds layers the baseline omits. Measured on claude-haiku-4-5 on 3 October 2026 against a document-rendering task: with the anchor named, two of two runs produced sandboxed preview rendering and an explicitly layered decomposition; without it, zero of two did.

  • The premise does not come with the name. In the same measurement, "assume breach" appeared in only one of the two anchored runs. The independence and assumed-failure requirement is therefore not reliable in the prior, which is why this entry states it in Core Concepts instead of leaving it to the model.

Domain-Driven Design according to Evans

Details
Full Name

Domain-Driven Design according to Eric Evans

Core Concepts:

Ubiquitous Language

Shared vocabulary between developers and domain experts

Bounded Context

Explicit boundaries where a model is defined and applicable

Aggregates

Cluster of domain objects treated as a single unit

Entities

Objects defined by identity, not attributes

Value Objects

Immutable objects defined by their attributes

Repositories

Abstraction for object persistence and retrieval

Domain Events

Significant occurrences in the domain

Strategic Design

Context mapping, anti-corruption layers

Tactical Design

Building blocks (entities, value objects, services)

Model-Driven Design

Code that expresses the domain model

Key Proponent

Eric Evans ("Domain-Driven Design: Tackling Complexity in the Heart of Software", 2003)

When to Use:

  • Complex business domains with intricate rules

  • Long-lived systems requiring deep domain understanding

  • When business and technical teams need close collaboration

  • Systems where the domain logic is the core value

Domain Storytelling according to Hofer and Schwentner

Details
Full Name

Domain Storytelling, as described by Stefan Hofer and Henning Schwentner in Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software (Addison-Wesley, Vaughn Vernon Signature Series, 2021; ISBN 978-0-13-745891-2). Method site: https://domainstorytelling.org

Also known as

Domain Stories

Core Concepts:

A Pictographic Language

A domain story is drawn with three building blocks: actors (a person, a group or a software system) as icons, work objects (documents, physical things, digital objects) as icons, and activities as arrows labelled with verbs from the domain language. Actors and work objects are nouns, activities are verbs.

Numbered Sentences

Each activity is one sentence — who (actor) does what (activity) with what (work object) with whom (other actor). A sequence number at the origin of the arrow puts the sentences in order, so the picture can be read back as a story.

One Concrete Story per Diagram

The notation has no symbols for conditionals, variations or alternatives. A domain story is one concrete, meaningful example: start with the most common case and the happy path, record small variations as annotations, and model important alternatives as separate stories.

Avoid Premature Abstraction

First understand typical cases by telling stories, then collect the rules. Generalised process models drawn too early are often wrong.

Scope Factors

Each story has a chosen scope: coarse-grained or fine-grained; as-is or to-be; pure (without software) or digitalized (with software systems as actors).

A Workshop, Not a Diagram

Domain experts tell, a moderator records step by step where everyone can see it, and asks "what happens next?". At the end, the moderator retells the story from the start to get agreement. The picture serves the people telling the story first, and is a memory aid afterwards.

Egon.io

Open-source, browser-based modeler for domain stories, maintained by WPS (https://egon.io, https://github.com/WPS/egon.io).

Bridge to DDD

Domain stories help find boundaries between subdomains and bounded contexts, collect the domain language that becomes a ubiquitous language, and decide which concepts become which DDD building blocks.

When to Use:

  • Learning a domain from its experts before writing requirements or code

  • Building a shared language between domain experts and developers

  • Finding subdomain and bounded-context boundaries in a domain-driven-design effort

  • Comparing an as-is process with a to-be process, with and without the planned software

  • Driving a model: "write this as a domain story: numbered sentences of the form actor — activity — work object — actor, one concrete case, variations as annotations" asks for the notation, not a flowchart

Common Misunderstandings:

  • ❌ "Domain Storytelling is a flowchart with icons" — it has no branches; each alternative is its own story

  • ❌ "Draw everything that can happen" — a story describes one case; rules come after the typical cases are understood

  • ❌ "Domain Storytelling and Event Storming are rivals" — the authors name event-storming as a technique to continue with; Event Storming starts from events on a timeline, Domain Storytelling from actors and their work

  • ✓ "One concrete story, told by the experts, read back in numbered sentences"

Current Status:

Enterprise Integration Patterns (Hohpe/Woolf)

Details
Full Name

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions — Gregor Hohpe and Bobby Woolf, Addison-Wesley Signature Series, 2003. The catalog lives at enterpriseintegrationpatterns.com

Also known as

EIP, the Hohpe/Woolf patterns, the messaging pattern language

Core Concepts:

The Four Integration Styles Come Before Any Pattern

The book opens by comparing File Transfer, Shared Database, Remote Procedure Invocation and Messaging, and argues for messaging on the grounds of coupling — in time, in location and in data format. That comparison is part of the anchor: naming EIP should produce the choice of style, not only a list of patterns. A design that never considered the other three styles has skipped the book’s first chapter.

Sixty-Five Patterns in Six Categories

The catalog states its own size: "This pattern catalog includes 65 integration patterns that we collected from integration projects and updated over two decades." The categories follow a message’s journey — Messaging Channels, Message Construction, Message Routing, Message Transformation, Messaging Endpoints, System Management. The categories are the usable abstraction; the full list of sixty-five is a reference, not something to recite.

The Handful That Carries Most Designs

Message Channel — the named pipe a sender writes to without knowing the receiver. Message Router — a component that decides a message’s destination from its content, keeping the decision out of both endpoints. Message Translator — the seam where one system’s format becomes another’s. Competing Consumers — several consumers on one channel, which is how messaging buys throughput and failover. Dead Letter Channel — where a message goes when it cannot be delivered, so a failure becomes an inspectable object instead of a loss. Canonical Data Model — one shared format at the boundary, so n systems need n translators and not n².

Pipes and Filters Is the Base Metaphor

Every routing and transformation pattern is a filter wired into a pipe. This is what makes the patterns composable: a Content Enricher followed by a Content-Based Router followed by a Splitter is a legitimate design, and each piece can be tested on its own.

Not the Same Anchor as event-driven-architecture

Both entries name Hohpe and Woolf, and the split matters. Event-driven architecture is an architectural style: the system reacts to events, state is distributed, consistency is eventual. EIP is the named vocabulary for building any messaging solution — request/reply integration between a shop and an invoicing system is EIP territory and is not event-driven at all. Reach for EDA to decide how a system should behave; reach for EIP to name the parts once it does.

The Icon Language Is Part of Why It Travels

Each pattern has a drawn symbol, and the site still distributes them: "You can create design documents using our icon language by downloading the Visio stencil or using the OmniGraffle stencil created by one of our readers." A pattern language with a notation gets drawn on whiteboards, and the names survive because the pictures do.

When to Use:

  • Designing integration between systems you do not own, where the vocabulary has to be shared with another team

  • Naming the parts of an existing messaging flow before changing it — most undocumented integrations turn out to be a router plus two translators

  • Error design: Dead Letter Channel, Invalid Message Channel and Idempotent Receiver answer questions that otherwise surface in production

  • Deciding integration style at all, by making File Transfer, Shared Database and RPC explicit alternatives instead of defaults

  • Reading Apache Camel or Spring Integration code and configuration, which use the pattern names as API

Common Misunderstandings:

  • ❌ "EIP means build an ESB" — the patterns say nothing about where they run; the same Message Router can be a Camel route, a Lambda, a Kafka Streams stage or a switch statement

  • ❌ "EIP is event-driven architecture" — EIP covers request/reply and batch integration too; EDA is one style you can build with it

  • ❌ "You need all 65" — six categories and roughly six patterns carry most designs; the rest is a reference catalog

  • ❌ "It is a 2003 book, so it is obsolete" — the names map directly onto today’s platforms; what aged are the code examples, not the patterns

  • ✓ "EIP is the vocabulary for messaging design; EDA is a style" — accurate, and the reason both entries exist

Criticism:

  • The microservices community rejected the architecture the patterns were usually implemented in. James Lewis and Martin Fowler open their definition of microservices with exactly this target: "When building communication structures between different processes, we’ve seen many products and approaches that stress putting significant smarts into the communication mechanism itself. A good example of this is the Enterprise Service Bus (ESB), where ESB products often include sophisticated facilities for message routing, choreography, transformation, and applying business rules." Their alternative is "smart endpoints and dumb pipes", and their footnote is blunter: "We can’t resist mentioning Jim Webber’s statement that ESB stands for 'Erroneous Spaghetti Box'." Note what the objection does and does not hit. Routing, transformation and choreography are EIP patterns; the criticism is of putting them in central middleware, not of the patterns themselves. But the 2003 pattern language is what the ESB vendors sold, and a model that reaches for EIP will suggest middleware-resident routing unless told otherwise. Lewis and Fowler, "Microservices", 25 March 2014

  • Hohpe’s own follow-up names the gap: the patterns describe single messages, not conversations. His Conversation Patterns work states the limitation directly: "Asynchronous Messaging is a great way for distributed systems to communicate while maintaining loose coupling. Sending a single message isn’t always enough for a meaningful exchange, though: a request expects a response; a certificate exchange may be needed for initial authentication; an order message is supposed to lead to a payment message, and if something goes wrong, additional messages may be needed to handle or correct errors." Request-Response with Retry, Lease Renewal, Compensating Action and Tentative Operation live in that second language, not in the 2003 book. The page is also still labelled "Work in progress. Last update: Jan 2017", so the acknowledged gap has stayed open for roughly two decades. Hohpe, "Conversation Patterns"

  • What we did not find, and where we looked. No named German-language critique of the pattern language turned up; German-language results are book reviews and introductions. Languages searched: English, German. The substantive criticism is English and architectural — it concerns centralised middleware, not the pattern catalog.

Current Status:

  • The prior produces the vocabulary unprompted, and cites its source. In a clean-room test on claude-haiku-4-5 (2026-10-03), naming Enterprise Integration Patterns on a neutral logistics-platform brief produced Request/Reply, Publish/Subscribe, Canonical Message Format and Message Translator without being asked for patterns, and the model referred to "Hohpe and Woolf’s notation" without being asked for a source. The no-anchor baseline named none of them. This is the strongest of the three priors tested that day.

  • There is no second edition, and saying so is not a quibble. The 2003 Addison-Wesley edition is still the only one. The Conversation Patterns work is announced as Volume 2 of the series and remains unpublished, work in progress on the site rather than a shipped book (checked 2026-10-03). Cite "the 2003 edition" or "the online catalog"; never "the second edition".

  • The pattern count is confirmed, and the catalog is not the 2003 book. The site states 65 patterns and carries the copyright line "© 2003, 2023" together with "updated over two decades" (checked 2026-10-03). A citation of "the 2003 book, 65 patterns" is correct about the count; it is not safe to assume the printed edition and today’s online catalog say the same thing about any individual pattern.

  • The names outlived the platforms. Apache Camel and Spring Integration expose EIP pattern names as API, which is why the vocabulary still resolves for anyone reading integration code. The infrastructure under it has turned over — message brokers, Kafka, serverless functions, managed queues — while the pattern names did not change, which is the usual sign of a pattern language that was written at the right level.

Event-Driven Architecture

Details
Also known as

EDA, Message-Driven Architecture

Core Concepts:

Event producers and consumers

Components communicate by emitting and reacting to events rather than direct calls

Publish-subscribe

Producers publish events without knowing which consumers will process them

Asynchronous decoupling

Sender and receiver operate independently in time; no blocking request-response

Message queue

Intermediary that buffers events between producers and consumers (SQS, RabbitMQ, Kafka)

At-least-once delivery

Most messaging systems guarantee delivery but may deliver duplicates, requiring idempotent consumers

Eventual consistency

System state converges over time rather than being immediately consistent after each operation

Event notification

Lightweight event signals that something happened; consumers decide whether to act

Event-carried state transfer

Events carry enough data for consumers to process without calling back to the producer

Choreography vs. orchestration

Events can trigger distributed workflows implicitly (choreography) or via a central coordinator (orchestration)

Key Proponents

Gregor Hohpe, Bobby Woolf ("Enterprise Integration Patterns", 2003), Martin Fowler ("What do you mean by Event-Driven?", 2017)

When to Use:

  • Systems requiring loose coupling between components

  • Workloads with asynchronous processing pipelines

  • Architectures that need independent scaling of producers and consumers

  • Distributed systems where components must evolve independently

Event Storming according to Alberto Brandolini

Details
Full Name

Event Storming

Also known as

EventStorming (Brandolini)

Core Concepts:

Domain events on a timeline

Model the domain as past-tense domain events (orange stickies) placed left-to-right on a wide wall, reconstructing how the business actually unfolds over time

The colour notation

A fixed sticky vocabulary — orange = Domain Event, blue = Command, yellow = Aggregate, lilac = Policy (reactive "whenever… then…"), green = Read Model, pink = External System, red = Hotspot (conflict, question, assumption)

Three levels

Big Picture (explore the whole domain with all stakeholders), Process Modeling (zoom into one flow: command → event → policy → command), Design Level (aggregates, commands and events detailed enough to drive implementation)

Pivotal events

Events that mark phase transitions or boundaries — strong candidates for bounded context seams

Hotspots

Make conflicts, unknowns and assumptions explicit on the wall instead of glossing over them — they become the agenda

Chaotic exploration → enforced timeline

Everyone adds events in parallel first (diverge), then the group orders and de-duplicates them into a coherent line (converge)

Key Proponents

Alberto Brandolini (first run 2012, "Introducing EventStorming" blog post 2013; Leanpub book, continuously updated)

When to Use:

  • Kicking off a Domain-Driven Design effort — discovering bounded contexts and aggregate boundaries collaboratively

  • Aligning business and engineering on a shared, visual domain model

  • Before deciding on an event-driven or CQRS architecture — discover the events/commands first

  • Reverse Event Storming on legacy systems (well suited to an AI agent): extract state transitions → map to Domain Events → cluster into Aggregates → surface Bounded Contexts

When NOT to Use:

  • Trivial CRUD domains with no meaningful process or business rules

  • Solo modeling where the collaborative, cross-role discovery — the whole point — is absent

  • Domain-Driven Design — the vocabulary (aggregates, bounded contexts) Event Storming discovers; often the on-ramp to DDD

  • User Story Mapping — activity-centric mapping vs. event-centric discovery

  • CQRS — commands and read models found on the wall feed a later CQRS decision

  • Event-Driven Architecture — the modeling step that precedes deciding how events are routed

  • Domain Storytelling — actor-centric stories of one concrete case vs. event-centric discovery on a timeline; often used as a companion

Fallacies of Distributed Computing

Details
Full Name

The Eight Fallacies of Distributed Computing

Also known as

Deutsch’s Fallacies, Fallacies of Networked Computing

Core Concepts:

The eight false assumptions

(1) The network is reliable. (2) Latency is zero. (3) Bandwidth is infinite. (4) The network is secure. (5) Topology doesn’t change. (6) There is one administrator. (7) Transport cost is zero. (8) The network is homogeneous

Why it matters

Each assumption is comfortable in local development and false in production; building on them produces systems that fail under real network conditions

As an audit checklist

Invoke the list to interrogate a distributed design — for each fallacy, ask what happens when the real-world opposite is true (retries, timeouts, backpressure, encryption, service discovery, capacity limits, protocol negotiation)

Mitigation cues

Reliability → retries/idempotency; latency → batching/locality; security → zero-trust; topology → service discovery; homogeneity → explicit contracts and versioning

Key Proponents

L. Peter Deutsch (first seven, Sun Microsystems, c. 1994); James Gosling added the eighth ("the network is homogeneous"); early items credited to Bill Joy and Tom Lyon

When to Use:

  • Reviewing or hardening a distributed/microservice design

  • Writing resilience requirements (timeouts, retries, circuit breakers)

  • Onboarding developers moving from monolith to distributed thinking

  • Post-incident analysis of network-related outages

When NOT to Use:

  • For purely in-process, single-machine logic with no network calls

  • As a substitute for measuring your actual network’s behaviour

4+1 View Model according to Kruchten

Details
Full Name

The "4+1" View Model of Software Architecture — Philippe Kruchten, "Architectural Blueprints — The '4+1' View Model of Software Architecture", IEEE Software 12(6), November 1995, pp. 42-50 (doi:10.1109/52.469759)

Also known as

Kruchten’s 4+1, the 4+1 views, the RUP architecture views, 4+1-Sichtenmodell

Core Concepts:

One View, One Named Audience

Each view exists because a specific group asks a specific question. The logical view answers the end user’s question about functionality. The development view (also implementation view) answers the programmer’s question about code organisation — modules, packages, layers, build. The process view answers the integrator’s question about runtime: concurrency, distribution, performance, fault tolerance. The physical view (also deployment view) answers the system engineer’s question about which hardware runs what. The audience is part of the model, not an afterthought.

The "+1" Is the Cross-Check, Not a Fifth Topic

The scenarios — a small set of key use cases — are deliberately redundant with the four views. They are used twice: to discover architectural elements while the architecture is being designed, and to validate the four views against each other afterwards. A scenario that cannot be walked through all four views has found an inconsistency. This is the mechanism that makes 4+1 more than a filing system.

What Separates It From arc42 and c4-diagrams

All three describe a system through several views, and the three overlap heavily in content. Two things are 4+1’s own. First, the explicit stakeholder-per-view mapping: the model names who each view is for, so a view with no reader is a defect. Second, the scenarios as the consistency check between views. c4-diagrams instead supplies one zoom hierarchy with a fixed notation; arc42 supplies a twelve-chapter document structure in which the building block, runtime and deployment views descend from the same idea.

Lineage — RUP, Then the Standard

4+1 came out of Kruchten’s work at Rational and became the architecture description of the Rational Unified Process. The idea of describing a system through stakeholder-specific views was then generalised in IEEE 1471-2000 and its successor ISO/IEC/IEEE 42010 as the view / viewpoint distinction: a viewpoint is the reusable template, a view is one application of it. Rozanski and Woods state the move plainly: "The IEEE standard makes this idea generic (and does not specify one set of views or another) by proposing the concept of a viewpoint."

The Diagram Vocabulary Is UML-Era

The paper and all its teaching material speak UML: class and sequence diagrams for the logical view, component and package diagrams for the development view, activity diagrams for the process view, deployment diagrams for the physical view, use case diagrams for the scenarios. Naming the anchor therefore pulls UML with it. That is the vocabulary of the model, not a defect in it, but it is worth knowing before a model picks notation on your behalf.

When to Use:

  • Structuring a first architecture description when the team has no agreed view set, and the stakeholders are known

  • Auditing an existing architecture document for a missing audience — a document with no process view usually means nobody asked the integrator

  • Forcing consistency between views: write the scenarios, then walk each one through all four views

  • Teaching why multiple views exist at all, before introducing arc42 or c4-diagrams as the modern container

  • Reading older architecture documents, RUP artefacts and ISO 42010 wording, where the vocabulary is already in use

Common Misunderstandings:

  • ❌ "4+1 means five documents" — it means five views of one architecture; they may live in five chapters of one document, and a view without a reader should be dropped

  • ❌ "The scenarios are the use case chapter" — they are the cross-check; their job is to expose contradictions between the other four views

  • ❌ "4+1 is the same as arc42 or C4" — arc42 is a document structure and C4 a notation hierarchy; 4+1 is a stakeholder-to-view mapping plus a consistency mechanism

  • ❌ "Physical view means the server diagram" — it is the mapping of software elements onto nodes, which includes availability and installation, not a network drawing

  • ✓ "4+1 is a view set; ISO 42010 is the grammar for view sets" — accurate, and the reason the model survives as vocabulary even where its UML diagrams do not

Criticism:

  • The standard that formalised the idea declined to keep the view set. IEEE 1471 and ISO/IEC/IEEE 42010 adopted Kruchten’s central move — stakeholder-driven views — and then deliberately refused to prescribe which views. Rozanski and Woods, authors of Software Systems Architecture, describe the sequence directly: "In his introductory paper, Kruchten defined four standard views, namely, Logical, Process, Physical, and Development," after which "The IEEE standard makes this idea generic (and does not specify one set of views or another) by proposing the concept of a viewpoint." A fixed set of four is exactly what the standard treats as the part not to generalise. Rozanski and Woods, "Views and Viewpoints", viewpoints-and-perspectives.info

  • Two concerns the four views do not carry: data and operations. The Rozanski and Woods catalog answers 4+1 with seven viewpoints — Context, Functional, Information, Concurrency, Development, Deployment, Operational. Information and Operational have no counterpart among Kruchten’s four: there is no view that owns the data model, and none that owns running the system in production. Teams using 4+1 on information systems add these themselves, which is the practical argument for the newer catalogs. Same source as above.

  • What we did not find, and where we looked. No named, published critique of 4+1 with a verifiable quotation turned up in English or German searching — not from Philippe Kruchten in retrospect, not from Simon Brown, not from the arc42 authors (Stefan Zörner’s embarc comparison of arc42 against alternatives discusses Simon Brown’s C4 and Software Guidebook, and does not treat 4+1). The criticism of 4+1 is structural rather than polemical: it is carried by what the successors changed. Languages searched: English, German. Other languages were not searched, so this is a frame, not a proof of absence.

Current Status:

  • The prior is strong and correctly attributed. In a clean-room test on claude-haiku-4-5 (2026-10-03) a neutral logistics-platform brief that named no method produced no view vocabulary at all; naming the 4+1 View Model produced all five views together with their audiences. The weak tier attributes Kruchten 1995 correctly and with high confidence. The model is one of the rare cases where the term alone restructures the answer.

  • The citation itself has drifted. Crossref’s record for doi:10.1109/52.469759 gives IEEE Software 12(6), 1995, pp. 42-50, matching the German Wikipedia entry’s "Band 12, Nr. 6, November 1995, S. 42-50". Kruchten’s own bibliography lists the same DOI as "pp. 45-50" (philippe.kruchten.com/architecture). Use 42-50.

  • It lives on as vocabulary, not as a template. The stakeholder-per-view idea is now standard through ISO/IEC/IEEE 42010, and the views themselves reappear inside arc42 (building block, runtime, deployment) and c4-diagrams. What has aged is the notation layer: a model naming 4+1 today still reaches for UML diagram types, which may not be what the project uses.

GoM

Details
Full Name

Grundsätze ordnungsmäßiger Modellierung (Principles of Proper Modeling)

Also known as

GoM Principles, Principles of Well-formed Modeling

Core Concepts:

Correctness (Richtigkeit)

The model must accurately reflect the reality it represents — both syntactically (follows notation rules) and semantically (describes the real subject matter truthfully)

Relevance (Relevanz)

A model should include only elements that are relevant to the intended purpose; unnecessary details reduce usability

Economic Efficiency (Wirtschaftlichkeit)

The benefit gained from a model must justify the effort and cost of creating and maintaining it

Clarity (Klarheit)

The model must be understandable to its intended audience; layout, notation, and level of detail must support comprehension

Comparability (Vergleichbarkeit)

Models of the same subject should follow consistent conventions so they can be meaningfully compared

Systematic Design (Systematischer Aufbau)

Models should be constructed using a consistent, structured approach to enable reuse and integration across a model landscape

Key Proponents

Jörg Becker, Michael Rosemann, Rolf Schütte ("Grundsätze ordnungsmäßiger Modellierung", WIRTSCHAFTSINFORMATIK, 1995)

When to Use:

  • Evaluating or reviewing the quality of business process models (BPMN, EPC)

  • Establishing modeling standards within an organization or project

  • Enterprise architecture modeling to ensure consistent, reusable model artifacts

  • ERP implementation projects requiring traceable and auditable process documentation

  • Assessing whether a model is fit for its intended purpose

  • Onboarding teams to structured modeling practices

Current Status:

  • The canonical reference is Becker, Rosemann & Schütte, "Grundsätze ordnungsmäßiger Modellierung", Wirtschaftsinformatik 37(5), 1995, pp. 435–445 — no DOI exists; stable records: dblp and the University of Münster publication page

  • The prior is thin: a German-language-only academic paper from the Wirtschaftsinformatik community with virtually no English-language footprint — supply the six principles in the prompt rather than relying on the term

Hexagonal Architecture (Ports & Adapters)

Details
Also known as

Ports and Adapters, Onion Architecture (variant)

Core Concepts:

Hexagonal structure

Core domain at the center, isolated from external concerns

Ports

Interfaces defining how the application communicates

Adapters

Implementations that connect to external systems

Dependency inversion

Dependencies point inward toward the domain

Technology independence

Core logic doesn’t depend on frameworks or infrastructure

Primary/Driving adapters

User interfaces, APIs (inbound)

Secondary/Driven adapters

Databases, message queues (outbound)

Testability

Easy to test core logic in isolation

Symmetry

All external interactions are treated uniformly

Key Proponent

Alistair Cockburn (2005)

When to Use:

  • Applications requiring high testability

  • Systems that need to support multiple interfaces (web, CLI, API)

  • When you want to defer infrastructure decisions

  • Microservices with clear domain boundaries

ISO/IEC 25010

Details
Full Name

ISO/IEC 25010 — Systems and Software Quality Requirements and Evaluation (SQuaRE) — Product Quality Model

Also known as

SQuaRE Quality Model, Software Product Quality Model, ISO 25010

Core Concepts:

Product Quality Model

Eight top-level quality characteristics that describe the quality of a software product: Functional Suitability, Performance Efficiency, Compatibility, Usability, Reliability, Security, Maintainability, and Portability

Functional Suitability

The degree to which the product provides functions that meet stated and implied needs — sub-characteristics: Functional Completeness, Functional Correctness, Functional Appropriateness

Performance Efficiency

How the product achieves its functions relative to the amount of resources used — sub-characteristics: Time Behaviour, Resource Utilisation, Capacity

Compatibility

The ability to exchange information with other products — sub-characteristics: Co-existence, Interoperability

Usability

The degree to which a product can be used to achieve goals effectively, efficiently, and satisfactorily — sub-characteristics: Appropriateness Recognisability, Learnability, Operability, User Error Protection, User Interface Aesthetics, Accessibility

Reliability

The ability of the product to perform its functions under stated conditions for a specified period — sub-characteristics: Maturity, Availability, Fault Tolerance, Recoverability

Security

The degree to which the product protects information and data from unauthorized access — sub-characteristics: Confidentiality, Integrity, Non-repudiation, Accountability, Authenticity

Maintainability

The effectiveness and efficiency with which the product can be modified — sub-characteristics: Modularity, Reusability, Analysability, Modifiability, Testability

Portability

The ability of the product to be transferred from one environment to another — sub-characteristics: Adaptability, Installability, Replaceability

Quality in Use Model

Five characteristics that describe quality from the user’s perspective: Effectiveness, Efficiency, Satisfaction, Freedom from Risk, Context Coverage

Key Proponents

ISO/IEC JTC 1/SC 7 (replaces ISO/IEC 9126)

When to Use:

  • Conducting structured software quality assessments or architecture reviews

  • Communicating quality requirements to diverse stakeholders using a shared vocabulary

  • Defining and prioritizing non-functional requirements at the start of a project

  • Documenting architecture quality goals in arc42 or similar frameworks (e.g., section 10 "Quality Requirements")

  • Evaluating competing architectural approaches using quality attribute scenarios (combined with ATAM)

  • Creating a quality tree or quality scenarios for an architecture documentation

Current Status:

  • The eight-characteristic model described above is the 2011 edition — which ISO has withdrawn. The current edition, ISO/IEC 25010:2023, expands the model to nine characteristics: Safety is new, Usability was renamed to Interaction Capability, Portability to Flexibility (free change summary: arc42 Quality Model)

  • Most published material still describes the 2011 model — as of mid-2026 even the English Wikipedia article — so an LLM’s training-data prior for "ISO 25010" most plausibly serves the older eight-characteristic edition

  • Name the edition explicitly ("ISO/IEC 25010:2023") whenever the distinction matters; the bare term will usually resolve to the 2011 model

LASR according to Toth/Zörner

Details
Full Name

LASR – Lightweight Approach for Software Reviews (Stefan Toth & Stefan Zörner)

Also known as

LASR Reviews

Core Concepts:

A review method

LASR is a structured method for efficient software reviews — it uncovers weaknesses in software solutions and challenges technical and architectural ideas. More streamlined than ATAM, but still focused on key quality aspects

Lean Mission Statement

Condense the system’s vision into a short, shared statement as the review’s reference point

Evaluation Criteria

Identify the system’s top quality attributes — the quantified objectives form the review benchmark

Risk-based Review

Identify the most significant risks against those objectives

Quality-focused Analysis

Analyze the controversial gaps (or their absence) in depth

LASR Result Diagram

Quantifies the review: the objectives form a benchmark line, the system assessment a second line — the gaps between them drive the deeper analysis

Workshop format

A moderated, game-like team event (LASR-Cards, templates and checklists as Print & Play material); works with few people, on site or remote, first results within hours

Community-driven and free

Open license, free to use in commercial contexts; supported by embarc

Key Proponents

Stefan Toth & Stefan Zörner ("Reviewing Software Systems", Leanpub, 2023; German edition "Software-Systeme reviewen"); canonical site lasr-reviews.org

When to Use:

  • Reviewing a software system or solution idea when ATAM is too heavyweight

  • Validating an architecture against its most important quality attributes

  • Uncovering and prioritising technical risks with the whole team in a short workshop

  • Establishing a recurring, lightweight review practice

Current Status:

  • The canonical sources are lasr-reviews.org and the book "Reviewing Software Systems" (Toth & Zörner, Leanpub, 2023)

  • The prior is thin — a 2023 self-published method from two German consultants with essentially one community site. LLMs reliably know the name at best, not the method: supply the steps from lasr-reviews.org in the prompt rather than trusting the anchor alone

  • A cautionary tale from this catalog itself: an earlier version of this entry confidently described LASR as a "lightweight architecture documentation template" with an invented acronym expansion — silent substitution on a thin prior, exactly the Use-Case-3.0 failure mode. Corrected against the verified sources in June 2026

Lehman’s Software Classification

Details
Full Name

Lehman’s Classification of Software (S-/P-/E-type) and Laws of Software Evolution

Also known as

SPE Classification, Lehman’s SPE Taxonomy

Core Concepts:

Three software types, classified by their relationship to the real world:

S-type (Specification)

Software whose problem can be fully and formally specified. Correctness is provable against the specification. The world outside the program is irrelevant to its validity. Example: a sorting algorithm, a compiler for a formally defined language.

P-type (Problem)

Software that addresses a real-world problem which cannot be fully specified, only approximated. The specification is a model of the real problem; the solution must be validated against the actual problem, not just the spec. Example: a chess-playing program, a weather forecasting system.

E-type (Embedded)

Software that becomes part of the real world and changes it through its use. This use in turn changes the environment and thereby the requirements — creating a feedback loop. Most business and organizational software is E-type. A "correct" E-type system drifts out of correctness over time even if nothing in it changes.

Laws of Software Evolution

Lehman derived eight laws from observing E-type systems, including Continuing Change (E-type systems must be continually adapted or become progressively less satisfactory), Increasing Complexity (complexity increases unless work is done to reduce it), Self-Regulation, Conservation of Organisational Stability, Conservation of Familiarity, Continuing Growth, Declining Quality, and Feedback System.

Key Proponents

Meir M. Lehman ("Programs, life cycles, and laws of software evolution", Proceedings of the IEEE, 1980); later developed with Laszlo Belady ("Program Evolution: Processes of Software Change", 1985).

When to Use:

  • Explaining why "finished" business software still needs ongoing investment

  • Deciding how much effort to spend on formal specification vs. validation with users

  • Framing requirements discussions — E-type means requirements will keep changing by nature, not by failure

  • Reasoning about why TDD and formal proofs map cleanly onto S-type but are subtler for E-type

  • Estimating maintenance budgets and justifying them to stakeholders

  • Architectural trade-offs: E-type systems need change-friendliness above all

  • arc42 - Documentation template well suited for evolving E-type systems

  • Cohesion Criteria - High cohesion reduces the cost of continuing change in E-type systems

MADR

Details
Full Name

Markdown Architectural Decision Records

Core Concepts:

Structured template

Well-defined format with specific sections

Standard fields
  • Title (short noun phrase)

  • Status (proposed, accepted, rejected, deprecated, superseded)

  • Context and Problem Statement

  • Decision Drivers (forces influencing the decision)

  • Considered Options (alternatives evaluated)

  • Decision Outcome (chosen option with justification)

  • Pros and Cons of the Options (trade-off analysis)

  • Links (related decisions, references)

Markdown format

Uses standard Markdown for wide compatibility

Clear structure

More detailed than basic ADRs, includes explicit alternatives

Trade-off documentation

Explicitly captures pros/cons of each option

Version control

Stored with code, immutable like other ADRs

Lightweight yet comprehensive

Balances completeness with maintainability

Key Proponents

Oliver Kopp, Olaf Zimmermann (and MADR community)

Reference

https://adr.github.io/madr/

When to Use:

  • When you need more structure than basic ADRs

  • Projects requiring explicit documentation of alternatives

  • Teams that need to justify decisions with detailed trade-offs

  • Organizations using Markdown-based documentation workflows

  • When LLM assistance is needed to generate consistent decision records

  • Complementing arc42 Section 9 (Architecture Decisions)

Current Status:

  • The current release is MADR 4.0.0 (September 2024). The name changed twice along the way: MADR 3.x (2022) renamed "Markdown Architectural Decision Records" to "Markdown Any Decision Records"; 4.0 renamed it back, while keeping the template usable for any decision

  • An LLM’s training-data prior most plausibly reproduces the 2.x-era format (2018–2022, the longest-lived and most widely copied variant): inline * Status: / * Deciders: / * Date: bullets and split "Positive/Negative Consequences" sections — rather than the current YAML front matter with decision-makers, the merged "Consequences" section, and the "Confirmation" element introduced in 3.x/4.x

  • When the exact format matters, point the model at the current template or paste it into the prompt — the anchor name reliably evokes the concept, but not the current field set

Quality Attribute Scenario

Details
Full Name

Quality Attribute Scenario

Also known as

Quality Scenario, Six-Part Scenario

Core Concepts:

Purpose

Turn a vague quality goal ("the system must be fast") into a concrete, testable statement. A scenario without a measurable response is a wish, not a requirement.

Six Parts

Every scenario is specified through six elements: Source (the entity generating the stimulus), Stimulus (the condition arriving at the system), Artifact (the part of the system stimulated), Environment (the conditions under which it occurs — normal load, overload, startup, degraded mode), Response (the activity that results), Response Measure (the response quantified so the requirement is verifiable).

Response Measure

The decisive part. Without a measure — a latency, a percentile, a throughput, a recovery time — a scenario cannot be tested and is not a requirement.

General vs. Concrete Scenarios

A general scenario is a reusable template for a quality attribute; a concrete scenario instantiates it for one specific system with literal values.

Relation to Quality Attributes

Scenarios make ISO/IEC 25010 characteristics operational — each characteristic (performance efficiency, reliability, security…​) is expressed as one or more concrete scenarios.

Key Proponents

Len Bass, Paul Clements, Rick Kazman ("Software Architecture in Practice", SEI / Carnegie Mellon University)

When to Use:

  • Writing arc42 Chapter 10 quality requirements as testable statements rather than adjectives

  • Building an ATAM utility tree, where each leaf is a prioritized concrete scenario

  • Specifying non-functional requirements that QA must later verify

  • Recovering quality requirements from a brownfield codebase — deriving the response measure from a literal threshold, timeout, or budget in the code

  • ATAM — uses quality attribute scenarios as the leaves of its utility tree

  • arc42 Architecture Documentation — Chapter 10 quality requirements are expressed as scenarios

  • ISO/IEC 25010 — the quality characteristics that scenarios make concrete

  • EARS Requirements — a comparable discipline of making requirements precise and testable

Residuality Theory

Details
Full Name

Residuality Theory

Also known as

residue-based architecture, stressor analysis

Core Concepts:

Naive Architecture

The deliberate starting point — "an architectural design that initially covers the typical use of the system, i.e. the happy path and only the most obvious possible errors". It is meant to be inadequate. You build it in order to attack it.

Stressor

Any load that hits the system: technical failure, sudden traffic, a regulatory change, a supplier collapsing, a competitor cutting prices, users behaving unexpectedly. Stressors are explicitly not limited to technical failure — business and organisational shocks count.

Residue

"What remains of the system when a stressor occurs." The design question inverts: not "what shall we build?" but "what survives, and what is left standing when this hits?" The work is to turn unacceptable residues into business-acceptable system states.

The Five-Step Method

1. sketch the naive architecture; 2. apply stressors; 3. identify the residue — what breaks, what survives; 4. redesign so the failure happens in a controlled way; 5. repeat across many stressors.

Contagion Analysis

Individual residues, merged into one architecture, can be less robust than any of them alone. Contagion analysis is a matrix-based technique — the approach borrows from aerospace practice — for surfacing the coupling that only shows itself in production, and finding true cohesion between components under stress.

Hardening

The remaining architecture is stressed further with ATAM and FMEA rather than declared finished.

Complexity Science Roots

The theory draws on complexity science, notably Stuart Kauffman’s work on fitness landscapes and attractors; later papers add random simulation and attractor networks as formal tools.

Inverted Design Question

The practical signature of the anchor. Conventional architecture asks what to extract or build first; Residuality asks what survives every stressor — which reframes an unchangeable compliance module from "a thing to encapsulate" into a residue to design around.

Key Proponents

Barry M. O’Reilly, founder of Black Tulip Technology; PhD research in complexity science and software engineering at The Open University. Book: "Residues: Time, Change, and Uncertainty in Software Architecture" (Leanpub, complete as of 2 June 2024).

When to Use:

For reliable activation, name the method and its first step — "apply Residuality Theory: run a stressor analysis on this design" — rather than the bare term.

  • Designing systems that must hold up under unpredictable load, failure, regulatory shift, or organisational change

  • Architecture reviews where hidden coupling and fragility need to be made visible

  • Legacy migration: separating what must survive from what can be replaced

  • Any design conversation that has settled too early on the happy path

  • As a complement to cynefin-framework: Residuality is a method for the Complex domain, where prediction fails and probing is the only way forward

Common Misunderstandings:

  • ❌ "Residuality is Chaos Engineering" — Chaos Engineering injects failure into a running system; Residuality stresses a design on paper, before it exists

  • ❌ "A residue is technical debt" — a residue is what remains after a stressor, not the sediment of past decisions

  • ❌ "Stressors are failure modes" — they include price changes, new regulation and competitor moves, none of which are failures

  • ✓ "It composes borrowed ideas into its own method" — fitness landscapes are Kauffman’s, antifragility is Taleb’s, constraints are Goldratt’s; what is Residuality-specific is residues, stressor analysis and contagion analysis

Criticism:

  • The author names the empirical gap himself. The book states that "the inclusion of case studies is marketing rather than science" (via Daniel Lebrero’s book notes, 2025) — the theory’s evidence base is worked examples, not controlled comparison. Independent replication by researchers other than the originator is still thin.

  • A steep and unusual learning curve. O’Reilly, via InfoQ (Ben Linders, October 2025): "A small number of developers find the jump from the linear, logical, mathematical world we are trained for to the lateral, imaginative techniques very difficult." He puts the effort to master it on a par with learning object-oriented programming — a real adoption barrier, not a detail.

  • Single-originator framework. Vocabulary, method and evidence all trace to one author. That is normal for a young theory, but it means the usual cross-checking of a mature body of knowledge has not happened yet.

Current Status:

Richardson Maturity Model

Details
Full Name

Richardson Maturity Model — four levels of REST maturity for HTTP APIs. Presented by Leonard Richardson in "Justice Will Take Us Millions Of Intricate Moves", QCon San Francisco, 20 November 2008, and named and popularised by Martin Fowler, "Richardson Maturity Model: steps toward the glory of REST", 18 March 2010

Also known as

RMM, Richardson’s levels, the REST maturity levels; Richardson’s own talk calls it the Maturity Heuristic

Core Concepts:

The Four Levels

Level 0 — HTTP as a transport tunnel: one endpoint, one verb, the operation named in the payload. Fowler’s own description of the starting point: "The starting point for the model is using HTTP as a transport". Level 1 — resources: each thing gets its own URI. Richardson’s phrasing in the talk: "They give each individual thing in their universe a URI." Level 2 — HTTP verbs and status codes used with their defined meaning: GET is safe and cacheable, PUT is idempotent, DELETE removes, and the response code carries the outcome (201, 404, 409). Level 3 — hypermedia controls: responses carry links to the next available actions, so the client follows links instead of constructing URIs from documentation.

Use It as a Target, Not as a Label

The model is a classification, and a classification on its own changes nothing. Two formulations make it operational. As a target: "design this API to Richardson Maturity Model Level 2" — that is a concrete instruction about URI design, verb choice and status codes. As a gap statement: "this API sits at Level 1; name what Level 2 would change." The level number is shorthand for a set of design decisions, which is why it compresses well in a prompt.

Each Level Is a Separate Design Technique

Fowler reports Ian Robinson’s reading, which is the most useful part of the model: Level 1 is divide and conquer applied to one large endpoint, Level 2 removes unnecessary variation by using a standard set of verbs, and "Level 3 introduces discoverability, providing a way of making a protocol more self-documenting." The levels are not degrees of the same thing; they are three different problems, which is why a team can genuinely want Level 2 and not Level 3.

Level 2 Is Where Almost Everything Stops

Richardson said why in the talk itself: "A lot of people settle for level two because hypermedia is difficult to understand and its value in the web service domain isn’t as clear." The model’s main practical value is therefore as a precise way to say what an API already does and does not do, rather than as a ladder anyone intends to climb to the top.

When to Use:

  • Setting an explicit API design target before implementation — "Level 2, and here is why not Level 3"

  • Describing an existing HTTP API in one word to another engineer or to a model, instead of listing its URI and verb conventions

  • Reviewing an API for the specific Level 2 defects: POST used for reads, 200 returned with an error body, verbs encoded in the path

  • Deciding whether hypermedia is worth its cost for a given client population, with the tradeoff named rather than implied

  • Reading REST literature, where Level 0 to Level 3 is assumed vocabulary

Common Misunderstandings:

  • ❌ "Level 3 is the goal for every API" — Richardson’s own talk explains why most teams stop at Level 2, and the cost falls on clients that do not need discoverability

  • ❌ "Level 2 means RESTful" — Roy Fielding’s position is that hypertext is a precondition, not a finishing touch; on that reading Levels 0 to 2 are simply not REST

  • ❌ "Higher level means better API" — the levels rank conformance to REST constraints, not fitness for purpose; an internal RPC-style service can be the right design at Level 0

  • ❌ "RMM is an assessment framework" — Fowler explicitly rejects that use (see Criticism)

  • ✓ "RMM is a vocabulary for naming where an API sits and where you want it" — accurate, and the form in which it is actionable

Criticism:

  • One critic disputes that the thing exists under that name. Mike Ralphson, in a post titled "Why there is no such thing as the Richardson Maturity Model", faults the popularised version for the pejorative "Swamp of POX" and for conflating resources with representations, and reports that Richardson himself called the whole thing "very embarrassing" at a RESTFest talk, adding that climbing the heuristic needs "either a technical reason or a political reason to do so". Ralphson (13 December 2018). The quotation is printed as Ralphson reports it: the primary talk page for the year he names carries a different title, so Richardson’s own words could not be confirmed at source.

  • Roy Fielding’s constraint leaves no ladder to climb. Fielding never wrote about the Richardson Maturity Model in the piece usually cited against it; what he wrote is the constraint that makes the model’s lower levels not-REST at all: "if the engine of application state (and hence the API) is not being driven by hypertext, then it cannot be RESTful", and "A REST API should be entered with no prior knowledge beyond the initial URI (bookmark) and set of standardized media types". Of the API he was reviewing he wrote: "That is RPC. It screams RPC." The word "maturity" does not appear in that post — the application to RMM is Fowler’s: "Roy Fielding has made it clear that level 3 RMM is a pre-condition of REST." Read that way, the model is not a maturity scale at all: Levels 0 through 2 are one category (not REST) and Level 3 is the other. Fielding, "REST APIs must be hypertext-driven", 20 October 2008

  • Fowler rules out the assessment use, in the article that made the model famous. Two sentences from his own write-up: "I should stress that the RMM, while a good way to think about what the elements of REST, is not a definition of levels of REST itself." And: "As such I see it as tool to help us learn about the concepts and not something that should be used in some kind of assessment mechanism." A team that scores its APIs on the RMM is using it against its popularising author’s stated intent. Use it as a design target and a shared vocabulary; do not put it in a scorecard. Fowler, "Richardson Maturity Model", 18 March 2010

  • The name promises more than the original claimed. Richardson’s talk calls its third act "The Maturity Heuristic" — a heuristic, not a model, and not a maturity model. The term "Richardson Maturity Model" comes from Fowler’s 2010 title, two years later. The upgrade from heuristic to model is where the implication of a ladder enters, and the implication is the part both authors later qualify. Richardson, "Justice Will Take Us Millions Of Intricate Moves", QCon San Francisco, 20 November 2008

  • What we did not find, and where we looked. No named German-language critique of the model turned up; German results are tutorials and translations of the four levels, not argument. Languages searched: English, German. The substantive criticism is in English and comes from Fielding, from Fowler himself, and from Ralphson.

Current Status:

  • The prior holds, and it diagnoses. In a clean-room test on claude-haiku-4-5 (2026-10-03), a neutral logistics-platform brief produced an API discussion with no notion of maturity or hypermedia at all. Naming the Richardson Maturity Model made the weak tier diagnose the current state — "likely stuck at Level 0-1" — and then prescribe the migration, with HTTP verb semantics and status codes given per resource. Attribution lands on Richardson 2008-2009, with medium confidence; the year is sometimes given as 2009 or as Fowler’s 2010.

  • "The swamp of POX" is not in Fowler’s text. The phrase travels with Level 0 everywhere in secondary writing and in model output, but Fowler’s article heads that section simply "Level 0". Treat the label as folklore, not as a quotation.

  • Fowler’s own Level 3 example has aged out. In 2010 he wrote of link relations: "As I write these are confined to what’s done by ATOM, which is generally seen as a leader in level 3 restfulness." Today the hypermedia discussion runs through JSON:API, HAL and JSON Hypertext Application Language rather than Atom, while the levels themselves are unchanged. Level 3 remains rare in production APIs, which is the honest reason the model is used descriptively more often than as a plan.

Strangler Fig

Details
Full Name

Strangler Fig Application

Also known as

Strangler Fig pattern, Strangler Application (original 2004 title, later renamed by Fowler)

Core Concepts:

Routing facade

A proxy intercepts requests bound for the legacy system and routes each one to either the old system or its new replacement; clients keep the same interface and stay unaware that a migration is in progress

Incremental replacement

Functionality is migrated piece by piece rather than in a single big-bang rewrite; the new system grows around the old one until the legacy host can be decommissioned

Botanical metaphor

Named after the strangler fig vine that germinates in a host tree, sends roots to the ground, and gradually envelops the host until it stands self-supporting in its place — the new system "strangles" the legacy

Event interception

Intercepting the events or calls that flow into the legacy system so new behaviour can be layered in and routed away from the old code

Asset capture

Progressively taking ownership of the data and capabilities ("assets") that the legacy system holds, moving each into the new system as it is replaced

Transitional architecture

The facade and any anti-corruption layers are scaffolding meant to be torn down once migration completes; both systems coexist and may share data stores during the transition

Avoids big-bang rewrite

Reduces risk by keeping the legacy system live and rolling back-able throughout, instead of betting on a single cutover

Key Proponent

Martin Fowler (StranglerFigApplication, 2004)

When to Use:

  • Modernizing a large, complex, or legacy monolith where a full rewrite would be too risky

  • Decomposing a monolith into microservices by extracting one capability or domain at a time

  • When the original system can keep running for an extended period during migration

  • When requests to the back-end can be intercepted and the legacy source can be modified to redirect calls

Criticism:

  • Microsoft, Azure Architecture Center — Strangler Fig pattern (2026) — warns that the facade must keep pace with the migration and must not become a single point of failure or performance bottleneck, and that both systems sharing data stores requires careful concurrent access; recommends an Anti-corruption Layer for cross-system calls

  • Amazon Web Services, Decomposing monoliths into microservices — Strangler fig pattern — notes the legacy and modernized systems "live together for a period of time," which imposes dual-maintenance cost; the pattern is unsuitable when requests cannot be intercepted, the legacy source is inaccessible, or the system must be fully decommissioned quickly

Current Status:

  • Widely adopted in cloud-modernization guidance beyond Fowler’s original essay: documented as a first-class pattern by both the Microsoft Azure Architecture Center and AWS Prescriptive Guidance, typically framed as monolith-to-microservices decomposition

  • Naming drift: Fowler originally titled it "Strangler Application" and later renamed it "Strangler Fig Application" to restore the botanical metaphor (Original Strangler Fig Application); training-data priors may still surface the older "Strangler" / "Strangler Application" label

Team Topologies

Details
Full Name

Team Topologies: Organizing Business and Technology Teams for Fast Flow

Core Concepts:

Four fundamental team types
Stream-aligned team

Aligned to a single flow of work (a product, service, or user journey); the primary team type that delivers value end-to-end

Enabling team

Helps stream-aligned teams acquire missing capabilities; works as a temporary coach, not a permanent dependency

Complicated-subsystem team

Owns a part requiring deep specialist knowledge (e.g. a math-heavy or hardware-bound subsystem) to reduce the burden on stream-aligned teams

Platform team

Provides internal self-service products that reduce the cognitive load of stream-aligned teams

Three interaction modes
Collaboration

Two teams work closely together for a defined period to discover new patterns

X-as-a-Service

One team consumes something another team provides with minimal collaboration

Facilitating

One team helps or coaches another to remove impediments

Cognitive load

Team structures are designed to limit the amount a single team must hold in its head; the platform exists to offload it

Conway’s Law operationalized

Team boundaries and communication paths are deliberately designed because organizations ship designs that copy their communication structures (the "Inverse Conway Maneuver")

Team API

Each team makes its interfaces explicit — code, services, documentation, and ways of working — so other teams know how to interact with it

Fracture planes

Natural boundaries (e.g. business domain, regulatory, change cadence) along which to split work into stream-aligned teams

Key Proponents

Matthew Skelton, Manuel Pais ("Team Topologies", IT Revolution, 2019)

When to Use:

  • Designing or restructuring software-delivery organizations for fast flow

  • Reducing handoffs and dependencies between teams

  • Deciding whether a capability belongs in a platform, an enabling team, or a stream-aligned team

  • Reasoning about cognitive load when a team owns too much

  • Applying the Inverse Conway Maneuver to align architecture and org structure

Criticism:

  • Patricia Aas, "The fundamental misunderstanding in Team Topologies" (2025) — argues the book conflates Conway’s Law (a descriptive observation) with the Inverse Conway Maneuver (a prescriptive recipe), commits the fallacy of "affirming the consequent," and that deliberately restricting team communication to force an architecture contradicts Conway’s own case for adaptable organizations. She also questions the book’s use of "cognitive load." The discourse she points toward favors broad collaboration over engineered communication barriers.

Current Status:

  • A second edition (IT Revolution, 2025) adds new cross-industry case studies and a new authors' foreword while keeping the four team types and three interaction modes intact. Training-data priors most plausibly reflect the 2019 first edition; the core vocabulary is unchanged between editions.

Tracer Bullet

Details
Also known as

Tracer Bullet Development, Tracer Code

Core Concepts:

End-to-end but lightweight

Build a thin slice that touches all the pieces of the final system — in realtime, on real infrastructure — to see whether your architectural direction lands where you aimed.

Real ammo, not blanks

Unlike a spike or prototype, tracer bullet code is kept and refined. It becomes part of the final system, not throwaway. The distinction: you iterate on it rather than rewrite it.

Immediate feedback on integration

You learn quickly whether your chosen tech stack, service boundaries, and data flow actually work together, not just whether each piece works in isolation.

Aim, fire, adjust

The metaphor is a tracer round in a machine gun — you see where the shot lands in real time and adjust your aim for the next burst. Tracer bullets enable rapid directional correction.

Not feature-complete

The first tracer is deliberately incomplete. One feature, end-to-end, good enough to validate the shape of the solution without committing to full functionality.

Architecture validation over feature delivery

The primary goal is answering "will this architecture work?", not "is this feature done?".

Iterative refinement

Subsequent tracers refine the aim — adjusting interfaces, choosing different libraries, or repositioning service boundaries based on what the first shot revealed.

Key Proponents

Andrew Hunt and David Thomas ("The Pragmatic Programmer", 1999; 20th Anniversary Edition 2019)

When to Use:

  • Unfamiliar technology stacks where integration risk is unknown

  • Complex system boundaries (microservices, event-driven architectures) where interaction patterns are hard to predict

  • Exploratory projects where requirements are still being discovered

  • When architectural commitments need to be validated before scaling the team

  • Projects where early user or stakeholder feedback on the shape of the solution is more valuable than a polished prototype

  • Walking Skeleton - Similar end-to-end approach, but production-capable from day one rather than exploratory

  • Spike Solution - Also exploratory, but spikes are throwaway and answer a single question

  • Thin Vertical Slice - Delivery technique that shares the end-to-end philosophy at the feature level

Twelve-Factor App

Details
Also known as

12-Factor App

Core Concepts:

Codebase

One codebase tracked in revision control, many deploys; a one-to-one relationship between app and codebase

Dependencies

Explicitly declare and isolate dependencies; never rely on implicit system-wide packages

Config in the environment

Store config (credentials, hostnames, per-deploy values) in environment variables, strictly separated from code

Backing services

Treat databases, queues, caches and SMTP as attached resources, swappable by changing config without code edits

Build, release, run

Strictly separate the three stages; releases are immutable and append-only, every release has a unique ID

Stateless, disposable processes

Execute the app as one or more stateless, share-nothing processes; persist state only in backing services. Maximize robustness with fast startup and graceful shutdown (Disposability)

Port binding

Export the service by binding to a port; the app is self-contained and needs no runtime webserver injection

Concurrency

Scale out horizontally via the process model, treating processes as first-class citizens

Dev/prod parity

Keep development, staging and production as similar as possible — small time, personnel and tooling gaps

Logs as event streams

Treat logs as time-ordered event streams written to stdout; the execution environment handles routing and storage

Admin processes

Run admin and management tasks (migrations, REPLs) as one-off processes in an identical environment to the long-running ones

Key Proponent

Adam Wiggins (Heroku, 12factor.net, 2011)

When to Use:

  • Designing or reviewing cloud-native and SaaS applications for portability and scalability

  • Establishing deployment, config and statelessness conventions for a containerized or PaaS workload

  • Onboarding developers to twelve-factor vocabulary (config-in-env, attached resources, build/release/run)

  • Prompting an LLM to scaffold a deployable, environment-portable service rather than a machine-bound one

Criticism:

  • Kevin Hoffman, "Beyond the Twelve-Factor App" (O’Reilly, 2016) — argues the original set is incomplete for modern cloud platforms and proposes a revised fifteen-factor methodology, adding API First, Telemetry and Authentication and Authorization as first-class factors

Current Status:

  • The canonical 12factor.net document was "Last updated 2017" and stood unchanged for roughly eight years; a training-data prior most plausibly serves this frozen 2011/2017 text

  • Salesforce/Heroku launched an official Twelve-Factor modernization initiative (Brian Hammons, 10 Feb 2025), an open-source effort revisiting the principles for containers, Kubernetes and serverless and proposing a new Identity factor

Twin Peaks Model according to Nuseibeh

Details
Full Name

Twin Peaks model, from Bashar Nuseibeh, "Weaving Together Requirements and Architectures" (IEEE Computer 34(3), March 2001, pp. 115—​119, doi:10.1109/2.910904).

Also known as

Twin Peaks, the Twin Peaks of requirements and architecture

Core Concepts:

Two Peaks, Developed Together

Requirements engineering and architectural design are separate activities, but they run concurrently and feed each other. Neither is finished before the other starts.

Equal Status

The name reflects that both peaks are equally high: the requirements specification and the architecture carry the same weight. Requirements do not simply "flow down" into an architecture.

Against Frozen Requirements

Nuseibeh argues against a waterfall-like process that produces artificially frozen requirements documents for the next phase, and against architectures so constrained that they resist the requirement changes they meet later.

A Partial Spiral

The model is a simplified, finer-grained form of the spiral life cycle. Each turn refines the requirements and the architecture a little further, in alternation.

Architecture Feeds Back Into Requirements

Architectural decisions make requirements more concrete or force their re-evaluation. An option can make a requirement cheap, expensive or impossible, so the feedback runs in both directions.

Stable Yet Adaptable

The aim is an architecture that stays stable yet adapts as the requirements around it keep changing.

When to Use:

  • Projects where requirements are still moving while the architecture has to start

  • Pushing back on "finish the spec first, then design" in a plan or in an AI agent’s workflow

  • Linking quality requirements and architectural decisions, e.g. a req42 goal or quality scenario to an arc42 decision

  • Driving a model: "work in Twin Peaks style — after each requirement, name the architectural consequence, and after each architectural option, name the requirement it puts at risk" asks for the alternation, not a two-phase document

Common Misunderstandings:

  • ❌ "Twin Peaks" alone — without "model" or "Nuseibeh", the term is ambiguous with the TV series; use the qualified form

  • ❌ "Requirements first, then architecture, but iterate" — the model asks for concurrent work, not alternating phases with hand-overs

  • ❌ "Architecture follows from the requirements" — in Twin Peaks the architecture also changes the requirements

  • ✓ "Refine requirements and architecture together, and let each constrain the other"

Current Status:

  • The 2001 article is a short column, not a full method; the follow-up literature fills in practices. Jane Cleland-Huang, Robert S. Hanmer, Sam Supakkul and Mehdi Mirakhorli, "The Twin Peaks of Requirements and Architecture" (IEEE Software 30(2), 2013, doi:10.1109/MS.2013.39), and the IEEE TwinPeaks workshop series (from 2012) carry the idea forward.

Vertical Slice Architecture (VSA)

Details
Also known as

VSA, Feature Slices

Core Concepts:

Vertical slices

Each feature is organized as an end-to-end slice spanning all layers (request, validation, domain logic, persistence, API)

Feature cohesion

Code for a feature lives together regardless of technical layer

No horizontal layers

Avoids traditional layered architecture (controllers, services, repositories) as primary organizing principle

CQRS alignment

Naturally pairs with Command/Query separation per slice

Thin shared layer

Minimal shared infrastructure; each slice owns its behavior

Screaming intent

Folder/namespace structure reflects features, not technical concerns

Independent evolution

Slices can evolve independently with minimal cross-cutting changes

Reduced coupling

Changes to one feature rarely affect other features

Key Proponents

Jimmy Bogard

When to Use:

  • Applications with many distinct business features

  • When feature teams own end-to-end delivery

  • To reduce merge conflicts in large teams

  • When traditional layered architecture creates too much coupling across features

Walking Skeleton

Details
Also known as

Skeleton Architecture, End-to-End Thin Implementation

Core Concepts:

End-to-end from day one

A minimal implementation that touches every architectural layer — UI, application logic, domain, persistence, deployment pipeline — before any significant feature work begins.

Production-capable

Unlike a throwaway prototype, the walking skeleton is real code that can be shipped to production. It passes through CI/CD, runs on target infrastructure, and forms the foundation for subsequent features.

Minimal functionality, maximum structure

A single trivial user journey (one button, one form, one record) is enough. The value is in proving the structure, not the feature set.

Early risk reduction

Integration risks (does the DB driver work in prod? does auth talk to the identity provider? does the deploy pipeline reach the target?) surface on day one instead of week twelve.

Walking = working

"Walking" is the defining verb — the skeleton must move through its full lifecycle (build, deploy, serve a request, return a response, log an event), not just compile.

Foundation for iteration

Once the skeleton walks, adding real features becomes additive work on a known-good structure. No "big bang" integration later.

Not a prototype

A prototype is discarded; a walking skeleton is grown. The distinction matters — prototype code tempts shortcuts that don’t belong in production.

Key Proponents

Alistair Cockburn ("Agile Software Development", 2001); the term originates in his collaboration with Ralph Hodgson

When to Use:

  • Starting a new system where integration between layers carries architectural risk

  • Greenfield projects with unfamiliar tech stacks or deployment targets

  • Validating CI/CD, infrastructure, and cross-team contracts before scaling development

  • Distributed systems where the "it works on my machine" gap is dangerous

  • Any project where the first production deploy should happen early, not late

  • Tracer Bullet - Also end-to-end, but exploratory and direction-validating rather than production-capable

  • Thin Vertical Slice - Delivery technique for subsequent features on top of the skeleton

  • Clean Architecture - A common structural target the skeleton can instantiate from day one

  • Hexagonal Architecture - Ports/adapters structure the skeleton naturally exposes

Statistical Methods & Process Monitoring

Control Chart (Shewhart)

Details
Full Name

Shewhart Control Chart

Also known as

Process Control Chart, SPC Chart

Core Concepts:

Time series diagram

Measured value plotted over time

Centerline (CL)

Process mean

Upper/Lower Control Limit (UCL/LCL)

Typically at ±3σ from the mean

Zones A/B/C

Division into 6 areas (each 1σ wide) for pattern recognition

Common Cause Variation

Inherent, random fluctuation of a stable process

Special Cause Variation

Assignable, correctable deviation

Chart Types
  • X-bar Chart: Subgroup means

  • R-Chart: Subgroup ranges

  • I-MR Chart: Individual values and moving range

  • p-Chart: Defect proportions

  • c-Chart: Defect counts per unit

In-Control vs. Out-of-Control

Core decision based on rules (Nelson, Western Electric)

Normal distribution assumption

Control limits are based on normally distributed data

Key Proponent

Walter A. Shewhart (1920s, Bell Labs / Western Electric)

Key Work

"Economic Control of Quality of Manufactured Product" (1931)

Relationship to Other Anchors:

Nelson Rules

8 rules for pattern recognition on Control Charts

SPC

Control Charts are the central tool of Statistical Process Control

Six Sigma

Control Charts are used in the Control phase of DMAIC

When to Use:

  • Process monitoring in manufacturing and production

  • Quality assurance using statistical methods

  • Detection of process shifts and trends

  • Foundation for rule-based anomaly detection in time series

  • Conceptual basis — even when different terminology is used in IT monitoring

DMADV

Details
Full Name

Define, Measure, Analyze, Design, Verify

Also known as

DFSS, Design for Six Sigma

Core Concepts:

Quality is Designed In, Not Inspected In

DMADV exists because the cheapest place to remove a defect is the drawing board. Once a product or process is built, dmaic can only push its capability toward the limit the design allows. DMADV sets that limit.

The Five Phases Owe Different Deliverables Than DMAIC’s

Same first three letters, different work:

  • Define — the design mandate: customer segments, the business case, and the scope of what is being created. Not a defect to be reduced, but a gap to be filled.

  • Measure — the Voice of the Customer translated into measurable CTQs (Critical to Quality) with targets and tolerances. There is no process to baseline yet, so "measure" means quantify the requirement, not the status quo.

  • Analyze — generate and compare design concepts against the CTQs, then pick one. This is the phase where pugh-matrix and kano-model earn their keep.

  • Design — the detailed design: parameters, tolerances, and a predicted capability for each CTQ, usually with fmea on the chosen concept and designed experiments on the critical parameters.

  • Verify — build it, run pilot production, and demonstrate that the delivered thing meets the CTQs before handover to operations.

Verify is Not Control

DMAIC’s last phase sustains a gain that already exists. DMADV’s last phase proves a prediction. The question is not "is it still holding?" but "did the design do what the model said it would?" Handover to an operational control plan happens after Verify, which is where the two roadmaps meet.

Predicted Capability Instead of Measured Capability

Through Analyze and Design there is no process to measure, because it does not exist yet. Prototypes, DOE runs and simulations do produce data, but the capability of the future process is predicted from models — transfer functions, tolerance stacks, capability estimates — and only confirmed against the real thing in Verify. That gap between predicted and demonstrated capability is the method’s core bet and the source of most of its criticism.

Design Freeze as a Tollgate

Like DMAIC, phases end in formal reviews and a project can be stopped at one. The tollgate at the end of Design is the expensive one: after it, changes cost an order of magnitude more.

The Trigger That Picks DMADV

Use DMADV when the process does not exist yet, or when an existing process is so far from the requirement that improving it cannot close the gap. If a capable process is merely running badly, DMADV is the wrong tool and dmaic is the right one.

When to Use:

  • Designing a new product, service or process where the quality target is fixed before the first prototype

  • Replacing a process whose entrenched capability cannot reach the requirement, no matter how well it is tuned

  • Translating fuzzy customer wishes into numeric, testable acceptance targets before the architecture is chosen — the CTQ step is useful far outside manufacturing

  • Comparing design concepts on explicit criteria rather than on whoever argues loudest

  • As the counterpart to dmaic in a portfolio: naming which of the two applies is itself a decision worth making out loud

Common Misunderstandings:

  • ❌ "DMADV and DMAIC differ only in the last two letters" — they differ in what Measure and Analyze mean. DMAIC measures a process; DMADV quantifies a requirement. DMAIC analyses causes; DMADV analyses concepts.

  • ❌ "DFSS is a standardised roadmap like DMAIC" — it is not. DMADV, IDOV and DDICA all circulate under the DFSS label, and no single one won.

  • ❌ "Verify means testing the finished product" — Verify means demonstrating the predicted capability on pilot output, against the CTQs fixed in Measure.

  • ✓ "DMADV is a stage-gate design process with a statistics habit" — fair, and the reason it collides with design cultures that work by iteration.

Criticism:

  • Applied to invention, it damages invention. The most-cited case is 3M. Brian Hindo’s report names DFSS explicitly as one of the two Six Sigma tools CEO James McNerney imported: "The other flavor is called Design for Six Sigma, or DFSS, which purports to systematize a new product development process." Post-it note inventor Art Fry "places the blame for 3M’s recent lack of innovative sizzle squarely on Six Sigma’s application in 3M’s research labs", and 3M R&D vice-president Larry Wendling conceded: "We were letting, I think, the process get in the way of doing the actual invention." Successor CEO George Buckley "loosened the reins a bit by removing 3M research scientists' obligation to hew to Six Sigma objectives." Hindo, "At 3M, A Struggle Between Efficiency And Creativity", BusinessWeek, 11 June 2007.

  • The evidence points the same way beyond the anecdote. The same report cites work by Wharton’s Mary Benner and Harvard’s Michael L. Tushman analysing patents in paint and photography firms before and after a quality drive: "after the quality push, patents issued based primarily on prior work made up a dramatically larger share of the total, while those not based on prior work dwindled." A design method that shifts output toward the incremental is a poor fit for the phase whose job is the non-incremental.

  • The translation tool at DMADV’s heart produces numbers that do not mean what designers think they mean. Andrew Olewnik and Kemper Lewis studied the House of Quality, the QFD matrix that converts customer attributes into engineering targets in the Measure phase, and concluded that "while the tool offers conceptual support to the design process, the quantitative information that results is largely invalid." Olewnik & Lewis, "Limitations of the House of Quality to provide quantitative design information", International Journal of Quality & Reliability Management 25(2), 2008, pp. 125–146.

  • Its optima are model optima. The Design for Six Sigma overview states the standing objection to the statistical-modelling step plainly: even the best statistical model is an approximation to reality, so an estimated optimum need not be an actual optimum. DMADV inherits every weakness of the model it designs against, and it commits to that model before there is anything to measure.

Current Status:

  • DMAIC was standardised; DMADV was not. Six Sigma’s improvement road became ISO 13053-1:2011, whose title says "Part 1: DMAIC methodology" — see dmaic. The design road has no comparable single roadmap: DMADV shares the DFSS label with IDOV (identify, design, optimise, verify) and DDICA, among others. Anyone who says "we run DFSS" has said less than they think.

  • The name still travels better than the practice. DMADV remains the canonical answer to "what is the design-side counterpart of DMAIC?" and that is the prior a model reliably serves. Which phases a given organisation actually runs varies far more than the acronym suggests.

  • Its tools outlived the roadmap. QFD, pugh-matrix, design fmea and designed experiments are all in routine use in product development without anyone invoking DMADV. As an anchor, DMADV is most useful as the name of the sequence; the individual tools have their own, stronger priors.

DMAIC

Details
Full Name

Define, Measure, Analyze, Improve, Control

Also known as

the Six Sigma improvement cycle, DMAIC roadmap

Core Concepts:

Five Gated Phases

The cycle runs in a fixed order, and each phase owes a defined deliverable before the next begins:

  • Define — the business problem, goal, scope and timeline, captured in a project charter with the customer’s CTQs (Critical to Quality)

  • Measure — a baseline of current performance, with operational definitions and a check that the measurement system itself is trustworthy

  • Analyze — root causes, identified and validated against the data, not merely proposed

  • Improve — solutions that address those causes, piloted before rollout

  • Control — a control plan that holds the gain: monitoring, response plans, ownership

Measurement Before Improvement

The gate between Measure and Analyze is the method’s backbone. No improvement is proposed before a baseline exists, so the effect can be demonstrated rather than asserted.

Root Cause Before Solution

Analyze is deliberately separated from Improve, which forces causes to be established before remedies are designed — the opposite of the usual reflex to solution first.

Tollgate Reviews

Phase transitions are formal reviews, not soft handovers. A project can be stopped at a gate.

The Control Phase is the Differentiator

Most improvement approaches end when the fix ships. DMAIC treats sustaining the gain as its own phase, typically with SPC control charts — this is where the anchor meets spc, control-chart-shewhart and nelson-rules.

DMADV, the Sibling

DMAIC improves an existing process. For a new product or process design, Six Sigma uses DMADV (Define, Measure, Analyze, Design, Verify), also called DFSS. Naming the wrong one sends the output down the wrong road.

PDCA Lineage

The Six Sigma project methodologies are inspired by W. Edwards Deming’s Plan-Do-Study-Act cycle; DMAIC is its phase-gated, measurement-heavy descendant.

Key Proponents

Bill Smith, who introduced Six Sigma at Motorola in 1986; Mikel J. Harry; General Electric, where Jack Welch made it central to business strategy in 1995.

When to Use:

  • Improving an existing process whose performance is unsatisfactory but whose cause is unknown

  • Any task where the temptation is to jump straight to solutions — DMAIC forces a baseline and a validated cause first

  • Quality and reliability work that has to stay fixed, because the Control phase is explicit

  • Structuring an improvement initiative into reviewable stages with named deliverables

  • As the frame around spc: DMAIC is the project, SPC is what runs in its Control phase

Common Misunderstandings:

  • ❌ "DMAIC is for manufacturing only" — ISO 13053-1 explicitly covers service and transactional processes

  • ❌ "DMAIC designs new processes" — that is DMADV; DMAIC improves existing ones

  • ❌ "The phases can be reordered or skipped" — the gates are the method; without Measure before Improve it is just a to-do list

  • ✓ "DMAIC is PDCA with gates and statistics" — a fair summary, and the basis of one of its criticisms

Criticism:

  • Not original. Quality expert Joseph M. Juran, via the Six Sigma overview: "there is nothing new there. It includes what we used to call facilitators. They’ve adopted more flamboyant terms, like belts with different colors." The core loop is Deming’s PDSA under new branding.

  • It can suppress the work it measures. A BusinessWeek report on James McNerney’s introduction of Six Sigma at 3M found it stifled creativity, and the method was withdrawn from the research function. Design News editor John Dodge: "excessive metrics, steps, measurements and Six Sigma’s intense focus on reducing variability water down the discovery process." Variance reduction is the wrong objective where variance is the point.

  • Most projects fail. A 2010 Wall Street Journal figure cited in the same overview puts the failure rate of Six Sigma projects above 60%.

  • The statistics are contested. Statistician Donald J. Wheeler dismissed the 1.5-sigma shift — the assumption underpinning the "3.4 defects per million" headline — as "goofy" (2004). Over-reliance on statistical method and misreading of p-values are recurring complaints.

Current Status:

  • DMAIC is unusual among management methods in being standardised: ISO 13053-1:2011 ("Quantitative methods in process improvement — Six Sigma — Part 1: DMAIC methodology") specifies best practice for each phase, the project roles, and their training; Part 2 covers the tools per phase. Its scope explicitly includes service and transactional processes, not only manufacturing.

  • In practice the dominant contemporary form is Lean Six Sigma, which pairs DMAIC’s measurement discipline with Lean’s focus on flow and waste. The prior most training data serves is the five-phase DMAIC cycle as described here.

Nelson Rules

Details
Full Name

Nelson Rules (Tests for Special Causes)

Core Concepts:

  • 8 rules for detecting non-random patterns in Control Charts

    Rule 1

    One point beyond 3σ (Outlier)

    Rule 2

    9 consecutive points on the same side of the mean (Shift/Bias)

    Rule 3

    6 consecutive points steadily increasing or decreasing (Trend)

    Rule 4

    14 points alternating up and down (Oscillation)

    Rule 5

    2 out of 3 points beyond 2σ on the same side

    Rule 6

    4 out of 5 points beyond 1σ on the same side

    Rule 7

    15 points within 1σ (suspiciously low variance)

    Rule 8

    8 points outside ±1σ, but none beyond ±3σ (systematic oscillation)

    Common Cause vs. Special Cause

    Distinguishing inherent from assignable variation

    Zones A/B/C

    Dividing the Control Chart into 6 zones (each 1σ wide)

    False Positive Trade-off

    More active rules = higher sensitivity, but more false alarms

    Key Proponent

    Lloyd S. Nelson (1984, Journal of Quality Technology)

Relationship to Other Anchors:

Control Chart (Shewhart)

Nelson Rules are applied to Control Charts

SPC

Nelson Rules are a tool within Statistical Process Control

Western Electric Rules

Predecessor; Nelson Rules extend these with Rules 5-8

When to Use:

  • Detecting non-random patterns in time series data

  • Process monitoring in manufacturing, pharmaceuticals, healthcare

  • Potential application in IT monitoring (memory leaks, performance degradation)

  • Quality assurance in Six Sigma / DMAIC Control Phase

SPC (Statistical Process Control)

Details
Full Name

Statistical Process Control

Core Concepts:

Process monitoring

Systematic statistical monitoring of running processes

Common Cause Variation

Inherent, random fluctuation — stable and predictable

Special Cause Variation

Assignable cause — unstable, correctable

Control Charts

Central visual tool (see dedicated anchor)

Detection rules

Nelson Rules, Western Electric Rules (see dedicated anchors)

Process Capability

Indices Cp, Cpk (short-term) and Pp, Ppk (long-term)

In-Control

Process exhibits only Common Cause Variation

Out-of-Control

Special Cause detected — intervention required

Continuous Improvement

SPC as a foundation for ongoing process improvement

DMAIC Control Phase

SPC tools secure improvements within Six Sigma

Key Proponents

Walter A. Shewhart (founder), W. Edwards Deming (dissemination), Western Electric Company

Relationship to Other Anchors:

Control Chart (Shewhart)

Central tool within SPC

Nelson Rules

Detection rules for Special Causes on Control Charts

Six Sigma

Uses SPC particularly in the Control phase

Testing Pyramid

Conceptual parallel — different levels of quality assurance

When to Use:

  • Monitoring manufacturing and business processes

  • Quality management per ISO 9001, IATF 16949, Six Sigma

  • Pharmaceutical Continuous Process Verification (CPV)

  • Conceptual foundation for anomaly detection in IT systems

  • When the question is: "Is my process stable, or has something changed?"

Strategic Planning

Details
Also known as

Consent-based decision-making vs. consensus decision-making

Core Concepts:

Consensus

Active agreement of everyone — each participant must be for the proposal ("yes"). Seeks the option everyone prefers; a veto can block without an argument. Risks slow decisions, lowest-common-denominator outcomes, and groupthink.

Consent

Absence of a paramount, reasoned objection — participants need only be not against ("no objection"). The test is "good enough for now, safe enough to try", not "does everyone love it".

Paramount objection

An objection must be argued and show how the proposal would harm the group’s aim or impair someone’s ability to work toward it. Mere preference or "I’d do it differently" is not an objection.

Objection integration

Valid objections are harvested and integrated into an amended proposal, rather than triggering a veto — the proposal evolves until no paramount objection remains.

Sociocracy (Sociocratic Circle Method)

Gerard Endenburg formalized consent-based governance in the 1970s (building on Kees Boeke’s Quaker-rooted consensus practice at the Werkplaats school). Consent is one of four principles, alongside circles, double-linking, and elections.

Holacracy (Integrative Decision-Making)

Brian Robertson’s structured governance process (HolacracyOne, 2007): propose, react, amend, then test for objections. Decisions are anchored in roles' needs, not personal preference or ego.

Key Proponents

Gerard Endenburg (Sociocratic Circle-Organizing Method); Brian Robertson ("Holacracy: The New Management System for a Rapidly Changing World"); roots in Kees Boeke and the Quaker "sense of the meeting"

When to Use:

  • Naming why a group is stuck seeking unanimous enthusiasm when "no objection" would suffice

  • Designing or facilitating fast, non-blocking governance decisions

  • Distinguishing a reasoned, integrable objection from a personal preference or veto

  • Explaining self-management practices in sociocratic or Holacratic organizations

  • Contrasting with relatives: Quaker "sense of the meeting", IETF "rough consensus", "lazy consensus", and "disagree and commit"

Current Status:

  • Classic sociocracy (Endenburg) has a documented modular successor: Sociocracy 3.0 (S3), created by Bernhard Bockelbrink, James Priest, and Liliana David (launched 2015), which deconstructs the integrated method into 70+ adoptable patterns and adds principles such as empiricism and transparency. See Sociocracy (Wikipedia) for the lineage from Kees Boeke through Endenburg.

Cynefin Framework

Details
Full Name

Cynefin Framework according to Dave Snowden

Also known as

Cynefin sensemaking framework

Core Concepts:

Five domains
Clear (formerly "Simple")

Best practices apply, sense-categorize-respond

Complicated

Good practices exist, sense-analyze-respond

Complex

Emergent practices, probe-sense-respond

Chaotic

Novel practices needed, act-sense-respond

Confused (center)

Don’t know which domain you’re in

Domain transitions

How situations move between domains

Safe-to-fail probes

Experiments in complex domain

Complacency risk

Moving from clear to chaotic

Decision-making context

Different domains require different approaches

Facilitation tool

Helps teams discuss and categorize challenges

Key Proponents

Dave Snowden (1999)

When to Use:

  • Understanding what type of problem you’re facing

  • Choosing appropriate decision-making approaches

  • Facilitating team discussions about complexity

  • Strategic planning in uncertain environments

Decisional Balance Sheet

Details
Also known as

Benjamin Franklin Analysis, Moral Algebra, Pros-and-Cons Sheet

Core Concepts:

Four-Cell Matrix

The full Janis & Mann form has four categories of consequence for each alternative — utilitarian gains/losses for self, utilitarian gains/losses for significant others, self-approval/disapproval, and approval/disapproval from others. Stretches "pros and cons" beyond instrumental outcomes into identity and social cost.

Simplified Two-Column Form

The everyday "pros vs cons" list popularised by Benjamin Franklin (1772 letter to Joseph Priestley). Strictly a degenerate case of the four-cell matrix — useful for quick decisions, lossy for complex ones.

Weighting

Each entry gets a numeric weight reflecting its importance. The decision is not a vote count — the discipline is to make trade-offs explicit, not to mechanise the choice.

Resolving Ambivalence

The artifact’s primary purpose is not arithmetic but surfacing concerns the decider has not yet articulated. Listing the cons of a tempting option, or the pros of the rejected one, breaks the "all pros, no cons" framing that drives impulsive decisions.

Decisional Conflict

Janis & Mann’s parent theory; high-stakes decisions produce stress that distorts judgment. The balance sheet is one of several debiasing techniques alongside vigilant information search and contingency planning.

Motivational Interviewing Variant

In the Prochaska–DiClemente Stages of Change model and Miller & Rollnick’s Motivational Interviewing, the balance sheet is used to elicit change-talk: the client says the cons of staying the same and the pros of changing — moving them through ambivalence rather than persuading them.

Limits

The model is deliberative, not intuitive. It works poorly under time pressure and for decisions dominated by uncertainty (where Pugh Matrix or scenario-based methods fit better). It also doesn’t surface options that aren’t on the list — separate from the option-generation step.

Key Proponents

Irving Janis & Leon Mann ("Decision Making: A Psychological Analysis of Conflict, Choice, and Commitment", 1977 — the formal four-cell model). Benjamin Franklin (1772 letter, "moral algebra" — the informal pros/cons ancestor). William R. Miller & Stephen Rollnick ("Motivational Interviewing", 1991) for the clinical adaptation.

Historical Context

Franklin’s pros/cons letter is one of the earliest documented decision-aid techniques in the Western tradition. Janis & Mann turned it into a research instrument in the 1970s; the simplified two-column form has spread through self-help, coaching, and Motivational Interviewing into mainstream use. Now a staple of decision coaching, financial advisory, and health-behaviour-change interventions.

When to Use:

  • Personal or career decisions where the alternatives are roughly comparable and the deciding factor is the decider’s own clarity

  • Coaching conversations where the client is stuck in ambivalence — the four-cell version surfaces concerns the simple pros/cons list misses

  • Pre-mortem variant: pre-listing the "approval/disapproval from others" cell often predicts political resistance the team forgot to address

  • Motivational Interviewing settings — health behaviour, addiction recovery, career changes

  • Decision documentation in low-formality contexts where a full ADR is overkill but "we considered the alternatives" must be visible

  • Pugh Matrix — scores alternatives against weighted criteria; complement when uncertainty or technical trade-offs dominate over personal/social cost

  • ADR according to Nygard — captures architecture decisions with Context/Decision/Consequences; the balance sheet feeds the Consequences section

  • MoSCoW — prioritisation among items chosen after the decision is made; the balance sheet helps decide whether to do the work at all

Eisenhower Matrix

Details
Also known as

Urgent-Important Matrix, Eisenhower Box, Time Management Matrix

Core Concepts:

Two axes

Every task is plotted on two independent dimensions — urgency (does it demand attention now?) and importance (does it contribute to your goals and values?). The central insight is that the two are not the same.

Four quadrants

The 2x2 grid yields four prioritization actions::

Do (urgent + important)

Crises, deadlines, pressing problems — handle immediately yourself

Schedule (important, not urgent)

Planning, prevention, relationship-building, learning — block time deliberately; Covey calls this Quadrant II "the heart of effective personal management"

Delegate (urgent, not important)

Interruptions, some meetings and calls — hand to someone else

Delete (neither urgent nor important)

Busywork, trivia, time-wasters — drop entirely

Key Proponents

Dwight D. Eisenhower (attrib.) — popularized the urgent/important distinction in an August 19, 1954 speech to the World Council of Churches, where he quoted an unnamed "former college president" (popularly traced to Dr J. Roscoe Miller, president of Northwestern University): "I have two kinds of problems, the urgent and the important. The urgent are not important, and the important are never urgent." Stephen R. Covey turned the distinction into the four-quadrant "Time Management Matrix" in The 7 Habits of Highly Effective People (1989), Habit 3 ("Put First Things First")

When to Use:

  • Triaging a backlog or to-do list when everything feels equally pressing

  • Coaching teams to separate genuine importance from manufactured urgency

  • Personal time management and weekly planning

  • Deciding what to do, delegate, defer, or drop

Criticism:

  • Meng Zhu, Yang Yang & Christopher K. Hsee, "The Mere Urgency Effect", Journal of Consumer Research 45(3): 673–690 (2018; open copy: PMC10159458) — across five experiments people systematically chose tasks merely because they were urgent, even when those tasks were objectively worse than important alternatives. This "mere urgency effect" suggests the matrix’s clean two-axis logic fights a deep cognitive bias: simply seeing the axes does not stop people from over-weighting urgency.

  • Stephen Covey himself, in The 7 Habits, cautions that an urgency-driven life crowds out Quadrant II ("important, not urgent") — the very quadrant he calls the heart of effectiveness. The critique is internal to the framework: its proponent warns the matrix is easy to misuse by living reactively in Quadrants I and III.

  • General critique that a 2x2 grid oversimplifies prioritization — it treats "importance" and "urgency" as binary and independent, ignoring dependencies, effort/cost, value magnitude, and time-decay, dimensions that richer methods (e.g. weighted scoring, cost-of-delay) make explicit.

The Criticism section reports the discourse; it does not adjudicate it.

Current Status:

Actively used and widely taught. The point of caution is not obsolescence but framing: the matrix activates a "sort by urgency × importance" logic that its own field documents as vulnerable to the mere-urgency effect (Zhu, Yang & Hsee 2018; see Criticism). Use it to separate importance from urgency — not as licence to act on whatever is merely urgent. This is why the anchor carries an :advisory: flag.

Goodhart’s Law

Details
Full Name

Goodhart’s Law

Also known as

"When a measure becomes a target, it ceases to be a good measure" (Strathern’s formulation)

Core Concepts:

The core claim

Once a metric is used as a target and tied to incentives, people optimize the metric rather than the underlying goal, so the metric stops reflecting what it once measured

Proxy vs. goal

Most metrics are proxies for a goal that is hard to measure directly; pressure on the proxy widens the gap between proxy and goal

Gaming and side effects

Targets invite gaming, narrow focus, and surrogation — chasing the number while the real objective degrades (e.g. test coverage % vs. actual test quality)

Mitigations

Use baskets of balanced/counter metrics, keep some measures for learning rather than targets, pair quantitative with qualitative signals, and revisit metrics as behaviour adapts

Relevance to this project

A direct lens for designing LLM-evaluation criteria and KPIs — guard against optimizing a score instead of the capability it stands for

Key Proponents

Charles Goodhart (1975, monetary-policy context); pithy general formulation by Marilyn Strathern (1997); related to Campbell’s Law

When to Use:

  • Designing KPIs, OKRs, or team performance metrics

  • Reviewing whether a metric is being gamed or has surrogated the goal

  • Defining evaluation criteria for models, quality, or productivity

  • Arguing for balanced/counter metrics instead of a single target

When NOT to Use:

  • As a blanket excuse to avoid measurement altogether — metrics still inform

  • For purely descriptive measures that carry no incentive or target

Hoshin Kanri

Details
Full Name

Hoshin Kanri (方針管理 — "direction management")

Also known as

Policy Deployment, Strategy Deployment, Hoshin Planning

Core Concepts:

True North

The 3-5 year breakthrough objectives that define where the organization must be — chosen sparingly so the whole company can pull in the same direction.

Annual Hoshin

The 1-year priorities derived from True North. Typically 3-5 organization-wide goals; everything else is "business as usual" and not on the hoshin.

X-Matrix

Single-page A3 artifact that links four legs — long-term strategy, annual objectives, improvement priorities, and metrics/targets — plus the accountable owners. Correlations between legs are made explicit with symbols (strong/medium/weak).

Catchball

Iterative two-way negotiation of goals between levels. Leadership proposes targets; teams respond with "what’s possible and what’s needed"; the ball passes back and forth until commitments are realistic and ambitious. Distinguishes Hoshin Kanri from top-down cascades.

PDCA for Strategy

Plan-Do-Check-Act applied to the annual hoshin itself — monthly or quarterly check reviews ensure the strategy adapts to reality, not just the tactics.

Cascade and Alignment

Each level translates the level above into its own X-Matrix. Vertical alignment is verified at every step; horizontal alignment is verified across peer teams to prevent local optimization.

Bowling Chart / Hoshin Review

Monthly status board comparing actual vs target for each KPI; red/yellow/green status forces conversations about countermeasures rather than excuses.

Few Vital, Not Many Trivial

A core discipline — restrict the hoshin to the small number of goals that require breakthrough thinking. Most organizational work continues outside the hoshin process.

Key Proponents

Yoji Akao ("Hoshin Kanri: Policy Deployment for Successful TQM", 1991), Thomas L. Jackson ("Hoshin Kanri for the Lean Enterprise", 2006), Pascal Dennis ("Getting the Right Things Done", 2006)

Historical Context

Emerged in Japanese manufacturing in the 1960s; Bridgestone Tire is widely credited with the first formalized use after winning the Deming Prize. Spread through Toyota, Komatsu, and the broader TQM movement; translated to Western practice in the 1980s as part of Lean. Now widely adopted in Lean enterprises, healthcare systems (Virginia Mason), and increasingly in scaled agile contexts.

When to Use:

  • Annual or multi-year strategic planning when alignment across many teams is the critical risk

  • Translating a vision or mission into measurable, accountable work

  • Scaling an organization where local optimization is starting to dominate over global goals

  • Lean transformations — Hoshin Kanri is the strategy-layer counterpart to Kaizen at the operational layer

  • As an alternative to OKRs when the organization needs explicit cause-and-effect links and stronger accountability than quarterly self-set objectives provide

  • Kotter’s 8-Step Change Model — large-scale transformation framework; Hoshin Kanri is the recurring discipline that operationalizes a Kotter-style vision year after year

  • MoSCoW — tactical prioritization within the hoshin’s improvement priorities

  • Kano Model — feature classification that often feeds the customer-facing leg of the X-Matrix

Impact Mapping

Details
Full Name

Impact Mapping according to Gojko Adzic

Core Concepts:

Four levels

Goal → Actors → Impacts → Deliverables

Goal

Business objective (Why?)

Actors

Who can produce or prevent desired impact? (Who?)

Impacts

How can actors' behavior change? (How?)

Deliverables

What can we build? (What?)

Visual mapping

Mind-map style collaborative diagram

Assumption testing

Make assumptions explicit

Scope management

Prevent scope creep by linking to goals

Roadmap alternative

Goal-oriented rather than feature-oriented

Key Proponent

Gojko Adzic ("Impact Mapping", 2012)

When to Use:

  • Strategic planning for products or projects

  • When stakeholders disagree on priorities

  • Aligning delivery with business outcomes

  • Avoiding building features that don’t serve business goals

Jobs To Be Done (JTBD)

Details
Full Name

Jobs To Be Done Framework (Christensen interpretation)

Core Concepts:

Job definition

Progress people want to make in a particular context

Functional job

Practical task to accomplish

Emotional job

How people want to feel

Social job

How people want to be perceived

Hire and fire

Customers "hire" products to do a job, "fire" when inadequate

Context matters

Jobs exist in specific circumstances

Competition redefined

Anything solving the same job is competition

Innovation opportunities

Unmet jobs or poorly served jobs

Job stories

Alternative to user stories focusing on context and motivation

Key Proponents

Clayton Christensen, Alan Klement, Bob Moesta

When to Use:

  • Product discovery and innovation

  • Understanding why customers choose solutions

  • Identifying true competition

  • Writing more meaningful user stories

  • Market segmentation based on jobs, not demographics

Criticism:

Kano Model

Details
Also known as

Kano Analysis, Kano-Modell, Customer Satisfaction Model

Core Concepts:

Two-dimensional Quality

Customer satisfaction is not the simple inverse of dissatisfaction — they are two separate axes (presence/absence of a feature × resulting satisfaction)

Five Feature Categories

Every feature falls into one of five classes that map differently onto the satisfaction curve

Must-be (Basic, Threshold)

Expected baseline — absence causes strong dissatisfaction, presence is taken for granted and earns no credit (e.g., car has wheels, app does not lose data)

One-dimensional (Performance, Linear)

Satisfaction grows roughly linearly with how well the feature is delivered (e.g., fuel efficiency, response time, battery life)

Attractive (Excitement, Delighter)

Unexpected — absence causes no dissatisfaction, presence delights and differentiates (e.g., a thoughtful onboarding gesture, a surprising shortcut)

Indifferent

Customer does not care either way — flag for cost reduction

Reverse

Presence actually causes dissatisfaction for the target segment — flag for removal or segmentation

Functional / Dysfunctional Questionnaire

For each candidate feature, ask the user two paired questions: "How would you feel if this feature were present?" and "How would you feel if it were absent?". The cross-tab of answers maps the feature to one of the five categories

Time Decay

Categories migrate over time. Today’s Delighter becomes tomorrow’s Performer and eventually a Must-be as the market matures (mobile camera, HTTPS, dark mode)

Key Proponent

Noriaki Kano (Tokyo University of Science), originally published in 1984 in the Japanese journal Hinshitsu ("Quality")

Historical Context

Developed in the context of Japanese quality management, alongside Total Quality Management and the Kaizen movement; widely adopted in product management, UX research, and requirements engineering since the late 1990s.

When to Use:

  • Prioritising features in a product backlog beyond raw business value

  • Distinguishing the "non-negotiables" (Must-be) from the "wow features" (Delighter) before estimation

  • User research where you need to understand why a feature affects satisfaction, not just whether users like it

  • MVP scoping: ensure all Must-be features are covered before investing in Delighters

  • Product strategy reviews: spot Delighters that have decayed into Performers or Must-be and update positioning

  • Combining with MoSCoW Method — Must-be → Must, Performance → Should, Delighter → Could

  • MoSCoW Method — complementary prioritisation lens (organisation-driven), often combined with Kano (customer-driven)

  • Jobs To Be Done — discovery side: what job is the customer hiring the feature for, before classifying its impact

  • EARS Requirements — once a feature is classified as Must-be, EARS gives it the unambiguous wording

    Counter-example

    Pure ROI-based ranking — useful but blind to the asymmetry between dissatisfaction (Must-be) and delight (Attractive). Kano corrects that.

Kotter’s 8-Step Change Model

Details
Also known as

Kotter’s 8 Steps for Leading Change, Kotter’s Change Process

Core Concepts:

Step 1 — Establish a Sense of Urgency

Surface the threats and opportunities that make change necessary now; without urgency, the organisation defaults to the status quo

Step 2 — Form a Guiding Coalition

Assemble a powerful enough cross-functional group with the credibility, authority and energy to lead the effort; lone champions fail

Step 3 — Develop a Vision and Strategy

Create a clear, compelling vision of the future state and a strategy to reach it; the vision must be simple enough to communicate in five minutes

Step 4 — Communicate the Change Vision

Use every channel and repeat the vision constantly; walk the talk — leadership behaviour speaks louder than memos

Step 5 — Empower Broad-based Action

Remove the obstacles that block change — outdated structures, misaligned incentives, fearful middle management; enable people to act on the vision

Step 6 — Generate Short-term Wins

Plan, create and visibly celebrate quick, unambiguous improvements within 6–18 months; wins fund credibility and silence sceptics

Step 7 — Consolidate Gains and Produce More Change

Use the credibility from short-term wins to tackle bigger systems, structures and policies; do not declare victory too early

Step 8 — Anchor the Changes in Corporate Culture

Make the new approaches "the way we do things around here" by tying them to leadership succession, hiring, onboarding and storytelling

The 8 Errors

The model is the inversion of the eight common errors Kotter identified in failed transformations: complacency, no powerful coalition, underestimating vision, undercommunicating, ignoring obstacles, no short-term wins, premature victory, and not anchoring change in culture

Linear but Iterative

Kotter presents the steps as sequential because each step builds on the credibility and infrastructure of the previous ones, but in practice teams loop within and across steps as the change scales

Key Proponent

John P. Kotter (Harvard Business School), introduced in the 1995 Harvard Business Review article "Leading Change: Why Transformation Efforts Fail" and expanded in the 1996 book Leading Change (Harvard Business Press)

Historical Context

One of the most cited change management frameworks in business literature; widely used in M&A integrations, digital transformations, agile rollouts and culture change programmes; later complemented by Kotter’s 2014 Accelerate (XLR8), which adds a "dual operating system" of hierarchy plus network for continuous change

When to Use:

  • Planning a non-trivial organisational change (digital transformation, agile rollout, restructuring, M&A integration)

  • Diagnosing why a stalled transformation is stalled — which of the 8 errors is biting?

  • Sequencing communication and intervention activities so that quick wins land before the political resistance forms

  • Stakeholder analysis and coalition building before kicking off a change initiative

  • Reviewing whether a "completed" change is actually anchored in culture, or just a temporary policy

  • SWOT — strategic analysis to feed the urgency and vision steps

  • Cynefin Framework — choose the right approach (Clear / Complicated / Complex / Chaotic) for the kind of change you face

  • Wardley Mapping — visualise where change is needed in the value chain before defining the vision

    Counter-example

    Pure top-down mandate ("from Monday we will be agile") — Kotter’s whole point is that without urgency, coalition, vision and short-term wins, the mandate produces compliance theatre, not change.

Criticism:

  • No empirical validation of the whole model: Appelbaum, Habashy, Malo & Shafiq, "Back to the future: revisiting Kotter’s 1996 change model" (Journal of Management Development 31(8), 2012) reviewed 15 years of literature — support for most individual steps, but no formal study validating the model as a whole; its popularity "appears to derive more from its direct and usable format than from any scientific consensus on the results"

  • The evidence base of n-step change models in general is thin: Rune Todnem By, "Organisational change management: A critical review" (Journal of Change Management 5(4), 2005) finds planned, step-based approaches — of which Kotter’s is the best-known — "often contradictory, mostly lacking empirical evidence and supported by unchallenged hypotheses"

  • Kotter’s own revision concedes the linearity: his organization describes the original as "the linear 8 Step" that he evolved into the 8 Accelerators of Accelerate (2014; based on "Accelerate!", HBR 2012) with a "dual operating system" — an agile network running alongside the hierarchy

Meaningful Human Control (MHC)

Details
Full Name

Meaningful Human Control

Also known as

MHC, Meaningful Human Control over Individual Attacks

Core Concepts:

Substantive human control

Humans must retain genuine, substantive control over autonomous systems making high-stakes decisions — not merely formulaic "human-in-the-loop" oversight

Situational awareness

Human operators require adequate information about the target, context, weapon/system behavior, and foreseeable effects to make informed judgments

Accountability chain

Those responsible for assessing information and executing actions must be clearly identifiable and accountable for outcomes; accountability cannot be transferred to machines

Sharkey’s five levels

Operational framework for human supervisory control: (L1) human deliberates before attack → (L2) program suggests targets, human chooses → (L3) program selects, human approves → (L4) program acts, human has restricted veto → (L5) fully autonomous without human involvement

Positive human action

Initiating critical actions (especially use of force) requires affirmative human authorization, not merely passive monitoring

Predictable, reliable, transparent technology

Autonomous systems must be designed for predictability, graceful degradation, and transparency to enable meaningful control

Timely intervention

Human operators must retain the capability for timely intervention, override, or abort — not just pre-programmed constraints

Key Proponents

Article 36 (coined the term, 2013), Noel Sharkey (five-level framework, 2014), ICRC (endorsed MHC as legal/ethical requirement, 2018), UN CCW GGE (Guiding Principles, 2019), IEEE Global Initiative (Ethically Aligned Design, 2019)

When to Use:

  • Designing or evaluating autonomous systems in high-stakes domains (weapons systems, medical AI, autonomous driving, critical infrastructure)

  • Assessing whether human oversight of an AI system is genuinely effective or merely procedural

  • Defining accountability chains for autonomous decision-making

  • Requirements engineering for systems with autonomy in critical functions

  • AI governance and ethics discussions in product management and policy

  • Legal and compliance review of AI systems under emerging regulations (EU AI Act)

When NOT to Use:

  • Low-stakes automation decisions (content recommendations, spam filtering, routine data processing)

  • As a substitute for domain-specific legal requirements (IHL, medical device regulation, data protection law)

Quality Criteria Checklist (Tier-2 Justification)

This anchor is classified as Tier 2 — Needs qualification. It is not self-standing; it requires domain context and explicit verification criteria to be meaningfully applied. The following checklist documents the qualification requirements mapped to Issue #540.

  1. Acceptance Criteria (measurable)

    • High-stakes domain identified: yes/no — specify domain (weapons, medical, autonomous driving, critical infrastructure, algorithmic sentencing)

    • Autonomy level classified: yes/no — specify Sharkey level (L1–L5) for each critical function

    • Human operator identified: yes/no — specify role, training level, and decision authority

    • Accountability chain documented: yes/no — specify who decides, who approves, who audits

    • Legal/regulatory framework identified: yes/no — specify applicable law (IHL, EU AI Act, GDPR, etc.)

  2. Evidence Types Required

    • System specification documenting autonomy boundaries and human-machine interaction points

    • Operator training and qualification records

    • Audit trail design demonstrating human accountability at each decision point

    • Risk assessment showing residual risks after human oversight measures

    • Legal review confirming compliance with applicable regulatory framework

  3. Minimum Documentation / Artifacts

    • Human-Machine Interface (HMI) specification with override and abort mechanisms

    • Decision authority matrix (who decides what, under what conditions)

    • Operator situational awareness requirements (information feed, latency, decision time)

    • Graceful degradation protocol for communication loss or system failure

    • Test protocol validating human intervention capability under operational conditions

  4. Validation Methods

    • Simulated scenario testing with time-pressure and information-degradation conditions

    • Red-team evaluation of human-override effectiveness

    • Independent audit of accountability chain completeness

    • Legal review against applicable IHL or regulatory requirements

    • Post-deployment monitoring plan for measuring MHC erosion over time

  5. Tier-2 Justification Summary

    • Why not Tier 3: MHC cannot be evaluated without domain-specific context (weapons vs. medical vs. automotive). The same system may satisfy MHC in one domain and fail in another. Sharkey level L3 may be sufficient for cargo ships but not for lethal targeting.

    • Why not Tier 1: MHC is a well-established, multi-source concept with clear definition, consistent usage across domains, attributable origin, and rich conceptual activation.

    • Qualification path: To apply MHC, the user must answer: "Who controls what, with what information, under what constraints, and who is accountable?" The five criteria above operationalize this question.

Current Status:

  • The canonical reference is Santoni de Sio & van den Hoven, "Meaningful Human Control over Autonomous Systems: A Philosophical Account" (Frontiers in Robotics and AI, 2018), proposing the "tracking" and "tracing" conditions

  • The prior is thin: an academic-only footprint anchored in one open-access philosophy paper (TU Delft ethics group) and a niche AI-ethics literature, with little practitioner coverage — supply the tracking/tracing definitions in the prompt when precision matters

Muda, Mura, Muri

Details
Full Name

Muda (無駄), Mura (斑), Muri (無理) — waste, unevenness, overburden; the "three Ms" of the Toyota Production System

Also known as

the 3Ms, the three evils, the seven wastes (muda only), TIMWOOD / TIMWOODS (muda only)

Core Concepts:

Anchor the Triple, Not Muda Alone

This is the whole reason the anchor exists. Naming only waste hides what produces the waste. Muda is the symptom that is easy to see and easy to count; mura and muri are the conditions that regenerate it after every clean-up.

The Three, Defined

The Lean Enterprise Institute’s lexicon:

  • Muda — "Any activity that consumes resources without creating value for the customer."

  • Mura — "Unevenness in an operation; for example, a gyrating schedule not caused by end-consumer demand but rather by the production system, or an uneven work pace in an operation causing operators to hurry and then wait."

  • Muri — "Overburdening equipment or operators by requiring them to run at a higher or harder pace with more force and effort for a longer period of time than equipment designs and appropriate workforce management allow."

The Causal Chain Runs Mura → Muri → Muda

Jim Womack argues for reversing the conventional recital order: "I would tell them to have it read 'Mura, muri, muda.'" His reason is the mechanism itself — "The inevitable result is that mura creates muri that undercuts previous efforts to eliminate muda." Unevenness forces people and machines past their design point; overburden then manufactures the very waste that was eliminated last quarter.

The Seven Wastes

Ohno’s categories are transporting, inventory, motion, waiting, over-production, over-processing and defects. Over-production is traditionally treated as the worst, because it generates most of the others.

The Eighth Waste Is a Later Addition

"Unused skills" was appended to the original seven, "as resolving this waste is a key enabler to resolving the others". The mnemonic "TIM WOOD" covers the seven; "TIM WOODS", with the S for skills, covers eight. The eighth is not Ohno’s.

Type One and Type Two Muda

The lexicon distinguishes waste that cannot be removed quickly (rework a current process cannot avoid) from waste that kaizen can remove at once. The distinction stops "eliminate all waste" from being an instruction nobody can follow.

In Software

Mura is the release train that ships nothing for three weeks and everything on Thursday; muri is the sprint committed at 110% capacity; muda is the rework, the queue, the half-finished branch. Attacking the rework without touching the batching is the mistake the triple names.

When to Use:

  • Whenever a "waste elimination" or efficiency effort is being planned, to force the question of what regenerates the waste

  • Capacity and scheduling discussions — mura and muri are the vocabulary that batching and overcommitment otherwise lack

  • Retrospectives where the same waste keeps returning after being removed

  • As the diagnostic layer under kaizen: kaizen is the habit, the three Ms are what it looks for

Common Misunderstandings:

  • ❌ "Lean is about eliminating waste" — that is muda only, and Womack’s argument is that muda-first is the wrong order

  • ❌ "There are eight wastes" — there are Ohno’s seven plus a later, widely adopted eighth; the distinction matters when citing him

  • ❌ "Muri means working hard" — it means being required to run past the design point of the person or machine, which is a property of the system, not of effort

  • ❌ "Mura is just variation" — it is unevenness manufactured by the system itself, not demand variation from the customer

  • ✓ "Fix mura first and much of the muda stops coming back" — this is Womack’s point exactly

Criticism:

  • The conventional ordering teaches the wrong reflex. Womack’s essay is itself a criticism of how the three Ms are usually taught and used — muda first, as a hunt for visible waste, with mura and muri as footnotes. He locates the failure in the sequence: "mura creates muri that undercuts previous efforts to eliminate muda", so a muda-first programme is structurally condemned to repeat itself. Womack, "Mura, Muri, Muda?", Lean Enterprise Institute (6 July 2006).

  • Muri, read from the shop floor, is the point of the system rather than a defect in it. Jane Slaughter’s account of "management by stress" describes a system tuned so that "The ideal state is achieved when the plant is running with all stations just on the line between green and yellow" — that is, deliberately at the edge of overburden, using the operator’s inability to keep up as the signal for where to improve next. On this reading, muri is not an accident the method removes but a lever the method applies. Slaughter, "Management by Stress", Multinational Monitor, January/February 1990.

  • Waste-hunting without the people half is the common failure mode. Bob Emiliani’s Real Lean / Fake Lean distinction names it: Fake Lean is "the technical application of 'Continuous Improvement' tools and methods, invariably in a zero-sum fashion", while Real Lean is "the application of both 'Continuous Improvement' and 'Respect for People'". His summary of what actually happened: "Lean intends to correct two big problems in organizations: bad processes and bad management. But it usually corrected only one – bad processes." Emiliani, "The Backstory: Real vs. Fake Lean" (13 September 2013).

Current Status:

  • Womack’s reordering has not displaced the conventional recital. "Muda, mura, muri" remains the common sequence in training material and in most model output, twenty years after the essay. Expect a model to produce the muda-first order and the seven wastes list unless the causal chain is named explicitly.

  • "The seven wastes" now usually means eight. TIMWOODS, with unused skills or unused human potential added, is the version most current material teaches. Attributing all eight to Ohno is a common and avoidable error.

  • Type One / Type Two muda is fading from popular usage even though it remains in the Lean Enterprise Institute lexicon. It is the distinction that makes waste lists actionable, and it is the first thing dropped in short-form summaries.

Minimum Viable Product (MVP)

Details
Full Name

Minimum Viable Product

Also known as

MVP, Lean Startup MVP

Core Concepts:

Smallest thing that tests a hypothesis

An MVP is the minimum product that allows a team to learn whether a specific hypothesis about user needs is valid — with the least amount of effort.

Validated learning is the output

The defining output is not a feature set, not revenue, not users — it is learning. "Did we learn whether our hypothesis is true?" is the only success criterion.

One hypothesis at a time

An MVP targets a single, falsifiable hypothesis ("users will pay for X", "users need feature Y more than feature Z"). Bundling hypotheses into one MVP makes the learning ambiguous.

Minimum means minimum

If a hand-drawn mockup, a landing page, or a concierge service can test the hypothesis, that is the MVP. Code is often not required. The "P" stands for product, but the product can be an illusion.

Build-measure-learn loop

The MVP is the first turn of a tight feedback cycle: build a minimal thing, measure how real users respond, learn from the data, then decide whether to pivot or persevere.

Not a small v1

A common misuse is calling the first release of a polished product "the MVP". A real MVP would be embarrassing to ship in production — its job is learning, not market entry.

Pivot or persevere

The MVP gives you the evidence to choose: continue in the same direction (persevere) or change course based on what you learned (pivot).

Distinct from Walking Skeleton

A Walking Skeleton validates architecture; an MVP validates market demand. You can have one without the other.

Key Proponents

Eric Ries ("The Lean Startup", 2011); Frank Robinson coined the term in 2001

When to Use:

  • Validating whether a new product or feature solves a real user problem before investing in full development

  • Testing pricing, positioning, or target-segment hypotheses with minimal risk

  • Early-stage startups with limited runway who cannot afford to build the wrong thing

  • Internal product experimentation where feature ideas need evidence before prioritization

  • LLM prompting: "design an MVP for X" signals test the hypothesis, don’t ship a complete product

  • Jobs to be Done - Framework for articulating the user need an MVP is trying to validate

  • Impact Mapping - Technique for aligning MVP scope with business outcomes

  • User Story Mapping - Visual tool for identifying the minimum set of stories for an MVP

  • Walking Skeleton - Architectural counterpart; validates structure rather than market demand

Criticism:

  • The term is diluted in practice: Nielsen Norman Group (Sara Paul, "Minimum Viable Product (MVP): Definition") notes that "'MVP' often means different things to different people" — from paper prototype to released product — and advises defining what you are testing and what you expect to learn before using the word

  • Henrik Kniberg’s widely cited corrective "Making sense of MVP — and why I prefer Earliest Testable/Usable/Lovable" (Crisp, 2016 — the skateboard→car drawing) argues "Minimum" and "Product" mislead teams into shipping useless fragments; each increment should be a smaller complete solution to the user’s need, not a piece of the final one

  • Disambiguation advice: state which sense you mean — Ries’s learning vehicle ("maximum validated learning for least effort") or Kniberg’s Earliest Testable/Usable/Lovable staging — rather than relying on the bare acronym

OKR (Objectives and Key Results)

Details
Full Name

Objectives and Key Results

Also known as

OKRs; descended from Intel’s iMBO (Intel Management by Objectives)

Core Concepts:

Objective

A single qualitative, inspirational, time-bound statement of what you want to achieve; memorable and direction-setting, not a metric

Key Results

Typically 3-5 quantitative, measurable outcomes that prove the Objective is met; answer how you know you got there — outcomes, not a task list

Objective + Key Results

One Objective is paired with its Key Results; "if the Objective is the destination, the Key Results are the milestones that measure progress toward it"

Quarterly cadence

OKRs are usually set and reviewed on a quarterly rhythm, nested under annual or strategic OKRs

Ambitious / stretch goals

Aspirational "moonshot" OKRs are calibrated so that scoring ~0.7 of the way (70%) is considered success; consistently scoring 1.0 signals goals set too low

Grading (0.0-1.0)

At cycle end each Key Result is scored on a 0-1 scale; the score drives a conversation, not a verdict

Transparency / alignment

OKRs are public across the organization so teams can see and connect to each other’s goals; alignment by visibility, not by mechanical cascade

Decoupled from compensation

OKRs are deliberately separated from bonuses and performance reviews, so people set honest stretch goals instead of sandbagging

Key Proponents

Andy Grove (originated the approach at Intel as "iMBO", documented in "High Output Management", 1983); John Doerr (learned it from Grove at Intel, introduced it to Google in 1999, popularized it in "Measure What Matters", 2018, whatmatters.com)

When to Use:

  • Translating strategy into focused, measurable quarterly goals for teams

  • Creating organization-wide alignment and transparency around priorities

  • Shifting a team’s focus from output (tasks shipped) to outcomes (value delivered)

  • Setting ambitious stretch goals where ~70% attainment counts as success

  • Prompting an LLM to draft, critique, or grade an Objective with its Key Results

Criticism:

  • Goodhart’s Law ("when a measure becomes a target, it ceases to be a good measure") is the recurring failure mode: once a Key Result is the target, people optimise the number rather than the outcome. McKenna Agile Consultants, "Applying Goodhart’s Law in OKRs" — the proposed mitigation is to pair quantity KRs with quality/guardrail KRs and to keep OKRs decoupled from rewards

  • Ant Murphy, "Escape OKR Theatre" — cascading OKRs assume strategy perfectly mirrors the org chart, which it rarely does; cascading is often a symptom of missing strategy and produces a "sea of OKRs". Murphy argues OKRs should align, not cascade, favouring fewer, strategy-derived OKRs

  • "OKR theatre" / performance theatre: teams fluently discuss "driving key metrics" while struggling to name the problem they solve. Bjørn Broum, "The OKR Performance Theater"

Current Status:

  • The framework remains widely adopted but reportedly hard to sustain: per Wikipedia’s OKR article, Google’s Rick Klau later advised skipping individual OKRs to avoid a waterfall/cascade trap — a shift from the individual-level usage many training-data examples assume

  • The canonical modern reference is Doerr’s "Measure What Matters" (2018) and whatmatters.com; the original Grove formulation predates the term "OKR" and lives in "High Output Management" (1983)

PERT

Details
Full Name

Program Evaluation and Review Technique

Also known as

Three-Point Estimation, PERT Network Analysis

Core Concepts:

Three-Time Estimation

Each activity requires three duration estimates: Optimistic (O) — best case if everything goes well; Most Likely (M) — realistic expected duration; Pessimistic (P) — worst case if problems arise

PERT Formula

Weighted average: E = (O + 4M + P) / 6 — weights the most likely estimate four times more than the extreme estimates

Standard Deviation

σ = (P − O) / 6 — quantifies schedule uncertainty per activity; used to calculate confidence intervals for the project completion date

Network Diagram

Activities are represented as nodes or arrows in a directed acyclic graph; dependencies between activities are modelled explicitly

Critical Path

The longest path through the network determines the minimum project duration; any delay on the critical path delays the whole project

Float / Slack

Time an activity can be delayed without affecting the project end date; activities on the critical path have zero float

Probabilistic Scheduling

Unlike CPM (which uses single-point estimates), PERT treats duration as a random variable, enabling statistical confidence ranges for milestones

Origin

Developed in 1958 by D.G. Malcolm, J.H. Roseboom, C.E. Clark, and W. Fazar at Booz Allen Hamilton for the US Navy’s Polaris submarine missile programme

Key Proponents

D.G. Malcolm, J.H. Roseboom, C.E. Clark, W. Fazar ("Application of a Technique for Research and Development Program Evaluation", 1959)

When to Use:

  • Estimating effort and schedule for projects with significant uncertainty

  • Planning R&D, software development, or any novel work where duration is hard to predict

  • Communicating schedule risk and confidence levels to stakeholders

  • Identifying the critical path to focus risk management and resource allocation

  • Complementing Story Points or T-shirt sizing with a probabilistic time dimension

Premortem

Details
Full Name

Project Premortem

Also known as

Pre-mortem, prospective hindsight exercise

Core Concepts:

  • The failure is a premise, not a possibility. The group is told the plan has already failed, comprehensively, and is asked why. This is the whole technique; everything else is staging.

  • Prospective hindsight. Explaining an event stated as fact produces more concrete reasons than speculating about an event that might happen.

  • Before commitment, not after. A postmortem examines a corpse; a premortem examines a plan that can still be changed.

  • Everyone writes first. Each participant lists reasons independently before anything is shared, so the most senior voice does not set the frame.

  • Round-robin collection. Reasons are read out one per person per turn, which surfaces the quiet objections that a free discussion buries.

When to Use:

  • Before committing to a plan that is hard to reverse — a migration, a re-platforming, a fixed-date release

  • When a team has converged suspiciously fast and nobody is arguing

  • When the people who see the risks report to the people who made the plan

  • As a complement to a risk register: the register lists known risks, the premortem generates the ones nobody wrote down

Common Misunderstandings:

  • Softening the question. Asking "what could go wrong?" instead of "it failed — why?" reverts the exercise to ordinary risk brainstorming and loses the effect the technique is named for.

  • Treating it as pessimism. The purpose is to license dissent, not to kill the plan. It usually ends with a modified plan, not a cancelled one.

  • Running it after the decision. Once commitment is public, the findings have nowhere to go.

Criticism:

  • The evidence chain is weaker than the citation suggests. Behavioural economist Jason Collins documents that the widely repeated "30 percent" figure does not say what it is used to say. Collins traces it to Mitchell, Russo and Pennington (1989), whose result is that prospective hindsight increases the number of reasons generated — and notes explicitly: "Mitchell, Russo, and Pennington (1989) did not assess the quality of the reasons." The common paraphrase, that the technique improves the ability to correctly identify reasons by 30 percent, originates in Klein’s 2007 restatement rather than in the study.

  • The academic literature is thin. Collins states it plainly: "The academic literature on the premortem is thin." The technique’s standing rests largely on practitioner reports and on Klein’s own 2010 study with Veinott and Wiggins, not on independent replication.

  • No independent methodological critique was found. A search in English and German turned up no failed replication, no meta-analysis, and no peer-reviewed critique of the technique itself. Note the frame: the journals where such an evaluation would most plausibly sit — work on structured analytic techniques in Intelligence and National Security and the International Journal of Intelligence and CounterIntelligence — are paywalled and were not read. This is an absence in our search, not a demonstrated absence in the literature.

Current Status:

  • Established and unchanged. Klein’s own description in Psychology Today (January 2021) matches the 2007 original; there is no revised edition or successor method to drift toward. He dates the technique’s origin to roughly three decades before that writing, with the first formal description in "Performing a Project Premortem", Harvard Business Review 85(9), 18–19, September 2007.

  • The failure modes Klein names are execution errors, not limits. He lists three: softening the question, running it too slowly, and letting a senior participant dominate instead of going round-robin. These are the author’s caveats about his own method, which is a different thing from independent criticism.

Pugh-Matrix

Details
Full Name

Pugh Decision Matrix (also Pugh Controlled Convergence)

Core Concepts:

Matrix layout

Criteria as ROWS, alternatives as COLUMNS

Reference (baseline)

One alternative is designated as reference — scored entirely as 0/S

Relative scoring

Each alternative rated against the reference: Better (+), Same (S), Worse (−)

Summary rows

Σ(+), Σ(−), Σ(S), and Net Score per alternative at bottom of matrix

Structured evaluation

Systematic comparison across multiple dimensions

Team decision-making

Facilitates group consensus

Hybrid solutions

Combine strengths of different alternatives

Iterative refinement

Multiple rounds to converge on best solution

Key Proponent

Stuart Pugh ("Total Design", 1991)

Variants (use as qualifier for consistent results):

Unweighted 3-Point Pugh Matrix

Original form. Default when no qualifier is given.

Weighted 3-Point Pugh Matrix

Criteria carry importance weights. Standard in Six Sigma / QFD contexts.

Weighted 5-Point Pugh Matrix

Finer granularity for closely ranked alternatives.

Pugh Controlled Convergence

Iterative multi-round process with elimination, hybrid creation, and reference rotation.

When to Use:

  • Multiple viable alternatives exist

  • Decision criteria are known but trade-offs are unclear

  • Team needs to reach consensus

  • Architecture or technology selection decisions

QFD

Details
Full Name

Quality Function Deployment (品質機能展開, hinshitsu kinō tenkai)

Also known as

the House of Quality (its best-known matrix, not the method itself); voice-of-the-customer deployment

Core Concepts:

Deployment, Not Translation

QFD carries customer needs through a chain of matrices — customer needs into technical characteristics, those into part characteristics, those into process and production requirements. Each matrix inherits the priorities of the one before, so a need that mattered at the start still has weight at the machine. The word in the name is deployment: priority propagates.

The House of Quality

The first matrix, and the signature artifact. Customer needs (the WHATs) form the rows, measurable technical characteristics (the HOWs) the columns, and the body records how strongly each characteristic serves each need. Side rooms hold customer importance ratings and a competitive benchmark; the basement holds target values for each characteristic.

The Correlation Roof Is the Part Nothing Else Has

The triangular roof sits above the columns and records how the technical characteristics relate to each other — which ones reinforce, and, crucially, which ones conflict. Lighter and stiffer; faster and cheaper to run; more secure and simpler to operate. A pugh-matrix scores options against criteria and a kano-model classifies needs; neither asks what the engineering parameters do to each other. The roof forces those tradeoffs into the open before a design is chosen.

Targets, Not Wishes

The output is a ranked set of technical characteristics with numeric target values. "Responsive" becomes a millisecond figure. QFD is the machinery that gets from adjective to number.

Customer Voice Stays Customer Voice

Needs are recorded in the customer’s words and only then mapped. The discipline exists because the usual failure is an engineer silently substituting a solution for a need.

Key Proponents

Yoji Akao and Shigeru Mizuno developed the method in Japan; Wikipedia dates the start to 1966 and records that "with the late Shigeru Mizuno, he developed Quality Function Deployment". The first large-scale application is the one everyone cites: the House of Quality "appeared in 1972 in the design of an oil tanker by Mitsubishi Heavy Industries". The yard is almost always named as Kobe; no primary source naming it could be confirmed, so this anchor stops at the company. Sources: Wikipedia, Yoji Akao and Wikipedia, Quality function deployment.

When to Use:

  • Turning a pile of vague stakeholder wishes into a ranked, measurable set of technical targets

  • Early product or architecture definition, before options are generated — QFD frames the criteria a pugh-matrix will later score against

  • Whenever quality attributes conflict and somebody has to name the tradeoff out loud

  • As the requirements front end of a dmaic or DMADV project, where the customer’s CTQs need to be derived rather than asserted

  • Cross-functional work where marketing, design, and engineering keep talking past each other

Common Misunderstandings:

  • ❌ "QFD is the House of Quality" — the House is one matrix in a chain; the QFD Institute calls this "a most common myth"

  • ❌ "QFD scores options" — it derives characteristics and targets; scoring competing designs is the pugh-matrix job

  • ❌ "QFD replaces talking to customers" — it is a way to process the voice of the customer, not a substitute for collecting it

  • ❌ "Bigger matrices are more thorough" — size is the dominant failure mode

  • ✓ "The roof is where the conflicts live" — the most quoted reason to reach for QFD rather than a simpler tool

Criticism:

  • The numbers it produces are not the kind of numbers engineers think they are. Andrew Olewnik and Kemper Lewis, "Limitations of the House of Quality to provide quantitative design information", International Journal of Quality & Reliability Management 25(2), 125–146 (2008), DOI 10.1108/02656710810846916. They argue that while the House supports conceptual design, "the quantitative information that results is largely invalid", because designers interpret the numerical outputs in ways the method’s own assumptions do not license — and that relying on those outputs "can lead to potentially invalid and/or poor decisions". Abstract at Emerald.

  • The matrix does not scale, and its authors' own institute says so. The QFD Institute: "In some projects, the HoQ can have 1000 rows x 1000 columns = 1,000,000 relationships to examine and quantify. This could take years to complete!" It adds that "95% of the customer needs and functional/non-functional requirements identified in HoQ are too low priority to assign engineering resources or budget to improve." QFD Institute, "Classical, Blitz, or Reverse QFD".

  • Western practice adopted the picture and dropped the method. Glenn Mazur, via the QFD Institute: "Consider the HoQ as a highway interchange between the customer and the engineer. To limit QFD to only this tool is like building the interchange in an empty field without connecting roads." The Institute calls HoQ-only QFD "a most common myth" and notes the House "is neither the starting point nor the finish in most QFD studies." QFD Institute, "What is House of Quality (HoQ)?".

  • The arithmetic was questionable from the start. Mazur again, writing on the ISO standard: "Quality professionals have long decried the abacus math in Japanese models brought to the U.S. in the 1980s" — ordinal rating scales lacking "equality of intervals" were nevertheless multiplied and summed. Mazur, "ISO 16355: The New Standard for QFD, Part 1", Quality magazine, 26 August 2024.

Current Status:

  • QFD is standardised, and the standard demotes the House. The nine-part ISO 16355 series covers QFD; Part 1 is ISO 16355-1:2021, "Application of statistical and related methods to new technology and product development process — Part 1: General principles and perspectives of quality function deployment (QFD)", edition 2, approved 31 May 2021, superseding the 2015 first edition. Mazur summarises the shift: "The House of Quality and other time- and resource-intensive matrices are now optional and more efficient effect-to-cause diagrams are recommended for most projects."

  • Blitz QFD is the lean answer to the complexity complaint. The QFD Institute created it "to address the trend towards Lean Thinking and Agile Development"; in Blitz QFD "the House of Quality may be completely unnecessary", replaced by a Maximum Value Table and an effect-to-cause wishbone that deploy only the top-priority needs.

  • Note the split between name and artifact. The strong prior in most models is the House of Quality picture, not the full deployment chain or the ISO process. When you name QFD, say which you mean.

Second-Order Thinking

Details
Full Name

Second-Order Thinking

Also known as

Second-level thinking (Howard Marks); second- and third-order consequences (Ray Dalio)

Core Concepts:

  • And then what? The first-order effect is the one the decision was made for. The second-order effect is what happens once people adapt to the first.

  • First-order effects are visible and immediate; second-order effects are delayed and often dominant. The delay is why they lose arguments they should win.

  • Chains, not lists. The move is to follow one consequence into the next, rather than to enumerate more consequences at the same level.

  • The consequences that decide the outcome are usually behavioural. Rules change incentives, incentives change behaviour, and behaviour produces the effect nobody planned.

  • Applies to the status quo too. Not acting has second-order effects as well, and they are easy to omit because nothing appears to happen.

When to Use:

  • Evaluating a policy or process change that people will adapt to — review rules, quality gates, on-call schedules, incentive structures

  • Assessing a technical decision whose cost arrives later than its benefit

  • Whenever a proposal’s argument consists entirely of its immediate effect

  • As a counterweight when a metric is about to become a target

Common Misunderstandings:

  • Adding more items instead of going deeper. Twenty first-order effects are still first-order. One consequence followed three steps is the technique.

  • Treating it as an argument against acting. It changes what you decide, not whether you decide. Inaction gets the same analysis.

  • Confusing it with risk analysis. A risk is an event that may or may not occur. A second-order effect is a consequence a decision sets in motion once people adapt to it — likely rather than certain, but systematic rather than accidental, and nobody has reacted to it yet.

Criticism:

  • No named critique of the term itself was found. A search in English and German produced no cited author arguing that second-order thinking is trivial, unfalsifiable or unusable. What search engines return as criticism — analysis paralysis, time cost, context dependence — appears in advice blogs without attribution and does not qualify.

  • The literature that popularised it is contested. The criticism lands on the mental-models genre rather than on this term. Cedric Chin names Farnam Street directly in "The Mental Model Fallacy": "The mental model fallacy is that it’s worth it to read descriptions of mental models, written and aggregated by non-practitioners, in the pursuit of self-improvement and success", and adds that "the most valuable mental models do not survive codification". Richard Hughes-Jones argues in "The Mental Models Paradox" that such frameworks "make us smarter but only up to a point, after which they can actually constrain our thinking". Data scientist Boris Gorelik reviews Parrish’s The Great Mental Models at two out of five, calling it "ambitious but yet shallow".

  • None of those three critics discusses second-order thinking. They criticise the packaging, not this entry. The distinction matters, and readers should not take the citations as a verdict on the technique.

Current Status:

  • The name that works is not the name in the sources. Howard Marks contrasts "first-level" with "second-level thinking" in The Most Important Thing (Columbia University Press, 2011). Ray Dalio’s principle reads "Consider second- and third-order consequences, not just first-order ones". Neither writes "second-order thinking". That phrasing belongs to the popularisers, chiefly Farnam Street, which adopts it as its own heading while stating plainly that Marks "calls it second-level thinking" and quoting Dalio on "second- and third-order consequences" — the rename is deliberate and documented on the page that performs it. The entry is named for the string that reliably triggers the concept, not for the string with the better provenance — and those diverge here. See the prior-test register for the measurement behind that choice.

  • The idea is much older than the label. Frédéric Bastiat’s "Ce qu’on voit et ce qu’on ne voit pas" states the core move for economics: judge a measure by its unseen later effects, not only by its visible immediate one. French Wikisource carries the text and dates the pamphlet to July 1850, Bastiat’s last. Robert K. Merton formalised a close relative in "The Unanticipated Consequences of Purposive Social Action", American Sociological Review 1(6), December 1936, 894–904.

SWOT

Details
Full Name

SWOT Analysis

Also known as

SWOT Matrix, TOWS Analysis

Core Concepts:

SWOT = Strengths / Weaknesses / Opportunities / Threats

Strengths

Internal positive attributes and resources that give the subject an advantage over others

Weaknesses

Internal negative attributes or limitations that place the subject at a disadvantage relative to others

Opportunities

External factors or trends that the subject could exploit to its advantage

Threats

External factors or conditions that could cause problems or jeopardise the subject’s success

Internal vs. External

Strengths and Weaknesses are internal (within control); Opportunities and Threats are external (environmental)

Present vs. Future orientation

Strengths and Weaknesses reflect the current state; Opportunities and Threats look toward future conditions

TOWS variant

Systematic derivation of strategies by cross-referencing SWOT quadrants (SO, ST, WO, WT strategies)

Key Proponent

Albert Humphrey (Stanford Research Institute, 1960s–1970s)

When to Use:

  • Strategic planning for a product, project, organisation, or technology choice

  • Competitive analysis to understand market positioning

  • Evaluating an architectural or technology decision holistically

  • Team retrospectives to assess current state before planning next steps

  • Business case preparation and stakeholder communication

Related Anchors:

Criticism:

  • Hill & Westbrook, "SWOT Analysis: It’s Time for a Product Recall" (Long Range Planning, 1997) — in a study of 20 companies, SWOT produced long, vague, unweighted bullet lists that were never verified and never used in the subsequent strategy process

  • Criticized as a static snapshot: no prioritisation, no probability or impact weighting, and no built-in step from analysis to action — the TOWS variant exists precisely to patch this gap

  • Alternatives named in the discourse: structured option evaluation (e.g. Pugh Matrix) and evolution-aware positioning (Wardley Mapping) where SWOT’s four static quadrants fall short

Toyota Kata

Details
Full Name

Toyota Kata — Managing People for Improvement, Adaptiveness and Superior Results (Mike Rother, McGraw-Hill, 4 August 2009)

Also known as

Improvement Kata and Coaching Kata, IK/CK, Starter Kata, scientific thinking routine

Core Concepts:

Two Routines, Not One Method

Toyota Kata names a pair. The Improvement Kata is what the learner practises; the Coaching Kata is what the coach practises while the learner works. Naming only one of them loses the point, because the routine survives in an organisation through the coaching, not through the worksheet.

The Improvement Kata, in Four Steps

The learner cycles through:

  • Direction or challenge — where the organisation is going, set long-range and rarely revisited

  • Grasp the current condition — measured and observed at the process itself, not inferred from a report

  • Establish the next target condition — a description of how the process should operate by a set date

  • Experiment toward the target condition — one obstacle at a time, one experiment at a time, each with a prediction

A Target Condition Is a Described Process Condition

This is the load-bearing idea and the one most often dropped. A target condition says how the process works — the pattern, the sequence, the characteristics, plus the date — not merely which number should be higher by when. That is exactly what separates it from an okr Key Result or a KPI target. A number tells you whether you arrived; a target condition tells you what arriving looks like, so an experiment can be designed against it.

The Coaching Kata Is Five Questions

Christoph Roser renders the card as: 1. "What is the target condition?" 2. "What is the actual condition now?" 3. "What obstacles prevent you from reaching the target condition? Which ones are you addressing now?" 4. "What is your next step (your next PDCA cycle)?" 5. "Where can we go and see what we have learned from taking that step?" The coach asks; the coach does not answer.

The Threshold of Knowledge

Work happens at the edge of what is known. Where the path is clear, no kata is needed. The routine exists for the grey zone between current and target condition, where the honest answer is "we do not know yet" and the only way forward is a cheap, fast, predicted experiment.

Starter Kata, Not Finishing Kata

Rother calls the prescribed forms starter kata — scaffolding for practising scientific thinking, meant to be outgrown. Treating the worksheet as the deliverable inverts the intent.

When to Use:

  • Chronic problems that resisted a one-shot fix, where the cause is genuinely unknown

  • Turning a vague "we should get faster" into something testable: a described condition plus a date

  • Coaching — the Five Questions give a manager a way to develop a person without taking the problem away from them

  • Any place where goals are set but no route is described; the kata forces the gap between target and current condition into the open

  • As the daily-practice counterpart to a project-shaped method such as dmaic

Common Misunderstandings:

  • ❌ "A target condition is a target number" — it describes how the process should operate, with the number as one attribute among several

  • ❌ "The Five Questions are the method" — they are the coach’s half, worthless without a learner who has practised the Improvement Kata

  • ❌ "Kata means rigid ritual" — Rother’s starter kata are practice forms to be outgrown, like scales for a musician

  • ❌ "Toyota teaches this under this name" — Rother derived and named the routines from observing Toyota; the framing is his

  • ✓ "It is PDCA with a coach and a described destination" — a fair short summary

Criticism:

  • The training industry has overtaken the practice. Christoph Roser, professor at Karlsruhe University of Applied Sciences: "the promotion and training of kata has overtaken the actual improvement process", and on the credential market, "I am not sure if a ~3-hour online Toyota Kata course really prepares someone to be a coach" — "true skill comes only from practice". He states plainly, "I am not overly fond of it" about kata-as-business, while holding that the underlying concept "is sound and valid". Roser, "Toyota Kata" (11 September 2018).

  • Managers grab the coaching card first. Mark Rosenthal observes that managers "want to jump right into coaching" because "the '5 Questions' and some of them think that is all there is to it", and warns: "Until you have struggled as a learner to apply the Improvement Kata…please don’t just pick up the 5 Questions card." Rosenthal, "Mike Rother: The Toyota Kata Practice Guide" (21 December 2017).

  • The 2009 book told you what, not how. The same review describes the original as "a fairly high-level summary of research findings" that largely omitted "step-by-step guide of how to practice and what to practice" — which is why a separate practice guide had to follow eight years later.

  • Scientific thinking arrived without scientific scepticism. Bob Emiliani credits Rother’s 2009 book with putting "scientific thinking" into the Lean vocabulary, then argues the community never took the rest of the package: "The Lean community is anything but scientifically skeptical", with practitioners behaving as "true believers". Emiliani, "Scientific Thinking Without Skepticism" (30 June 2026).

Current Status:

  • The how-to gap was closed by a second book. Rother published The Toyota Kata Practice Guide (McGraw-Hill, 2017) as the practice manual the 2009 book lacked — confirmed in Rosenthal’s review above. When a model has read only the 2009 material, expect the concepts without the drills.

  • Absorbed into the Toyota Way rather than replacing it. Jeffrey Liker restructured his Toyota Way model to put scientific thinking at its centre and positions the kata as the mechanism for developing it: "perhaps we can view the kata as a catalyst that juices scientific thinking, which, in turn, is the engine that drives the Toyota Way." He is explicit that this is not a substitution: "Does this mean that Toyota Kata now replaces the Toyota Way since scientific thinking is at the center? Certainly not." Liker, Lean Enterprise Institute (18 March 2022).

  • The name is Rother’s, not Toyota’s. Liker describes Rother as adopting "kata" from martial arts practice to label routines he observed. We found no source showing that Toyota itself teaches these routines under that name — treat "Toyota Kata" as the title of a book about Toyota, not as internal Toyota vocabulary.

Wardley Mapping

Details

Core Concepts:

Value chain

Map components from user needs down

Evolution axis

Genesis → Custom → Product → Commodity

Movement

Components naturally evolve over time

Situational awareness

Understanding the landscape before deciding

Gameplay patterns

Common strategic moves

Climatic patterns

Forces that affect all players

Doctrine

Universal principles of good strategy

Inertia

Resistance to change in organizations

Strategic planning

Visual approach to strategy

Build-Buy-Partner decisions

Based on evolution stage

Key Proponent

Simon Wardley

When to Use:

  • Strategic technology planning

  • Build vs. buy decisions

  • Understanding competitive landscape

  • Communicating strategy visually

  • Identifying opportunities for disruption

Testing & Quality Practices

Andon

Details
Full Name

Andon (行灯), Japanese for "paper lantern" — the signal system of the Toyota Production System

Also known as

andon cord, andon board, andon light, stop-the-line authority, the visible half of jidoka

Core Concepts:

Two Halves, One Word

Andon names both the display — a board or lamp above the line showing the status of every station — and the trigger, the cord or button an operator pulls when something is wrong. Wikipedia’s definition covers the display side: "a system which notifies managerial, maintenance, and other workers of a quality or process problem."

The Radical Part Is the Authority, Not the Hardware

Any operator may signal, and the signal is binding on everyone above them. That is an inversion of ordinary factory hierarchy, and it is the part that does not ship in the box. Mark Graban puts it flatly: "It’s not the cord or a button that matters… It’s the process and the management system that matters."

Three Colours, One Sentence Each

Jane Slaughter’s description of the board: "A green light indicates there are no problems; a yellow light shows that the operator is having trouble keeping up and needs help; and a red light means there is a problem which requires stopping the line."

It Is a Call for Help Before It Is a Stop

Graban corrects the popular version: a pull "sounds an alarm and turns on a yellow light", the line keeps moving to the next fixed position, and a team leader gets a window of "maybe 5 to 30 seconds" to respond. If they succeed, "the line never stops at all." Stopping at a fixed position — between work cycles, not mid-task — is deliberate, so an interrupted job does not compound the defect.

A Rising Pull Count Is a Good Sign

Early in an andon rollout, more pulls mean more problems surfacing, not more problems existing. Graban’s comparison is the standard evidence: Toyota’s Georgetown plant recorded roughly 2,000 pulls a week, a new Ford plant in Dearborn two — not because Ford had fewer problems, but because its workers did not trust the response. A count near zero is the alarming reading.

The Visible Half of Jidoka

Jidoka — automation with a human touch — means a process stops itself when it produces a defect. Andon is how a human exercises the same authority, and how the stop becomes visible to everyone at once.

Software Analogues

A red build that nobody may build on top of; blocking a deploy; halting a canary rollout on a failing metric; a pager that any engineer may fire without asking permission. In each case the mechanism is trivial and the authority is the whole design.

When to Use:

  • Establishing who may halt work — the naming makes the authority explicit rather than implicit

  • Red-build discipline and stop-the-line rules around CI, the direct descendant of the idea (red-green-tdd)

  • Canary and progressive rollouts, where an automatic or manual abort is the andon

  • Diagnosing a quiet team: if nobody ever stops anything, ask whether the authority exists or only the button does

  • Designing escalation paths where the responder, not the reporter, owns the problem once the signal is raised

Common Misunderstandings:

  • ❌ "One worker pulling the cord stops the whole factory" — Graban calls this the myth; buffers between sections absorb a local stop, and the line halts only at the next fixed position

  • ❌ "Andon is a line-stop device" — it is first a call for help; most pulls are resolved before any stop

  • ❌ "Install the cord and you have andon" — without a responder within seconds and a no-blame reaction, the cord is decoration

  • ❌ "Many pulls means the process is bad" — early on it means the process is finally visible

  • ✓ "Andon is jidoka performed by a person" — accurate, and the reason it belongs next to kaizen rather than to tooling

Criticism:

  • Read from the other side of the line, the board is a pacing device. Jane Slaughter, in her account of what Labor Notes called "management by stress", treats andon as the emblem of the whole system: "Management by stress is the most sophisticated version of team concept, even though it contradicts many traditional notions of good management." The objection is precise, and it is about tuning: "The ideal state is achieved when the plant is running with all stations just on the line between green and yellow." A system deliberately balanced at the edge of "cannot keep up" uses the operator’s distress signal as its control input. Slaughter, "Management by Stress", Multinational Monitor, January/February 1990. Slaughter is co-author, with Mike Parker, of Choosing Sides: Unions and the Team Concept.

  • The transplanted version failed on arrival. The Toyota/Ford pull-count gap is usually told as a culture story, but it is also a criticism of the mechanism: copied without the management system, the cord produced silence. Graban: Ford’s rare pulls reflected worker distrust of how management would respond, not a better process. Graban, "No, One Toyota Worker Can’t Stop the Whole Factory" (29 June 2026).

  • The popular story is wrong in its details, and the details carry the design. Graban’s whole piece is a correction of the andon legend circulating in management writing and software conference talks — the instant total stop, the lone heroic worker. The fixed-position stop, the 5-to-30-second response window and the required proximity of capable help are what make the practice work, and they are exactly what the legend omits.

Current Status:

  • Toyota replaced the cords with buttons. Starting at the Toyota City plant in 2013, overhead cords gave way to wireless, waist-high yellow buttons, rolled out gradually worldwide while some plants kept cords. The stated reasons are mundane: "reduce overhead clutter, improve safety by removing tools…that could snag on the cord" and "simplify line reconfiguration". Graban, "Why Toyota is Eliminating the Andon Cord from its Factories" (2 August 2014, updated 17 May 2026). The word "cord" in "andon cord" is therefore already historical at the source.

  • The term survives in software mostly as metaphor. "Pull the andon cord" is common shorthand in DevOps and SRE writing for stopping a release. The prior most training data carries is this metaphorical sense plus the myth version; the fixed-position stop and the responder-within-seconds requirement are usually absent, which is precisely why naming the anchor is worth doing.

Arrange-Act-Assert (AAA)

Details
Full Name

Arrange-Act-Assert — three named phases for the body of a single unit test, abbreviated "3A" by the author who named it

Also known as

3A, the AAA pattern, Setup-Exercise-Verify (the first three phases of Gerard Meszaros' Four-Phase Test), Build-Operate-Check (the same split under different names in Robert C. Martin’s Clean Code)

Core Concepts:

Write the Name Out — the Acronym Points Somewhere Else

"Arrange-Act-Assert" is the anchor. "AAA" is not: it is the standard abbreviation for Authentication, Authorization and Accounting in network access control, and that is what a model retrieves from the three letters alone (see Current Status). Spell it out in prompts, in test comments and in team vocabulary.

Three Phases, One Action

Bill Wake’s own definitions. Arrange: "Set up the object to be tested. We may need to surround the object with collaborators." Act: "Act on the object (through some mutator). You may need to give it parameters." Assert: "Make claims about the object, its collaborators, its parameters, and possibly (rarely!!) global state." The decisive word is one action: a second Act in the same test means a second test.

Origin, Dated by the Author Himself

Wake’s post "3A – Arrange, Act, Assert" is dated 26 April 2011 and says: "I (Bill Wake) observed and named the pattern in 2001." The 2001 date is therefore the author’s own recollection, written down ten years later, not a contemporaneous record.

The Fourth Phase Is the One AAA Drops

Meszaros' Four-Phase Test names "fixture setup, exercise SUT, result verification and fixture teardown". AAA renames the first three and leaves the fourth implicit — "In the fourth phase, we tear down the test fixture to put the world back into the state in which you found it." In a test that touches files, databases, clocks or global state, that omission is yours to fix; AAA will not remind you.

Not the Same Altitude as Given-When-Then

Given-When-Then shapes an acceptance scenario in the language of the domain, written to be read by people who do not read code (gherkin, bdd-given-when-then). Arrange-Act-Assert shapes the body of one unit test in code. The structures are parallel; the audience, the artifact and the level are not. Use Given-When-Then to agree on behaviour, Arrange-Act-Assert to lay out the test that checks it.

A Swollen Arrange Is a Diagnosis

When the Arrange block dwarfs Act and Assert, the test is telling you something about the design: too many collaborators, a constructor that demands irrelevant data, hidden dependencies. The two standard remedies are test doubles (test-double-meszaros) and builders that hide safe defaults (test-data-builder).

Marking the Phases Is a Discipline, Not Decoration

Meszaros' argument for writing the phases down: "Using comments to mark the phases of a Four-Phase Test is a good source of self-discipline in that it makes it very obvious when our tests are not Single Condition Tests."

When to Use:

  • Asking for unit tests and wanting one behaviour per test instead of a single method that calls six things and asserts on all of them

  • Reviewing tests: the three phases make it visible where a failure comes from — bad setup, wrong call, or wrong expectation

  • Teaching test structure, where the named phases give beginners a shape to fill

  • Refactoring a test suite whose Arrange sections have grown out of control, as the entry point to builders and test doubles

  • Next to bdd-given-when-then when the team needs both levels and keeps confusing them

Common Misunderstandings:

  • ❌ "AAA" — the bare acronym retrieves Authentication, Authorization and Accounting, not testing; the written-out name is the anchor

  • ❌ "Arrange-Act-Assert means exactly one assertion per test" — contested, and Wake himself writes of that guideline: "I don’t follow that guideline too closely." See Criticism

  • ❌ "It is just Given-When-Then for programmers" — same shape, different altitude and different audience

  • ❌ "Three phases cover every test" — teardown is missing by construction, and shared setup and multi-step scenarios need adaptations

  • ❌ "The comments are the pattern" — the single Act is the pattern; the comments only make a violation obvious

  • ✓ "One action per test, with setup and expectation visibly separated from it" — accurate, and the part worth insisting on

Criticism:

  • The strict reading — one assertion per test — is contested, and the pattern’s own author is on the permissive side. Dave Astels made the case for the rule in "One Assertion Per Test" (23 February 2004), arguing that tests are specifications of behaviour and that the rule keeps you working in "the smallest steps possible, both for the finest-grained long-term verification, and for the most flexible design evolution"; where a test wants several assertions, he decomposes it into separate fixtures instead. Wake answers eleven years later in "Multiple Asserts Are OK": "I first heard the 'one assert per test' idea years ago from Dave Astels, and others have picked it up since then", and "Multiple assertions can be a sign of trouble in tests. But as you’ll see by the end, some situations make good use of groups of assertions." Astels, "One Assertion Per Test", Artima, 23 February 2004 and Wake, "Multiple Asserts Are OK", Industrial Logic, 29 September 2015. Anyone who cites "AAA" as authority for a hard one-assert rule is citing a position its author declined to hold.

  • The three phases do not fit every test shape, and the teaching literature says so. The Freie Universität Berlin’s AG Software Engineering, in the course material for its Programmierpraktikum (Sommersemester 2026), names two cases where the plain structure breaks down: "Viele Tests teilen dasselbe aufwändige Setup — Kopieren kostet Zeit und erzeugt Fehlerquellen", and "Ein Testszenario besteht aus mehreren aufeinander aufbauenden Schritten, deren Zwischenzustände jeweils überprüft werden sollen." Their remedies are helper functions for the shared Arrange and an A-AA-AA shape with several Act/Assert cycles. The page presents these as adaptations rather than as grounds to abandon the pattern. AG Software Engineering, FU Berlin, "Das AAA-Muster: Strukturierte Unit-Tests".

  • Asserting the precondition before acting is the other standing patch. "Arrange-Assert-Act-Assert" adds a check that the setup really produced the state the test assumes, so a failure cannot be silently blamed on the action. Wake shows the shape himself in "Multiple Asserts Are OK": "// arrange / set up something hairy / // assert on setup / assert setup looks right / // act / probe a behavior / // assert / verify its consequences". The cost is that the test now has two kinds of assertion in it, and the reader has to tell them apart.

  • Teardown is a real gap, not a simplification. Meszaros keeps the fourth phase for a reason — a test that does not put the world back breaks the next one — and AAA’s three names give no place to put it. Meszaros, "Four-Phase Test", xunitpatterns.com (the site serves plain HTTP only).

Current Status:

  • The bare acronym anchors a different field entirely. Asked "What is AAA?" in a clean room on claude-haiku-4-5 (2026-10-03), the weak tier answered: "AAA stands for Authentication, Authorization, and Accounting, a security framework commonly used in networking and access control", went on through RADIUS and TACACS+, and mentioned the American Automobile Association before any testing sense. The written-out name is therefore the anchor; the acronym alone is not.

  • The prior behind the full name is dense enough to surface unprompted. On a test-readability task measured the same day, the no-anchor baseline reached Arrange-Act-Assert by itself in two of four runs. Naming it makes the structure explicit and settles the one-assert question; it does not introduce an unfamiliar idea.

BDD (Behavior-Driven Development)

Details
Also known as

Specification by Example, Executable Specifications

Core Concepts:

Given-When-Then

Structured scenario format — Given a precondition, When an action occurs, Then an expected outcome results

Specification by Example

Concrete examples as executable specifications that define system behavior

Three Amigos

Collaborative discovery sessions between developer, tester, and business representative

Gherkin syntax

Domain-specific language for writing human-readable, machine-executable scenarios

Living documentation

Tests that serve as always-current system documentation

Outside-in specification

Start from desired business behavior, work inward to implementation

Ubiquitous language

Shared vocabulary bridging technical and business stakeholders in scenarios

Discovery workshops

Structured conversations to uncover requirements through examples before implementation

Key Proponent

Dan North ("Introducing BDD", 2006), creator of JBehave which influenced Cucumber’s design (Cucumber created by Aslak Hellesøy, 2008)

When to Use:

  • Cross-functional teams needing shared understanding of requirements

  • Systems where business rules are complex and need clear documentation

  • Projects requiring executable acceptance criteria

  • Bridging communication gaps between technical and non-technical stakeholders

Defense in Depth

Details
Full Name

Defense in Depth — military doctrine adapted to information security; the reference text for the information-assurance reading is the NSA paper "Defense in Depth: A practical strategy for achieving Information Assurance in today’s highly networked environments"

Also known as

layered security, layered defense, the castle model, defence in depth

Core Concepts:

Independence, Diversity, Assumed Failure

Three conditions decide whether a set of controls is defence in depth or just a pile. Independence: a layer must not fail for the same reason as its neighbour. Diversity: different mechanisms, so one exploit does not pass through all of them. Assumed failure: every layer is designed on the premise that the one in front of it has already been breached. A set of correlated controls — same vendor, same parser, same identity provider, same misconfiguration — is one layer wearing several names. This is the part of the idea the term does not reliably carry (see Current Status), so state it rather than assume it.

Nobody Owns the Phrase

This is weaker attribution than most entries in this catalog. The concept is military doctrine — trade space for time, make the attacker spend resources rather than stopping them at a single line — adapted to information security. The NSA paper is the citable information-assurance formulation; the safety-engineering counterpart is James Reason’s Swiss cheese model of accident causation, where the holes in individual layers only matter when they line up. This entry quotes no primary Reason text, having verified none, so it gives neither year nor page for the model.

The NSA Formulation Is Not a Stack of Boxes

The paper’s organising claim is that information assurance "requires a balanced focus on three primary elements: People, Technology and Operations" — so training, policy and incident response are layers in the same sense as a firewall. Its first recommended principle is "Defense in Multiple Places", on the reasoning that "adversaries can attack a target from multiple points using either insiders or outsiders". It calls itself a "best practices" strategy that "recommends a balance between the protection capability and cost, performance, and operational considerations".

Layers Are Weighted, Not Uniform

The same paper tells you to "specify the security robustness (strength and assurance) of each Information Assurance component as a function of the value of what’s it is protecting and the threat at the point of application", with the example that "it’s often more effective and operationally suitable to deploy stronger mechanisms at the network boundaries than at the user desktop". Defence in depth is therefore a budgeting argument, not an instruction to harden everything equally.

Detection and Recovery Are Layers Too

If every layer may fail, something must notice. Monitoring, alerting, incident response and backups belong in the decomposition, not as an afterthought to prevention.

Relation to Least Privilege

least-privilege is what makes a layer’s failure survivable — it bounds what the attacker reaches after the breach. Defence in depth is the arrangement; least privilege sizes each compartment.

When to Use:

  • Designing a control set for a single risky operation — file upload, document rendering, deserialisation, arbitrary code execution

  • Reviewing a security design for correlated failure: which two layers die to the same bug

  • Sandboxing and isolation decisions, where the question is what the next layer assumes

  • Bridging security and safety thinking next to fmea and poka-yoke

  • After a stride threat model, to decide how many independent controls each high-rated threat gets

Common Misunderstandings:

  • ❌ "More controls means more depth" — correlated controls are one layer; the count is of independent failures required, not of products

  • ❌ "Defence in depth is about the network perimeter" — the NSA formulation puts People and Operations alongside Technology

  • ❌ "It is only prevention" — detection, response and recovery are layers

  • ❌ "Zero Trust replaced it" — Zero Trust removes trust in network location; it does not say how many independent controls a given operation needs

  • ✓ "Name each layer, say what it catches when the previous one fails, and show the two are not correlated" — the form that makes the term mean something

Criticism:

  • The sharpest charge is that the strategy fails against an adversary who cannot be removed. Prescott Small, in a SANS/GIAC paper, argues from the breaches of RSA, HBGary and others that "Defense in Depth, as practiced, is unsustainable and the examples show that the enemy cannot be eliminated permanently", and goes further: "Knowing that Defense in Depth, as practiced, actually renders the organization more vulnerable is vital to understanding that there must be a shift in attitudes and thinking to better address the risks faced in a more effective manner." His replacement is a posture he calls Sustained Cyber-Siege Defense. Small, "Defense in Depth: An Impractical Strategy for a Cyber World" (SANS Institute, 20 February 2012). The paper attacks the practice rather than the principle — which is the same move the independence requirement above makes, arrived at from the other side.

  • The literature defines it and then stops. Phil Venables, writing on his own site, charges that the body of guidance offers no design principles at all: "There is a huge number of possible arrangements of controls to achieve defense in depth with little in the way of principles to guide us in how controls should be arrayed." On the standard texts: "Most of the content is essentially a variant of the definition I just gave, together with examples of the need to deploy multiple controls…​Most of the examples are given without much discussion of why they are effective." He also finds the Swiss cheese model too flat — it "does not support defense in depth working at multiple dimensions from policy and governance to technical controls" — and warns that the linear reading "leads to viewing risk and risk mitigation as a simple chain of events without being able to look at the wider system which induced the design factors that led to the event." Venables, "Defense in Depth" (21 May 2022).

  • Read as a shopping list, it produces the opposite of security. Armin Recha names the failure mode directly: "Der zentrale Denkfehler vieler Security-Strategien liegt darin, Defense in Depth als Einkaufsliste zu betrachten" — the central error is treating defence in depth as a shopping list. And on what that yields: "Im schlimmsten Fall entsteht eine trügerische Sicherheit. Formal sind alle notwendigen Komponenten vorhanden, operativ fehlt jedoch die Fähigkeit, Angriffe sauber einzuordnen und kontrolliert zu reagieren" — at worst a deceptive sense of security, every required component formally present while the ability to classify and answer an attack is missing. Recha, "Defense in Depth: Integration statt Einkaufsliste für Resilienz", Security-Insider (8 April 2026). Recha is Regional Vice President DACH at Fastly, so read the piece as a vendor’s argument — the objection stands on its own, the framing is interested.

  • The staffing cost is the practical objection. Jochen Koehler argues the strategy is unreachable for most organisations as practised: "Ohne massiven personellen Aufwand können die allerwenigsten Unternehmen diesen Ansatz praktisch und vor allem erfolgreich umsetzen", and "Unternehmen müssen begreifen, dass mehr Tools nicht zwangsläufig mehr Sicherheit bedeuten" — without massive staffing very few organisations can run the approach successfully, and more tools do not automatically mean more security. Koehler, "Defense in depth: Klingt gut, aber ist es das auch?", iavcworld (21 November 2023). Koehler is VP EMEA Sales at Ontinue; same caveat.

Current Status:

  • The NSA paper survives only in the Internet Archive, and it carries no date. The nsa.gov URL it was published under is dead; the five-page document is retrievable through a Wayback Machine snapshot captured on 11 April 2016 (web.archive.org/web/20160411062620/https://www.nsa.gov/ia/_files/support/defenseindepth.pdf). The quotations above come from that file. The commonly repeated date of "around 2000" is a secondary claim: the document itself prints no date, version or revision. Anyone citing it as a dated standard is citing something the paper does not say.

  • Naming it adds layers the baseline omits. Measured on claude-haiku-4-5 on 3 October 2026 against a document-rendering task: with the anchor named, two of two runs produced sandboxed preview rendering and an explicitly layered decomposition; without it, zero of two did.

  • The premise does not come with the name. In the same measurement, "assume breach" appeared in only one of the two anchored runs. The independence and assumed-failure requirement is therefore not reliable in the prior, which is why this entry states it in Core Concepts instead of leaving it to the model.

Fagan Inspection

Details
Also known as

Formal Code Inspection, Software Inspection, Fagan’s Inspection Method

Core Concepts:

Formal inspection process

A structured, multi-phase review process for software artifacts (requirements, design, code) with defined roles and entry/exit criteria

Roles

Moderator (facilitates and logs), Author (created the artifact), Inspectors (reviewers), Recorder (documents defects)

Six phases

Planning → Overview → Preparation → Inspection Meeting → Rework → Follow-up

Entry and exit criteria

Explicit conditions that must be met before entering and leaving each phase, preventing premature progression

Defect classification

Defects are categorized by type (missing, wrong, extra) and severity, enabling process improvement through causal analysis

Metrics-driven

Inspection data (defect rate, inspection rate) are collected and used to improve both the product and the inspection process itself

Key Proponents

Michael Fagan ("Design and Code Inspections to Reduce Errors in Program Development", IBM Systems Journal, 1976)

When to Use:

  • Safety-critical or high-assurance software where defect escape is costly

  • Reviewing requirements, architecture, design, or code artifacts early in development

  • Establishing a culture of quality and shared code ownership in teams

  • When you want measurable, process-level quality improvement over time

  • Regulated environments (medical devices, avionics, finance) requiring documented review evidence

Current Status:

  • The definition is intact and unchanged since Fagan’s 1976 paper (IBM Systems Journal 15(3)): a formal, multi-role inspection with defined phases and measured defect data

  • The formal meeting-based inspection is rarely practiced today; asynchronous, tool-based pull-request review has largely replaced it — a documented shift with its own trade-offs: modern review finds fewer defects per hour of rigor but adds knowledge transfer and team awareness (Bacchelli & Bird, "Expectations, Outcomes, and Challenges of Modern Code Review", ICSE 2013; Rigby & Bird, FSE 2013)

FMEA

Details
Full Name

Failure Mode and Effects Analysis

Also known as

FMECA (Failure Mode, Effects and Criticality Analysis) when a criticality step is added; Design FMEA (DFMEA) and Process FMEA (PFMEA) by scope

Core Concepts:

Bottom-Up, Not Top-Down

FMEA starts at the component or process step and asks what can fail here, then traces the effect outward. Fault tree analysis works the other way, from an undesired event down to its causes. Picking the wrong direction produces a plausible-looking document that answers a question nobody asked.

Three Questions Per Failure Mode

For every way an item can fail, the analysis records its effect (what the customer or system notices), its cause (why it happens), and its controls (what prevents it or detects it). These are separate columns because they have separate remedies: prevention attacks the cause, detection attacks the escape.

Three Ratings, and What Used to Be Done With Them

Each failure mode is rated for Severity, Occurrence and Detection, classically on a 1–10 scale. The traditional Risk Priority Number is their product — RPN = S × O × D — used to rank what gets fixed first. That multiplication is where the method’s central controversy sits; see Criticism and Current Status.

Prevention Beats Detection

A control that stops a failure mode from occurring is worth more than one that catches it afterwards, and the rating scheme is meant to reflect that. Systems that chase a low RPN often improve Detection because it is cheapest, which lowers the number without lowering the risk.

Forward-Looking, Unlike Root Cause Analysis

five-whys and ishikawa-diagram work backwards from something that already happened. FMEA works forwards from something that has not happened yet, which makes it a sibling of premortem in intent and of stride in structure — both enumerate failure modes against a model before there is damage to investigate.

A Living Document, Not a Deliverable

An FMEA that is written once for an audit and never reopened has lost its function. Its value is in being revisited when the design, the process or the field data change.

Key Milestones

Procedures were described in 1949 in the US military document MIL-P-1629, revised as MIL-STD-1629A in 1980; NASA contractors applied variants across Apollo, Viking, Voyager and Skylab; Ford introduced FMEA after the Pinto affair and extended it to process FMEA; AIAG published the first automotive FMEA standard in 1993.

When to Use:

  • Designing or changing something whose failure is expensive, dangerous or hard to reverse

  • Before a launch, migration or cutover, to enumerate failure modes while there is still time to add controls

  • Safety and regulatory work, where an auditable record of considered failure modes is itself a requirement — see iec-61508-sil-levels

  • In software: dependency and interface failure analysis, resilience reviews, and anything where "what happens when this call never returns?" needs a written answer

  • As the risk counterpart to dmaic: FMEA is a standard tool in its Analyze and Improve phases

Common Misunderstandings:

  • ❌ "FMEA finds the root cause of an incident" — it is a prospective method. For an incident that already happened, use five-whys or ishikawa-diagram.

  • ❌ "A low RPN means low risk" — a severity-10 failure mode with a low RPN is still a severity-10 failure mode. The number hides exactly what matters most.

  • ❌ "FMEA covers combined failures" — used bottom-up it finds single-point failure modes. Failures that require two subsystems to fail together are largely invisible to it.

  • ❌ "RPN is what FMEA is" — the automotive standard has dropped RPN in favour of Action Priority. The ratings survived; the multiplication did not.

  • ✓ "FMEA is a structured pessimism exercise with an audit trail" — fair, and the reason it pairs well with premortem.

Criticism:

  • The RPN ranks things wrongly, by construction. The FMEA overview states the defect precisely: "The multiplication of the severity, occurrence and detection rankings may result in rank reversals, where a less serious failure mode receives a higher RPN than a more serious failure mode." Rank reversal is not an error in applying the method; it follows from multiplying ordinal ratings.

  • Arithmetic on ordinal scales is not a small sin. Michael Krisper catalogues the problem class that the RPN belongs to — "ordinal scales, semi-quantitative arithmetics, range compression, risk inversion, ambiguity, and neglection of uncertainty" — across 24 documented problems with ordinal risk matrices, and argues for fully quantitative risk assessment instead. Krisper, "Problems with Risk Matrices Using Ordinal Scales", arXiv:2103.05440, 2021.

  • The replacement drew its own criticism, from FMEA practitioners. Richard Harpster argued against the AIAG-VDA design FMEA before it shipped, holding that its structure/function/failure-tree approach is "both ineffective as a risk management tool and very inefficient", that it "more closely resembles a fault tree analysis than a Design FMEA process", and that engineers "will not spend the time and effort to develop verifyable functions/requirements for each of the sub-assemblies". Harpster, "The Case Against the AIAG-VDA DFMEA", Quality Digest, 31 January 2018.

  • Complexity is a risk of its own. Carl S. Carlson, author of Effective FMEAs, lists five concerns with the new handbook: it "adds considerable new terminology and other complexities", it "consumes valuable time on potentially lower-risk tasks", "enforcing causes at next lower level can miss important causes", it was published before a corresponding standard existed, and it "does an inadequate job of clearly identifying high-risk interfaces". Carlson, "Reviewing AIAG / VDA FMEA Handbook", Accendo Reliability, 1 December 2022. His point is that complexity can bury the high-risk items it was meant to surface.

  • Used alone it does not carry the weight put on it. The same FMEA overview reports that in healthcare the method showed "limited validity when used in isolation", with scoping and organisational boundaries strongly affecting the result. Where the boundary is drawn decides what the analysis can find.

Current Status:

  • The automotive world replaced RPN with Action Priority in 2019. The AIAG & VDA FMEA Handbook, first edition, was published in June 2019 and replaced AIAG’s 4th-edition FMEA manuals and VDA Volume 4. Mary Rowzee describes the change: "the recommended method of combining these three indices into a single composite value is no longer the risk priority number" — instead a three-axis reference table assigns each failure mode a high, medium or low Action Priority. Rowzee, "Understanding AIAG-VDA’s FMEA Process and Approach", Quality Digest, 18 June 2020. A second source puts it flatly: "the Risk Priority Number or RPN has been eliminated. It has been replaced by the AP or Action Priority process." Quality-One, AIAG & VDA FMEA.

  • The handbook also reorganised the method into seven steps — planning and preparation, structure analysis, function analysis, failure analysis, risk analysis, optimisation, results documentation — which is a different shape from the column-by-column worksheet most training data describes (Rowzee, as above).

  • RPN has not disappeared outside automotive. The generic standards remain in use — IEC 60812 for FMEA and FMECA, SAE J1739 in the automotive space — and RPN is still the dominant prior in most non-automotive material. When a prompt says "FMEA", expect the model to reach for Severity × Occurrence × Detection unless Action Priority is named.

  • Consequence for prompting: naming the edition matters here more than for most anchors. "FMEA" gets the classic worksheet; "AIAG & VDA FMEA (2019)" gets seven steps and Action Priority. The two produce different artefacts.

Gherkin

Details
Also known as

Cucumber DSL, BDD Scenario Language

Core Concepts:

Feature

Top-level description of a software capability, grouping related scenarios that describe expected behavior

Scenario

A concrete example of how the system should behave in a specific situation, written as a sequence of steps

Given-When-Then steps

Structured step types — Given establishes preconditions, When describes an action, Then asserts the expected outcome; And/But extend any step type

Background

A set of steps shared across all scenarios in a feature file, executed before each scenario

Scenario Outline / Examples

Parameterized scenario template with a data table, allowing the same behavior to be tested with multiple input sets

Docstrings and Data Tables

Inline multi-line strings and tabular data attached to steps for richer input specification

Natural language support

Gherkin keywords are translated into 70+ human languages, enabling non-English teams to write scenarios in their native language

Human-readable and machine-executable

Scenarios serve as both documentation for stakeholders and executable tests driven by step definitions in the implementation language

Key Proponent

Aslak Hellesøy (creator of Cucumber and the Gherkin language, 2008); influenced by Dan North’s BDD and JBehave

When to Use:

  • Defining acceptance criteria collaboratively between developers, testers, and business stakeholders

  • Creating living documentation that stays synchronized with the system’s behavior

  • Writing automated acceptance tests that non-technical stakeholders can read and verify

  • Projects adopting Behavior-Driven Development (BDD) with tools like Cucumber, SpecFlow, or Behave

IEC 61508 SIL Levels

Details
Full Name

IEC 61508 Safety Integrity Levels

Also known as

Functional Safety Levels, SIL Classification

Core Concepts:

Four Safety Integrity Levels
SIL 1 (lowest)

10-2 ≤ PFD < 10-1 (tolerable risk reduction)

SIL 2

10-3 ≤ PFD < 10-2 (moderate risk reduction)

SIL 3

10-4 ≤ PFD < 10-3 (substantial risk reduction)

SIL 4 (highest)

10-5 ≤ PFD < 10-4 (maximum risk reduction)

Risk-based classification

SIL level determined by hazard analysis and risk assessment

Safety lifecycle

Systematic approach from concept to decommissioning

Hardware requirements

Architectural constraints and systematic capability

Software requirements

Development methods, verification, and validation techniques

Probability of Failure on Demand (PFD)

Key metric for safety function reliability

Safety instrumented systems (SIS)

Protection layers implementing safety functions

Verification and validation

Independent assessment of safety claims

Systematic failures

Focus on preventing design and specification errors

Random hardware failures

Statistical analysis and fault tolerance

Key Standard

IEC 61508 "Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems" (first edition 1998, second edition 2010)

  • IEC 61511 (Process industry)

  • ISO 26262 (Automotive)

  • EN 50128 (Railway)

  • IEC 62304 (Medical devices)

When to Use:

  • Developing safety-critical embedded systems

  • Assessing risk in industrial automation and control systems

  • Certifying safety instrumented systems

  • Designing fail-safe mechanisms and redundancy

  • Establishing software development processes for safety applications

  • Conducting hazard and operability (HAZOP) studies

  • Implementing functional safety management systems

Current Status:

  • The prior is trained almost entirely on Edition 2 (2010), which has been the published standard for 15+ years — Ed-2 knowledge (SIL tables, lifecycle phases) is still authoritative

  • Edition 3 is in final approval as of mid-2026 (IEC forecasts publication around October 2026), adding cybersecurity alignment with IEC 62443 and guidance on AI/ML in safety functions — when "current edition" matters, check the IEC webstore rather than assuming Ed 3 is out

Jidoka

Details
Full Name

Jidoka (自働化)

Also known as

autonomation; automation with a human touch; automation with human wisdom; built-in quality; "stop the line"

Core Concepts:

The Essence Is Automatic Stopping, Not Automatic Running

Art Smalley puts it in one line: "The essence of jidoka is 'automatically stop,' not 'automatically run.'" A machine that keeps producing while something is wrong is worse than a machine that halts, because it converts one problem into a batch of defects.

The Extra Stroke Carries the Meaning

The Japanese is written 自働化 with the person radical in 働, not the plain 自動化 of ordinary automation. The character difference is the whole claim: a machine with human judgement built into it, not a machine that merely moves.

Four Steps, Every Time

Detect the abnormality. Stop. Fix or contain the immediate condition. Investigate the root cause and countermeasure it. Stopping without step four is a line that halts often and learns nothing — which is how jidoka acquires a reputation for costing output.

Andon Extends It to People

The same authority is given to the operator. Pulling the cord or pressing the button raises a visible signal and brings a team leader; the person is treated as the detector the machine lacks.

One Pillar of Two

Taiichi Ohno built the Toyota Production System on Just-in-Time and jidoka. They work against each other’s weaknesses: JIT strips out the inventory that hides problems, jidoka makes sure the exposed problem stops the line rather than flowing downstream. Naming only JIT is naming half of TPS.

It Frees People from Watching Machines

Because the loom stopped itself, one operator could tend many. Autonomation separates human work from machine work — the economic argument, distinct from the quality one.

Origin

Sakichi Toyoda’s looms. Toyota Industries records that his 1896 power loom, "Japan’s first power loom built of steel and wood", was "also equipped with the weft auto stop mechanism", and that the 1924 Type G added "weft break auto-stop, warp break auto-stop and other devices". Ohno carried the principle from the loom to the assembly line.

When to Use:

  • Designing a pipeline or system that must halt on a bad signal rather than push a defect downstream — failing builds that block merge, a canary that aborts the rollout

  • Arguing against "keep it green, we’ll fix it later" — jidoka is the named counter-position

  • Fail-fast design: assertions, preconditions, circuit-breaker tripping, refusing to serve on a failed health check

  • Giving the person closest to the work the authority to stop it, and making that stop visible

  • Whenever the discussion is about detection and the response to detection, since jidoka insists both belong together

Common Misunderstandings:

  • ❌ "Jidoka means automation" — the whole point is the extra character; plain automation is 自動化

  • ❌ "Jidoka is the andon cord" — the cord is one instance; the principle is detect-stop-fix-investigate

  • ❌ "Stopping is the goal" — stopping is the trigger for the investigation that follows

  • ❌ "Jidoka and Just-in-Time are alternatives" — they are the two pillars and depend on each other

  • ✓ "Build quality in rather than inspect it in" — the standard English gloss, and accurate

Criticism:

  • The West took the glamorous pillar and left this one. Strategos: "Yet this aspect of TPS is mostly ignored in the West", and "when it is discussed, there is a lot of confusion and misunderstanding", partly because "Japanese language (at least in everyday usage) seems less precise than English and the several meanings of Jidoka do not translate well". The harder judgement is on management: "The line-stoppage version of Jidoka requires a strong stomach and purity of mind that few managers (Japanese or American) possess." Strategos, "Jidoka & Autonomation".

  • Most organisations lack the capacity jidoka assumes. Christoph Roser’s objection is not philosophical but arithmetic: stopping only pays if somebody is free to solve the problem, and in most plants "your highly qualified problem solver simply has no time to solve problems". The consequence is the compromise the method is supposed to prevent — "you may have to do with a quick fix" instead of root-cause elimination, because Toyota’s staffing slack is not there. Roser, "The Philosophy and Practicality of Jidoka" (24 July 2018).

  • The economics of never stopping are also on record. Roser contrasts Toyota with GM’s old Fremont plant, where a "never stop" policy pushed defects downstream and produced "massive problems" and "enormous" repair costs — while the line stopped frequently anyway. The criticism cuts both ways: jidoka is expensive, and not doing it is expensive too.

  • Detection without response is the common failure. Smalley warns against treating jidoka as merely "pulling a cord" while ignoring the engineering, against conflating it with any automation, and against "installing detection without response systems". Without a culture that lets output drop for a quality stop, the andon is decoration. Smalley, "Jidoka — Automation with a Human Touch".

Current Status:

  • The founding date is genuinely disputed, and sources disagree by decades. Toyota Industries' own history gives 1896 for the power loom with a weft auto-stop mechanism and 1924 for the non-stop-shuttle-change Type G with both weft- and warp-break auto-stop. Toyota Industries, "The Story of Sakichi Toyoda". Art Smalley dates the automatic loom differently — conceived around 1901 and completed in 1926 after some 25 years of development. Art of Lean, Jidoka. Both are reputable; the honest form is "Sakichi Toyoda’s looms, from the 1896 power loom to the 1924 Type G", not a single year.

  • The term is stable and still current at Toyota, where jidoka and Just-in-Time remain the two named pillars of TPS. Unlike dmaic or qfd it carries no ISO standard; it is transmitted through practice and literature.

  • In software the concept arrived without the word. Andon cords, stop-the-line CI, blocking merge on red, automated rollback on a failing canary, and circuit-breaker tripping are all jidoka; teams rarely call them that. Naming it supplies what the English terms leave out: the obligation to investigate the cause, not just to stop.

Principle of Least Privilege (Saltzer & Schroeder)

Details
Full Name

Least privilege, design principle (f) in Jerome H. Saltzer and Michael D. Schroeder, "The Protection of Information in Computer Systems", Proceedings of the IEEE 63(9), September 1975, pp. 1278-1308

Also known as

PoLP, least authority (POLA), need-to-know, minimal privilege

Core Concepts:

One of Eight, and the Authors' Own Words

Saltzer and Schroeder introduce the set with "Here are eight examples of design principles that apply particularly to protection mechanisms." Principle (f) reads: "Least privilege: Every program and every user of the system should operate using the least set of privileges necessary to complete the job." Quoting that sentence is the whole anchor; everything below is its consequences.

Accident Before Attack

The stated first purpose is not defence against an adversary. "Primarily, this principle limits the damage that can result from an accident or error." The authors give the reduction of "potential interactions among privileged programs" as the second reason and audit scope as the third: "if a question arises related to misuse of a privilege, the number of programs that must be audited is minimized."

Need-to-Know Is Their Example, Not a Separate Idea

"The military security rule of 'need-to-know' is an example of this principle." So is the firewall placement argument: "if a mechanism can provide 'firewalls,' the principle of least privilege provides a rationale for where to install the firewalls."

"The Job" Is the Scoping Term

The minimum is relative to a task, so the grant has to be recomputed when the task changes. That is the reading behind just-in-time access, short-lived tokens and scoped workload identity: the privilege expires with the job rather than outliving it.

Modern Descendants

Default deny (the authors' own fail-safe defaults), separation of duties (their separation of privilege), need-to-know, capability-based security and the renamed principle of least authority, RBAC/ABAC/ReBAC as the policy languages, just-in-time and break-glass access as the lifetime mechanisms.

Zero Trust Is a Different Claim

Zero Trust removes implicit trust from network location — verify every request, wherever it comes from. Least privilege constrains the size of the grant. Zero Trust architectures use least privilege, but the two are independent: a system can authenticate every single request and still hand out standing admin.

When to Use:

  • Writing CI/CD pipelines — the measurement below shows this is where the anchor actually changes output

  • IAM policies, service accounts, workload identity and database grants

  • Agent and tool permissions, where the grant is an LLM’s reach into a system (meaningful-human-control)

  • Container and process design: which capability does this process genuinely need

  • Reviewing an Elevation of Privilege threat from stride, or Broken Access Control from owasp-top-10

Common Misunderstandings:

  • ❌ "Least privilege means read-only" — it means the least set for the job, which sometimes includes write

  • ❌ "It is purely a security principle" — damage from "an accident or error" is the first reason the authors give

  • ❌ "Zero Trust is least privilege" — per-request verification and minimal grants are separate properties

  • ❌ "Grant it once and you are done" — the minimum is defined relative to the job, so it has to shrink when the job ends

  • ❌ "The minimum set can be computed" — the central academic objection says it cannot (see Criticism)

  • ✓ "Default deny, grant the least set for this job, and make the grant expire" — the operational form

Criticism:

  • Computing the minimum privilege set is infeasible, and the honest alternative grants more. Fred B. Schneider of Cornell builds the case formally: the policy that grants exactly the privileges an extension needs cannot generally be derived, because establishing that the code meets its specification "is undecidable for general-purpose programming and specification languages", and a high-level specification "lacks information about how Ext works that would be needed for deducing" the policy. His conclusion: "So at least for the time being, it seems as though obtaining μPriv(Ext, Ext) for use by a reference monitor interposed between a base and its extensions is infeasible, and alternatives must be sought." The alternative he proposes is deliberately named against the original: "One such alternative, which might be called a Principle of Most Privilege, is to enforce a policy Priv(B) that merely prevent extensions from subverting the base system B." The paper closes that "practical protection for extensible systems is most easily obtained using policies that grant more privileges than would μPriv(Ext, Ext) — the least privilege and more." Schneider, "Least Privilege and More", a revised version of a paper written in honour of Roger Needham (1935-2003) for the conference "Roger Needham: 50 and 5" at Microsoft Research, Cambridge (17 February 2003).

  • The principle outran its mechanisms, and the 1975 formulation left out the dynamic case. Schneider also notes that the authors' own Multics was finer-grained than what followed: "Multics can be seen as superior to today’s operating systems, with their relatively coarse-grained targets of access control (viz programs and files)." And on a gap in the text itself: "The Saltzer-Schroeder formulation also does not explicitly call out the benefits of allowing the set of privileges associated with a program to change as execution progresses." Anyone quoting the 1975 wording as complete guidance for just-in-time access is reading in something the paper does not say.

  • The "permission sprawl" objection is practitioner folklore here, not a sourced critique. The complaint that least privilege degenerates into thousands of unmaintainable fine-grained grants is common in cloud IAM writing, but searches in English and German turned up no named author arguing it in a retrievable, quotable piece — the material found was vendor marketing for permission-management products. Recorded as an open objection, not a sourced one.

Current Status:

  • The anchor changes nothing on tasks that already name the problem. Measured on claude-haiku-4-5 on 3 October 2026: on scenarios that described a privilege violation, baseline and anchored output said the same thing — remove local admin, segment the network — and only the baseline used the phrase "blast radius". Recognition is near-total, so on those tasks naming the principle buys nothing.

  • It earns its keep on build and deploy artifacts. Same measurement, different task: "write a GitHub Actions workflow that builds a Node service and deploys it to a staging ECS cluster". Both unanchored runs produced long-lived AWS_ACCESS_KEY_ID secrets and no permissions: block at all; both anchored runs produced a permissions: block, OIDC role-to-assume, and no static keys. Reproduced twice in each condition. Use the anchor where the principle is not the obvious answer.

LINDDUN

Details
Full Name

LINDDUN Privacy Threat Modeling Framework

Also known as

LINDDUN GO, Privacy Threat Modeling, Privacy STRIDE

Core Concepts:

Linkability

Attacker can link two items of interest (e.g., data items, messages, or actions) without knowing the identity of the data subject

Identifiability

Attacker can identify a data subject from a set of data subjects through items of interest

Non-repudiation

Data subject cannot deny having performed an action or having sent a message; system logs become a liability

Detectability

Attacker can deduce the existence or absence of a data item or communication, even without access to its content

Disclosure of Information

Unauthorized exposure of data to a party without the data subject’s consent; classical confidentiality breach from a privacy perspective

Unawareness

Data subjects are not sufficiently informed about the collection, processing, storage, and sharing of their personal data; violates transparency principles

Non-compliance

System does not comply with privacy legislation, regulations, or organizational privacy policies (e.g., GDPR, CCPA, HIPAA)

Key Proponents

Kim Wuyts, Riccardo Scandariato, Wouter Joosen (KU Leuven / DistriNet Research Group, published 2014)

When to Use:

  • Conducting privacy threat modeling during the design or architecture phase

  • Performing privacy impact assessments (PIA) or data protection impact assessments (DPIA)

  • Identifying privacy risks in systems that handle personal data

  • Evaluating compliance with GDPR, CCPA, HIPAA, and other privacy regulations

  • Integrating Privacy by Design into the software development lifecycle

  • Training development teams on privacy engineering concepts

Current Status:

  • The prior likely reflects the original academic LINDDUN of the 2010s: a single heavyweight DFD-based method with the old seven categories including plain "Unawareness"

  • Current LINDDUN (KU Leuven) is a family of three flavors — GO (33-card lightweight deck, 2024 redesign), PRO (systematic), and MAESTRO (most thorough) — built on a 2024-updated threat knowledge base where the "U" became "Unawareness & Unintervenability"

LLM-Evaluations

Details
Full Name

Large Language Model Evaluations

Also known as

LLM Benchmarking, LLM Assessment, Foundation Model Evaluation

Core Concepts:

Benchmark Suites

Standardized datasets and tasks used to compare LLM capabilities — MMLU (Massive Multitask Language Understanding), HellaSwag, HumanEval, BIG-Bench, GSM8K, TruthfulQA, ARC

Evaluation Metrics

Quantitative measures of model quality — perplexity, accuracy, BLEU, ROUGE, F1, pass@k (code generation), exact match, calibration

Automatic vs. Human Evaluation

Automated scoring via metrics or reference outputs (fast, scalable) vs. human judgment (nuanced, expensive); hybrid approaches such as LLM-as-judge

HELM (Holistic Evaluation of Language Models)

Stanford framework evaluating models across multiple scenarios and metrics simultaneously to surface trade-offs across accuracy, robustness, fairness, and efficiency

Chatbot Arena / Elo Rating

Human preference-based evaluation where two models respond to the same prompt and humans choose the better answer; produces Elo-style rankings

Open LLM Leaderboard

Hugging Face / EleutherAI hosted ranking of open-source models across standardized benchmarks enabling reproducible comparisons

Red-Teaming & Safety Evaluation

Systematic adversarial probing for harmful outputs, jailbreaks, and failure modes; a required step before production deployment

Contamination & Overfitting

Risk that a model’s training data includes benchmark test sets, inflating apparent performance; mitigated by held-out or dynamic benchmarks

Task-Specific vs. General Evaluation

Targeted evaluation for a specific use case (e.g., code, summarization, RAG retrieval) vs. broad capability assessment across diverse domains

Key Proponents

Percy Liang et al. (Stanford, "Holistic Evaluation of Language Models"), EleutherAI ("Language Model Evaluation Harness"), LMSYS ("Chatbot Arena: Benchmarking LLMs in the Wild")

When to Use:

  • Selecting a foundation model for a specific application domain

  • Comparing fine-tuned model versions during iterative training

  • Validating that a model meets quality, safety, and fairness requirements before deployment

  • Reproducing or challenging published model capability claims

  • Establishing regression baselines when updating a deployed model

  • Communicating model strengths and limitations to non-technical stakeholders

Current Status:

  • The methodology is stable (held-out benchmarks, harnesses, holistic suites); any concrete benchmark list is cutoff-bound — MMLU was already superseded by MMLU-Pro and GPQA by 2024, and those will saturate too

  • Never trust a model’s memorised benchmark numbers or "current leading benchmark" claims: point it at living sources — lm-evaluation-harness and HELM — and date every score you quote

MISRA C

Details
Full Name

MISRA C — Guidelines for the use of the C language in critical systems, published by MISRA, originally the Motor Industry Software Reliability Association. First edition 1998, then aimed at vehicle-based software; the title above dates from MISRA C:2004, which was followed by MISRA C:2012, the consolidated MISRA C:2023 and the incremental update MISRA C:2025 (misra.org.uk).

Also known as

the MISRA guidelines, MISRA rules; editions by year, such as MISRA C:2012

Core Concepts:

A Safe Subset of C

MISRA C does not add anything to the language. It removes or restricts the parts whose behaviour is undefined or unspecified, or that experience shows are easy to get wrong. Implementation-defined behaviour is not banned outright; where the program depends on it, it has to be documented. What remains is a C that a reviewer and a static analyser can reason about.

Mandatory, Required, Advisory

Every guideline carries a category. Mandatory guidelines admit no exception. Required ones may be broken only through a formal, documented deviation. Advisory ones are recommendations that a project may relax.

Directives and Rules

Rules are stated precisely enough to be checked against the source code. Directives concern the process and the surrounding documentation and cannot be fully checked from the code alone. A tool report covers the rules — completely only for the decidable ones — and at best parts of the directives.

Deviation Instead of Silence

Breaking a required guideline is allowed, but only with a written deviation that names the guideline, the reason, the scope and the approval. Compliance means "every violation is either fixed or justified", not "zero warnings".

The Essential Type Model

MISRA C reasons about the type a value really has — Boolean, character, signed, unsigned, enum, floating — instead of C’s integer promotions. Implicit conversions between these categories, especially narrowing and mixing signedness, are what the model exists to stop.

Typical Themes

No dynamic memory allocation, no recursion, restricted pointer arithmetic, a default in every switch, braces on every body, every return value checked or explicitly discarded, no unreachable or unused code, a restricted preprocessor and standard library.

Rule Texts Belong to MISRA

The guideline texts are copyrighted and sold by MISRA. Name themes and categories freely; for an individual rule number and its wording, the licensed document and a qualified checker are the references — not a model’s memory.

When to Use:

  • Embedded C for automotive, rail, medical, aerospace or industrial control, where a functional-safety standard such as iec-61508-sil-levels expects a coding standard

  • Reviewing or rewriting C so that a static analyser’s MISRA report becomes the review checklist

  • Deciding a project’s compliance policy: which edition, which advisory guidelines are relaxed, who approves deviations

  • Driving a model: "make this MISRA C compliant and list every deviation with its reason" asks for the subset and for the paper trail, not only for safer code

Common Misunderstandings:

  • ❌ "MISRA compliance means zero warnings" — it means every violation is fixed or covered by an approved deviation

  • ❌ "MISRA is only for cars" — the name has outgrown its origin; the guidelines are used wherever C runs in critical systems

  • ❌ "A model’s rule numbers can be trusted" — in the 2026-10-09 measurement a model cited a "Rule 34.1" that MISRA C does not have; check numbers against the licensed document or a checker

  • ❌ "MISRA C makes C safe" — it removes known hazards; it does not prove the program correct

  • ✓ "Use the edition the project has committed to, check it with a tool, and write down every deviation"

Criticism:

Current Status:

  • The edition a model has in mind is probably MISRA C:2012. MISRA lists MISRA C:2012 as published on 18 March 2013, MISRA C:2023 as published in April 2023 to consolidate the work since and to extend support to C11 and C18, and MISRA C:2025 as published in March 2025 as an incremental update. MISRA, "MISRA C". Name the edition the project uses; guideline numbers differ between editions.

Mutation Testing

Details
Also known as

Mutation Analysis, Fault-Based Testing

Core Concepts:

Test quality assessment

Evaluate how effective tests are at detecting bugs

Code mutations

Deliberately introduce small, syntactic changes (mutants) into source code

Mutation operators

Rules for creating mutants (e.g., change > to >=, flip boolean, remove statement)

Killed mutants

Mutations caught by failing tests (good)

Survived mutants

Mutations not detected by tests (indicates test weakness)

Equivalent mutants

Mutations that don’t change program behavior (false positives)

Mutation score

Percentage of killed mutants: (killed / (total - equivalent)) × 100%

First-order mutations

Single atomic change per mutant

Higher-order mutations

Multiple changes combined

Weak mutation

Test only needs to create different internal state

Strong mutation

Test must produce different final output

Test adequacy criterion

"Are tests good enough?" not just "Is coverage high enough?"

Key Proponents

Richard Lipton (theoretical foundation, 1971), Richard DeMillo, Timothy Budd

Key Tools:

  • PITest (Java)

  • Stryker (JavaScript/TypeScript, C#, Scala)

  • Mutmut (Python)

  • Infection (PHP)

  • Mull (C/C++)

When to Use:

  • Evaluating test suite quality beyond coverage metrics

  • Identifying gaps in test assertions

  • Critical systems requiring high test confidence

  • Complementing code coverage as a quality metric

  • Refactoring legacy code with existing tests

  • Teaching effective testing practices

  • Continuous improvement of test effectiveness

Practical Challenges:

Computational cost

N mutations × M tests = expensive

Equivalent mutant problem

Hard to automatically detect functionally identical mutants

Time investment

Can be slow on large codebases

Mitigation strategies

Selective mutation, mutation sampling, incremental analysis

Relationship to Other Practices:

Code coverage

Mutation testing reveals that high coverage ≠ good tests

TDD

Strong TDD often produces high mutation scores naturally

Property-based testing

Orthogonal but complementary approaches

Fault injection

Similar concept applied to production systems

Nielsen’s 10 Usability Heuristics

Details
Full Name

Jakob Nielsen’s ten usability heuristics for user interface design — the rules of thumb behind heuristic evaluation, first published with Rolf Molich in 1990 and revised by Nielsen in 1994

Also known as

Nielsen’s heuristics, the ten usability heuristics

Core Concepts:

  • Rules of thumb, not guidelines. The Nielsen Norman Group calls them in its video on heuristic evaluation "broad rules of thumb and not specific usability guidelines". They point at kinds of problems; they do not prescribe solutions.

  • Ten heuristics. Visibility of system status; match between system and the real world; user control and freedom; consistency and standards; error prevention; recognition rather than recall; flexibility and efficiency of use; aesthetic and minimalist design; help users recognize, diagnose, and recover from errors; help and documentation.

  • The basis of heuristic evaluation. Evaluators inspect an interface and map each problem they find to a heuristic. Nielsen and Molich introduced the method in "Heuristic evaluation of user interfaces" (Proc. ACM CHI'90).

  • Several evaluators, not one. The method assumes several evaluators who inspect independently and then pool their findings.

  • A revised set from 1994. Nielsen’s "Enhancing the explanatory power of usability heuristics" (Proc. CHI'94) produced the set of ten in use today. In "Jakob Nielsen’s 10 Usability Heuristics as Haikus" (11 October 2023) Nielsen noted that the set turns 30 in 2024.

  • A cheap inspection, not a user test. Heuristic evaluation finds likely problems without recruiting users. It complements testing with real users; it does not replace it.

    Key Proponents

    Jakob Nielsen and Rolf Molich ("Heuristic evaluation of user interfaces", Proc. ACM CHI'90, pp. 249–256); Rolf Molich and Jakob Nielsen ("Improving a human-computer dialogue", Communications of the ACM 33(3), 1990); Jakob Nielsen ("Enhancing the explanatory power of usability heuristics", Proc. CHI'94, pp. 152–158); the Nielsen Norman Group. Sources listed in Wikipedia: Heuristic evaluation

When to Use:

  • Reviewing a form, screen or flow when the findings should be named and sorted, not just listed

  • Expert reviews early in a project, before a usability test is affordable

  • Writing review checklists for designers, developers and QA

  • Asking a model to review a UI: with the anchor, its findings map to named heuristics

Common Misunderstandings:

  • Running it with one evaluator. The method assumes several. A single reviewer tends to flag problems that real users never hit.

  • Replacing user testing. The heuristics predict problems; only users confirm them.

  • Treating heuristics as specific guidelines. They are broad categories. "Consistency and standards" does not say which standard to follow.

  • Expecting the defects to be found only with the anchor. In our prior test on 2026-10-28, the baselines found the defects of a signup form but named no heuristic. With the anchor, six of six runs mapped the defects to at least five of the ten heuristics by name, Sonnet to nine and ten. The bare "heuristic evaluation" resolved to HCI on every tier.

Criticism:

  • Oversimplified and rooted in the desktop era. A. Ballav argues in "Nielsen’s Heuristic Evaluation: Limitations in Principles and Practice" (User Experience Magazine 17(4), 2017) that the heuristics are generic and shaped by desktop software: "heuristic evaluations suffer from oversimplification."

  • False positives. Todd Zazelenchuk notes on Userfocus that evaluations are often done by a single evaluator and flag problems real users never encounter. The method is "capable of generating a lot of 'false positives'".

OWASP ASVS (Application Security Verification Standard)

Details
Full Name

OWASP Application Security Verification Standard

Also known as

ASVS, "ASVS Level 2" in its usual spoken form, the verifiable counterpart of the OWASP Top 10

Core Concepts:

Requirements, Not Awareness

The Top 10 ranks categories of risk so that people know what to worry about. ASVS states what a given application must do, as individually numbered, individually testable requirements. Name owasp-top-10 and you get a list of concerns; name ASVS and you get controls somebody can pass or fail. The two do different jobs, which is why the catalog keeps both.

Three Levels, and You Have to Pick One

L1 is the minimum baseline, L2 is the level intended for applications handling sensitive data, L3 is for high-assurance systems such as banking or healthcare. "Apply ASVS" is therefore an underspecified instruction — the work at L1 and at L3 differs by an order of magnitude. Say ASVS L2.

Numbered Requirements Are the Mechanism

Requirements carry IDs in a chapter.section.requirement scheme, so a pentest finding, a backlog item and a test case can all point at the same string. That traceability spine, not the prose, is what ASVS adds over a generic review.

Chapters Are the Decomposition

Authentication, session management, access control, validation and encoding, cryptography, error handling and logging, data protection, communications, configuration, business logic, file handling, APIs. The chapter list is the reason an ASVS review covers the unglamorous half of application security instead of stopping at injection.

Name the Version, Because the IDs Moved

v5.0.0 reorganised the chapters and renumbered requirements. A V2.1.1 quoted from v4.0.3 does not denote the same requirement under v5.0. Any prompt or document that cites IDs has to say which version it cites.

Verification Is the Verb

ASVS is written for the person checking, not only for the person building. Requirements are phrased "Verify that…", so the standard reads as a test plan and can be handed to QA rather than only to a pentester.

When to Use:

  • Preparing or running a security review that needs a defined scope and a pass/fail outcome

  • Turning "make it secure" into a backlog — requirement IDs are estimable work items

  • Writing security acceptance criteria a QA engineer can execute

  • Procurement and audit, where a named level and version is a contractual statement (regulated-environment)

  • As the requirement layer under a threat model: stride or linddun names the threat, ASVS supplies the control to verify

Common Misunderstandings:

  • ❌ "ASVS is the long version of the Top 10" — different artefacts: one is an awareness ranking, the other a requirement catalogue with levels and IDs

  • ❌ "Apply ASVS" — incomplete; without a level the instruction has no scope

  • ❌ "A requirement ID identifies a requirement forever" — v5.0 renumbered, so an ID without a version is ambiguous

  • ❌ "Level 1 can be verified entirely from the outside" — disputed inside the project itself (see Criticism)

  • ✓ "Verify against ASVS L2, v5.0.0, and report each requirement with pass, fail or not applicable" — the form that actually produces a checklist

Criticism:

  • The claim that Level 1 is black-box testable is contested inside the project. Kevin W. Wall quotes v4.0.3’s own words — "Level 1 controls can be checked either automatically by tools or simply manually without access to source code" — and rejects them: "I think that most of the Level 1 requirements in the 'Validation, Sanitization and Encoding' section are not generally testable in any reasonable fashion in most typical cases without access to source code." His verdict on the wording is blunt: "right now, this over-promising seems almost a case of ultra-hype and therefore (unintentionally) misleading." Wall, "OWASP ASVS overpromising on Level 1 requirements being testable without source code", OWASP/ASVS Discussion #1651 (6 June 2023).

  • A quarter of the standard may not apply, and deciding that is the work. Mateusz Gołąbek’s report on taking an existing product through ASVS v4.0.3 Level 2 counts 267 requirements, of which 80 were judged not applicable, and concludes that compliance in a mature system takes "careful review, in-depth research, and targeted fixes". That number is the honest price of the anchor: output that emits 267 verdicts without triage has skipped the hard part. Gołąbek, "Implementing OWASP ASVS", SoftwareMill (3 February 2025).

  • The "checkbox security" objection has no citable owner. The charge that verification standards invite tick-the-box compliance is repeated widely in vendor and consultancy writing, but searches in English and German produced no named author making it against ASVS specifically in a retrievable piece. It is recorded here as an open objection, not a sourced one.

Current Status:

  • v5.0.0 is current, released 30 May 2025, with v4.0.3 as the long-lived predecessor most training data was written against; the project publishes mappings in both directions between the two. OWASP/ASVS releases.

  • The anchor earns its keep where the baseline reaches for the wrong standard. Measured on claude-haiku-4-5 on 3 October 2026: asked to prepare for a security review with no anchor, the model reached for SOC 2 and ISO 27001 — governance frameworks, not application requirements. Naming ASVS moved it to L2 and to chapter citations (V4, V6, V13) against concrete work items.

  • Attribution is the soft spot, which is one more reason to cite the version rather than a person. Asked who created ASVS, the same model answered creator=Mike Goodwin (OWASP); year=2009 with medium confidence. The institution is right; the named lead is not. Cite "ASVS v5.0.0, OWASP Foundation" and do not let a model name an author.

OWASP Top 10

Details
Full Name

OWASP Top 10 Web Application Security Risks

Also known as

OWASP Top Ten, Web Application Security Top 10

Core Concepts:

A01 – Broken Access Control

Failure to enforce restrictions on what authenticated users can do; most prevalent web application risk

A02 – Cryptographic Failures

Sensitive data exposed due to weak or absent encryption; previously called "Sensitive Data Exposure"

A03 – Injection

Untrusted data sent to an interpreter as part of a command or query (SQL, OS, LDAP injection)

A04 – Insecure Design

Missing or ineffective security controls resulting from flawed design and threat modeling

A05 – Security Misconfiguration

Insecure default settings, incomplete configurations, open cloud storage, verbose error messages

A06 – Vulnerable and Outdated Components

Use of components (libraries, frameworks) with known vulnerabilities

A07 – Identification and Authentication Failures

Weaknesses in authentication, session management, and credential handling

A08 – Software and Data Integrity Failures

Code and infrastructure that does not protect against integrity violations (e.g., insecure deserialization, CI/CD tampering)

A09 – Security Logging and Monitoring Failures

Insufficient logging, detection, and response to breaches

A10 – Server-Side Request Forgery (SSRF)

Server fetches remote resources from attacker-controlled URLs without validation

Key Proponent

OWASP Foundation (https://owasp.org/Top10/, first published 2003; the list above is the 2021 edition)

When to Use:

  • Performing security risk assessments on web applications

  • Establishing secure coding guidelines and developer training programs

  • Conducting threat modeling and security design reviews

  • Prioritizing security findings during code reviews and penetration tests

  • Defining acceptance criteria for security requirements

  • Auditing third-party or open-source components for known vulnerabilities

Current Status:

  • The list above is the 2021 edition. The current released edition is OWASP Top 10:2025 (RC November 2025, finalized around the turn of 2025/26): it adds Software Supply Chain Failures (A03) and Mishandling of Exceptional Conditions (A10), folds SSRF into Broken Access Control, and re-ranks several categories (what changed)

  • An LLM’s training-data prior for "OWASP Top 10" most plausibly serves the 2021 edition — it was current for over four years and dominates tutorials, courses, and blog material; models with earlier cutoffs may even blend in 2017

  • Name the edition explicitly in prompts ("OWASP Top 10:2025" vs ":2021") — bare category IDs are ambiguous across editions: A03 means Injection in 2021 but Software Supply Chain Failures in 2025

Poka-Yoke

Details
Full Name

Poka-Yoke (ポカヨケ), from poka (inadvertent mistake) and yokeru (to avoid)

Also known as

mistake-proofing, error-proofing; originally baka-yoke (fool-proofing); in interface design, a forcing function

Core Concepts:

An Error Is Not a Defect

This distinction is the whole method. A human error is a slip anyone can make; a defect is what reaches the next step because nothing caught the slip. Errors are inevitable and are not the target. Art Smalley states the design rule plainly: "you cannot eliminate human errors, but you can make it impossible for errors to become defects."

Prevention Beats Detection

Devices split into two classes, and the order is not a preference. A prevention (control) device makes the mistake physically impossible — an asymmetric connector that only mates one way. A warning (detection) device lets the mistake happen and signals it. Prevention is strictly preferred, because a warning still relies on a human noticing.

Three Levels of Catch

Prevent the mistake; or detect the mistake before it becomes a defect; or detect the defect. Each step down the list is worse, and a device that only reaches level three is weak error-proofing, not strong.

Design Out the Error, Do Not Train Around It

The response to a recurring mistake is a changed process or artefact, never a reminder, a checklist entry, or a sterner briefing. If the fix is "be more careful," it is not a poka-yoke.

Cheap, Simple, at the Source

Shingo’s devices are pins, jigs, counters, limit switches — installed where the error happens, not at a downstream inspection station. His term for this is source inspection: inspect the condition that causes the defect, not the defect.

The Naming History Is Part of the Concept

Shingo first called these devices baka-yoke, fool-proofing. Around 1963, at Arakawa Auto Body, a part-time worker burst into tears at the term; "it was clear to me that 'foolproofing' was a poorly chosen term," he wrote. The rename shifts the blame from the person to the process, which is the method’s actual claim.

Key Proponent

Shigeo Shingo, who systematised and named the practice and set it out in Zero Quality Control: Source Inspection and the Poka-Yoke System (Productivity Press, English edition 1986).

When to Use:

  • When a recurring defect traces back to a slip anyone could make, not to missing knowledge

  • Designing APIs, CLIs, and configuration formats so a wrong call cannot be expressed — types over validation, enums over strings, required arguments over defaults

  • Build and deployment guardrails: a pre-commit hook that refuses a secret, a pipeline that cannot deploy an untagged image

  • User interfaces where a destructive action needs a forcing function rather than a warning dialogue

  • As the counterweight to five-whys: once the cause is known, poka-yoke is what makes the cause unrepeatable

Common Misunderstandings:

  • ❌ "Poka-yoke means idiot-proofing" — Shingo renamed it precisely to drop that reading

  • ❌ "A warning light is a poka-yoke" — it is the weaker class; a real poka-yoke removes the option

  • ❌ "It eliminates human error" — it eliminates the consequence; the error still occurs

  • ❌ "It is a manufacturing technique" — the mechanism is a constraint in a design, and applies wherever a design can carry one

  • ✓ "Make the wrong thing impossible, not merely discouraged" — the working test for whether you have built one

Criticism:

  • Shingo’s authorship is contested, and the strongest challenge comes from inside the lean community. Christoph Roser writes: "Shigeo Shingo did not invent the Toyota Production System. He also did not invent the method of SMED," and dates his involvement late — "Shingo was involved only towards the end of the program around 1970, when he was contracted to do a class on quick changeover methods… he participated in only one quick changeover workshop at Toyota!" Roser grants him the naming and the transmission: "What he did was bring its knowledge to the United States and popularize it there. And that by itself is also a major achievement!" — including that he "coined key terms used in lean manufacturing (for example, SMED for quick changeovers or Poka Yoke for mistake proofing)." Roser, "On the Lean Guru Shigeo Shingo" (2 February 2014, updated 13 December 2025).

  • The books are his reading of Toyota, not Toyota’s. Art Smalley: "Shingo was an external consultant to Toyota, not a Toyota employee. His books present his interpretation of Toyota’s practices, which does not always align perfectly with Toyota’s internal understanding." Smalley, "Poka-Yoke", TPS Encyclopedia. Roser adds that the relationship cooled after Shingo published TPS details: "This publication was to my knowledge without consent of Toyota, and he no longer did any trainings at Toyota afterwards."

  • The reception in Japan was lukewarm. Roser, same source: "Japanese lean experts who read his books considered them mediocre when compared to the literature available in Japanese and overall very poorly written." The reputation is largely a Western one.

  • The reach is narrower than the enthusiasm. The technique addresses repeatable slips with an observable wrong condition. Where the correct answer is not known in advance — a diagnosis, a novel design decision, a judgement call — there is nothing to design against. No single citable critic was found stating this limit; it follows from the method’s own definition of source inspection, and is recorded here as a boundary rather than as sourced criticism.

Current Status:

  • It is a standing requirement in automotive quality management. IATF 16949 devotes clause 10.2.4 to error-proofing: organisations must "establish a documented process to determine the use of appropriate error-proofing methodology", record it in the process risk analysis such as a PFMEA, set a test frequency in the control plan, test the devices to failure or simulated failure, and hold a reaction plan for device failure. The standard states the requirement without using the word poka-yoke. Stojanovic, "How to establish an error-proofing process according to IATF 16949" (11 October 2017).

  • In English the neutral term has largely won. "Mistake-proofing" and "error-proofing" are the standard terms in quality literature and standards; "poka-yoke" survives as the recognisable label and is the stronger prior for a model.

  • In software the idea travels under other names — forcing functions, making illegal states unrepresentable, guardrails, fail-safe defaults. Naming poka-yoke explicitly buys the error-versus-defect distinction and the prevention-over-warning ranking, which those terms carry only loosely.

Property-Based Testing

Details
Also known as

Generative Testing, QuickCheck-style Testing

Core Concepts:

Properties

Invariants that should always hold

Generators

Automatic test data creation

Shrinking

Minimizing failing test cases to simplest form

Universal quantification

Testing "for all inputs"

Specification testing

Testing high-level properties, not examples

Edge case discovery

Finds cases you didn’t think of

Complementary to example-based

Works alongside traditional unit tests

Stateful testing

Testing sequences of operations

Model-based testing

Compare implementation against simpler model

Key Tools

QuickCheck (Haskell), Hypothesis (Python), fast-check (JavaScript), FsCheck (.NET)

When to Use:

  • Testing pure functions and algorithms

  • Validating business rules and invariants

  • Testing parsers and serializers

  • Finding edge cases in complex logic

  • Complementing example-based TDD

Red/Green TDD

Details
Also known as

Red-Green-Refactor, Classical TDD Cycle, Test-First Development

Core Concepts:

Red phase

Write a failing test first, before any production code. The test must actually run and fail for the right reason — compilation errors don’t count as red.

Green phase

Write the minimum production code required to make the failing test pass. Resist the urge to add functionality the test does not demand.

Refactor phase

With tests passing, improve the design — rename, extract, deduplicate — confident the test suite will catch regressions.

Small steps

Each cycle is deliberately small (seconds to minutes), not hours. Large leaps break the feedback loop.

Watch it fail

Verifying that the test actually fails before implementation catches tautological tests and typos in the test itself.

Test names describe behavior

Not method names. "Returns empty list when no users exist" tells you what the code does; "test getUsers" does not.

Minimum to pass

Fake it ('return 42'), hardcode, or copy-paste — whatever makes the test pass fastest. Generalization happens in the refactor phase via triangulation.

One test at a time

Only one failing test in the suite at any moment. Never add a second failing test before the first is green.

Key Proponents

Kent Beck ("Test-Driven Development: By Example", 2002); popularized for LLM coding agents by Simon Willison

When to Use:

  • Instructing LLM coding agents that default to implementing features first and writing tests afterwards

  • New production code where requirements can be expressed as concrete examples

  • Bug fixes — write a failing test that reproduces the bug, then fix

  • Refactoring legacy code that lacks test coverage (start by characterizing behavior)

  • Teaching disciplined incremental development

Criticism:

STRIDE Threat Model

Details
Full Name

STRIDE Threat Modeling Framework

Also known as

STRIDE Threat Model, Microsoft STRIDE

Core Concepts:

Spoofing

Impersonating another user, process, or system to gain unauthorized access; mitigated by strong authentication

Tampering

Unauthorized modification of data in transit or at rest; mitigated by integrity controls, digital signatures, and access controls

Repudiation

Denying that an action was performed when it actually was; mitigated by audit logging and non-repudiation mechanisms

Information Disclosure

Exposing sensitive data to unauthorized parties; mitigated by encryption, access control, and data minimization

Denial of Service

Disrupting or degrading availability of a system or service for legitimate users; mitigated by rate limiting, redundancy, and resilience

Elevation of Privilege

Gaining capabilities or permissions beyond what is legitimately authorized; mitigated by least-privilege principles and authorization checks

Key Proponents

Loren Kohnfelder and Praerit Garg (Microsoft, 1999); popularized by Adam Shostack ("Threat Modeling: Designing for Security", 2014)

When to Use:

  • Performing structured threat modeling during software design and architecture reviews

  • Identifying and categorizing potential threats in security assessments

  • Training developers to think adversarially about system security

  • Prioritizing security controls and mitigations during system design

  • Conducting security design reviews and red-team exercises

  • Establishing a shared vocabulary for discussing security threats across teams

TDD, Chicago School

Details
Also known as

Classicist TDD, Detroit School

Core Concepts:

State-based testing

Verify the state of objects after operations

Minimal mocking

Use real objects whenever possible; mock only external dependencies

Inside-out development

Start with core domain logic and build outward

Simplicity focus

Emergent design through refactoring

Red-Green-Refactor

The fundamental TDD cycle

YAGNI

You Aren’t Gonna Need It - avoid premature abstraction

Key Proponents

Kent Beck, Martin Fowler

When to Use:

  • Domain-driven design projects

  • When business logic is central

  • Smaller, cohesive modules

TDD, London School

Details
Also known as

Mockist TDD, Outside-In TDD

Core Concepts:

Mock-heavy testing

Heavy use of test doubles (mocks, stubs) to isolate units

Outside-in development

Start from the outermost layers (UI, API) and work inward

Interaction-based testing

Focus on verifying interactions between objects

Behavior verification

Test how objects collaborate rather than state

Interface discovery

Use tests to discover and define interfaces

Walking skeleton

Build end-to-end functionality early, then fill in details

Key Proponents

Steve Freeman, Nat Pryce ("Growing Object-Oriented Software, Guided by Tests")

When to Use:

  • Complex systems with many collaborating objects

  • When designing APIs and interfaces

  • Distributed systems where integration is costly

Test Data Builder (Pryce)

Details
Full Name

Test Data Builder — the Builder pattern applied to the Arrange phase of a test, named by Nat Pryce in "Test Data Builders: an alternative to the Object Mother pattern" (27 August 2007) and carried into Growing Object-Oriented Software, Guided by Tests (Steve Freeman and Nat Pryce, 2009)

Also known as

test builder, builder-based fixture, anOrder()…build(); successor to the Object Mother pattern. Peter Schuh and Stephanie Punke wrote the paper on it ("ObjectMother: Easing Test Object Creation in XP", XP Universe 2001), but they did not coin the name — Fowler records that it "was coined on a Thoughtworks project at the turn of the century"

Core Concepts:

The Problem Is Constructor Noise

Pryce starts from a test that has to name every field of an object graph to get one valid instance, and states the damage: "The code to create all those objects makes tests messy and hard to read and fills the tests with lots of unnecessary information that has nothing to do with the behaviour being tested. It also makes tests brittle: changes to the constructor arguments or the structure of the objects will break many tests."

Object Mother Is the Predecessor, and Its Failure Mode Is Variant Explosion

An Object Mother is a class of named factory methods — TestInvoices.newDeerstalkerAndCapeInvoice(). Pryce’s objection: "the Object Mother pattern does not cope at all well with variation in the test data. Every time programmers need some slightly different test data they add another factory method to the Object Mother." The end state is a dilemma: "Over time, the Object Mother becomes bloated, messy and hard to maintain. Either programmers add new factory methods without refactoring, in which case the Object Mother becomes full of duplicated code, or programmers refactor diligently, in which case the Object Mother becomes full of many, many fine-grained methods that each contain little more than a single new statement." Martin Fowler names the same fault from the other side: "Object Mothers do have their faults. In particular there’s a heavy coupling in that many tests will depend on the exact data in the mothers."

Four Rules Define the Builder

Pryce’s recipe, for each class you want in a test — a builder that "Has an instance variable for each constructor parameter", "Initialises its instance variables to commonly used or safe values", "Has a build method that creates a new object using the values in its instance variables", and "Has 'chainable' public methods for overriding the values in its instance variables."

Safe Defaults Plus Explicit Overrides

The defaults carry everything the test does not care about; the with…() calls name exactly what the test does care about. A test therefore reads as its own specification, because only the significant values appear in it.

but() for Variants, Builders Inside Builders

Pryce’s own list of what a complete builder needs: "declare the properties of a Banana; specify the default values of those properties; write a method to build a Banana with the property values collected by the builder; define a static factory function to act as syntactic sugar; make the constructor private to enforce use of the factory function; write chained 'with…' methods that capture properties explicitly defined by tests; and write a 'but' method so that tests can define builders relative to the properties of other builders." Nesting comes from the defaults themselves being built: in his InvoiceBuilder, Recipient recipient = new RecipientBuilder().build();.

public class BananaBuilder implements Builder<Banana> {
    private double ripeness = 0.0;
    private double curve = 0.5;

    private BananaBuilder() {}

    public static BananaBuilder aBanana() {
        return new BananaBuilder();
    }

    public Banana build() {
        Banana banana = new Banana(curve);
        banana.ripen(ripeness);
        return banana;
    }

    public BananaBuilder withRipeness(double ripeness) {
        this.ripeness = ripeness;
        return this;
    }

    public BananaBuilder withCurve(double curve) {
        this.curve = curve;
        return this;
    }

    public BananaBuilder but() {
        return new BananaBuilder()
                .withRipeness(ripeness)
                .withCurve(curve);
    }
}
The with…() Names Are the Named Arguments the Language Did Not Give You

Pryce’s comparison sets a positional factory call against a builder chain and then makes the point about the positional one: "Nothing in the first example will tell you that 'London' has been accidentally passed as the second street line instead of the city name." The builder turns an ordering bug into a compile-time-visible label.

Sometimes They Escape Into Production

"In some cases, Builders have so improved the code that they ended up being used in the production code as well."

Where It Sits

The builder is a tool for the Arrange step (arrange-act-assert). It is the GoF Builder (gof-builder-pattern) aimed at a different goal, and its source text is the London-School book (tdd-london-school).

When to Use:

  • Tests littered with long constructor calls whose arguments have nothing to do with the behaviour under test

  • An Object Mother that has grown past a dozen factory methods, or that tests now depend on field by field

  • Immutable value objects with mandatory constructor parameters, where there is no setter to reach for

  • Writing the Arrange step of many tests over the same aggregate, each varying one field

  • Reviewing a test suite for the code-smells of irrelevant setup data and fixtures shared by accident

Common Misunderstandings:

  • ❌ "Test Data Builder and Object Mother are two names for the same idea" — the builder was introduced as the answer to the Object Mother’s variant explosion

  • ❌ "It is just the GoF Builder" — same mechanics, different purpose: GoF separates constructing a complex object from its representation; the test builder exists to make irrelevant data invisible and relevant data explicit

  • ❌ "Reuse one builder instance to make several objects" — that aliases shared state between them; but() exists precisely to derive a fresh builder from an existing one

  • ❌ "Every test should spell out every field, for clarity" — then the defaults carry nothing and the noise is back

  • ❌ "Defaults should be realistic production data" — Pryce says "commonly used or safe values"; a default whose value a test silently depends on couples the suite to the builder

  • ✓ "A builder lets the Arrange step say only what the test depends on" — accurate, and the whole point

Criticism:

  • Pryce himself is not satisfied with the implementation cost. Three years after naming the pattern he wrote: "However, I’ve never been satisfied with the way of implementing Test Data Builders that I described previously on this site and in our book. There is far too much repetitive boilerplate code and duplication. All that code has to be written and then maintained as the system’s domain classes evolve. Overall, I think Test Data Builders have a positive effect, but a lot can be done to reduce the overheads of using them." His remedy is a library rather than a retraction: Make It Easy, "a tiny framework to simplify writing Test Data Builders in Java, cutting down on duplicate and boilerplate code", with a .NET port by Graeme Foster. Pryce, "Writing Test Data Builders: Make It Easy on Yourself", 30 January 2010.

  • Mark Seemann argues the pattern is a workaround for a missing language feature. His conclusion after working the pattern through C#, Haskell and F#: "The Test Data Builder design pattern truly is a recipe that addresses deficiencies in particular languages." His recommendation is a ladder away from it: "1. For mutable object models, use Test Data Builders. 2. Consider, however, modelling your domain with Value Objects and 'copy and update' instance methods. 3. Even better, consider using a programming language with built-in 'copy and update' expressions." Where records with copy-and-update syntax exist, the builder’s job is already done by the language. Seemann, "Test data without Builders", 11 September 2017.

  • From the practitioner side, the boilerplate charge stands, and generated builders do not fix the defaults. Arho Huttunen: "While the test data builder pattern provides a lot of benefits, there is also one major drawback. That is, we end up writing a lot of boilerplate code." He reaches for Lombok’s @Builder to cut the volume and reports the remaining gap: "There are no safe default values for our fields" — that is, the generated builder removes the typing but not the part that made Pryce’s builder valuable. Huttunen, "How to Create a Test Data Builder" (last updated 27 February 2021).

  • The predecessor’s criticism carries over if the defaults are abused. Fowler’s objection to Object Mothers — "a heavy coupling in that many tests will depend on the exact data in the mothers" — reappears whenever tests assert against values the builder supplied by default rather than values they set themselves. Fowler, "ObjectMother", 24 October 2006.

Current Status:

  • This is the densest prior measured in its batch. On a task about an unreadable test suite (claude-haiku-4-5, clean room, 2026-10-03), three of four no-anchor baselines proposed test data builders unprompted, one of them with the mechanism spelled out: new UserBuilder().withEmail("test@x.com").build() instead of a long constructor call. Naming the term therefore changes little on that task — which is a fact about the task, not about the term.

  • The weak spot is attribution, not recognition. Asked who created the pattern, the weak tier returned creator=<agile-testing-community> with confidence=low. It does not know Nat Pryce. The names, dates and venues in this entry are what the model cannot supply: Pryce 2007, Growing Object-Oriented Software, Guided by Tests 2009, and Schuh and Punke’s Object Mother paper at XP Universe 2001.

  • The primary source has no HTTPS. natpryce.com answers on port 80 and refuses port 443 (checked 2026-10-03), so the links above are deliberately http://. Treat a fetch failure there as a transport problem, not a dead source.

  • The name is stable and the attribution is not contested. Pryce’s 2007 article is still the canonical reference, the pattern entered the mainstream through the 2009 GOOS book, and Seemann’s 2017 critique is an argument about language choice rather than about what the pattern means. Nothing in the literature has renamed it.

Test Double: Dummy (Meszaros)

Details

Core Concepts:

Purpose

An object passed to fill a required parameter but never actually used in the test. The simplest form of test double.

Behavior

Has no behavior. Calls to a Dummy should not occur — if they do, something is wrong with the test setup.

Typical use

Satisfying constructor or method signatures where the parameter is irrelevant to the test scenario.

Key Proponent

Gerard Meszaros ("xUnit Test Patterns", 2007)

When to Use:

  • Tell an LLM: "Create a Dummy test double for this parameter — it should never be called"

  • When a method requires parameters that are irrelevant to the behavior being tested

  • Filling dependency injection containers with unused dependencies

Test Double: Fake (Meszaros)

Details

Core Concepts:

Purpose

A working but simplified implementation unsuitable for production. Has real behavior, but takes shortcuts.

Behavior

Actually processes inputs and produces outputs — unlike Stubs which return fixed data. The simplification makes it fast and predictable for tests.

Typical examples

In-memory database instead of real database, in-memory file system, local email sender that writes to a list instead of sending, simplified authentication that always succeeds.

Distinction from Stub

A Stub returns canned data. A Fake has real logic, just simplified.

Key Proponent

Gerard Meszaros ("xUnit Test Patterns", 2007)

When to Use:

  • Tell an LLM: "Create a Fake implementation of this repository using an in-memory store"

  • Integration-style tests without external infrastructure

  • When Stubs are too simplistic and the real implementation is too slow/complex

  • Local development environments needing realistic but fast dependencies

Test Double (Meszaros)

Details
Full Name

Test Double taxonomy according to Gerard Meszaros

Also known as

xUnit Test Patterns test double taxonomy

Core Concepts:

Dummy

Object passed to fill a parameter list but never actually used

Stub

Provides canned responses to calls made during a test; no verification of interactions

Spy

Records calls made to it for later assertion; a stub that also captures interaction data

Mock

Pre-programmed with expectations; verifies that specific interactions occurred (interaction-based verification)

Fake

Working simplified implementation with shortcuts unsuitable for production (e.g., in-memory database, in-memory repository)

Test Double

Umbrella term for any object substituted for a real dependency during testing

Vocabulary precision

Distinguishing what a double IS (taxonomy) from when to use it (TDD school philosophy)

Key Proponent

Gerard Meszaros ("xUnit Test Patterns: Refactoring Test Code", 2007)

When to Use:

  • Communicating precisely about test isolation strategies

  • Choosing the right type of double for a given testing scenario

  • Avoiding vocabulary collisions (e.g., calling a Stub a "mock" triggers wrong reasoning)

  • Teaching or reviewing test code with shared terminology

Test Double: Mock (Meszaros)

Details

Core Concepts:

Purpose

Pre-programmed with expectations about which calls should be made. Verifies that specific interactions occurred — the test fails if the expected interactions don’t happen.

Behavior

Has built-in assertions. If the system under test calls the wrong method, with wrong arguments, or in the wrong order, the Mock fails the test immediately.

Distinction from Stub

A Stub provides data passively. A Mock actively verifies behavior.

Distinction from Spy

A Spy records calls for post-hoc assertion. A Mock enforces expectations during execution.

Key Proponent

Gerard Meszaros ("xUnit Test Patterns", 2007)

When to Use:

  • Tell an LLM: "Create a Mock test double that verifies these interactions occur"

  • Interaction-based testing (London School TDD)

  • When the behavior matters more than the result

  • Verifying that a notification was sent, a log was written, or a service was called correctly

Test Double: Spy (Meszaros)

Details

Core Concepts:

Purpose

A Stub that also records how it was called — which methods, with what arguments, how many times. Assertions happen after the action, not as expectations before.

Behavior

Returns canned responses (like a Stub) and silently records all interactions for later inspection.

Distinction from Mock

A Spy records and lets you assert afterward. A Mock has pre-programmed expectations that fail immediately if violated.

Key Proponent

Gerard Meszaros ("xUnit Test Patterns", 2007)

When to Use:

  • Tell an LLM: "Create a Spy test double that records calls for later assertion"

  • When you need to verify interactions but want assertions in the test body, not in setup

  • Auditing what happened during a test without constraining the order of operations

  • When the exact interaction pattern matters but you want flexible assertion

Test Double: Stub (Meszaros)

Details

Core Concepts:

Purpose

Provides predefined (canned) responses to calls made during a test. Does not verify interactions — only supplies data.

Behavior

Returns fixed values regardless of input. No assertion on whether or how it was called.

Distinction from Mock

A Stub never fails a test. It only provides data. A Mock has expectations and can fail the test if interactions are wrong.

Key Proponent

Gerard Meszaros ("xUnit Test Patterns", 2007)

When to Use:

  • Tell an LLM: "Create a Stub test double that returns this fixed data"

  • Isolating the system under test from external dependencies (database, API)

  • State-based testing (Chicago School TDD)

  • When you care about the result, not about how it was obtained

Test Seam

Details
Also known as

Seam (Feathers), Legacy Seam

Core Concepts:

Seam

A place in a program where behavior can be altered without editing the code at that place. Feathers defines it as "a place where you can alter behavior in your program without editing in that place" ("Working Effectively with Legacy Code", Addison-Wesley, 2004, Chapter 4: "The Seam Model").

Enabling Point

Every seam has a paired enabling point — a location outside the seam where the choice of behavior is made (e.g., a constructor parameter, a classpath entry, a preprocessor define). The enabling point is where test substitution happens; the seam is what makes it possible.

Object Seam

The most common seam in object-oriented code. Polymorphism means the method executed is determined at runtime; injecting a subclass or interface implementation at the enabling point replaces the dependency without touching the callee. Feathers recommends this type for OO languages.

Link Seam

The linker, classpath, or module loader is the enabling point. Substituting a different library or class at link time swaps behavior without source changes. Useful when object seams are unavailable (e.g., static method calls, final classes).

Preprocessing Seam

Available in languages with a macro preprocessor (C, C++). Preprocessor defines are the enabling points; macros rewrite code before compilation, allowing test-time substitution without modifying production source.

Breaking dependencies

The purpose of identifying seams is to break hard-wired dependencies so that units of legacy code can be placed under test — without first restructuring the production logic.

Key Proponents

Michael Feathers ("Working Effectively with Legacy Code", Addison-Wesley, 2004, Chapter 4: "The Seam Model" — coined the term and the three-type taxonomy)

When to Use:

  • Introducing tests into an untested legacy codebase without restructuring production code first

  • Identifying where a test double can be injected when direct construction prevents replacement

  • Choosing between object, link, or preprocessing seams based on language constraints and available tooling

  • Naming testability boundaries in design or code-review discussions — seam vocabulary makes visible what can and cannot be intercepted in a test

Current Status:

  • Martin Fowler extended the concept in "Legacy Seam" (bliki, 2023), adapting it to TypeScript and JavaScript: module-level exports become a modern enabling point alongside classic OO and link seams, and the article broadens the use beyond pure testing to legacy displacement and behavior probing.

  • Mike Bland connected seams to interface quality in "Legacy code, seams, and the most important design guideline" (2023), arguing that object seams are the most common and flexible kind and that seam quality tracks directly with interface quality (Scott Meyers: "Make interfaces easy to use correctly and hard to use incorrectly").

Testing Pyramid

Details
Full Name

Testing Pyramid according to Mike Cohn

Core Concepts:

Three layers
  • Unit tests (base): Many fast, isolated tests

  • Integration tests (middle): Moderate number, test component interaction

  • End-to-end tests (top): Few, test complete user journeys

Proportional distribution

More unit tests, fewer E2E tests

Cost and speed

Unit tests cheap and fast, E2E tests expensive and slow

Feedback loops

Faster feedback from lower levels

Anti-pattern: Ice cream cone

Too many E2E tests, too few unit tests

Test at the right level

Don’t test through UI what can be tested in isolation

Confidence gradient

Balance confidence with execution speed

Key Proponent

Mike Cohn ("Succeeding with Agile", 2009)

When to Use:

  • Planning test strategy for projects

  • Balancing test types in CI/CD pipelines

  • Evaluating existing test suites

  • Guiding team testing practices

Criticism:

  • Kent C. Dodds, "Write tests. Not too many. Mostly integration." (2019) — proposes the Testing Trophy: integration tests give the best confidence per cost, so the pyramid’s unit-heavy base optimises for the wrong metric

  • Spotify Engineering, "Testing of Microservices" (2018) — proposes the honeycomb shape for microservices: unit-heavy suites couple tests to implementation details and break under refactoring

  • The layer boundaries blur in modern stacks — fast in-memory "integration" tests undermine the pyramid’s core assumption that higher-level tests are necessarily slow and expensive

WCAG 2.2 AA

Details
Full Name

Web Content Accessibility Guidelines 2.2, conformance level AA

Also known as

WCAG 2.2 Level AA

Core Concepts:

  • Four principles: POUR. Content must be Perceivable, Operable, Understandable and Robust. Guidelines sit under each principle, and testable success criteria sit under each guideline.

  • Three levels; AA includes A. Each success criterion has level A, AA or AAA. Conformance at AA means meeting every A and every AA criterion.

  • Contrast is measured. 1.4.3 asks for 4.5:1 for text and 3:1 for large text; 1.4.11 asks for 3:1 for non-text elements.

  • Structure and interaction are testable too. AA conformance requires, among others, 1.3.1 Info and Relationships, 3.3.1 Error Identification and 3.3.2 Labels or Instructions (Level A) and 1.4.10 Reflow and 2.4.7 Focus Visible (Level AA).

  • Version 2.2 adds criteria for touch, focus and cognition. New at A and AA: 2.4.11 Focus Not Obscured (Minimum), 2.5.7 Dragging Movements, 2.5.8 Target Size (Minimum) of 24×24 CSS pixels, 3.2.6 Consistent Help, 3.3.7 Redundant Entry and 3.3.8 Accessible Authentication (Minimum). Three more new criteria are AAA.

  • One criterion was removed. 4.1.1 Parsing is obsolete and no longer part of WCAG 2.2.

    Key Proponents

    W3C Web Accessibility Initiative (WAI); WCAG 2.2 became a W3C Recommendation on 5 October 2023 ("What’s New in WCAG 2.2")

When to Use:

  • Reviewing a form, page or component and naming each defect by success criterion

  • Setting an accessibility acceptance criterion for a project or a contract

  • Checking touch targets, focus visibility and login flows against the 2.2 additions

  • Preparing for legal requirements such as the European Accessibility Act

Common Misunderstandings:

  • Equating AA conformance with accessibility. AA is a testable minimum. A page can conform and still be hard to use for disabled people.

  • Trusting automated tools or overlays to certify conformance. Most criteria need human judgement.

  • Expecting WCAG 3 to replace 2.2 soon. WCAG 3 is still a Working Draft, and WCAG 2 stays in force for years after WCAG 3 is final.

  • Asking for "accessibility" instead of naming the standard. In our prior test on 2026-10-28 (a signup form with eight known defects), all six baselines already named the 4.5:1 contrast ratio, but no success criterion by number. With "WCAG 2.2 AA", six of six runs cited at least ten success criteria, and six of six caught the two 2.2 additions the form violated: 2.5.8 Target Size (Minimum) and 2.4.11 Focus Not Obscured.

Criticism:

  • The wording is a swamp to audit against. Adrian Roselli argues in his Paris Web 2023 talk "WCAGmire" that WCAG "can be a bit of a quagmire": dense wording, loopholes and differing interpretations confuse audits.

  • Conformance can coexist with hostility. In his Adversarial Conformance series, Roselli builds demos that meet 2.4.11 and 2.5.8 while being hostile to use.

Current Status:

  • 2.2 is the current standard; 3 is still a draft. WCAG 3 remains a Working Draft (latest September 2026). The W3C does not expect it to become a standard for a few more years and will not deprecate WCAG 2 until several years after WCAG 3 is final. The European Accessibility Act has applied since 28 June 2025; its harmonised standard EN 301 549 incorporates WCAG and is still under revision (Fieldfisher). The training-data prior serves WCAG 2.2 well: in our prior test every tier cited the two new criteria the test form violated, 2.5.8 and 2.4.11, by number.

UX & Visual Design

Adobe Spectrum

Details
Full Name

Adobe Spectrum — Adobe’s design system, in its second generation Spectrum 2

Also known as

Spectrum, Spectrum 2, S2, React Spectrum (the React implementation)

Core Concepts:

  • Three implementations, one set of tokens. React Spectrum (@adobe/react-spectrum, and @react-spectrum/s2 for Spectrum 2), Spectrum Web Components and Spectrum CSS share the tokens in @adobe/spectrum-tokens.

  • Token names from broad to specific. "Names communicate information from broad concepts toward more specific details", for example accent-background-color-hover or positive-color-600 (Design tokens).

  • Components that guard the design. React Spectrum v3 refuses ordinary className and style props and offers UNSAFE_className as "a last resort", because "future updates to Spectrum design may cause unintended breaking changes in products" (Styling). Spectrum 2 replaces style props with a build-time style macro.

  • Accessibility in the hooks. Behaviour and keyboard handling come from React Aria; components such as TableView, ActionButton and DialogTrigger carry it.

  • Adobe Clean. The signature typeface; Spectrum 2’s icons are drawn to match it.

    Key Proponents

    Adobe. Spectrum has been implemented across Adobe products since 2013; Spectrum 2 was unveiled on 12 December 2023 for more than 100 applications (Adobe blog). The Spectrum 2 core team includes Shawn Cheris, Garth Braithwaite and Patrick Fulton (Introducing Spectrum 2)

When to Use:

  • Building plug-ins and web apps for the Adobe ecosystem, or tools that should feel like Adobe’s applications. In our prior test, every anchor run of a team-settings page imported @adobe/react-spectrum and built a TableView with ActionButton`s and size tokens such as `size-200.

  • Using accessible components whose behaviour comes from React Aria

  • Studying a token naming scheme that runs from concept to detail

Common Misunderstandings:

  • Saying "Spectrum" alone. The bare word resolves to physics on every model tier we tested, and it also names a US internet provider and a home computer. "Adobe Spectrum" pins the design system.

  • Expecting Spectrum 2 code. The models write React Spectrum v3. Spectrum 2 uses @react-spectrum/s2 and the style macro; a codemod migrates from v3. Ask for Spectrum 2 explicitly.

Criticism:

  • Consistency for Adobe, not for the platform. Jason Snell, "Adobe out of Photoshop" (Six Colors, 2026), on the Spectrum-based Photoshop interface: cross-platform design systems "are for the benefit of Adobe, which can standardize its interface across platforms and its own apps", at the cost of Mac conventions.

Current Status:

  • Spectrum 2 is stable in React, in beta for Web Components. React Spectrum’s Spectrum 2 implementation reached version 1.0 on 16 December 2025 (release notes); Spectrum Web Components 2.0 with full Spectrum 2 styles entered public beta in July 2026. Photoshop’s refreshed interface built on Spectrum is in beta as of October 2026. The prior serves React Spectrum v3; Spectrum 2 may come out thin unless named.

Ant Design

Details
Full Name

Ant Design — "A UI Design Language" (GitHub organisation) and its React implementation antd

Also known as

antd, AntD

Core Concepts:

  • Four design values. Natural, Certain, Meaningful and Growing; "Certain" aims at "high certainty and low cooperative entropy" (Design Values).

  • Forms by declaration. A Form holds Form.Item fields with name and rules; onFinish receives the validated values, Form.useForm gives access to the form instance (Form).

  • Components for dense data. Table with sorting, filters and pagination, plus Descriptions, Tree, Transfer and Steps for back-office screens.

  • Three token layers. Seed tokens are "the origin of all design intent", map tokens derive from them, and alias tokens style groups of components; ConfigProvider takes a theme object with token, an algorithm for dark or compact themes, and per-component overrides in components (Customize Theme).

  • A family of projects. Ant Design Pro (an admin template), Ant Design Mobile, Ant Design Charts and Ant Design X for AI interfaces sit beside the core library.

    Key Proponents

    Ant Group (formerly Ant Financial), with afc163 as its long-time lead maintainer. Released publicly in July 2015 (LogRocket, 2024); version 5 in November 2022 (Ant Design blog), version 6 in November 2025

When to Use:

  • Building admin consoles, dashboards and other back-office interfaces in React with many forms and tables. In our prior test, every anchor run of a sign-up form imported from antd and used Form.Item with rules, Input.Password and onFinish.

  • Theming a whole application from a few seed tokens

  • Teams that want a complete, opinionated component set rather than primitives to assemble

Common Misunderstandings:

  • Treating the design language and the library as one thing. "Ant Design" names both the design specification and the antd package; Pro, Mobile and X are separate projects.

  • Expecting the v4 theming API. Version 4 themed through Less variables; version 5 replaced them with CSS-in-JS tokens, and version 6 defaults to CSS variables.

Criticism:

  • The Christmas easter egg. In 2018 an unannounced commit made antd 3.9.3 to 3.11.5 show snow on buttons on 25 December in production apps. The maintainer apologised in issue #13849: "It is a complete stupid decision of my own and very sorry to everyone that get involved." The Chinese tech outlet TMTPost summed up the reaction: an easter egg from developers to users is a surprise, one from a framework to developers is a scare (TMTPost, 2018).

  • Weight. Elijah Asaolu, "Ant Design adoption guide" (LogRocket, 2024), cautions: "keep in mind that Ant Design components can be heavy."

Current Status:

  • Version 6 with CSS variables. Ant Design 6.0, released in November 2025, defaults to "pure CSS Variables mode" with an optional zero-runtime build, needs React 18 or later, restructures every component’s DOM for semantic styling and removes APIs deprecated in version 4 (release post). The current release is 6.6.7 of 20 October 2026 (Changelog). Version 6 is newer than most training data; for its specifics, name the version.

Apple Human Interface Guidelines

Details
Full Name

Apple Human Interface Guidelines — Apple’s design guidance for apps on its platforms, one document for all of them since 2022

Also known as

HIG, Apple HIG

Core Concepts:

  • Guiding themes. Classic iOS guidance named clarity, deference and depth. The 2025 framing speaks of hierarchy, harmony and consistency.

  • Targets a finger can hit. As a general rule, a button needs a hit region of at least 44 × 44 points; visionOS asks for 60 × 60.

  • System type and symbols. SF Pro and SF Symbols; Dynamic Type lets text follow the user’s chosen size.

  • Familiar navigation. Large titles, navigation bars, tab bars and inset grouped lists give apps a shared structure.

  • Respect the device. Layouts stay inside safe areas; system colours adapt to dark mode.

  • Accessibility built in. VoiceOver, Reduce Motion and Dynamic Type are part of the design, not an add-on.

    Key Proponents

    Apple. The guidance goes back to Human Interface Guidelines: The Apple Desktop Interface (Apple Computer / Addison-Wesley, 1987; Computer History Museum). On 7 June 2022 Apple merged the per-platform guides into one HIG with a change log (Apple Developer News)

When to Use:

  • Designing iPhone, iPad or Mac apps that should feel native. In our prior test the anchor made every run set 44-point targets for a settings screen, and most added a large title, Dynamic Type and inset grouped lists.

  • Reviewing an app’s controls for hit size, type scaling and dark mode

  • Porting an Android app to Apple platforms, as a contrast to Material Design 3

  • Together with WCAG 2.2 AA when accessibility must also be checked against a standard

Common Misunderstandings:

  • Mixing it up with the App Store rules. The App Review Guidelines are a separate document. The HIG guides design; it does not decide approval.

  • Reading Liquid Glass as translucent content. The material is meant for the layer of controls and navigation, not for the content itself.

  • Treating it as iOS-only. Since 2022 it is one document for all of Apple’s platforms.

  • Expecting the details from the baseline. In our prior test on 2026-10-28, four of six baselines already chose SF Pro, but none set a 44-point target. With the anchor, six of six set 44-point targets, and five of six used a large title, Dynamic Type and inset grouped lists.

Criticism:

Current Status:

  • Liquid Glass is the current design language. Apple announced it on 9 June 2025 for iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26 and tvOS 26: a translucent material that "reflects and refracts its surroundings" (Apple Newsroom). Apple’s change log shows refinements in December 2025 and June 2026. At WWDC26 on 8 June 2026 Apple brought back a "Design principles" page and published kits for iOS, iPadOS and macOS 27; the latest entry is dated 13 October 2026. The training-data prior most likely serves the flat iOS look from before 2025. Ask for Liquid Glass by name if you want it.

Atlassian Design System

Details
Full Name

Atlassian Design System — formerly the Atlassian Design Guidelines (ADG)

Also known as

ADS, ADG, Atlaskit (the component library)

Core Concepts:

  • Design tokens for every value. Colour, elevation, spacing and typography come from tokens such as color.background.brand.bold, color.text.subtle, elevation.surface.raised, space.100 and font.heading.medium in @atlaskit/tokens; they carry light and dark themes.

  • Atlaskit components. React packages under @atlaskit/, such as @atlaskit/button, @atlaskit/dynamic-table, @atlaskit/page-header and the layout primitives in @atlaskit/primitives.

  • The Lozenge. A small status label — "a visual indicator used to highlight an item’s status for quick recognition" — that appears throughout Jira.

  • Atlassian Sans and Atlassian Mono. Since 2025 the product typefaces replace the earlier system-font stack (Typography).

  • Foundations for AI patterns. The site now lists AI patterns for Atlassian’s Rovo assistant beside colour, typography, iconography and grid.

    Key Proponents

    Atlassian. Jürgen Spangl, then Head of Design, started the guidelines; the first internal version came in June 2012 (UXPin), the public ADG in 2013 (Atlassian blog, 2013)

When to Use:

  • Building Jira or Confluence apps, Forge apps or tools that should feel like part of Atlassian’s products. In our prior test, every anchor run of a team-settings page imported Atlaskit packages, built a DynamicTable and marked roles with a Lozenge.

  • Learning a token architecture with semantic names for colour, elevation and space

  • As a reference for dense, task-oriented collaboration interfaces

Common Misunderstandings:

  • Expecting the pre-2024 look. Atlassian began mapping its visual system in December 2022, later worked with Pentagram on the refresh and showed it at Team '24 (Atlassian, 2024); new icons, colours and the type scale followed in 2025. Models trained before that write the older look unless told otherwise.

  • Treating Charlie as the UI font. Charlie is Atlassian’s brand typeface; the product UI uses Atlassian Sans, formerly system fonts.

Criticism:

  • Design and code drifted apart. Atlassian’s own designers write that the old typography "lacked parity between design and code" and that their initial time budget for tokenisation was too low (Eva Plaisted and Rachel Radford, "Implementing typography at scale", Inside Atlassian, 2025).

Current Status:

  • New typography is generally available. The new typography system reached general availability on 9 September 2025; the modernised and legacy systems were deprecated and supported until January 2026 (What’s new). @atlaskit/tokens is released continuously, version 20.8.2 in October 2026.

Atomic Design

Details
Full Name

Atomic Design — Brad Frost’s method for building interface design systems in five stages: atoms, molecules, organisms, templates and pages

Also known as

Atomic web design

Core Concepts:

  • Five stages, borrowed from chemistry. Atoms, molecules, organisms, templates and pages. Frost introduced them in a blog post on 10 June 2013 (republished by Center Centre).

  • Atoms are the smallest parts. Labels, inputs, buttons — elements that cannot be broken down further and stay useful.

  • Molecules combine atoms. A label, an input and a button form a search field with one job.

  • Organisms are distinct sections. Molecules and atoms group into a header, a product grid or a footer.

  • Templates show structure. A template places organisms in a layout and shows the page’s skeleton without final content.

  • Pages test the system. A page is a template filled with real content. It shows whether the patterns hold up.

  • A mental model, not a sequence. Frost stresses moving back and forth between the stages instead of working through them in order.

    Key Proponents

    Brad Frost (blog post 2013; book Atomic Design, 2016, foreword by Josh Clark and Dan Mall, free online); Pattern Lab, the tool Frost built with Dave Olsen to work this way

When to Use:

  • Structuring a component library for a product such as an analytics dashboard. In our prior test the anchor made every run sort components into atoms, molecules, organisms, templates and pages.

  • Starting a design system and giving designers and developers a shared vocabulary for component size

  • Auditing an existing UI for duplicated components

  • Together with Design Tokens for the values below the atoms

Common Misunderstandings:

  • Treating the stages as a mandatory folder structure. The five names help people talk about the system. Many teams sort their code differently.

  • Reading it as a linear process. Frost describes moving back and forth, not building all atoms first.

  • Taking "pages" literally. Pages are templates with real content, used to test the system — not a list of the site’s web pages.

  • Expecting the levels without the name. In our prior test on 2026-10-28, the baselines sorted components into primitives plus folders by feature. One Sonnet baseline called its structure "atomic-design inspired" but used none of the levels. With "Atomic Design", six of six used all five stages.

Criticism:

  • Hard to classify in practice. Trent Walton, "Atomic Classification" (2016), reports that "the team struggled to map components to an atomic classification". The chemistry names slowed discussions, and the team moved to a simpler two-tier system. He also cites FutureLearn’s team, who could not agree when a molecule becomes an organism.

  • The labels matter less than the idea. Peter Rohles, "Atomic Design Systems: Why the Labels Don’t Matter" (Qt blog, 2025), argues that the five names are not what makes the method useful: "The chemistry labels were never the point."

Bauhaus

Details
Full Name

Staatliches Bauhaus — the German school of art, craft and design that ran from 1919 to 1933 in Weimar, Dessau and Berlin

Also known as

Staatliches Bauhaus in Weimar, Bauhaus Dessau, Bauhaus design

Core Concepts:

  • A school, not a style. Walter Gropius became director of the "Staatliches Bauhaus in Weimar" in March 1919 and published the Bauhaus Manifesto in April. The name stands for an institution with a teaching programme, not for one look.

  • Three directors, three programmes. Gropius led the school until he resigned in 1928. Hannes Meyer followed in April 1928, Ludwig Mies van der Rohe in 1930. Each changed what the school taught.

  • Three cities. Dessau took the school over in 1925 and approved a new building in June that year. In 1932 the Dessau council dissolved it, and Mies reopened it privately in Berlin-Steglitz in October.

  • Craft before industry. The early Weimar years were craft-based and expressionist. The functional, industrial image came later and covers only part of the school’s history.

  • Teaching through workshops. Students worked in workshops such as the weaving workshop. Which workshop a student entered shaped what they made — and, as critics note, who was allowed where.

  • A forced end. Police searched the Berlin school in April 1933. In July 1933 Mies dissolved it with the faculty’s consent.

    Key Proponents

    Walter Gropius (founder and director 1919–1928, author of the Bauhaus Manifesto); Hannes Meyer (director 1928–1930); Ludwig Mies van der Rohe (director 1930–1933, reopened the school in Berlin and dissolved it in 1933). Chronology after the catalogue 50 Jahre Bauhaus (Stuttgart 1968), as given by bauhaus-bookshelf.org

When to Use:

  • Landing pages, posters and brand work that should be built from geometric forms, primary colours and a geometric sans instead of photography and hand-drawn elements

  • As a counter-instruction when generated designs drift towards stock photos and script fonts

  • Design history and teaching, when the topic is the school itself: its directors, its workshops, its moves from Weimar to Dessau to Berlin

Common Misunderstandings:

  • Treating it as one visual style. The Bauhaus was a school with three directors and changing programmes. "Bauhaus style" names a later reading of part of its work.

  • Assuming it was purely functionalist and industrial. The early Weimar years were craft-based and expressionist.

  • Equating it with the International Style. The International Style is a later movement; the Bauhaus was one school with its own history.

  • Using the bare name. In our prior test on 2026-10-28, the bare "Bauhaus" resolved to art and design history on every tier; Opus also mentioned the band and the DIY chain. "Bauhaus design" changed the output: all six baselines built a bakery page around photography with hand-drawn or script elements, while all six anchor runs used geometric forms, a geometric sans and the primary colours.

Criticism:

  • Progressive image, segregated practice. Theresia Enzensberger writes in "The 'Bauhaus women'" (Goethe-Institut, October 2018, translated by Jo Beckett) that the school steered women into the weaving workshop and their numbers fell: "Gropius' segregation was showing its effects".

  • An aesthetic imposed on the people it claimed to serve. Scott Alexander, in "Book Review: From Bauhaus to Our House" (Astral Codex Ten, 4 December 2024), follows Tom Wolfe’s polemic: modernism forced its taste on workers who did not share it. "Ironically, real workers hated the modernist styles."

Bento Grid

Details
Full Name

Bento Grid — a layout of rounded tiles in different sizes on one grid, each tile holding one piece of content

Also known as

Bento box layout, bento UI

Core Concepts:

  • One grid, tiles of different sizes. Tiles span one or more columns and rows — 2 × 2, 2 × 1, 1 × 1 — so the layout is uneven but still aligned.

  • Size carries the hierarchy. The most important item gets the largest tile; secondary items fill smaller ones around it.

  • One idea per tile. Each compartment holds one feature, number, image or short statement, the way a bento box holds one dish per compartment.

  • Rounded cards with even gaps. Tiles have generous corner radii and the same gap on every side, which makes the uneven sizes read as one system.

  • Rich tile content. Tiles often show a product screenshot, a large figure or an icon rather than only text.

  • Built on CSS Grid. Spanning columns and rows is what CSS Grid does natively; on narrow screens the tiles collapse into one or two columns.

    Key Proponents

    No single originator. Many attribute it to Apple’s promotional videos and keynote summary slides; some trace it further back to the tile layout of Microsoft’s Metro design in Windows Phone 7 ("Web design trend: bento box", UX Collective Bootcamp). The name comes from the Japanese bento lunch box with its divided compartments.

When to Use:

  • Feature sections on product landing pages, where a handful of features of unequal weight must fit one screen

  • Portfolios, dashboards and "at a glance" summaries

  • As a counter-instruction when generated layouts fall back on a uniform grid of identical cards

Common Misunderstandings:

  • Treating any card grid as a bento grid. A grid of identical cards is just a card grid. The varied tile sizes are what make it bento.

  • Using the bare "bento". In our prior test on 2026-10-29, "What is bento?" resolved to Japanese food on all three tiers. Say "bento grid".

  • Expecting it by default. In the same test, five of six baselines laid six features out as a uniform three-by-two grid. With "Use a bento grid." six of six runs mixed tile sizes, typically a 2 × 2 hero tile with smaller tiles around it.

  • Ignoring the narrow screen. The composition depends on width; on a phone it becomes a stack, and the hierarchy has to survive that.

Criticism:

  • Too much in one screen. David Jaja warns in "Bento Grids in Web Design" (freeCodeCamp, 2024) that "there’s a risk of cramming too much information into a single screen". He also names weak hierarchy when tiles look alike, choice overload and monotony when the grid is overused.

Bootstrap 5

Details
Full Name

Bootstrap 5 — the fifth major version of Bootstrap, released on 5 May 2021

Also known as

Bootstrap, Twitter Bootstrap (originally "Twitter Blueprint"), BS5

Core Concepts:

  • A 12-column grid on flexbox. Containers, rows and columns with six breakpoints: xs below 576 px, then sm, md, lg, xl and xxl from 576, 768, 992, 1200 and 1400 px (Grid).

  • Components by class name. btn btn-primary, card, navbar, modal; forms use form-label, form-control, form-check and the validation states is-invalid with invalid-feedback.

  • Utilities from a utility API. Spacing, display and flex classes such as mb-3, d-flex and gap-2, generated from a Sass map that projects can extend.

  • No jQuery. Version 5 dropped jQuery and Internet Explorer; JavaScript plugins are configured through data-bs- attributes (v5 alpha announcement).

  • Colour modes. Since 5.3 the core supports dark mode and further colour modes through CSS custom properties (v5.3.0).

    Key Proponents

    Mark Otto and Jacob Thornton, who built it at Twitter and open-sourced it on 19 August 2011 (Wikipedia). Mark Otto still leads the project and writes its release posts

When to Use:

  • Building a conventional, responsive interface quickly with familiar components, such as an internal tool, a prototype or a server-rendered app. In our prior test, every anchor run of a sign-up form used form-control, form-label, form-check, is-invalid with invalid-feedback and btn btn-primary; no baseline used a Bootstrap class.

  • Generating plain HTML and CSS that other developers recognise at a glance

  • Theming through Sass variables or CSS custom properties instead of writing a design system from scratch

Common Misunderstandings:

  • Saying "Bootstrap" without a version. Versions 3, 4 and 5 differ in grid, class names and JavaScript; Bootstrap 4 still needs jQuery. The number pins the API.

  • Confusing it with bootstrapping. In statistics the bootstrap is Efron’s resampling method (The Annals of Statistics, 1979); in other contexts it means starting a system or a company. "Bootstrap 5" names the CSS toolkit.

  • Equating Bootstrap with its default look. The defaults are a starting theme. Sass variables and, since 5.3, CSS custom properties change colours, radii and spacing.

Criticism:

  • Sites that look alike. Owen Williams, "Web design is now completely boring" (The Next Web, 2015), blamed frameworks for uniform web design: "Everything quickly starts looking the same because nobody can be bothered customizing Bootstrap enough to make it look unique".

Current Status:

  • Bootstrap 6 is in alpha. The latest stable release is 5.3.8 (August 2025); its post announced 5.4.0 as next. Bootstrap 6 Alpha followed on 8 October 2026 with Sass modules, CSS layers, responsive class names such as md:d-none instead of d-md-none, and ESM-only JavaScript without a window.bootstrap global; 5.4.0 is to ship before version 5 gets an end-of-life date (Bootstrap 6 Alpha). "Bootstrap 5" pins the stable API; ask for version 6 explicitly and give the link, since the prior predates it.

Carbon Design System

Details
Full Name

Carbon Design System — "the digital manifestation of the IBM Design Language" (Carbon)

Also known as

Carbon, IBM Carbon

Core Concepts:

  • IBM Plex in two type sets. IBM Plex Sans, Serif and Mono; the productive set (suffix -01) for product interfaces and the expressive set (suffix -02) for editorial pages (Typography).

  • The 2x Grid. A 16-column grid on which spacing and component sizes are built.

  • Four themes and layering tokens. White, Gray 10, Gray 90 and Gray 100; tokens such as $background, $layer-01, $text-primary and $interactive stack surfaces by layer rather than by fixed colour (Themes).

  • Flagship code in React and Web Components. @carbon/react and @carbon/web-components, with classes prefixed cds--; the DataTable and the UI Shell header and side navigation are signature pieces.

  • Carbon for AI. An extension with the AI label, which opens an explanation of how AI produced the content (Carbon for AI).

    Key Proponents

    IBM. Public development began on 10 June 2015 under the Apache 2.0 licence (Wikipedia); version 10 followed in March 2019 and version 11 in 2022 (releases)

When to Use:

  • Building enterprise and data-heavy interfaces — admin consoles, dashboards, developer tools — with dense data. In our prior test, every anchor run of a team-settings page imported @carbon/react and built a DataTable; five of six named a Carbon theme.

  • Theming with layered surface tokens and a dark Gray 100 theme

  • Marking AI-generated content with the Carbon for AI patterns

Common Misunderstandings:

  • Saying "Carbon" alone. The bare word resolves to chemistry on Sonnet and Opus and to Google’s Carbon programming language on Haiku in our test. "Carbon Design System" pins it.

  • Writing version 10 code. The packages carbon-components and carbon-components-react are deprecated; version 11 renamed tokens, prefixes classes cds-- instead of bx-- and moved to Sass modules. Migration "will be a manual process" (Migration FAQ).

Criticism:

  • Gaps left to the app team. Grace Potma’s design-system comparison for OpenMRS ("Style Guide & Design Systems Analysis", 2020) notes an "accessibility gap in React version of dropdown" in the Carbon of that time and that spacing was "mostly left to the app developer".

Current Status:

  • Version 11, with "Carbon Next" previewed. Version 11 is current; v10 assets were deprecated on 30 September 2024. A preview of the next major version promises a new visual expression, layouts as a core framework, "industry-standard token naming" and AI readiness with agent skills (Carbon Next, August 2026). The prior serves version 11.

Design Tokens (W3C DTCG)

Details
Full Name

Design Tokens in the format of the W3C Design Tokens Community Group (DTCG) — design decisions such as colours, spacing and type stored as tool-neutral data

Also known as

DTCG format, Design Tokens Format Module, .tokens.json

Core Concepts:

  • A token is a named design decision. Colour, spacing, font or duration is stored once, under a name, and every platform reads it from there.

  • Tokens are objects with $value and $type. The format is JSON. Types include color, dimension, fontFamily, fontWeight, duration, cubicBezier and number, plus composite types such as typography, shadow and border.

  • Groups give tokens a hierarchy. Nested objects group related tokens; the path through the groups forms the token’s name.

  • Aliases reference other tokens. A value written as {group.token} points to another token, so one change carries through every token that refers to it.

  • Descriptions travel with the data. $description documents a token where it is defined.

  • Data first, code later. Files use the extension .tokens.json. Tools such as Style Dictionary, Tokens Studio and Terrazzo turn them into CSS, iOS, Android or other outputs.

    Key Proponents

    Jina Anne, who coined the term "design tokens" with Jon Levine at Salesforce, formerly co-chair of the W3C Design Tokens Community Group and its chair emerita since 17 June 2026; Andy Bell credits her work on the Lightning Design System in "What are design tokens?" (2020); the editors of version 2025.10: Louis Chenais, Mike Kamminga, Kathleen McMahon, Drew Powers, Matthew Ström-Awn, Donna Vitan

When to Use:

  • Writing colour, spacing and type values as a file that design tools and code share

  • Setting up themes and modes (light, dark, brand variants) from one source

  • Handing design decisions to several platforms through a build tool such as Style Dictionary

  • As a format instruction when a generated "token file" comes back as CSS custom properties or ad-hoc JSON

Common Misunderstandings:

  • Equating tokens with CSS variables. Tokens are tool-neutral data. CSS custom properties are one output among many. In our prior test on 2026-10-28 the baselines returned exactly that: CSS custom properties or plain JSON. With the DTCG name, six of six runs wrote $value and $type, and four of six used alias references in braces. The bare "design tokens" resolves to design systems on all tiers.

  • Calling DTCG a W3C Recommendation. Version 2025.10 is a Final Community Group Report. It did not go through the W3C Recommendation track.

  • Assuming more tiers are always better. Aliases make it possible to stack layers of tokens. Each layer adds indirection that someone has to understand and maintain.

Criticism:

  • Too many layers turn tokens against their purpose. Shaunak Bhanarkar argues in "Design tokens: A double-edged sword in design systems" (UX Planet) that "Too many layers of abstraction can make tokens difficult to use." He describes how stacked layers, duplicate tokens and drifting names push teams back to hard-coded values.

Current Status:

  • The first stable version is out. Version 2025.10, published on 28 October 2025, is the first stable release. It has three modules: Format, Color and Resolver. The Color module supports modern colour spaces such as Display P3 and Oklch; the Resolver handles themes and modes. Style Dictionary, Tokens Studio and Terrazzo implement it. The training-data prior most likely serves the earlier drafts: they wrote a colour value as a hex string, while the 2025.10 Color module describes colours as objects with a colour space.

Dieter Rams' 10 Principles of Good Design

Details
Full Name

Dieter Rams' ten principles of good design — the considerations the German industrial designer set down for his own work, from the late 1970s onward

Also known as

Ten principles for good design; Rams' principles; associated with his motto "Less, but better" ("Weniger, aber besser")

Core Concepts:

  • Ten principles, born of concern. Vitsœ writes that in the late 1970s Rams "was becoming increasingly concerned by the state of the world around him". Rams himself says he expressed in ten principles "the basic considerations that determine my work as a designer".

  • Good design is innovative, useful and aesthetic. The first three principles ask what the product adds, whether it serves its purpose, and whether it looks right.

  • Good design is understandable, unobtrusive and honest. The product makes its use clear, stays in the background and claims no more than it does.

  • Good design is long-lasting and environmentally friendly. Durability and the environment belong to the list itself; they are not extras.

  • Good design is thorough down to the last detail. Nothing is arbitrary or left to chance.

  • Good design is as little design as possible. The tenth principle, close to the motto "Less, but better": remove what the product does not need.

    Key Proponents

    Dieter Rams; the list as published by Vitsœ and the Rams Foundation

When to Use:

  • Designing a physical or digital product where durability, repair and restraint matter: an alarm clock, a remote, a settings screen

  • Reviewing a feature list against "is this necessary?" before adding controls

  • As a counter-instruction when generated designs pile on features, apps and logos

  • Arguing for repairability and recycling as design requirements, not afterthoughts

Common Misunderstandings:

  • Reading "as little design as possible" as visual minimalism. It means removing the unnecessary, not making things look sparse.

  • Copying the look and dropping the rest. A product in Rams' visual idiom that wears out quickly or cannot be repaired violates "long-lasting" and "environmentally friendly".

  • Treating the list as fixed canon. Rams told Paul Makovsky in a Metropolis interview (1 February 2004) that "these points cannot be set in stone."

  • Expecting the principles to be cited by name. In our prior test on 2026-10-28, no baseline alarm clock named a principle or mentioned repair. Five of six anchor runs named at least four principles, and all six made the clock repairable or recyclable. One Opus run named none and simply applied them: one innovation, three controls, no apps, no radio, no logo on the front.

Criticism:

  • Simpler is not always better, and the frame is Western modernist product design. Pascal Barry argues in "Deconstructing Dieter Rams' Ten Principles For Good Design – Part 3" (UX Planet) that the principles come from Western modernist product design and transfer imperfectly to digital work. Pushed to extremes, minimalism turns generic: "Simpler is not necessarily better."

8-Point Grid

Details
Full Name

8-Point Grid — a spacing system in which sizes, margins and paddings are multiples of eight, popularised around 2016 by Bryn Jackson’s guide on spec.fm and by Material Design’s 8dp grid

Also known as

8pt grid, 8dp grid, 8-point grid system

Core Concepts:

  • One base unit for all spacing. Margins, paddings, component heights and gaps are multiples of 8: 8, 16, 24, 32 and so on.

  • Fewer decisions, more consistency. A small set of allowed values ends the debate over 13 or 15 pixels and keeps screens built by different people aligned.

  • Material Design made it a platform rule. Material Design 1 states: "All components align to an 8dp square baseline grid for mobile, tablet, and desktop."

  • A 4-point half-step for fine detail. In Material Design 1, iconography and type align to a 4dp grid. Four is a common half-step for small gaps.

  • Soft grid and hard grid. A soft grid spaces elements by multiples of 8; a hard grid places every element on an 8-point lattice. Teams need to agree which one they mean.

  • A spacing system, not a column grid. The 8-point grid sets the rhythm of space. How many columns a layout has is a separate decision.

    Key Proponents

    Bryn Jackson (guide on spec.fm, called the most comprehensive guide in "Intro to The 8-Point Grid System", Pivotal, 14 December 2016); Google Material Design (Material Design 1, Metrics & keylines)

When to Use:

  • CSS for components, cards and lists, when spacing should come from one scale instead of ad-hoc pixel values

  • Defining spacing tokens in a design system

  • Handing designs to developers, so both sides use the same values

  • As a counter-instruction when generated CSS mixes values such as 13px, 18px and 22px

Common Misunderstandings:

  • Every value must be a multiple of 8. Material uses 4 for type and icons, and 4 is a common half-step.

  • Confusing the soft grid with the hard grid. One governs the spacing between elements, the other the position of every element on a lattice.

  • Mistaking it for a column grid. It says nothing about the number of columns.

  • Assuming the baseline ignores spacing scales. In our prior test on 2026-10-28, the baselines already leaned towards round numbers: 58 per cent of their pixel values in a responsive card list were multiples of eight. "Use an 8-point grid" raised the share to 88 per cent on every tier. Attribution was the weak point: Sonnet and Opus named no single creator and pointed to Material Design, Opus added Bryn Jackson, and Haiku named Samantha Warren with medium confidence.

Criticism:

  • Too coarse for dense interfaces. Darin Dimitroff explains in "Why we’re using a 4-point grid in Webflow" (Webflow Blog, updated 16 January 2019) why Webflow uses a 4-point grid: for a dense interface "an 8pt scale simply doesn’t provide enough granularity".

The Elements of Typographic Style (Bringhurst)

Details
Full Name

The Elements of Typographic Style by Robert Bringhurst, published by Hartley & Marks; first edition 1992, latest version 4.0 (2012)

Also known as

Bringhurst

Core Concepts:

  • A comfortable measure. Single-column text runs 45 to 75 characters per line; Bringhurst calls 66 ideal.

  • Figures that sit in the text. Running text uses old-style figures, which blend with lowercase letters.

  • Small caps for abbreviations. Acronyms and abbreviations in running text are set in small caps, so they do not shout.

  • Indent or space, not both. Mark a new paragraph with an indent or with space between paragraphs. Do not indent the first paragraph after a heading.

  • Optical alignment. Hanging punctuation keeps the text edge straight to the eye; capitals and small caps get extra letterspacing.

  • A chosen scale of sizes. Sizes come from a deliberate scale, not from chance. The book’s chapter on this is a source for the Modular Scale.

  • Rules with reasons. Each rule is a reasoned convention from centuries of book typography, to be applied with judgment.

    Key Proponents

    Robert Bringhurst, Canadian typographer, poet and translator. Editions: 1992; 1996; version 2.4 (2001) and 2.5 (2002); version 3.0 (2004), 3.1 (2005) and 3.2 (2008); version 4.0 (2012). Hermann Zapf hoped it would become the typographers' bible (Wikipedia)

When to Use:

  • CSS for articles, documentation and other long-form text. In our prior test the book’s name added old-style figures and indented paragraphs in every run, and small caps and hanging punctuation in most.

  • Reviewing the typography of reports, books and PDFs

  • Together with the Modular Scale when heading sizes also need a rule

  • As a counter-instruction when generated text styles stop at font size and line height

Common Misunderstandings:

  • Treating it as a UI rulebook. The book is about book typography. Its rules fit running text better than buttons, forms and dashboards.

  • Reading the rules as law. They are conventions with reasons. Bringhurst explains why each one exists, so a reader can judge when it does not apply.

  • Quoting "66 characters" without the range. The ideal sits inside a range of 45 to 75 characters for single-column text.

  • Expecting the baseline to reach the details. In our prior test on 2026-10-28, the baselines set a measure and a line height and stopped there. With the book’s name, six of six set old-style figures and indented paragraphs instead of spacing them; four of six added small caps and hanging punctuation, Sonnet and Opus in all four runs.

Criticism:

  • Tied to print. Maurice Meilleur reviews version 4.0 in "The Elements of Typographic Style, Version 4.0" (Typographica, 2013). He finds that the book "has an easier time thinking backwards": screen typography gets two pages, and display type is mostly missing. He notes that it reads like holy writ and advises students to read it, but not first and not alone.

Every Layout

Details
Full Name

Every Layout — a book and website by Heydon Pickering and Andy Bell on composing responsive layouts from small CSS primitives

Core Concepts:

  • Let the browser decide. Layouts rely on the browser’s own algorithms — flexbox wrapping, grid auto-fit, min() — instead of fixed breakpoints. The authors aim to avoid breakpoints and "magic numbers".

  • Intrinsic, content-driven layout. An element’s layout follows from its content and the space available, not from the viewport width.

  • A small set of primitives. Stack, Box, Center, Cluster, Sidebar, Switcher, Cover, Grid, Frame, Reel, Imposter, Icon and the newer Container. Each solves one layout problem and they nest.

  • Spacing from a modular scale. Custom properties such as --s1 hold the steps of a spacing scale.

  • The owl selector. The Stack spaces its children with * + *, so margin sits only between siblings.

  • Measure as an axiom. Line length is capped in ch, so text stays readable at every width.

  • Layouts as custom elements. Each primitive can be written as a custom element with attributes for its settings.

    Key Proponents

    Heydon Pickering and Andy Bell; the full version came out on 29 July 2019 as an EPUB book and a website (release notes)

When to Use:

  • Responsive CSS for lists, card grids and page regions. In our prior test every anchor run built the layout with no media query and used a Stack.

  • Component libraries whose parts must work in any container width

  • Replacing a tangle of breakpoints with a few nested primitives

  • Together with a Modular Scale for spacing values

Common Misunderstandings:

  • Calling it a component library. Every Layout teaches CSS reasoning. It ships no buttons or cards.

  • Reading "no media queries" as a ban. The goal is to need fewer breakpoints. Media queries remain a tool where intrinsic layout cannot do the job.

  • Treating primitives as styled components. A primitive handles layout only. Colour, type and decoration belong elsewhere.

  • Expecting intrinsic layout by default. In our prior test on 2026-10-28, all six baseline runs for a responsive card list used a media query. With "Every Layout", all six used none and built a Stack; Opus named Grid, Stack, Frame and Box and explained that the grid reflows by itself.

Current Status:

  • Third edition, with a Container layout. The home page lists the third edition. The editions page records the changes: the second edition moved to the gap property (announced 29 June 2021); the third uses logical properties and aspect-ratio for the Frame; the latest version adds the Container layout as a starting point for container queries. The training-data prior may predate the newer editions; name gap, logical properties or container queries if you need them.

Fluent 2 Design System

Details
Full Name

Fluent 2 Design System — the second generation of Microsoft’s Fluent Design System

Also known as

Fluent 2, Fluent UI (the code libraries), Fluent UI React v9

Core Concepts:

  • Two token layers. Global tokens hold raw values, alias tokens carry meaning (Design tokens); in React they appear as tokens.colorNeutralForeground1 or tokens.colorBrandBackground.

  • Platform typefaces on one ramp. Segoe UI on the web, Segoe UI Variable on Windows, San Francisco Pro on Apple platforms and Roboto on Android, with a shared ramp from Caption to Display (Typography).

  • Fluent UI React v9. @fluentui/react-components with FluentProvider and themes such as webLightTheme; styles are written with makeStyles, which builds on the Griffel CSS-in-JS engine.

  • Components per platform. React and Web Components for the web, WinUI for Windows, and native libraries for iOS and Android (Develop).

  • Light, depth, motion, material, scale. The five properties of the original Fluent Design System of 2017, whose materials Acrylic and Mica still shape Windows.

    Key Proponents

    Microsoft. The Fluent Design System was unveiled at Build on 11 May 2017, codename Project Neon (The Next Web); Fluent 2 followed in May 2023, with Teams already redesigned in it (SD Times)

When to Use:

  • Building Teams apps, Office add-ins, SharePoint extensions or tools that should look at home in Microsoft 365. In our prior test, every anchor run of a team-settings page imported @fluentui/react-components and styled it with makeStyles and Fluent tokens.

  • Designing one product across web, Windows and mobile with shared tokens

  • As a contrast to Material Design 3 and Apple’s HIG for enterprise software

Common Misunderstandings:

  • Mixing v8 and v9. Fluent UI React v8 (@fluentui/react) is in maintenance; v9 is "a complete revamp of the library that has fundamental and structural changes from v8" (maintainer in discussion #23183). "Fluent 2" points the model at v9.

  • Equating Fluent 2 with Windows 11 visuals. Acrylic and Mica are Windows materials from the original Fluent; Fluent 2 is mainly a token and component system across platforms.

Criticism:

Current Status:

  • Fluent UI React v9 is current; Web Components v3 in release candidate. @fluentui/react-components ships continuously, version 9.75.0 in October 2026; the repository encourages v8 users to migrate. Fluent UI Web Components 3.0 reached a release candidate in November 2025 (discussion #34080).

Gestalt Principles

Details
Full Name

The Gestalt principles of perceptual grouping — the factors by which people see separate elements as belonging together, described by Max Wertheimer in 1923 and applied today in visual and interface design

Also known as

Gestalt laws, laws of perceptual organization, principles of grouping

Core Concepts:

  • We see wholes before parts. The eye groups elements into units without effort. Design either works with this grouping or fights it.

  • Wertheimer’s factors. In "Untersuchungen zur Lehre von der Gestalt II" (1923) Max Wertheimer named proximity, similarity, uniform destiny (common fate), objective set, direction, closure, good curve, good Gestalt and past experience.

  • Proximity. Elements close to each other read as a group. In interfaces, spacing alone can tie a label to its field.

  • Similarity. Elements that share colour, shape or size read as related.

  • Closure and common fate. The eye completes incomplete shapes, and elements that move together read as one unit.

  • The factors compete. Aurora Harley of NN/g notes that proximity often overrides similarity. A design reads correctly only when the factors agree.

  • The list grew in design practice. The NN/g study guide also covers common region — elements inside a shared border read as a group — which is not among Wertheimer’s original factors.

    Key Proponents

    Max Wertheimer ("Untersuchungen zur Lehre von der Gestalt II", Psychologische Forschung 4, 1923, pp. 301–350; English: "Laws of Organization in Perceptual Forms", translated by W. Ellis in A Source Book of Gestalt Psychology, 1938); Kurt Koffka and Wolfgang Köhler as co-founders of the Berlin school; in UX practice the Nielsen Norman Group (visual design study guide, 2022; Aurora Harley, "Proximity Principle in Visual Design", 2020)

When to Use:

  • Reviewing a form or screen where labels, fields and buttons do not visibly belong together

  • Explaining why a layout feels confusing, in terms that point at a fix: more space here, a shared border there

  • Teaching visual hierarchy to developers and writers

  • Asking a model to review a UI: with the anchor, it explains defects through named grouping laws, proximity first

Common Misunderstandings:

  • Expecting one canonical list. Wertheimer’s factors differ from the lists in design books; common region, for instance, came later.

  • Applying the principles as independent rules. They compete, and proximity often wins over similarity.

  • Reading them as explanations. They describe grouping tendencies; they do not explain why perception works that way.

  • Dropping "Principles" from the name. In our prior test on 2026-10-28, the bare "Gestalt" resolved to psychology on every tier and brought up Gestalt therapy. With "Gestalt Principles", six of six runs explained the defects of a signup form through at least three laws, proximity in all six; no baseline named one.

Criticism:

Glassmorphism

Details
Full Name

Glassmorphism — a UI style of translucent, frosted-glass panels with background blur and a subtle light border, layered over a colourful background

Also known as

Frosted glass UI, glass UI

Core Concepts:

  • Frosted transparency. Panels are semi-transparent, typically a white or dark fill at low opacity, and blur whatever lies behind them. In CSS this is backdrop-filter with a blur radius, for example backdrop-filter: blur(16px).

  • Layers that float. Panels sit on separate planes above the background and above each other, so depth comes from transparency, not from heavy shadows.

  • A vivid background to blur. The effect needs something to show through: gradients, coloured blobs or photos behind the glass.

  • A subtle light border. A thin, semi-transparent white edge catches the light and separates the panel from the background.

  • Soft shadows and rounded corners. Panels have generous radii and, at most, a soft shadow beneath them.

    Key Proponents

    Michał Malewicz, who named the style in "Glassmorphism in user interfaces" (UX Collective, 22 November 2020) and listed its four traits: frosted transparency, floating layers, vivid colours and a subtle light border.

When to Use:

  • Overlays, cards and control panels that sit on top of imagery or colourful gradients

  • Marketing pages, music and media apps, dashboards that should feel light and layered

  • As a counter-instruction when generated designs use flat opaque cards and you want depth without heavy shadows

Common Misunderstandings:

  • Expecting it from a related task. In our prior test on 2026-10-29, a music player’s now-playing screen already got a blurred background in all six baselines. On a neutral task — the pricing section of a SaaS landing page — no baseline made its cards translucent or used backdrop-filter; with "Use glassmorphism." six of six runs did both.

  • Forgetting the background. Glass over a plain white page shows nothing. The style needs colour or imagery behind it.

  • Reading translucent as legible. Text on glass sits on a shifting background; contrast has to be checked against the busiest area behind it.

  • Confusing it with neumorphism. Neumorphism extrudes soft shapes from a solid surface; glassmorphism layers transparent panes.

Criticism:

  • Hard on people with disabilities. Nicko Syropoulos writes in "Glassmorphism Meets Accessibility: Can Glass Be Inclusive?" (Axess Lab, 2025) that "this style offers great challenges even if it is aesthetically pleasing". He names weak text contrast over colourful images, distracting backgrounds, blur and motion that can cause eye strain, and blurred boundaries that hide controls.

Current Status:

  • Back in the mainstream with Liquid Glass. Apple’s 2025 design language for iOS 26 and its other platforms uses a translucent material that, in Apple’s words, "reflects and refracts its surroundings". Without further context, "glassmorphism" most likely means the 2020 style of Malewicz’s article; for Apple’s version, name Liquid Glass and the Apple Human Interface Guidelines.

GOV.UK Design System

Details
Full Name

GOV.UK Design System — the styles, components and patterns of the UK Government Digital Service for building public services on GOV.UK

Also known as

GOV.UK Frontend (its code), the GDS design system

Core Concepts:

  • Styles, components and patterns in one place. The system bundles visual styles, coded components and patterns for common tasks. Its code is GOV.UK Frontend. It replaced GOV.UK Elements and took over the patterns from the Service Manual.

  • One thing per page. Each page asks one question. Tim Paul of GDS argued that this helps users with low confidence, works on mobile, and makes error handling and branching simpler.

  • A service is a sequence of known pages. A start page with a green "Start now" button, question pages, a page to check answers before submitting, and a confirmation page with a reference number.

  • Errors are shown twice. An error summary at the top of the page links to each faulty field, and an inline message sits at the field itself.

  • Forms follow fixed conventions. Labels sit above fields, and the content is written in plain English.

  • A restricted visual identity. The GDS Transport typeface and the GOV.UK brand are reserved for GOV.UK services.

    Key Proponents

    Government Digital Service (GDS), which introduced the system on 22 June 2018 in a post by Alice Noakes and Amy Hupe; Tim Paul, author of "One thing per page" (3 July 2015)

When to Use:

  • Online services for citizens: applications, permits, registrations, claims

  • Long forms that branch, where users must not get lost or give up

  • Reviewing a form flow for error handling, page order and the check-answers step

  • As a counter-instruction when a generated form crams every question onto one long page

Common Misunderstandings:

  • Treating "one thing per page" as an absolute rule. Its author framed it as a starting point: "start with everything on its own page", then adjust.

  • Confusing it with the Service Manual and the Service Standard. Those set the process and the assessments a service must pass. The Design System supplies the styles, components and patterns.

  • Reusing it as-is outside UK government. The Crown, the typeface and the brand are restricted. The NHS wrote, when adapting it, "Sometimes we had to adapt parts of the GOV.UK Design System" ("Adapting the GOV.UK Design System for the NHS", 4 June 2019).

  • Expecting the name to add what the model already does. In our prior test on 2026-10-28 (a residents' parking permit service), both Opus baselines already had a start page and a check-answers page. What the name added on every tier was the pattern no baseline used: one question per page, in six of six runs.

Current Status:

  • A new major version and a new brand. GOV.UK Frontend v6.0.0 came out in February 2026 with breaking changes; the latest release is v6.6.0 from October 2026 ("What’s new"). Version 6 moves the colours to the GOV.UK brand palette, brings a new type scale and removes deprecated APIs. GDS unveiled the brand refresh, with a blue logo background and a turquoise dot, in June 2025. The training-data prior most likely shows the look from before 2025, with the black header.

Laws of UX

Details
Full Name

Laws of UX — Jon Yablonski’s collection of psychological principles for interface design, published as a website in 2018 and as an O’Reilly book in 2020

Also known as

lawsofux.com; Yablonski’s Laws of UX

Core Concepts:

  • A curated collection, not a new theory. Yablonski gathers known findings from psychology and HCI and restates each as a design rule. He launched the site in mid-January 2018 "with 10 laws".

  • Laws about movement and choice. Fitts’s Law: the time to hit a target depends on its size and distance. Hick’s Law: decision time grows with the number of choices.

  • Laws about memory and attention. Miller’s Law, the Serial Position Effect, the Von Restorff Effect, the Zeigarnik Effect and cognitive load describe what users can hold in mind and what stands out.

  • Laws about expectations. Jakob’s Law: users expect your site to work like the sites they already know. The Aesthetic-Usability Effect: users judge attractive designs as easier to use.

  • Laws about experience over time. The Peak-End Rule, the Goal-Gradient Effect and the Doherty Threshold concern how users remember an experience, how they speed up near a goal, and how fast a system must respond.

  • Laws about complexity. Tesler’s Law: every system has complexity that cannot be removed, only moved. Postel’s Law: be liberal in what you accept, conservative in what you send.

  • Grouping laws from Gestalt psychology. The collection includes the Law of Proximity and the Law of Common Region.

    Key Proponents

    Jon Yablonski (Laws of UX, O’Reilly, April 2020; 2nd edition, January 2024); site launch as told in an Adobe Blog interview with Sheena Lyonnais, 17 April 2018

When to Use:

  • Reviewing a form or screen when the findings should cite a mechanism: target size, number of choices, memory load

  • Arguing a design decision with stakeholders in terms of known effects

  • Planning response times, onboarding steps and progress indicators

  • Asking a model to review a UI: with the anchor, it cites Fitts’s and Hick’s Law as a rule and, on the stronger tiers, ten or more laws

Common Misunderstandings:

  • Taking them for laws of nature. The collection mixes models, effects and heuristics of very different strength.

  • Reading Miller’s Law as a cap on menu items. It concerns short-term memory, not how many entries a navigation may have.

  • Applying one law in isolation. The laws interact and can pull in different directions; one law alone rarely settles a design question.

  • Expecting the baseline to name them. In our prior test on 2026-10-28, no baseline review of a signup form cited a single law. With "Laws of UX", six of six runs cited Fitts’s and Hick’s Law, five of six Miller’s Law; Sonnet and Opus cited ten to twelve laws per answer.

Criticism:

  • Not laws, and an arbitrary selection. Marcin Wichary argues in "Book review: Laws of UX (2nd ed.)" (Unsung blog) that the "laws" are not laws in a scientific sense and that the choice of entries is arbitrary: "the book doesn’t fully understand how design works."

  • An outdated reading of Miller. D. Ben Woods notes in his UXmatters review (23 November 2020) that the Miller’s Law chapter still relies on the old figure of seven plus or minus two.

Material Design 3

Details
Full Name

Material Design 3 — the third generation of Google’s design system, introduced as Material You in 2021 and extended by Material 3 Expressive in 2025

Also known as

Material 3, M3, Material You

Core Concepts:

  • Colour roles instead of fixed colours. Primary, secondary, tertiary, surface and the surface container levels each have a matching on-colour for content placed on them, such as on-surface.

  • Tonal palettes from one source colour. The system derives palettes from a single source colour in the HCT colour space.

  • Dynamic color. On Android the theme can come from the user’s wallpaper, so apps match the device.

  • Design tokens. Values live in named tokens such as md.sys.*, so themes swap without touching components.

  • Type and shape scales. Display, Headline, Title, Body and Label, each in Large, Medium and Small; a shape scale sets corner radii.

  • Elevation through tone. Raised surfaces get a tonal tint rather than a heavy shadow.

  • Standard components on a 4dp/8dp grid. Top app bar, navigation bar, floating action button, cards and chips.

    Key Proponents

    Google. Material Design was introduced at Google I/O on 25 June 2014 with Matías Duarte as head designer; Material Theming followed in 2018; Material You, the first version of Material 3, came at Google I/O in May 2021 with Android 12 (Wikipedia; 9to5Google)

When to Use:

  • Designing Android apps or web apps that should feel at home on Android. In our prior test the anchor made every run use at least three Material 3 terms for a settings screen, such as surface roles, on-surface colours and the top app bar.

  • Building a theme from a brand colour with tonal palettes

  • Naming colour, type and shape values as tokens in a design system

  • As a contrast to Apple’s HIG when an app ships on both platforms

Common Misunderstandings:

  • Treating Material You and Material 3 as two systems. Material You is the marketing name for Material 3 and its dynamic color.

  • Calling Expressive "Material 4". Material 3 Expressive is a layer on top of Material 3, not a new generation.

  • Expecting dynamic color for free. It is a platform feature, and apps must adopt it.

  • Saying "Material Design" when you mean version 3. In our prior test on 2026-10-28, no baseline used more than one Material 3 term. With "Material Design 3", six of six used at least three, and five of six named tonal or dynamic colour. The bare "Material Design" resolves to UI design on all tiers but does not pin the version.

Criticism:

  • Flat design left apps looking alike. Benjamin C.J. Walker, "Material 3 Expressive: Building on the failures of flat design" (UX Collective, 2025), argues that Material was basically flat and removed signifiers. That caused sameness and uncertainty about what is clickable. He quotes Google’s own team asking: "Why did all these apps look so similar? So boring?" Expressive is the attempt to fix it.

  • Uniformity at the cost of identity. An Android Police article, "Everything I hate about Material You", objects that themed icons weaken each app’s identity "in favor of a half-baked uniformity", and that information density is low.

Current Status:

  • Material 3 Expressive is the current layer. Google announced it in May 2025 for Android 16 and Wear OS 6, and Pixel devices received it from September 2025. Fast Company reports that it rests on 46 studies with more than 18,000 participants (Mark Wilson, Fast Company, 2025). The training-data prior most likely serves the Material You era of M3; Expressive changes such as more shapes, motion and emphasis may come out thin unless you ask for them.

Mobile First

Details
Full Name

Mobile First — designing for the small screen first and adding to it for larger screens, as defined by Luke Wroblewski

Also known as

Mobile-first design, mobile-first CSS

Core Concepts:

  • Design the small screen first. The mobile version is the starting point, not a shrunken copy of the desktop page.

  • Growth means opportunity. Wroblewski’s first reason: the growth of mobile use is an opportunity to reach more people.

  • Constraints force focus. A small screen leaves room only for what matters most. Deciding that first sharpens the product on every screen.

  • Capabilities enable innovation. Designing for what mobile devices can do opens room for new ideas.

  • A strategy of priorities. Mobile First decides what content and which actions come first. The CSS technique follows from that decision.

  • In CSS: base styles, then min-width. Base styles serve the small screen; min-width media queries add layout for wider viewports. This is progressive enhancement.

    Key Proponents

    Luke Wroblewski, who first defined the concept in 2009 and named three reasons — growth, focus, innovation (interview with Webdesigner Depot, 2013; slides); his book Mobile First (A Book Apart, October 2011) has a foreword by Jeffrey Zeldman

When to Use:

  • Writing responsive CSS, so the base styles serve the phone and wider layouts build on them

  • Deciding the content and action priorities of a page or a product

  • Reviewing a stylesheet for desktop-first patterns

  • As a counter-instruction when generated CSS starts from the desktop layout and overrides it with max-width queries

Common Misunderstandings:

  • Reducing it to min-width media queries. The queries are the technique. The idea is a strategy of priorities.

  • Expecting the default to be mobile first. In our prior test on 2026-10-28 (CSS for a responsive list of product cards), all six baselines wrote a max-width media query, the desktop-first pattern. With "Mobile First", all six runs wrote min-width queries and none wrote max-width.

  • Reading it as "mobile only" or "native app first". Mobile First is about the order of design for the web, not about building only for phones or starting with an app.

  • Removing features for mobile. The constraint decides priorities. It does not mean mobile users get less.

Criticism:

  • The term means too many things. Brad Frost observes in "The Many Faces of 'Mobile First'" (13 August 2012) that "we’re seeing it used in myriad different ways". The term became a catch-all and was often confused with "native app first".

  • "Mobile" is the wrong frame. Adam Sedwick asks in "Is 'Mobile-First' as an idea dead?" (UX Collective) whether the idea still holds. He argues that "mobile" suggests a phone with touch and a slow connection, and proposes an approach that is device-agnostic and focused on performance.

Modular Scale

Details
Full Name

Modular Scale — a sequence of sizes derived from one base size and one ratio, used to set type and spacing in proportion

Also known as

Type scale, typographic scale

Core Concepts:

  • A sequence of related numbers. Tim Brown defines it in "More Meaningful Typography" (A List Apart, 2011) as "a sequence of numbers that relate to one another in a meaningful way".

  • Base times ratio. Pick a base, usually the body text size, and a ratio. Multiply up for larger steps and divide down for smaller ones.

  • Ratios borrowed from music and geometry. modularscale.com offers ratios from 15:16 (minor second) to 1:4 (double octave), including the golden section 1:1.618 and 1:√2.

  • A pool to choose from. The scale gives candidate sizes. Headings, body text and captions take the steps they need; the rest stay unused.

  • Beyond font size. The same steps can set line height, margins and spacing, so type and layout share one proportion.

  • Older than the web. Brown builds on Robert Bringhurst, who treats the scale of sizes in The Elements of Typographic Style and compares it to a musical scale.

    Key Proponents

    Tim Brown (Type Manager at Adobe Typekit when he wrote "More Meaningful Typography", A List Apart No. 327, 3 May 2011); Scott Kellum and Tim Brown, who build and maintain modularscale.com; Robert Bringhurst as the source Brown cites

When to Use:

  • CSS for body text and headings, when heading sizes should follow one rule instead of hand-picked values. In our prior test the anchor made every run define the ratio as a custom property and derive the sizes from it.

  • Design systems that need a type ramp and a spacing ramp from the same proportion

  • Reviewing a stylesheet whose font sizes have grown at random

  • Together with Bringhurst for long-form text

Common Misunderstandings:

  • Using every step. The scale is a pool. A page that uses all steps loses the contrast the scale was meant to create.

  • Trusting the musical names. "Major third" or "perfect fourth" label a ratio. They do not make type harmonious by themselves.

  • One fixed scale for every screen. A ratio that works on a wide screen can give headings that are too large on a phone. See the criticism below.

  • Expecting the model to do it unasked. In our prior test on 2026-10-28, all six baseline runs set heading sizes by hand, mostly with clamp(). With "Modular Scale" in the prompt, all six defined a base and a ratio, for example "base 1.125rem, ratio 1.25 (major third)" on Haiku. The bare term resolves to typography and design on all tiers.

Criticism:

  • Large ratios leave too few sizes on small screens. Zell Liew, "Responsive Modular Scale" (2016), notes that with a large ratio "there aren’t any smaller sizes you can use in the scale". The usual fixes, a second base or a ratio per breakpoint, weaken the consistency the scale promised.

  • Easy to overdo. Chris Krycho, "Modular scales: fantastic, but don’t overdo it" (2013), likes the method but warns that "the modular scale can get away from you pretty easily". Applied to every value, it stops serving the design.

Neo-Brutalism

Details
Full Name

Neo-Brutalism — a visual style for web and UI design with thick black borders, hard offset shadows, flat saturated colours and blocky layouts

Also known as

Neobrutalism, neubrutalism

Core Concepts:

  • Thick black outlines. Cards, buttons and images carry a solid black border of two to four pixels. The outline, not a soft shadow, separates an element from its background.

  • Hard offset shadows. Shadows are solid black or dark blocks shifted a few pixels down and to the right, with no blur. On hover, an element often moves into its shadow to look pressed.

  • Flat, saturated colour. Large areas of strong colour — yellow, pink, mint, blue — with no gradients. Black text sits on top.

  • Blocky, visible structure. Layouts are built from rectangles with sharp or slightly rounded corners. The grid shows; nothing hides that the page is made of boxes.

  • Bold, plain type. Heavy grotesque or monospace fonts, large headings, often in capitals.

  • Order under the noise. Unlike raw brutalist web design, the style keeps a grid, a clear hierarchy and conventional navigation. The Nielsen Norman Group describes it as a more colourful and orderly descendant of brutalism and a reaction against sleek minimalism.

    Key Proponents

    No single originator. The style spread as a community trend in product and web design; the Nielsen Norman Group defines it in "Neobrutalism: Definition and Best Practices" (Hayat Sheikh, 2025) and names Gumroad and Figma’s brand refresh as examples

When to Use:

  • Landing pages, portfolios and marketing sites that should look loud, playful or deliberately unpolished

  • Products for designers, developers and creative audiences, where an informal tone fits

  • As a counter-instruction when generated designs drift towards soft gradients, rounded cards and blurred shadows

Common Misunderstandings:

  • Confusing it with brutalist web design. Raw brutalism ignores conventions on purpose. Neo-Brutalism keeps order, a grid and a clear hierarchy.

  • Reading high contrast as accessible. Black outlines are high contrast, but saturated colour pairs can still fail text contrast checks.

  • Using it everywhere. The playful look clashes with contexts that depend on trust, such as banking or health.

  • Using the bare "brutalism". In our prior test on 2026-10-28, "What is brutalism?" resolved to architecture on all tiers. With "Use neo-brutalism." a bakery landing page got black borders and hard offset shadows in six of six runs; none of six baselines used either. The prefix is what reaches the web style.

Criticism:

  • Loud styling can cost usability. Hayat Sheikh warns in "Neobrutalism: Definition and Best Practices" (Nielsen Norman Group, 2025) that "without balance, it can overwhelm users and hinder accessibility". She advises two or three colours and neutral fonts for body text.

  • The parent style trades usability for attitude. Kate Moran argues in "Brutalism and Antidesign" (Nielsen Norman Group, 2017) that deliberately hard-to-read layouts conflict with getting tasks done: "nobody ever complains that a site is too easy to understand."

Nielsen’s 10 Usability Heuristics

Details
Full Name

Jakob Nielsen’s ten usability heuristics for user interface design — the rules of thumb behind heuristic evaluation, first published with Rolf Molich in 1990 and revised by Nielsen in 1994

Also known as

Nielsen’s heuristics, the ten usability heuristics

Core Concepts:

  • Rules of thumb, not guidelines. The Nielsen Norman Group calls them in its video on heuristic evaluation "broad rules of thumb and not specific usability guidelines". They point at kinds of problems; they do not prescribe solutions.

  • Ten heuristics. Visibility of system status; match between system and the real world; user control and freedom; consistency and standards; error prevention; recognition rather than recall; flexibility and efficiency of use; aesthetic and minimalist design; help users recognize, diagnose, and recover from errors; help and documentation.

  • The basis of heuristic evaluation. Evaluators inspect an interface and map each problem they find to a heuristic. Nielsen and Molich introduced the method in "Heuristic evaluation of user interfaces" (Proc. ACM CHI'90).

  • Several evaluators, not one. The method assumes several evaluators who inspect independently and then pool their findings.

  • A revised set from 1994. Nielsen’s "Enhancing the explanatory power of usability heuristics" (Proc. CHI'94) produced the set of ten in use today. In "Jakob Nielsen’s 10 Usability Heuristics as Haikus" (11 October 2023) Nielsen noted that the set turns 30 in 2024.

  • A cheap inspection, not a user test. Heuristic evaluation finds likely problems without recruiting users. It complements testing with real users; it does not replace it.

    Key Proponents

    Jakob Nielsen and Rolf Molich ("Heuristic evaluation of user interfaces", Proc. ACM CHI'90, pp. 249–256); Rolf Molich and Jakob Nielsen ("Improving a human-computer dialogue", Communications of the ACM 33(3), 1990); Jakob Nielsen ("Enhancing the explanatory power of usability heuristics", Proc. CHI'94, pp. 152–158); the Nielsen Norman Group. Sources listed in Wikipedia: Heuristic evaluation

When to Use:

  • Reviewing a form, screen or flow when the findings should be named and sorted, not just listed

  • Expert reviews early in a project, before a usability test is affordable

  • Writing review checklists for designers, developers and QA

  • Asking a model to review a UI: with the anchor, its findings map to named heuristics

Common Misunderstandings:

  • Running it with one evaluator. The method assumes several. A single reviewer tends to flag problems that real users never hit.

  • Replacing user testing. The heuristics predict problems; only users confirm them.

  • Treating heuristics as specific guidelines. They are broad categories. "Consistency and standards" does not say which standard to follow.

  • Expecting the defects to be found only with the anchor. In our prior test on 2026-10-28, the baselines found the defects of a signup form but named no heuristic. With the anchor, six of six runs mapped the defects to at least five of the ten heuristics by name, Sonnet to nine and ten. The bare "heuristic evaluation" resolved to HCI on every tier.

Criticism:

  • Oversimplified and rooted in the desktop era. A. Ballav argues in "Nielsen’s Heuristic Evaluation: Limitations in Principles and Practice" (User Experience Magazine 17(4), 2017) that the heuristics are generic and shaped by desktop software: "heuristic evaluations suffer from oversimplification."

  • False positives. Todd Zazelenchuk notes on Userfocus that evaluations are often done by a single evaluator and flag problems real users never encounter. The method is "capable of generating a lot of 'false positives'".

Primer (GitHub Design System)

Details
Full Name

Primer — GitHub’s design system (primer.style)

Also known as

GitHub Primer, Primer React, Primer CSS

Core Concepts:

  • Primitives as tokens. Colour, spacing and typography live in @primer/primitives. Names are built from blocks — namespace, pattern, variant, property, scale — for example fgColor-default, bgColor-inset, borderColor-accent-emphasis and base-size-4 (Token names). Light and dark modes span nine themes.

  • Components in React and Rails. @primer/react (formerly @primer/components) and the gem primer_view_components; PageHeader, ActionList, ActionMenu, UnderlineNav, Label and Blankslate are signature parts.

  • Octicons. "SVG icons built by GitHub for GitHub".

  • Product UI and Brand UI. Primer covers the product interface and, separately, GitHub’s marketing pages.

  • The look of GitHub. Neutral canvas, subtle borders, compact density, blue accents for actions, green for the primary button.

    Key Proponents

    GitHub. Designers began documenting patterns in 2011, and in 2012 the CSS was packaged as a Ruby gem named Primer; the design systems team formed in 2016 with Diana Mounter and Jon Rohan as its first full-time members (Diana Mounter, "Design systems at GitHub", 2018). Mark Otto contributed in the early years

When to Use:

  • Building GitHub Apps, developer tools or internal dashboards that should feel like GitHub. In our prior test, every anchor run of a team-settings page imported @primer/react and Octicons; five of six used PageHeader.

  • Studying a token naming scheme built from composable blocks

  • Rails applications through Primer ViewComponents

Common Misunderstandings:

  • Saying "Primer" alone. On Sonnet the bare word resolves to biology and paint first; "Primer (GitHub)" or "GitHub’s Primer" pins it.

  • Styling with sx and styled-components. Five of six runs in our test used the sx prop. Primer React has removed it: all components moved to CSS Modules, and "GitHub has been running on 100% CSS modules as of June 2026" (Josh Black and Marie Lucca, GitHub Blog, 2026). Ask for CSS Modules when the code must run on current Primer React.

  • Taking Mona Sans as Primer’s UI font. Mona Sans and Hubot Sans, released in 2022, are GitHub’s brand typefaces; their announcement does not tie them to Primer’s product interface (GitHub Blog, 2022).

Criticism:

  • Runtime styling did not scale. GitHub’s own engineers write that with CSS-in-JS, "updates to styles grew out of control as component count grew on a page"; the move to CSS Modules cut server-render time by 55 per cent (GitHub Blog, 2026).

  • Accessibility is uneven. Marc Alcobé of OpenProject, which adopted Primer, notes that "not all existing components are reviewed for accessibility" (OpenProject blog, 2023).

Current Status:

  • CSS Modules everywhere. Since June 2026 GitHub runs entirely on CSS Modules, the sx prop is gone, and @primer/styled-react served as a transitional shim; theming variables live in @primer/css (GitHub Blog, September 2026). The training-data prior predates this change.

Refactoring UI

Details
Full Name

Refactoring UI — a book of practical visual design tactics for developers by Adam Wathan and Steve Schoger

Also known as

The Refactoring UI book

Core Concepts:

  • Start with a feature, not the layout. Design one concrete piece of functionality first; the page shell comes later.

  • Hierarchy comes from weight and colour, not size alone. Primary content gets a heavier weight and a darker colour. Secondary content is de-emphasised with grey text and a lighter weight.

  • No grey text on coloured backgrounds. Grey belongs on white or neutral surfaces.

  • Choose from a predefined system. Spacing and sizing come from a fixed set of values, and type sizes from a constrained scale. You pick from the list instead of inventing a value each time.

  • Start with too much white space. Generous spacing is the starting point, not an afterthought.

  • Use fewer borders. Separate elements with spacing, background colours or shadows instead of lines. Shadows also convey elevation.

  • Define a full palette up front. Each hue gets nine to ten shades, defined in HSL.

  • Labels are a last resort. Let format and context show what a piece of data is before adding a label.

    Key Proponents

    Adam Wathan (developer) and Steve Schoger (UI designer); Refactoring UI, a PDF of about 218 pages in short chapters with a component gallery, colour palettes, fonts and icons, published on 11 December 2018 (Goodreads). The authors also created Tailwind CSS, whose default palette echoes the book.

When to Use:

  • Developers who have to design a screen themselves, without a designer

  • Settings screens, dashboards and admin pages that look cluttered or flat

  • Reviewing a UI for hierarchy, spacing and colour rather than for usability

  • As a counter-instruction when generated screens separate every row with a divider and rely on font size for hierarchy

Common Misunderstandings:

  • Reading it as a Tailwind manual. The tactics are framework-neutral. Tailwind’s defaults echo them, but the book does not require Tailwind.

  • Treating the tactics as universal rules. They are rules of thumb that help developers get to a decent design quickly.

  • Using it instead of user research. The book covers visual polish. It says nothing about whether the feature solves the user’s problem.

  • Expecting the same effect on every tier. In our prior test on 2026-10-28 (a settings screen for a note-taking app), Sonnet and Opus four of four replaced dividers with spacing and used the grey and indigo palette from the authors' Tailwind. Haiku did so in one of two runs and used its own palette: on the weak tier the bare name is a softer nudge. The models attributed the book to Adam Wathan and Steve Schoger with high confidence; whether naming the authors strengthens the action was not tested.

Salesforce Lightning Design System (SLDS)

Details
Full Name

Salesforce Lightning Design System (SLDS), since 2025 also SLDS 2

Also known as

SLDS, Lightning Design System

Core Concepts:

  • Component blueprints in plain CSS. Every selector carries the slds- prefix and follows BEM: slds-page-header, slds-table, slds-button slds-button_brand, slds-media (FAQ).

  • The origin of design tokens. The Salesforce team chose the term design tokens and built the Theo tool to transform them (Trailhead).

  • Styling hooks in SLDS 2. SLDS 2 "separates the structure from the visual design using styling hooks" and replaces design tokens with global CSS custom properties, for example --slds-g-spacing-2 instead of --lwc-spacingSmall (LWC guide).

  • Lightning Web Components. Salesforce’s own component framework implements the blueprints as base components such as lightning-button and lightning-datatable.

  • Salesforce Cosmos. The default theme of SLDS 2.

    Key Proponents

    Salesforce. The work began in 2013; the system launched in 2015 as "the world’s first open-source enterprise design system" (Trailhead). Jina Anne: "I showed that to the team at Salesforce and then that kind of is where the concept of design tokens spawned off of" (Smashing Podcast, 2019)

When to Use:

  • Building Salesforce apps, Lightning pages or external tools that should look native in Salesforce. In our prior test, every anchor run of a team-settings page wrote slds- markup with slds-page-header, slds-table and slds-button.

  • As the reference where design tokens began, and for BEM-named enterprise CSS

  • Name Lightning Web Components as well when you want platform components: in our test no run used them unprompted

Common Misunderstandings:

  • Saying "Lightning" alone. The bare word resolves to weather on every tier we tested; "SLDS" or the full name pins the design system.

  • Expecting SLDS 2 code. The models write SLDS 1 classes and design tokens. SLDS 2 uses global styling hooks (--slds-g-*), and base components may only be styled through documented hooks.

  • Equating SLDS with Lightning Web Components. SLDS is the CSS and the guidelines; LWC is the component framework that uses them.

Criticism:

  • Migration is manual and coverage is partial. Andreea Doroftei, "SLDS 2: How You Can Future-Proof Your Salesforce UI" (Salesforce Ben): "If you have an existing SLDS 1 theme you would like to migrate to SLDS 2, you will need to manually recreate it"; Visualforce, Setup and CRM Analytics are not covered.

  • Little room to style. Salesforce itself states: "Overriding base component styling isn’t supported except when using documented styling hooks" (CSS anti-patterns).

Current Status:

  • SLDS 2 is generally available. Introduced in Spring '25 as "the foundation for the agentic design system" with Salesforce Cosmos as its default theme (Salesforce blog, 2025), SLDS 2 became generally available with Winter '26; dark mode remains in beta (Salesforce Ben). The prior serves SLDS 1; ask for SLDS 2 and styling hooks explicitly.

shadcn/ui

Details
Full Name

shadcn/ui — "a project by shadcn" (About)

Also known as

shadcn

Core Concepts:

  • Open code instead of a dependency. The documentation opens with: "This is not a component library. It is how you build your component library." (Introduction). npx shadcn add button writes the component’s source into the project, usually under components/ui, where the team owns and edits it.

  • Accessible primitives underneath. Behaviour comes from Radix UI or, since July 2026 by default, Base UI; styling comes from Tailwind CSS.

  • Semantic colour pairs as CSS variables. --background and --foreground, --primary and --primary-foreground, --muted and --muted-foreground, --destructive, --border, --ring and --radius (Theming). A theme swaps the variables, not the components.

  • components.json and cn(). The config file holds style, Tailwind settings and import aliases such as @/lib/utils; cn() merges class names, formerly as twMerge(clsx(…​)).

  • A registry, not only a catalogue. The CLI installs components, blocks and themes from shadcn’s registry or any other one that follows the schema, which made it a distribution format for design systems.

    Key Proponents

    shadcn, a design engineer at Vercel (shadcn.com). First released in March 2023 (LogRocket, 2026); the project is MIT-licensed and hosted by Vercel

When to Use:

  • Building a React or Next.js interface on Tailwind CSS that should look finished from the start but stay fully editable. In our prior test, every anchor run of a sign-up form imported from @/components/ui/ and named the npx shadcn CLI; no baseline did.

  • Starting a team’s own component library from code you can change rather than a package you cannot

  • Distributing a design system to several apps through a registry that the CLI installs from

Common Misunderstandings:

  • Treating it as an npm library. There is no shadcn-ui package to upgrade. The code is yours, and so are its updates.

  • Expecting the model to know the current stack. In our prior test three of six runs built the form with react-hook-form and zod, the classic setup. Since 2025 the project has moved on: Base UI is the default, the forms page offers React Hook Form, TanStack Form and Formisch, and cn is its own package. Name the version or give the docs link when that matters.

  • Thinking it is a visual style. The defaults are neutral greys with a slight radius; the look comes from the theme variables you set.

Criticism:

  • Ownership is also maintenance. Nefe Emadamerho-Atori, "shadcn/ui adoption guide" (LogRocket, 2026), notes that copying components "also results in a larger codebase that requires more maintenance". Vercel’s own course states the trade-off: stability and control "at the cost of automatic updates" (Vercel Academy).

  • Libraries cannot ship fixes into copied code. Ayush, "React vs shadcn, and trying to be too clever" (Autumn, 2025), describes a vendor that distributed its UI through the shadcn registry: "Because shadcn components install as a user file, we cannot fully control it via our SDK."

Current Status:

  • Base UI by default, CLI v4. The changelog records CLI 3.0 with an MCP server (August 2025), npx shadcn create with a choice between Radix and Base UI (December 2025), CLI v4 (March 2026), Base UI as the default (July 2026, "Radix is not being deprecated") and the separate cn package (September 2026) (Changelog). The training-data prior serves the Radix era well; Base UI and the newer form options may come out thin unless you name them.

Shopify Polaris

Details
Full Name

Shopify Polaris — "Shopify’s unified UI framework built on web components" (shopify.dev)

Also known as

Polaris, Polaris web components, Polaris React (the deprecated library)

Core Concepts:

  • Pages for merchants. A page has a title, a primary action and secondary actions; content sits in cards and sections; resource lists and index tables show orders, products and customers.

  • Web components with the s- prefix. <s-page>, <s-section>, <s-stack> and <s-button tone="critical" variant="primary">, loaded from Shopify’s CDN and usable with any framework (Using Polaris components).

  • The React library. @shopify/polaris with Page, Layout, Card, IndexTable, BlockStack, InlineStack and Badge — what most code written before 2025 uses.

  • Design tokens. CSS custom properties with the --p prefix such as --p-color-bg-surface, from @shopify/polaris-tokens.

  • Content guidance. Polaris has always included rules for voice, tone and wording in merchant-facing interfaces, not only components.

    Key Proponents

    Shopify. Polaris was made available to partners at Shopify Unite 2017 with a style guide, content guidance, CSS, a React component library and a Sketch kit (Liz Couto, Shopify Partners blog, 2017); Polaris web components became stable on 1 October 2025 (Shopify changelog)

When to Use:

  • Building Shopify apps, admin extensions or merchant-facing back offices. In our prior test, every anchor run of a team-settings page built a Polaris Page with a primary action, an IndexTable and Badge tones.

  • Designing dense, task-focused admin screens with clear primary actions

  • Writing interface copy for merchants along Polaris’s content rules

Common Misunderstandings:

  • Saying "Polaris" alone. The bare word resolves to the North Star on every tier we tested; "Shopify Polaris" pins it.

  • Expecting web components from the model. Every anchor run in our test wrote Polaris React, and none wrote s- components. The React library is deprecated, and React-rendered parts "won’t follow the updated Shopify admin" (Polaris 2). For new apps, ask for Polaris web components and give the link to shopify.dev.

Criticism:

  • A forced migration. Daniel Curtis, "Shopify Upgrades Checkout Blocks to Polaris Web Components" (InfoQ, 2026), reports for checkout UI extensions that after a year, with the 2026-01 version mandatory, "sentiment has been more mixed": developers called the unversioned CDN script a risk for stability and the components incomplete, while bundles shrank by 40 to 85 per cent.

Current Status:

  • Web components and Polaris 2. The Polaris React repository is archived and "will not receive updates or maintenance"; the old documentation sites redirect to shopify.dev. The redesigned admin began rolling out on 15 September 2026, and the Polaris 2.0 release candidate of 24 September 2026 requires apps to move to web components; Built for Shopify apps have until 1 May 2027 (changelog). The training-data prior is the React era.

Swiss Style (International Typographic Style)

Details
Full Name

Swiss Style, also called the International Typographic Style — the grid-based graphic design that came out of the Zurich and Basel schools of design in the 1950s

Also known as

International Typographic Style, Swiss design, Swiss typography

Core Concepts:

  • The grid comes first. A modular grid of columns and rows is set before any element is placed, and every element sits on it. Josef Müller-Brockmann’s Grid Systems in Graphic Design (1981) works through grids from 8 to 32 fields.

  • Sans-serif type, and little of it. Akzidenz-Grotesk, later Helvetica, in few sizes and weights. Hierarchy comes from scale, weight and position, not from ornament or a change of typeface.

  • Flush left, ragged right. Text is aligned to one edge and never justified, so word spacing stays even.

  • Asymmetric composition. Elements are balanced against each other and against empty space rather than centred on an axis. The white space is part of the composition, not what is left over.

  • Objective imagery. Photography or abstract geometric forms instead of illustration; the picture shows the subject, it does not interpret it.

  • Clarity over expression. The designer’s job is to make the message legible and ordered, ideally across languages. This is why the style became the default for signage, corporate identities and public information.

    Key Proponents

    Ernst Keller (taught at the Kunstgewerbeschule Zürich from 1918); Josef Müller-Brockmann (Grid Systems in Graphic Design, 1981; concert posters for the Zurich Tonhalle); Armin Hofmann (Graphic Design Manual, 1965) and Emil Ruder (Typographie, 1967), both at the Basel School of Design; the Zurich journal Neue Grafik, co-edited by Müller-Brockmann

When to Use:

  • Posters, flyers, menus and event material that have to be read at a glance

  • Signage, wayfinding and information graphics

  • Layout systems for websites, slide templates and reports, where a grid keeps many pages consistent

  • As a counter-instruction when generated designs drift towards centred layouts, decorative fonts and stock illustration

Common Misunderstandings:

  • Reading it as minimalism. A Swiss Style layout can be dense; what defines it is the grid and the order, not the amount of empty space.

  • Reducing it to Helvetica. The typeface is the most visible trace, but a centred, symmetric poster in Helvetica is not Swiss Style.

  • Confusing it with Bauhaus. The Bauhaus and Jan Tschichold’s Die neue Typographie (1928) are its precursors; the Swiss schools turned their ideas into a teachable system in the 1950s.

  • Using the bare name outside a design context. "Swiss style" also names food and products. Asked "What is 'Swiss Style'?" without context, every tier we tested answered with graphic design. The alias "International Typographic Style" does the same work: in a follow-up test on 2026-10-25 with the same poster task, six of six runs set a modular grid and Helvetica or Akzidenz-Grotesk, built the poster from type and geometric forms without illustration, and five of six named flush-left, ragged-right text.

Criticism:

  • Cold, formal, dogmatic — the post-1968 charge, and a Basel teacher led the opposition. The Swiss National Library writes in "Postmodern posters, 1970 to today" that after 1968, with the criticism of consumer society, the International Style "came under fire as its cold, formal, dogmatic aesthetic was questioned". Wolfgang Weingart, who taught in Basel alongside Armin Hofmann, "led the opposition to the International Style".

Tufte Style

Details
Full Name

Tufte Style — the information-design principles of Edward R. Tufte

Also known as

Tufte’s principles of information design. In tooling the eponym is already a style token: theme_tufte in R’s ggthemes, Tufte CSS, the tufte-latex document classes, matplotlib-tufte.

Core Concepts:

  • Data-ink ratio. Of all the ink on the page, the share that encodes data should be as large as it usefully can be. Gridlines, frames, fills, shadows and 3-D effects encode no data; at best they help the eye find its way. They are therefore the first candidates for removal, not automatic deletions: a gridline that lets the eye read a value off the chart is doing work, and muting it usually beats deleting it.

  • Chartjunk. The name for decoration that competes with the evidence — moiré patterns, ornamental icons, gratuitous colour. Naming it as a defect is what makes it removable.

  • Graphical integrity, measured by the lie factor. The size of the effect shown should equal the size of the effect in the data. A distorted axis or a scaled-area icon is a quantitative error, not a matter of taste.

  • Small multiples. Repeat one compact panel across subsets on identical axes. The comparison then happens in the eye rather than in the reader’s memory.

  • Sparklines. A word-sized graphic set inside the sentence it belongs to, so the number and its history occupy the same line.

  • Direct labelling instead of legends. Put the name on the line. A legend forces the reader to hold a colour in memory and look it up again for every mark.

  • Density is the point, not emptiness. This is the distinction that decides whether the term was understood: remove what carries no information, then spend the reclaimed space on more information. A Tufte-style page usually contains more than the one it replaces.

  • Words, numbers and images belong together. Caption, annotation and graphic sit in one place rather than in three. The sidenote layout that carries Tufte’s name is this principle applied to running text.

When to Use:

  • Designing a dashboard or a status report, especially where the default is large KPI tiles, gauges and traffic lights

  • Reviewing a chart before it goes into documentation, a slide deck or a paper

  • Anywhere a graphic has to survive being printed in black and white, or read at a glance

  • When a report has grown to several pages because each number was given its own panel

Common Misunderstandings:

  • Reading it as minimalism. A minimalist chart contains little; a Tufte-style chart often contains a great deal and merely wastes no ink. Stripping detail to look clean inverts the principle.

  • Treating it as a visual skin. It is a set of decisions about evidence — what is compared, at what scale, against what baseline — not a palette and a font.

  • Taking the data-ink ratio for a law. It is a heuristic, and experiment has put some of its premises in question. See Criticism.

  • Confusing the two things the name covers. "Tufte style" names both the chart principles and the sidenote page layout of Tufte CSS and tufte-latex. They share an author and a motive, but a request for one does not deliver the other; say which you mean.

Criticism:

  • The data-ink position was tested empirically, and it did not survive intact. Bateman, Mandryk, Gutwin, Genest, McDine and Brooks put embellished charts against plain ones in "Useful Junk?" (CHI 2010) and report: "people’s accuracy in describing the embellished charts was no worse than for plain charts, and their recall after a two-to-three-week gap was significantly better. Although we are cautious about recommending that all charts be produced in this style, our results question some of the premises of the minimalist approach to chart design." Decoration that aids memory is not junk by Tufte’s own criterion of usefulness.

  • Readers do not want the minimum either. Inbar, Tractinsky and Meyer, "Minimalism in information visualization" (ECCE 2007): "The results indicate a clear preference of non-minimalist bar-graphs, suggesting low acceptance of minimalist design principles such as high data-ink ratio." This measures preference, not comprehension — a weaker claim than Bateman’s, and worth keeping separate.

  • The debate is live, not settled, and it has defenders on Tufte’s side. Stephen Few, writing from the same minimalist position, takes Bateman’s conclusion apart in "The Chartjunk Debate" (Perceptual Edge, 2011), objecting to the claim that "many examples exist of embellished charts that seem to be successful" with a flat "Many examples?" Harvard’s own summary of Borkin et al.'s memorability study frames the field the same way: researchers teaming up "to settle a debate over 'chart junk'" that "still rages among visualization experts".

  • The Challenger analysis is contested by one of the engineers in it. Wade Robison, Roger Boisjoly, David Hoeker and Stefan Young published "Representation and misrepresentation: Tufte and the Morton Thiokol engineers on the Challenger" in Science and Engineering Ethics 8(1), January 2002, 59-81 — and Boisjoly was one of the Thiokol engineers who argued against the launch. The paper "examines the role of the Morton Thiokol engineers in the decisions surrounding the launch of the Challenger, particularly with reference to an analysis of this event by Edward Tufte", and concludes "that the engineers thus did what they were ethically as well as professionally obligated to do" — against Tufte’s reading that a better graphic would have prevented the launch decision.

  • Don Norman attacks the PowerPoint essay, and the attack lands on the method. In "In Defense of PowerPoint", responding to Tufte’s The Cognitive Style of PowerPoint, Norman writes: "Just because Tufte, in hindsight (when he already knows the answers), can look back and show they were wrong, and then point to discrepancies in their presentation, does not mean the fault lies in the presentation, nor in the tool used to present it." He adds that on the slide in question, "the slide should have had less information on it — Tufte wants more information."

  • Keep the three targets apart. Bateman, Inbar and Borkin test the principles; Robison and colleagues dispute the Challenger analysis; Norman argues with the PowerPoint essay and the Columbia slide reading inside it. None of them is a rebuttal of the others, and the Columbia shuttle is not the Challenger.

Current Status:

  • The four books, as the publisher lists them. Graphics Press gives The Visual Display of Quantitative Information as "1983 / 2nd Edition 2001" — the same book under two years, and the second edition is the one in print. Then Envisioning Information (1990), Visual Explanations (1996, widely miscited as 1997) and Beautiful Evidence (2006). A fifth, Seeing with Fresh Eyes, followed in 2020, so "his four books" is no longer accurate.

  • The name is baked into tooling, which is why it holds as an anchor. theme_tufte in R’s ggthemes cites the data-ink chapter by name: "No border, no axis lines, no grids." Tufte CSS and the tufte-latex classes carry the sidenote layout; matplotlib-tufte carries the chart rules into Python. A term that ships as an installable default is one a model has seen in code as well as in prose.

  • The typographic branch is stable to the point of dormancy. CTAN lists tufte-latex at 3.5.2 with its most recent announcement in 2015. That is not decay — the layout was finished — but it means the second meaning of the name lives on in copies rather than in active development.

  • There is no German-language critical tier to cite. A search on 2026-08-25 across six German query forms returned method descriptions, university slides and translations of English originals; the German Wikipedia article has no Kritik section. What criticism exists from German-speaking practitioners is published in English — the Datawrapper book club, run from Berlin, is the clearest case. This is a language-frame result, not an absence of opinion: see the prior-test register for the terms searched.

U.S. Web Design System (USWDS)

Details
Full Name

U.S. Web Design System (USWDS), formerly the U.S. Web Design Standards

Also known as

USWDS

Core Concepts:

  • The official government banner. "An official website of the United States government", the usa-banner at the top of the page; "most government sites should use the banner" (Banner).

  • Components with the usa- prefix. usa-header, usa-button, usa-alert, usa-accordion, usa-step-indicator and form components, in the npm package @uswds/uswds.

  • Design tokens as Sass settings. Theme colours and fonts are set by tokens such as $theme-color-primary: "blue-60v" and $theme-font-type-sans.

  • Public Sans. A typeface designed for the system by Dan Williams, based on Libre Franklin, released with USWDS 2.0 in 2019 (AIGA Eye on Design); Source Sans Pro and Merriweather ship as alternatives.

  • Accessibility and plain language as defaults. Components are built to meet Section 508, and the guidance covers forms, step-by-step services and content.

    Key Proponents

    18F and the U.S. Digital Service, which created it in 2015; maintained by the Digital Services Division of GSA’s Technology Transformation Services (About). Version 2.0 came in 2019, version 3.0 in 2022

When to Use:

  • Building US federal, state or city government services. In our prior test, every anchor run of a parking-permit service set the government banner, a step indicator and usa- form components. Both Opus baselines used usa- classes even without the name, one of them with the banner; the Haiku and Sonnet baselines did not.

  • As the US counterpart to the GOV.UK Design System when a service must look and behave like government

  • Meeting the federal website standards: agencies must follow GSA’s standards under the 21st Century IDEA Act, and USWDS is how the standards are met (Website standards)

Common Misunderstandings:

  • Thinking the law names USWDS. The 21st Century IDEA Act requires the website standards; the standards point to USWDS.

  • Using the banner on every site. The banner is for official government sites, and the guidance says some sites should not use it.

  • Expecting the GOV.UK patterns. USWDS has its own components and fewer service patterns; one question per page is GOV.UK’s pattern, not a USWDS rule.

Criticism:

  • Automated testing instead of people. In September 2026 a new team proposed automating the system’s accessibility testing. Matt Henry, former USWDS engineering lead, objected: "It is about what a human would experience" (Madison Alder, "A Trump team wants to automate U.S. Web Design System accessibility testing. Experts are worried.", FedScoop, 2026).

  • One defect reaches thousands of sites. An open letter from a coalition of technologists warns: "One accessibility defect, performance issue, or security vulnerability in USWDS can put thousands of systems at risk" (FedScoop, 2026).

Current Status:

  • Governance in dispute. In September 2026 GSA put the system’s longtime lead on leave and handed the repository to an engineer from the Treasury Department (Christian Robles, Nextgov/FCW); nearly 200 technologists announced a hard fork, while GSA said prior administrations had let USWDS deteriorate (Nextgov/FCW, October 2026). The latest release is 3.14.0 of 18 August 2026. The prior describes the system as it was before the dispute; check which repository and release you build on.

WAI-ARIA Authoring Practices Guide (APG)

Details
Full Name

ARIA Authoring Practices Guide (APG), published by the W3C Web Accessibility Initiative

Also known as

WAI-ARIA Authoring Practices, ARIA Authoring Practices; earlier published as the W3C Notes "WAI-ARIA Authoring Practices 1.1" and "1.2"

Core Concepts:

  • One name per control. The guide names 30 patterns: Accordion, Alert, Alert and Message Dialogs, Breadcrumb, Button, Carousel, Checkbox, Combobox, Dialog (Modal), Disclosure, Feed, Grid, Landmarks, Link, Listbox, Menu and Menubar, Menu Button, Meter, Radio Group, Slider, Slider (Multi-Thumb), Spinbutton, Switch, Table, Tabs, Toolbar, Tooltip, Tree View, Treegrid and Window Splitter. Where design systems call the same control "collapse", "expander" or "accordion", the APG name is one fixed reference.

  • Each pattern fixes the behaviour, not the look. A pattern page specifies the keyboard interaction (which keys do what), the roles, states and properties (role="menu", aria-expanded, aria-controls) and the focus management (where focus goes on open and close).

  • Composite widgets are one Tab stop; arrow keys move inside. A menubar, tab list, listbox, toolbar or tree is reached with Tab; a popup menu is not, it receives focus when it opens. Inside, arrow keys move between items, often through a roving tabindex or aria-activedescendant. Home and End depend on the pattern: optional for tabs, listboxes and toolbars, required in menus whose arrow keys do not wrap.

  • Working examples. Nearly every pattern links to example implementations in HTML, CSS and JavaScript (the Window Splitter is the exception), for instance the Disclosure Navigation Menu or the Action Menu Button.

  • Informative, not normative. The APG does not specify normative requirements and has no conformance model. It shows how to meet the requirements that WCAG and the ARIA specification set.

  • Native HTML first. Where a native element covers the pattern — <button>, <details>, <dialog>, <select> — it beats a hand-built ARIA widget. ARIA adds semantics and promises behaviour; it does not add the behaviour itself.

    Key Proponents

    W3C Web Accessibility Initiative; the guide is developed by the ARIA Authoring Practices Task Force of the ARIA Working Group ("Introduction to the APG"). It was redesigned as a multi-page resource at w3.org/WAI/ARIA/apg in May 2022 (W3C news, 2022-05-19)

When to Use:

  • Specifying or generating an interactive control — menu, combobox, tabs, dialog, tree — so that keyboard and screen-reader behaviour come with it

  • Writing acceptance criteria for a component: the pattern’s keyboard table is a ready-made checklist

  • Reviewing a component library or generated UI code for wrong roles and missing keys

  • Settling naming disputes in a design system: which control is a "menu" and which a "disclosure"

How to Prompt:

  • Name the guide, then let the model pick the pattern, or name the pattern yourself. "Follow the WAI-ARIA Authoring Practices Guide (APG)." is enough for the model to choose a fitting pattern. Naming it ("Use the APG Menu Button pattern.") removes the choice.

  • Call the control by its common name, fix its behaviour with the APG. The common name tells the model what to build; the pattern tells it how the control behaves. The Component Gallery lists the common name and aliases of 60 controls across 95 design systems.

  • Combine with a style or system anchor, not instead of one. The APG says nothing about the look. "Swiss Style, WCAG 2.2 AA, APG patterns" covers look, accessibility requirement and control behaviour.

  • Use the full name. "WAI-ARIA Authoring Practices Guide (APG)" or "ARIA Authoring Practices". The bare "APG" has other meanings outside web development.

  • Example prompts:

    • "Build the account menu in the top bar: an avatar button that opens Profile, Settings and Sign out. Follow the WAI-ARIA Authoring Practices Guide (APG)."

    • "Main navigation with two dropdowns of links. Follow the APG Disclosure Navigation Menu example, not the menu pattern."

    • "Review this combobox against the APG Combobox pattern. List every key from the pattern’s keyboard table that the code does not handle."

Common Misunderstandings:

  • Expecting accessible behaviour without asking for it. Partly right: in our prior test on 2026-10-30, all six baselines of an account menu already used role="menu", aria-expanded and arrow keys. Only one of six handled type-ahead and four of six Home and End. With "Follow the WAI-ARIA Authoring Practices Guide (APG)." six of six runs did both. Both are optional or conditional in the pattern’s keyboard table (type-ahead is optional; Home and End are required when arrow keys do not wrap), so the baselines may still conform; the anchor makes the model add them.

  • Turning site navigation into an application menu. The APG itself recommends the Disclosure pattern for typical site navigation: its Navigation Menubar example opens with a caution that the menubar’s functionality is "unnecessary for typical site navigation". Practitioners make the same point, because screen-reader users expect arrow-key behaviour from a menu (see Criticism). In our prior test, one of six baselines for a university site navigation used role="menu"; with the anchor, six of six chose the disclosure pattern and named it.

  • Reading the recommendation as a ban. The APG does not forbid menu roles: besides the Disclosure Navigation Menu it shows a Navigation Menu Button and a Navigation Menubar for sites that need application-style menus. In the same test, two Opus runs wrote that the APG says not to use role="menu" for site navigation, which turns the guide’s recommendation into a rule.

  • Copying the examples into production. The guide’s own objectives "do not include providing a comprehensive design system or production-ready code". The examples teach the pattern; test them with real assistive technology before shipping.

  • Using ARIA where HTML would do. A <div role="button"> needs focus handling, Enter and Space that a <button> brings for free.

Criticism:

  • Broken patterns in real projects. Adrian Roselli, in "No, APG’s Support Charts Are Not 'Can I Use' for ARIA" (2023), writes: "Yet I have spent years tearing broken APG patterns out of client projects". He warns against reading APG’s support tables as general ARIA support data; they cover only APG’s own examples with a few screen readers and browsers.

  • Menu roles do not belong in site navigation. Elle Smith argues in "Does your navigation need an ARIA menu? Probably not" (Pope Tech, 2026) that "ARIA menu roles are meant for true menus": site navigation should use landmarks and links.

Current Status:

  • A living guide, not a numbered Note. Since May 2022 the APG has been a multi-page resource at w3.org/WAI/ARIA/apg that is updated continuously; the numbered Notes 1.1 and 1.2 are its predecessors. The prior serves the current guide well: in our prior test all tiers listed the patterns, the keyboard models and roving tabindex without prompting.

WCAG 2.2 AA

Details
Full Name

Web Content Accessibility Guidelines 2.2, conformance level AA

Also known as

WCAG 2.2 Level AA

Core Concepts:

  • Four principles: POUR. Content must be Perceivable, Operable, Understandable and Robust. Guidelines sit under each principle, and testable success criteria sit under each guideline.

  • Three levels; AA includes A. Each success criterion has level A, AA or AAA. Conformance at AA means meeting every A and every AA criterion.

  • Contrast is measured. 1.4.3 asks for 4.5:1 for text and 3:1 for large text; 1.4.11 asks for 3:1 for non-text elements.

  • Structure and interaction are testable too. AA conformance requires, among others, 1.3.1 Info and Relationships, 3.3.1 Error Identification and 3.3.2 Labels or Instructions (Level A) and 1.4.10 Reflow and 2.4.7 Focus Visible (Level AA).

  • Version 2.2 adds criteria for touch, focus and cognition. New at A and AA: 2.4.11 Focus Not Obscured (Minimum), 2.5.7 Dragging Movements, 2.5.8 Target Size (Minimum) of 24×24 CSS pixels, 3.2.6 Consistent Help, 3.3.7 Redundant Entry and 3.3.8 Accessible Authentication (Minimum). Three more new criteria are AAA.

  • One criterion was removed. 4.1.1 Parsing is obsolete and no longer part of WCAG 2.2.

    Key Proponents

    W3C Web Accessibility Initiative (WAI); WCAG 2.2 became a W3C Recommendation on 5 October 2023 ("What’s New in WCAG 2.2")

When to Use:

  • Reviewing a form, page or component and naming each defect by success criterion

  • Setting an accessibility acceptance criterion for a project or a contract

  • Checking touch targets, focus visibility and login flows against the 2.2 additions

  • Preparing for legal requirements such as the European Accessibility Act

Common Misunderstandings:

  • Equating AA conformance with accessibility. AA is a testable minimum. A page can conform and still be hard to use for disabled people.

  • Trusting automated tools or overlays to certify conformance. Most criteria need human judgement.

  • Expecting WCAG 3 to replace 2.2 soon. WCAG 3 is still a Working Draft, and WCAG 2 stays in force for years after WCAG 3 is final.

  • Asking for "accessibility" instead of naming the standard. In our prior test on 2026-10-28 (a signup form with eight known defects), all six baselines already named the 4.5:1 contrast ratio, but no success criterion by number. With "WCAG 2.2 AA", six of six runs cited at least ten success criteria, and six of six caught the two 2.2 additions the form violated: 2.5.8 Target Size (Minimum) and 2.4.11 Focus Not Obscured.

Criticism:

  • The wording is a swamp to audit against. Adrian Roselli argues in his Paris Web 2023 talk "WCAGmire" that WCAG "can be a bit of a quagmire": dense wording, loopholes and differing interpretations confuse audits.

  • Conformance can coexist with hostility. In his Adversarial Conformance series, Roselli builds demos that meet 2.4.11 and 2.5.8 while being hostile to use.

Current Status:

  • 2.2 is the current standard; 3 is still a draft. WCAG 3 remains a Working Draft (latest September 2026). The W3C does not expect it to become a standard for a few more years and will not deprecate WCAG 2 until several years after WCAG 3 is final. The European Accessibility Act has applied since 28 June 2025; its harmonised standard EN 301 549 incorporates WCAG and is still under revision (Fieldfisher). The training-data prior serves WCAG 2.2 well: in our prior test every tier cited the two new criteria the test form violated, 2.5.8 and 2.4.11, by number.