Essays

Last Updated: 25 Nov, 2008

These are my best essays and articles. I've marked my most popular with a star (**). For a complete list of everything on this site, see the index. For recent essays, see my blog.

Categories

Top Ten
** The Decline and Fall of Agile - 14 Nov, 2008

It's human nature to only do the stuff that's familiar and fun, and that's what has happened with Agile.

** Quality With a Name - 5 Apr, 2006

What is good design?

** An Approximate Measure of Technical Debt - 19 Nov, 2008

Introducing: The Spag.

** Kanban Systems - 15 Oct, 2008

How, when, and why to use Kanban systems to eliminate iterations.

** Use Risk Management to Make Solid Commitments - 8 Oct, 2008

How to use risk multipliers and risk-adjusted burn-up charts to make solid commitments to your executives.

** Continuous Integration is an Attitude, Not a Tool - 18 Aug, 2005

CI tools make it easy to do the wrong thing.

** Beyond Story Cards: Agile Requirements Collaboration - 21 Mar, 2005

Agile requirements, in-depth.

** Design Debt - 1 Feb, 2004

Why we trash seven-figure software investments.

** Continuous Integration on a Dollar a Day - 27 Feb, 2006

An easier, cheaper (and better) way to do continuous integration.

** Change Your Organization: A Diary - 10 Mar, 2006

Six months of changing an organization from within.

Adopting Agile
An Extreme Stake in the Ground - 21 Aug, 2005

A fresh look at XP, sans humility, maturity, and wisdom.

** Change Your Organization: A Diary - 10 Mar, 2006

Six months of changing an organization from within.

It's the Software, Stupid! - 21 Oct, 2007

We keep forgetting that we're here to develop software.

Scrum and XP Practices: Cross Reference - 13 Dec 2007

A comparison of Scrum, both editions of XP, and The Art of Agile Development.

Shu-Ha-Ri and The Art of Agile - 2 Jan, 2008

In order to do agile development your way, you have to do it some way first.

Opinionated and Antisocial - 16 Jan, 2008

The right method for your team is customized to the needs of your team. The question is, how do you get there?

Your Brain on Agile - 6 Feb, 2008

A story cut from The Art of Agile Development. With a monkey.

Practices or Principles? - 15 Feb, 2008

What's more important, using agile practices or understanding agile principles and values?

Marick's Missing Manifesto - 20 Feb, 2008

Real success takes real work. It's worth it.

** Should We Adopt Scrum or XP? - 26 Apr, 2008

A thoughtful look at two methodology choices.

Cargo Cult Agile - 14 May, 2008

Following the rituals of agile development without understanding the underlying ideas.

Watch Out For These Common Problems - 5 Jun, 2008

The most common issues I see new teams struggle with.

** The Decline and Fall of Agile - 14 Nov, 2008

It's human nature to only do the stuff that's familiar and fun, and that's what has happened with Agile.

Coding
Rubik the Refactorer - 23 Dec, 2002

A bedtime story.

Microsoft Gets TDD Completely Wrong - 19 Nov, 2005

Boy, do they ever.

** Continuous Integration on a Dollar a Day - 27 Feb, 2006

An easier, cheaper (and better) way to do continuous integration.

Gopher Holes - 30 Dec 2007

How is it possible for codebases to get easier to modify over time? This is how.

Études for Excellence - 22 Jan, 2008

Exercises for improving coding skills.

Living in the Punch-Card Era - 30 Jul, 2008

Good builds are game-changing.

Forces Affecting Continuous Integration - 13 Aug, 2008

Warning: this brain dump is long, aimed at advanced readers, and not particularly well written.

Testing Private Methods - 19 Aug, 2008

What to do when you want to test a private method.

Collaboration
Trust - 1 Mar, 2004

Produce more valuable software by replacing process with collaboration.

Two Kinds of Documentation - 29 Jan, 2006

What you didn't know about agile documentation.

Who's in Charge Here? - 17 Jan, 2008

If the customer isn't in charge, then who is?

An Exercise About Trust - 9 Apr, 2008

Split into pairs, and use the worksheet to take turns interviewing each other.

The Importance of Personal Success - 23 Apr, 2008

It's so damned personal.

Get a Life! - 21 May, 2008

People get really worked up over coding standards, and I mean really worked up.

The Crucible of Great Teams - 27 Aug, 2008

