Agile Home Improvement – Part 1

Begin with a clear goal

I started the project with a simple goal: Clean out the garage

Now that I’m done, I realize there is a better word for it than ‘clean’. I refactored my garage. From Wikipedia:

Code refactoring is the process of restructuring existing computer code — changing the factoring — without changing its external behavior. Refactoring improves nonfunctional attributes of the software. Advantages include improved code readability and reduced complexity to improve source code maintainability, and create a more expressive internal architecture or object model to improve extensibility.

I didn’t change its external behavior or its key ability-tos (storing things including 2 cars), but I reduced complexity, improved maintainability and made it more extensible (freed up or created more storage space).

The why

Over the years the garage had become disorganized, marginally usable and the cruft was visible wherever you looked. I’m sure you’ll find no relationship whatsoever to any applications or code you’ve worked on.

There were bugs. Literal bugs and a healthy ecosystem of black-widow spiders to eat the bugs. While I’m all in support of the circle of life, I prefer it to be on the outside, rather than the inside of my house.

Continue reading “Agile Home Improvement – Part 1”

Agile Home Improvement

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.

Continue reading “Agile Home Improvement”