This editorial was originally published on Aug 26, 2015. It is being re-run as Steve is traveling.
I've almost never heard of a developer backing down from solving a problem quickly. In fact, I think most developers assume they can solve many problems quickly and whip up useful software. I know I've felt this way numerous times in the past. Need a little monitoring? I can knock that out this week.
However there are costs to maintaining software over time. While many of us can build scripts and small programs that solve problems, we also learn that those little pieces of software need some care and attention over time. That's well illustrated in the piece titled If You Build It, They Will Complain.
I had a similar path to that of the author. I built a utility, then another, then another for various departments and people inside of my company. I knocked out useful software that others used. And then I got caught up in enhancing, repairing, and otherwise attending to said software. It was an eye opening experience to realize that often software is never done, unlike the experience I'd had in school.
I saw a very experienced SQL Server professional note a few years ago that they would never write monitoring software again. It's not that this person couldn't, or that they wouldn't do a good job, it's that they didn't want to maintain the software, and there are plenty of good packages that do most of the job needed. This person could fill in missing functionality in small areas, while spending their time on more valuable tasks.
That's how I think most of us should look at software. We should look to reuse and take advantage of software that's written to accomplish tasks, evaluating costs against our time. It's far too easy to discount an employee's time, when we could easily outspend the cost of a piece of software already written by someone else if we tackle it on our own.