The Difference Between Making It Work and Doing It Right

Written By Jesse Schutt
Posted on

Making it Right

For years my dad reminded me that if I took one of the tools from his workbench it was critical I returned it. Through my grade school years, I was notorious for taking a wrench or socket from dad's toolbox, using it to fix my bicycle, and leaving them strewn across the garage floor as I rode off with my buddies. It wasn't until I became a father, and watched my son exhibit the same behavior, that I realized why he was so insistent on me returning the tools.

Why did it matter so much to him, and now to me?

It mattered because even though I addressed my immediate problem, straightening the handlebars on my bike, I had inadvertently created a new problem for someone else. A sneaky one that would avoid detection until the next person needed the 3/4" spanner to fix something else, or I needed to fix my bike again. By not putting the tool back where it belonged, I hadn't finished the job. And an unfinished job is not a job done right.

What are your priorities?

You have probably seen the saying, "You can have it fast, you can have it good, you can have it cheap: pick two."

If I were to guess, I would say that the two most often chosen are "fast" and "cheap" while hoping "good" will tag along for the ride.

Today, pragmatism outweighs form as the measure of success. Combine that with the tendency to want a quick fix, and you have the recipe for deferring trouble to the poor souls following.

So what are subtle differences we need to watch for between making something work and making something right?

Making something work introduces a fragile, brittle, or inflexible solution. It does not communicate well, and it disregards the next person. It deceives you by making you feel like a hero for fixing the momentary issue but will bury you with trouble tomorrow.

While you may get away with the "making it work" approach for a while, continued usage of these solutions will result in instability. Stack too many of them together, and collapse is inevitable.

Making something right, however, brings clarity, stability, and relief. It puts to rest concerns about mortgaging tomorrow, and it feels right.

You might be thinking, “how does this apply to software development?” Great question! Let’s take a recent project and see how making it work versus making it right played out.

We needed to build a third-party API integration for one of our web apps. As I started programming, I realized that it was highly likely we would add additional third-party APIs beyond the one I was working on. The “making it work” approach would have had me plow through, writing code specific and applicable to this one third-party API. However, since we know we will be adding more integrations, I slowed down and developed a plan that would accommodate the nuances of multiple APIs. Instead of deferring the difficulty until tomorrow, we chose to make it right and are well-positioned for growth.

These days I'm a stickler for putting tools away. They may be a disorganized mess while I'm working but come to the end of the project, I return them to where they belong. Not because I like a clean workspace, but because I care about the next time I have to get my hands dirty. I want to spend time fixing the problem the right way, knowing my tools will be waiting exactly where I expect them to be.