Collective ownership doesn't have the flash or controversy of other practices, but it's part of what makes an agile team "agile."

The Documentation Myth - 3 Sep, 2008

What are we really looking for when we turn to documentation?

Design
Continuous Design - 1 Jan, 2004

Experiences with hard problems in agile design.

** Design Debt - 1 Feb, 2004

Why we trash seven-figure software investments.

Fail Fast - 1 Sep, 2004

Fail immediately and visibly when an error occurs.

Design Mindsets - 8 Mar, 2005

Skills needed for continuous design.

Drawing the Line on Continuous Design - 5 May, 2005

Use risk-based assessments to guide agile architecture.

Primitive Obsession - 4 Jun, 2005

Don't get seduced by the Dark Side.

Five Design Skills Every Programmer Should Have - 6 Sep, 2005

Fundamental design skills.

The Other Side of Design - 14 Oct, 2005

A taxonomy of design.

That Damned Construction Analogy - 17 Dec, 2005

An instructive building is built outside my window.

Dependency Injection Demystified - 22 Mar, 2006

A 25-dollar term for a 5-cent concept.

** Quality With a Name - 5 Apr, 2006

What is good design?

A Simple, Effective Design Question - 13 Jul, 2007

When I decide to change this design decision, how hard will it be?

That Funky Metaphor Stuff - 30 Apr, 2008

Ubiquitous Language, System Metaphor, and a bit of history.

Geekery
HTML and the Innovator's Dilemma - 30 Jul, 2007

The inevitable rise of HTML+Javascript.

JS Kit: Lessons Learned - 11 Apr, 2008

Notes on installing JS-Kit, a comments and ratings service.

Colophon - 15 Apr, 2008

How I produce this website.

I Want Subtext - 17 Apr, 2008

An experimental programming language from Jonathan Edwards.

Iteration Planning
Slack and Scheduling in XP - 18 Mar, 2005

How to use slack in XP's planning game.

It's a Trap! - 4 Jun, 2008

Two reasons teams can't make and meet iteration commitments.

The Cornerstone of Agile Planning - 9 Jul, 2008

If you have trouble making and meeting commitments, start here.

** Kanban Systems - 15 Oct, 2008

How, when, and why to use Kanban systems to eliminate iterations.

Leadership
Task Switching - 1 Jun, 2004

Improve productivity by reducing task switching.

Beyond Defects - 1 Sep, 2004

Use defect lists to troubleshoot organizational problems.

Crunch Mode - 24 Feb, 2005

The overtime trap.

It's Not Too Late to Learn - 17 Aug, 2005

Classic lessons from a hundred-million dollar loss.

Hustle - 21 Oct, 2005

Generate goodwill for your agile team.

** Change Your Organization: A Diary - 10 Mar, 2006

Six months of changing an organization from within.

Our Professional Responsibility - 8 Jan, 2008

Look them straight in the eye and say "No."

Why Not? - 9 Jan, 2008

I can't convince anybody to do anything.

How to Turn Smart People Into Ordinary People - 12 Mar, 2008

When shit rolls downhill, expect crappy results.

Change is Hard, Even for Service Organizations - 12 Apr, 2008

Notes from the field... far afield.

Metrics
The Productivity Metric - 10 Feb, 2006

Avoid common productivity measurement mistakes.

Value Velocity: A Better Productivity Metric? - 18 Dec 2007

Another approach to measuring productivity.

The Stunning Truth at the Center of the Pigeon Story - 6 Apr, 2008

How do we get people to do what we want?

Work In Progress - 11 Jun, 2008

The challenges of measuring performance.

** An Approximate Measure of Technical Debt - 19 Nov, 2008

Introducing: The Spag.

Quality
Research Time - 1 Apr, 2004

A simple, valuable technique you can start using immediately.

An Interesting Retrospective Idea - 11 Mar, 2005

Painlessly gather retrospective information.

Five Ways to Misuse Fit - 8 Oct, 2007

Doctor, doctor, it hurts when I do this!

Does It Work? Are We Done? Is It Right? (Keep It Light!) - 18 Nov, 2007

Exploring the alternatives to functional testing.

In the Privacy of Your Own Thoughts - 26 Mar, 2008

Keep your brain switched on at all times.

Mistakes - 4 Apr, 2008

