Never Solve the Same Problem from Scratch Twice

Don't let apathy kill your efficiency...

"Oh yeah, I got that error once."

"You remember what you did to fix it?"

"Uh...yeah...not really."

I hate solving the same problem from scratch twice. It's inefficient and demoralizing. It's an experience that should never happen. Ever.

As part of a team of developers, I see a lot of bugs/errors/warnings. I see them on my machine. I see them on my co-workers machines. Every error code, every pop-up box, every failed status message is an opportunity to stick a sign in the ground saying, "Seeing this? Do this to solve." Far too often we click out of it, debug it, change some setting somewhere, download some package, get it up and running, and move on. Opportunity wasted.

I'm not asking you to create a blog, include nicely formatted error message samples, and clearly describe the 25-step procedure to solve the problem (though that's a great idea). What I am proposing is a quick and dirty catalog of problems.

When I first became a developer fourteen months ago, I figured out pretty quickly that if I was going to have a chance of swimming, I couldn't waste my time solving the same problem twice. I fired up Evernote, created a new notebook called "Errors" and started dropping in screen shots of every error I saw, along with what I did to solve it. It's not glamorous. It takes almost no up-front time. It has saved me hours of banging my head against a wall -- the same wall.

Two months ago, our lower environments unexpectedly went down near the end of the day. This first happened to me several months previous with a different client. It took us two days to solve the problem then. Fortunately, I had taken screen shots and written down eight brief steps to solve the problem. I didn't have to search Stack Overflow. I didn't have to keep the team there all night working on it. I was able to say, "Oh yeah, I've seen this before. Here, try this." And it worked.

As developers, consultants, engineers, and problem solvers, we are only as good as we are efficient. Your memory will fail you. You are exposed to far more information than you can retain. That is why we created storage systems. Keep a notebook in Evernote. Write your problems and solutions on Stack Overflow. You should never solve the same problem from scratch twice. Ever.

portrait title

About Scott

I am a software engineer from Bozeman, MT enjoying the slightly warmer climate of Colorado. I think code can change lives. I think lives are worth changing. I write code.

You can find me on Twitter, LinkedIn, , and Github.