Last week I built some hanging shelves in my garage. Midway through the process, I realized that it was an excellent opportunity to view the project through the lens of agile software development.

There were things I did that benefitted from what I’ve learned about agile development, and mistakes I made that could have been prevented if I’d been following agile principles properly. This article is an exploration of those ideas…and instructions for building shelves.

Bottom line up front (BLUF). If you want instructions for building hanging garage shelves, they are here. They are completely devoid of any discussion of agile development.

If you want to hear the story of building the shelves and how it relates to agile software development, read on.

Building Shelves Using Agile Principles

I’ve been building software for 15 years and have been using agile principles for about half of that time. I was actually using agile principles long before 2007, but 2007 is when I learned the names for things and started being more formal about the process.

For a bit more of the detail on how I and my company at the time implemented agile, you can take a look at the presentation I gave at TriAgile this year. The abstract is here and the presentation is here.

My discussion of agile home improvement will be little “a” agile. By this I mean that while I was building the shelves, I wasn’t following a specific methodology like Scrum, I didn’t sit down and create user stories and story point them, etc.

I simply had a problem to solve and used what I’ve learned as a developer and manager to attack the problem in an agile way.

There were a few key concepts I used along the way.

  • Defer Decisions
  • Test Assumptions
  • Small Iterations

There were also some key failures along the way when I forgot to use my agile principles. Those are what made me realize there might be a little case study here and prompted me to write this article.

I’ve broken the article into 6 posts, and I’ll add links below as they go live.

Thanks for reading.