Refactor

In my first months of freelancing I’ve been juggling two very different types of projects. One is working with a startup and creating their front end layout system and all that goes along with that. The other is refactoring an existing site. While both types of projects have been enjoyable, I gotta say, I am starting to love the refactor.

That seems strange, right? Who knew this is how I would feel. Not many people want to walk into what may be called a mess and fix it up. But oddly, I am getting really into it. There are several of reasons for this:

  • Everyone is so happy when the refactor is done and things are fixed up. Usually the client has been wanting to do this for a while, but they haven’t found the time, so the work is greeted with enthusiasm.
  • I can see clearly how I’ve made things better. Either things are more accessible because the semantics are cleaner, or the code base has shrunk or some other tangible.
  • I enjoy the sleuthing; running tools and digging through code to figure out how the site works.
  • I am not paralyzed by wondering if I am making the right choices. When cleaning up, I feel less worried about making a mistake than when starting from scratch.

The last one, that’s a big one for me, and I know it goes back to my own insecurities. As I write a layout system for a client that is going to live on for who knows how long, I often worry about it. Am I being future friendly? Is this going to work on all the thousands, nay millions, of devices that will come in the future? Will another dev come along in a year and scoff at my work?

But in a refactor, I am making something better. Hopefully I get feedback from the client and validation that my choices are good ones. I also don’t agonize over the choices, because usually, anything is an improvment. I don’t worry about perfection as much.

Most of this comes down to me, how I see myself as a front end dev, but it also tells me not to judge potential projects too quickly. It doesn’t mean I am going to do only refactors in the future, but it does mean that I will look at them differently. Coming in to help a fantastic team make their site or application better, that’s a project that will always interest me.