Essays & Blog
This is a collection of the best writing to appear on my blog. I've marked my most popular with a star ⭐. You might also be interested in:
Categories
- Adopting Agile
- AI
- Coding
- Collaboration
- Design
- Geekery
- Iteration Planning
- Large-Scale Agile
- Leadership
- Metrics
- Quality
- Release Planning
- Requirements
- Tools
- Writing
Top Ten
- Assessing AI’s Impact on Software Development29 Sep, 2026
- Are you getting a good return on your investment from AI? Is there another way of using AI that would be better? Use this series to measure delivery speed, assess unintended consequences, and better understand your software’s value.
- You Need AI That Reduces Maintenance Costs10 May, 2026
- I’ll get straight to the point: your AI coding agent, the one you use to write code, needs to reduce your maintenance costs.
- The Accountability Problem18 Oct, 2025
- How do you know management is doing their job? What are they accountable for? Answers to this question are based on misconceptions that extend deep into organizations.
- The Best Product Engineering Org in the World10 Jan, 2025
- It’s not about literally being the best product engineering org in the world. It’s about constantly striving to improve. Here are six categories worth investing in.
- A Software Engineering Career Ladder27 Apr, 2024
- What I’m really doing is changing the engineering culture.
- Testing Without Mocks: A Pattern Language16 Feb, 2023
- How to write fast, reliable tests without mocks or spies.
- The Agile Fluency® Model: A Brief Guide to Success with Agile6 Mar, 2018
- A model for getting the most out of agile ideas. (Coauthored with Diana Larsen; hosted at martinfowler.com.)
- Dependency Injection Demystified22 Mar, 2006
- A 25-dollar term for a 5-cent concept.
- Red-Green-Refactor30 Nov, 2005
- Test-driven development in a nutshell.
- Continuous Integration on a Dollar a Day27 Feb, 2006
- An easier, cheaper (and better) way to do continuous integration.
Adopting Agile
- Kaizen and Kaikaku8 Feb, 2009
- Where agile adoptions go wrong.
- The Decline and Fall of Agile14 Nov, 2008
- It's human nature to only do the stuff that's familiar and fun, and that's what has happened with Agile.
- Watch Out For These Common Problems5 Jun, 2008
- The most common issues I see new teams struggle with.
- Cargo Cult Agile14 May, 2008
- Following the rituals of agile development without understanding the underlying ideas.
- Should We Adopt Scrum or XP?26 Apr, 2008
- A thoughtful look at two methodology choices.
- Marick's Missing Manifesto20 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?
- Your Brain on Agile6 Feb, 2008
- A story cut from The Art of Agile Development. With a monkey.
- Opinionated and Antisocial16 Jan, 2008
- The right method for your team is customized to the needs of your team. The question is, how do you get there?
- Shu-Ha-Ri and The Art of Agile2 Jan, 2008
- In order to do agile development your way, you have to do it some way first.
- Scrum and XP Practices: Cross Reference13 Dec 2007
- A comparison of Scrum, both editions of XP, and The Art of Agile Development.
- It's the Software, Stupid!21 Oct, 2007
- We keep forgetting that we're here to develop software.
- Change Your Organization: A Diary10 Mar, 2006
- Six months of changing an organization from within.
- An Extreme Stake in the Ground21 Aug, 2005
- A fresh look at XP, sans humility, maturity, and wisdom.
AI
- Are You Getting Your Money’s Worth from AI?8 Sep, 2026
- If you’re going to make these choices—and somebody is going to—they need to be good ones. (Part 1 of my series on assessing AI’s impact.)
- Measuring AI’s Impact on Delivery Speed15 Sep, 2026
- Are your teams finishing their assigned work faster, regardless of whether that work is actually useful or not? (Part 2 of my series on assessing AI’s impact.)
- Measuring AI’s Unintended Consequences22 Sep, 2026
- AI’s maintenance costs and other unintended consequences do matter... but only if there are any costs. This is what we need to measure. (Part 3 of my series on assessing AI’s impact.)
- Modeling Software’s Business Impact29 Sep, 2026
- It’s about building the right thing. Or, more accurately, understanding the value of what you build. (Part 4 of my series on assessing AI’s impact.)
- Assessing AI’s Impact: Notes for Your CFO29 Sep, 2026
- The epilogue to my series on assessing the impact of AI-assisted software development brings all the concepts together into one whole. It’s also good for sharing with your CFO and other members of your leadership team.
- You Need AI That Reduces Maintenance Costs10 May, 2026
- I’ll get straight to the point: your AI coding agent, the one you use to write code, needs to reduce your maintenance costs.
- AlphaCode and the Future of Programming2 Feb, 2022
- DeepMind researchers have released AlphaCode, an AI tool that has the ability to solve programming competition problems.
Coding
- Testing Private Methods19 Aug, 2008
- What to do when you want to test a private method.
- Forces Affecting Continuous Integration13 Aug, 2008
- Warning: this brain dump is long, aimed at advanced readers, and not particularly well written.
- Living in the Punch-Card Era30 Jul, 2008
- Good builds are game-changing.
- Études for Excellence22 Jan, 2008
- Exercises for improving coding skills.
- Gopher Holes30 Dec 2007
- How is it possible for codebases to get easier to modify over time? This is how.
- Continuous Integration on a Dollar a Day27 Feb, 2006
- An easier, cheaper (and better) way to do continuous integration.
- Red-Green-Refactor30 Nov, 2005
- Test-driven development in a nutshell.
- Microsoft Gets TDD Completely Wrong19 Nov, 2005
- Boy, do they ever.
- Rubik the Refactorer23 Dec, 2002
- A bedtime story.
Collaboration
- The Documentation Myth3 Sep, 2008
- What are we really looking for when we turn to documentation?
- The Crucible of Great Teams27 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."
- Get a Life!21 May, 2008
- People get really worked up over coding standards, and I mean really worked up.
- The Importance of Personal Success23 Apr, 2008
- It's so damned personal.
- An Exercise About Trust9 Apr, 2008
- Split into pairs, and use the worksheet to take turns interviewing each other.
- Who's in Charge Here?17 Jan, 2008
- If the customer isn't in charge, then who is?
- Two Kinds of Documentation29 Jan, 2006
- What you didn't know about agile documentation.
- Trust1 Mar, 2004
- Produce more valuable software by replacing process with collaboration.
Design
- Testing Without Mocks: A Pattern Language16 Feb, 2023
- How to write fast, reliable tests without mocks or spies.
- The Problem with Dependency Injection Frameworks6 Jan, 2023
- The problem isn’t with dependency injection. It’s with dependency injection frameworks.
- How Does TDD Affect Design?17 May, 2014
- Does test-driven development make your software design better or worse?
- That Funky Metaphor Stuff30 Apr, 2008
- Ubiquitous Language, System Metaphor, and a bit of history.
- A Simple, Effective Design Question13 Jul, 2007
- When I decide to change this design decision, how hard will it be?
- Quality With a Name5 Apr, 2006
- What is good design?
- Dependency Injection Demystified22 Mar, 2006
- A 25-dollar term for a 5-cent concept.
- That Damned Construction Analogy17 Dec, 2005
- An instructive building is built outside my window.
- The Other Side of Design14 Oct, 2005
- A taxonomy of design.
- Five Design Skills Every Programmer Should Have6 Sep, 2005
- Fundamental design skills.
- Primitive Obsession4 Jun, 2005
- Don’t get seduced by the Dark Side.
- Drawing the Line on Continuous Design5 May, 2005
- Use risk-based assessments to guide agile architecture.
- Design Mindsets8 Mar, 2005
- Skills needed for continuous design.
- Fail Fast1 Sep, 2004
- Fail immediately and visibly when an error occurs.
- Design Debt1 Feb, 2004
- Why we trash seven-figure software investments.
- Continuous Design1 Jan, 2004
- Experiences with hard problems in agile design.
Geekery
- Easy DIY Game Table24 Feb, 2026
- A side project for people who love tabletop gaming.
- I Want Subtext17 Apr, 2008
- An experimental programming language from Jonathan Edwards.
- HTML and the Innovator's Dilemma30 Jul, 2007
- The inevitable rise of HTML+Javascript.
Iteration Planning
- Kanban Systems15 Oct, 2008
- How, when, and why to use Kanban systems to eliminate iterations.
- The Cornerstone of Agile Planning9 Jul, 2008
- If you have trouble making and meeting commitments, start here.
- It's a Trap!4 Jun, 2008
- Two reasons teams can't make and meet iteration commitments.
- Slack and Scheduling in XP18 Mar, 2005
- How to use slack in XP's planning game.
Large-Scale Agile
- Bjorn Freeman-Benson: Three Challenges of Distributed Teams19 Feb, 2019
- Distributed teams. Are they the solution to our staffing problems, or an expensive fantasy?
- Large-Scale Agile: Where Do You Want Your Complexity?18 Jan, 2019
- How do we manage the complexity of coordinating many engineering teams?
- Large-Scale Agile25 Feb, 2010
- Some early thoughts on scaling Agile.
- Stumbling Through Mediocrity25 Mar, 2009
- Does Agile scale?
Leadership
- Assessing AI’s Impact on Software Development29 Sep, 2026
- Are you getting a good return on your investment from AI? Is there another way of using AI that would be better? Use this series to measure delivery speed, assess unintended consequences, and better understand your software’s value.
- Modeling Software’s Business Impact29 Sep, 2026
- It’s about building the right thing. Or, more accurately, understanding the value of what you build.
- The Accountability Problem18 Oct, 2025
- How do you know management is doing their job? What are they accountable for? Answers to this question are based on misconceptions that extend deep into organizations.
- The Best Product Engineering Org in the World10 Jan, 2025
- It’s not about literally being the best product engineering org in the world. It’s about constantly striving to improve. Here are six categories worth investing in.
- A Software Engineering Career Ladder27 Apr, 2024
- What I’m really doing is changing the engineering culture.
- The Talent Pump31 Oct, 2022
- Average distribution in, best people out.
- Don’t Measure Unit Test Code Coverage31 Jan, 2019
- If you’re leading software teams, don’t measure unit test code coverage. It’s worse than useless; it will actively lead your teams astray.
- Alternatives to Certifications: How to Hire the Agile Way18 Apr, 2010
- One team's approach to staffing.
- Change is Hard, Even for Service Organizations12 Apr, 2008
- Notes from the field... far afield.
- How to Turn Smart People Into Ordinary People12 Mar, 2008
- When shit rolls downhill, expect crappy results.
- Why Not?9 Jan, 2008
- I can't convince anybody to do anything.
- Our Professional Responsibility8 Jan, 2008
- Look them straight in the eye and say "No."
- Change Your Organization: A Diary10 Mar, 2006
- Six months of changing an organization from within.
- Hustle21 Oct, 2005
- Generate goodwill for your agile team.
- Crunch Mode24 Feb, 2005
- The overtime trap.
- Beyond Defects1 Sep, 2004
- Use defect lists to troubleshoot organizational problems.
- Task Switching1 Jun, 2004
- Improve productivity by reducing task switching.
Metrics
- Measuring AI’s Impact on Delivery Speed15 Sep, 2026
- Are your teams finishing their assigned work faster, regardless of whether that work is actually useful or not? (Part 2 of my series on assessing AI’s impact.)
- Measuring AI’s Unintended Consequences22 Sep, 2026
- AI’s maintenance costs and other unintended consequences do matter... but only if there are any costs. This is what we need to measure. (Part 3 of my series on assessing AI’s impact.)
- Modeling Software’s Business Impact29 Sep, 2026
- It’s about building the right thing. Or, more accurately, understanding the value of what you build. (Part 4 of my series on assessing AI’s impact.)
- A Useful Productivity Measure?5 May, 2024
- In my new role as VP of Engineering, there was one question I was dreading more than any other: “How are you measuring productivity?”
- An Approximate Measure of Technical Debt19 Nov, 2008
- Introducing: The Spag.
- Work In Progress11 Jun, 2008
- The challenges of measuring performance.
- The Stunning Truth at the Center of the Pigeon Story6 Apr, 2008
- How do we get people to do what we want?
- Value Velocity: A Better Productivity Metric?18 Dec, 2007
- Another approach to measuring productivity.
- The Productivity Metric10 Feb, 2006
- Avoid common productivity measurement mistakes.
Quality
- What Does a Good Test Suite Look Like?1 Mar, 2012
- Five key features of a good test suite, with links to further reading.
- The Problems With Acceptance Testing27 Feb, 2010
- Why I don't use acceptance testing tools.
- Alternatives to Acceptance Testing1 Mar, 2010
- A very thorough discussion of how to create quality software.
- Mistakes4 Apr, 2008
- "Failures, repeated failures, are finger posts on the road to achievement."
- In the Privacy of Your Own Thoughts26 Mar, 2008
- Keep your brain switched on at all times.
- Does It Work? Are We Done? Is It Right? (Keep It Light!)18 Nov, 2007
- Exploring the alternatives to functional testing.
- An Interesting Retrospective Idea11 Mar, 2005
- Painlessly gather retrospective information.
- Research Time1 Apr, 2004
- A simple, valuable technique you can start using immediately.
Release Planning
- Modeling Software’s Business Impact29 Sep, 2026
- It’s about building the right thing. Or, more accurately, understanding the value of what you build. (Part 4 of my series on assessing AI’s impact.)
- Estimation and Fluency25 Feb, 2013
- The relationship between a team's fluency with agile ideas and their approach to estimation.
- Do You Need Iteration Zero? A Case Study14 Apr, 2010
- How to start writing code in the first week of a new project.
- Estimate Inflation: A Cautionary Tale9 Oct, 2008
- An example of What Not To Do, featuring scope creep, pushy stakeholders, and poor decisions.
- Use Risk Management to Make Solid Commitments8 Oct, 2008
- How to use risk multipliers and risk-adjusted burn-up charts to make solid commitments to your executives.
- Coulda, Shoulda, Woulda1 Oct, 2008
- In MoSCoW, plans prioritize you!
- TANSTAAFL30 Jan, 2008
- When you're buying something expensive and valuable that's meant to last a long time, you put real effort into it.
- A Project Planning Pop Quiz4 Jan, 2008
- When will the project finish?
- Do We Need Projects?19 Aug, 2007
- Projects... or products?
- How to Survive a Software Rewrite16 Feb, 2006
- It's only funny if you're not living it.
- A Tale of Two Vacations20 Sep, 2005
- Vacation planning instructs us about agile planning.
Requirements
- The Case of the Missing Visionary17 Sep, 2008
- Beth was smart and capable, but everyone knew she wasn't Charlie.
- Five Ways to Misuse Fit8 Oct, 2007
- Doctor, doctor, it hurts when I do this!
- Product Managers Are Critical to Success14 Feb, 2006
- Without the vision of a good product manager, the team is likely to flounder.
- "Ideas," not "Requirements"30 Jun, 2005
- By the time an idea is a requirement, the most interesting part of its life is over.
- Up-Front Requirements15 Jun, 2005
- What really happens when users read requirements documents.
- Beyond Story Cards: Agile Requirements Collaboration21 Mar, 2005
- Agile requirements, in-depth.
Tools
- JavaScript Colors and the Corruption of Buy vs. Build9 Jan, 2022
- The pendulum has swung too far in favor of “buy” over “build.”
- Paranoia, Control, and $30,000 of Tooling23 Jul, 2008
- Software configuration management is important, but the tools aren't up to the task.
- We ❤️ Tools19 Mar, 2008
- Stop being a slave to the software.
- Cards, Table, and Whiteboard: The Ultimate Planning Tool22 Dec, 2005
- Discover planning problems early by planning as a group.
- Continuous Integration is an Attitude, Not a Tool18 Aug, 2005
- CI tools make it easy... to do the wrong thing.
Writing
- A Nifty Workshop Technique5 Apr, 2017
- A little trick for workshops that participants love.
- Singed Egos16 Jul, 2008
- The evolution of the "No Bugs" text in The Art of Agile Development.
- Time-Lapse Author16 Apr, 2008
- A screencast showing how I wrote the first draft of the "Sit Together" practice in The Art of Agile Development.
- Iterative Writing5 Mar, 2008
- The evolution of the "Pair Programming" outline in The Art of Agile Development.
- Truth or Clarity?13 Feb, 2008
- Sometimes, truth isn't clear, and clarity isn't truthful.