"Failures, repeated failures, are finger posts on the road to achievement."

Release Planning
A Tale of Two Vacations - 20 Sep, 2005

Vacation planning instructs us about agile planning.

How to Survive a Software Rewrite - 16 Feb, 2006

It's only funny if you're not living it.

Do We Need Projects? - 19 Aug, 2007

Projects... or products?

A Project Planning Pop Quiz - 4 Jan, 2008

When will the project finish?

TANSTAAFL - 30 Jan, 2008

When you're buying something expensive and valuable that's meant to last a long time, you put real effort into it.

Coulda, Shoulda, Woulda - 1 Oct, 2008

In MoSCoW, plans prioritize you!

** Use Risk Management to Make Solid Commitments - 8 Oct, 2008

How to use risk multipliers and risk-adjusted burn-up charts to make solid commitments to your executives.

Estimate Inflation: A Cautionary Tale - 9 Oct, 2008

An example of What Not To Do, featuring scope creep, pushy stakeholders, and poor decisions.

Requirements
Fit Workflow - 1 Mar, 2005

Use Fit to collaborate on requirements during an iteration.

** Beyond Story Cards: Agile Requirements Collaboration - 21 Mar, 2005

Agile requirements, in-depth.

Up-Front Requirements - 15 Jun, 2005

What really happens when users read requirements documents.

"Ideas," not "Requirements" - 30 Jun, 2005

By the time an idea is a requirement, the most interesting part of its life is over.

mumble test business rules mumble - 3 Aug, 2005

A look at two basic types of Fit examples, with a recommendation.

A Vision for Fit - 25 Oct, 2005

A story of Fit workflow in practice.

How I Use Fit - 30 Nov, 2005

How to construct a single Fit document.

Product Managers Are Critical to Success - 14 Feb, 2006

Without the vision of a good product manager, the team is likely to flounder.

Five Ways to Misuse Fit - 8 Oct, 2007

Doctor, doctor, it hurts when I do this!

The Case of the Missing Visionary - 17 Sep, 2008

Beth was smart and capable, but everyone knew she wasn't Charlie.

Tools
** Continuous Integration is an Attitude, Not a Tool - 18 Aug, 2005

CI tools make it easy... to do the wrong thing.

Cards, Table, and Whiteboard: The Ultimate Planning Tool - 22 Dec, 2005

Discover planning problems early by planning as a group.

We ♥ Tools - 19 Mar, 2008

Stop being a slave to the software.

Paranoia, Control, and $30,000 of Tooling - 23 Jul, 2008

Software configuration management is important, but the tools aren't up to the task.

Writing
Truth or Clarity? - 13 Feb, 2008

Sometimes, truth isn't clear, and clarity isn't truthful.

Iterative Writing - 5 Mar, 2008

The evolution of the "Pair Programming" outline in The Art of Agile Development.

Time-Lapse Author - 16 Apr, 2008

A screencast showing how I wrote the first draft of the "Sit Together" practice in The Art of Agile Development.

Singed Egos - 16 Jul, 2008

The evolution of the "No Bugs" text in The Art of Agile Development.

New in 2008
** An Approximate Measure of Technical Debt - 19 Nov, 2008

Introducing: The Spag.

** The Decline and Fall of Agile - 14 Nov, 2008

It's human nature to only do the stuff that's familiar and fun, and that's what has happened with Agile.

** Kanban Systems - 15 Oct, 2008

How, when, and why to use Kanban systems to eliminate iterations.

Estimate Inflation: A Cautionary Tale - 9 Oct, 2008

An example of What Not To Do, featuring scope creep, pushy stakeholders, and poor decisions.

** Use Risk Management to Make Solid Commitments - 8 Oct, 2008

How to use risk multipliers and risk-adjusted burn-up charts to make solid commitments to your executives.

Coulda, Shoulda, Woulda - 1 Oct, 2008

In MoSCoW, plans prioritize you!

The Case of the Missing Visionary - 17 Sep, 2008

Beth was smart and capable, but everyone knew she wasn't Charlie.

The Documentation Myth - 3 Sep, 2008

What are we really looking for when we turn to documentation?

The Crucible of Great Teams - 27 Aug, 2008

Collective ownership doesn't have the flash or controversy of other practices, but it's part of what makes an agile team "agile."

Testing Private Methods - 19 Aug, 2008

