February 1st, 2016
Thinking in parts
I almost made a big mistake the other day. Behind the scenes at The Meteor Chef, I have an app running that helps with publishing, payments for services, and managing the direction of the business. Over the past few months, it's steadily collected parts, growing to a decent size. Lately, I've started to feel the developer's twitch: wanting to burn everything to the ground and starting from scratch.
As I've learned from others and my own experience, this is a bad idea. While you think what you're going to replace everything with will be better, more modern, and efficient, it rarely is. In reality, you will waste a bunch of time rebuilding everything—stuff that works fine but doesn't feel pretty—just to placate your inner voice.
On Thursday, I stopped myself. Instead of starting from scratch, I asked “what can I refactor?” (refactor = nerd speak for remodeling code). I decided that the routing system for the app (this controls what gets displayed on screen for different URLs) could benefit most and spent part of Thursday and Friday cleaning things up.
The results were interesting. Nothing new was added. The changes, save for the code, are invisible. But despite any visual progress, I knew it was the right choice because I made meaningful progress that will impact multiple parts just by refactoring one. The benefit of the work is that now, refactoring other things will be easier. Modernizing other parts of the system will be easier, too.
Even though I changed just one part, that change made a positive ripple throughout the entire project. Now, I'm excited to do more refactoring and building on what I already have instead of demolishing the house and starting from scratch. While I was swapping parts, I realized this idea can apply to a lot more than code.
Everything related to your business—and your life, too—can be “refactored” in parts. Instead of thinking about everything as a massive whole, consider what parts you can change. Don't redo the whole kitchen, just the cabinets. Improve the copy on the landing page and skip the redesign. Cook your lunches instead of eating out. Not only does this save you time and money, it also ensures that real, tangible progress happens over time.