Written by December 27th, 2009,
In software development, refactoring is the process of improving how code is structured, usually because the original implementation was sub-optimal or the circumstances in which the code is being used have changed. The aim is elegance: that subjective and elusive blend of functionality and simplicity.
My family recently decided to set a 'theme' for 2010 - a guiding concept for the decisions we make through the year. We chose "simplicity", but it has since occurred to us that what we're really after is elegance. I want to move through life with as little resistance as possible, while still achieving and growing and living. That means cutting things back to their simplest yet most functional, removing the accumulated cruft, reforming into the optimal shape.
One of the interesting things about elegance is that it is underpinned by a clear purpose. While you can superficially simplify, you cannot hone down to the core functionality without knowing the exact purpose. In order to work towards creating an elegant life I need to clearly define what I want to achieve, which obviously has been rattling around in my head a little lately.
Essentially, I want to refactor my life.
Although I know how to refactor code, applying those same principles to my life is sure going to be interesting. But I like it as a metaphor because refactoring is most effective when it's incremental and constant. Small achievable improvements done regularly, rather than wholesale re-writes, sounds like a pretty good way to approach life.