What to do when you want to test a private method.

Forces Affecting Continuous Integration - 13 Aug, 2008

Warning: this brain dump is long, aimed at advanced readers, and not particularly well written.

Living in the Punch-Card Era - 30 Jul, 2008

Good builds are game-changing.

Paranoia, Control, and $30,000 of Tooling - 23 Jul, 2008

Software configuration management is important, but the tools aren't up to the task.

Singed Egos - 16 Jul, 2008

The evolution of the "No Bugs" section in The Art of Agile Development.

The Cornerstone of Agile Planning - 9 Jul, 2008

If you have trouble making and meeting commitments, start here.

Work In Progress - 11 Jun, 2008

The challenges of measuring performance.

Watch Out For These Common Problems - 5 Jun, 2008

The most common issues I see new teams struggle with.

It's a Trap! - 4 Jun, 2008

Two reasons teams can't make and meet iteration commitments.

Get a Life! - 21 May, 2008

People get really worked up over coding standards, and I mean really worked up.

Cargo Cult Agile - 14 May, 2008

Following the rituals of agile development without understanding the underlying ideas.

That Funky Metaphor Stuff - 30 Apr, 2008

Ubiquitous Language, System Metaphor, and a bit of history.

** Should We Adopt Scrum or XP? - 26 Apr, 2008

A thoughtful look at two methodology choices.

The Importance of Personal Success - 23 Apr, 2008

It's so damned personal.

I Want Subtext - 17 Apr, 2008

An experimental programming language from Jonathan Edwards.

Time-Lapse Author - 16 Apr, 2008

A screencast showing how I wrote the first draft of the "Sit Together" practice in The Art of Agile Development.

Colophon - 15 Apr, 2008

How I produce this website.

Change is Hard, Even for Service Organizations - 12 Apr, 2008

Notes from the field... far afield.

JS Kit: Lessons Learned - 11 Apr, 2008

Notes on installing JS-Kit, a comments and ratings service.

An Exercise About Trust - 9 Apr, 2008

Split into pairs, and use the worksheet to take turns interviewing each other.

The Stunning Truth at the Center of the Pigeon Story - 6 Apr, 2008

How do we get people to do what we want?

Mistakes - 4 Apr, 2008

"Failures, repeated failures, are finger posts on the road to achievement."

In the Privacy of Your Own Thoughts - 26 Mar, 2008

Keep your brain switched on at all times.

We ♥ Tools - 19 Mar, 2008

Stop being a slave to the software.

How to Turn Smart People Into Ordinary People - 12 Mar, 2008

When shit rolls downhill, expect crappy results.

Iterative Writing - 5 Mar, 2008

The evolution of the "Pair Programming" practice in The Art of Agile Development.

Marick's Missing Manifesto - 20 Feb, 2008

Real success takes real work. It's worth it.

Practices or Principles? - 15 Feb, 2008

What's more important, using agile practices or understanding agile principles and values?

Truth or Clarity? - 13 Feb, 2008

Sometimes, truth isn't clear, and clarity isn't truthful.

Your Brain on Agile - 6 Feb, 2008

A story cut from The Art of Agile Development. With a monkey.

TANSTAAFL - 30 Jan, 2008

When you're buying something expensive and valuable that's meant to last a long time, you put real effort into it.

Études for Excellence - 22 Jan, 2008

Exercises for improving coding skills.

Who's in Charge Here? - 17 Jan, 2008

If the customer isn't in charge, then who is?

Opinionated and Antisocial - 16 Jan, 2008

The right method for your team is customized to the needs of your team. The question is, how do you get there?

Why Not? - 9 Jan, 2008

I can't convince anybody to do anything.

Our Professional Responsibility - 8 Jan, 2008

Look them straight in the eye and say "No."

A Project Planning Pop Quiz - 4 Jan, 2008

When will the project finish?

Shu-Ha-Ri and The Art of Agile - 2 Jan, 2008

In order to do agile development your way, you have to do it some way first.

Gopher Holes - 30 Dec 2007

How is it possible for codebases to get easier to modify over time? This is how.

Value Velocity: A Better Productivity Metric? - 18 Dec 2007

Another approach to measuring productivity.

Scrum and XP Practices: Cross Reference - 13 Dec 2007

A comparison of Scrum, both editions of XP, and The Art of Agile Development.