Agent Skill
2/7/2026

failure

Petroski's engineering philosophy - form follows failure, learning from case studies

O
objective
0GitHub Stars
1Views
npx skills add Objective-Arts/lens

SKILL.md

Namefailure
DescriptionPetroski's engineering philosophy - form follows failure, learning from case studies

name: failure description: "Engineering philosophy - form follows failure, learning from case studies"

Henry Petroski - Engineering Design Philosophy

Apply Petroski's insights from "To Engineer Is Human" and "Design Paradigms" to understand how failure shapes good design.

Core Philosophy

Form Follows Failure

The famous dictum "form follows function" is wrong. Form follows failure.

Petroski's insight: Design evolves not from imagining ideal function, but from correcting past failures. Every successful design is a response to a previous failure.

BAD THINKING:  "What should this do?" → Design
GOOD THINKING: "What has failed before?" → Design that prevents that failure

The Success-Failure Paradox

Success breeds complacency; complacency breeds failure.

SUCCESS
   ↓
"We've got this figured out"
   ↓
Reduced vigilance
   ↓
Ignored warning signs
   ↓
FAILURE
   ↓
"How could this happen?"
   ↓
Deep investigation
   ↓
Improved design
   ↓
SUCCESS (cycle repeats)

Rule: The most dangerous time is right after a string of successes.

Prescriptive Rules

Case Study Methodology

Learn from specific failures, not abstract principles.

ABSTRACT (weak):
"Always validate input"

CASE STUDY (strong):
"The 2016 incident where unvalidated JSON crashed production
taught us to validate at the boundary. Here's the exact pattern
that failed and the fix that prevented recurrence."

Application:

  • Document failures with full context
  • Reference specific incidents in code comments
  • Build institutional memory of what went wrong

Constraints as Design Drivers

Constraints are not obstacles - they're the source of innovation.

WITHOUT CONSTRAINT          WITH CONSTRAINT
─────────────────          ────────────────
Infinite solutions         Focused solutions
Analysis paralysis         Clear direction
Gold-plating              Elegant simplicity

Petroski's examples:

  • The pencil's hexagonal shape: prevents rolling, reduces material
  • Bridge designs: span limits force structural innovation
  • Software: memory limits drove efficient algorithms

Application:

When facing a constraint:
  1. Don't fight it immediately
  2. Ask: "What innovation does this force?"
  3. The constraint may be the feature

Anticipating Failure Modes

Before building, enumerate how it could fail.

For any component, ask:
├── How could this fail silently?
├── How could this fail catastrophically?
├── How could this fail intermittently?
├── How could success in one area cause failure in another?
└── What would the post-mortem say?

Pre-mortem technique: Write the post-mortem before shipping. What would you regret not checking?

Evolution Over Revolution

Good design is incremental refinement, not revolutionary leaps.

REVOLUTIONARY (risky):
"Let's rewrite everything from scratch"

EVOLUTIONARY (Petroski-approved):
"Let's fix the specific failure mode while preserving what works"

The pencil lesson: The modern pencil evolved over 400 years through thousands of small improvements, each fixing a specific problem.

Code Application

Document the "Why Not"

// BAD: Only documents what
function processPayment(amount) {
  // Process the payment
}

// GOOD: Documents failures that shaped design
function processPayment(amount) {
  // Idempotency key required after 2023 duplicate charge incident.
  // Timeout set to 30s after 2022 gateway slowdown caused cascading failures.
  // Retry logic added after network blip lost $50k in transactions.
}

Design Reviews Should Ask

QuestionPetroski Principle
"What has failed before in similar systems?"Form follows failure
"Are we overconfident from recent success?"Success-failure paradox
"What constraint is actually helping us?"Constraints drive innovation
"How will this fail?"Failure mode analysis
"Is this a rewrite or a refinement?"Evolution over revolution

Post-Mortem Template (Petroski Style)

## Failure Report: [Incident Name]

### What Failed
Specific description of the failure mode.

### The Form That Followed Function
What design decision seemed reasonable at the time?

### The Form That Should Follow Failure
What design change prevents this class of failure?

### Constraints Revealed
What constraints did we discover that we should embrace?

### Similar Historical Failures
What other systems failed this way? What can we learn?

### Success That Preceded This
Were we overconfident? What success masked the risk?

Anti-Patterns

PatternWhy It's WrongPetroski Fix
"That won't happen to us"Ignores case studiesStudy similar failures
"We've never had that problem"Success-failure paradoxThat's when it happens
"Let's remove that constraint"Constraints drive innovationAsk what you'd lose
"Clean slate redesign"Revolution over evolutionIncremental improvement
"The old system was dumb"Disrespects evolved designUnderstand why it evolved

Review Checklist

Before shipping:

  • What failures shaped this design? (Can you cite them?)
  • What could fail that we haven't seen yet?
  • Are we overconfident from recent success?
  • Which constraints are actually helping?
  • Is this evolution (good) or revolution (risky)?
  • Would the post-mortem be embarrassing?

Petroski Score

ScoreMeaning
10Design explicitly shaped by failure analysis, constraints embraced
7-9Failure modes considered, some case study awareness
4-6Functional but no failure history awareness
0-3"Form follows function" thinking, overconfident

Key Quotes

"The most significant engineering failures usually occur in areas where prior success has encouraged the raising of stakes without adequate understanding of the risks."

"Form follows failure, not function."

"Successful design is not about getting things right the first time but about not making the same mistake twice."

Integration

Combine with:

  • /safety - Systematic failure prevention
  • /resilience - Designing for antifragility
  • /security-mindset - Security as failure anticipation
Skills Info
Original Name:failureAuthor:objective