A recent refactoring effort has caused me to reflect on the therapeutic nature of the ‘delete’. As developers we’re continuously creating, building, adding and enhancing. Pride and accomplishment are achieved through the act of creation. We’re builders. But like any builders sometimes in the course of building we have to tear down what was there before, and who doesn’t enjoy demolition?
I’m not sure exactly when it happened, but I’ve definitely felt a shift in the parts of my job that I enjoy. Maybe its because for years I’ve stumbled around the debris and vestiges of features and functionality scattered throughout systems, not knowing why they are there or what they are for. Maybe its because, similarly, I’ve too often encountered complexity and duplication in those systems but not felt like I had the time to do anything about it. For those reasons and maybe others I find that I now relish the opportunity to drop a table, remove a method, combine or eliminate files and even, (darest I dream) remove whole projects.
There is definitely something therapeutic about the finality of deleting. Removing some piece of complexity, redundancy or just plain deadwood, permanently, never to stumble across and ponder its purpose again. Never again having to explain to anybody why its there, never having to be afraid to touch it because I don’t know the ramifications. Sure, tools and techniques, like unit testing, have definitely made me more fearless in this endeavor, but its the delete itself that I savior.
Everybody dances with the Grim Reaper
I highly recommend taking out your scythe, in my case that is Refactor’s “safe delete”, and start cutting. You’ll feel better.