Back in February my family moved from Pittsburgh to Southern Indiana.  When we made the move we didn't actually know where we would end up. We put most of our worldly goods into storage and settled in with my in-laws for an extended stay while we shopped for a house.  Whenever we've moved in the past we go through a process of purging the stuff we don't use.  Trash bags get filled, car loads get taken to Good Will and we lighten the load for wherever it is we are moving to. This most recent move brought more purging then we've done in the past, by about an order of magnitude.  Our house in Pittsburgh had an unfinished basement that was perfect for storage, so we quickly consumed every square inch of space with junk.  When we moved most all of the basement's contents stayed in Pittsburgh one way or another.

When we finaly bought a house we settled for one without a basement or grandiose storage space. This caused us to yet again cut the waste from our lives. It's amazing how liberating it can be to become nimble by cutting the waste.

I tend to cycle through this same process with my office desk too.  Every couple of months I empty my drawers and weed through everything, restoring only the necessities and essentially cutting the waste.  On the other end of this process I can find things faster and I free up storage for new things far more important than the ones I get rid of.

Software development is no different.  Sometimes you need to sell the house.  Other times you just need to clean off the desk. In the end you need to cut the waste, trim the fat if you will. When I descend on a project one of the first questions I ask myself is, how can I remove as many lines of code as possible?  It seems like a silly question, but the truth is that clarity comes through simplicity.  Complex code often just needs to be gutted, whether through refactoring or rewriting. Understanding the initial problem is critical, but fundamentally cutting the waste creates a more nimble piece of software and this in turns translates to better results all around.  Don't believe me?  Pick a complex process and drop the gauntlet on it.  Try simplifying it and set a goal to reduce it's footprint by 20%. I'm willing to bet the fruits of this labor will be profitable.