The 100-Year Software Application
Test and Monitor | Posted February 26, 2012

We like to imagine that people appreciate it when we create quality work, and that it'll last for generations. Perhaps that isn't a realistic expectation -- but let's write and test the software as if it will be used for decades.

I expected our friend Jorge to be excited: He'd been hired for a new construction project. New buildings were few and far between in rural Maine, where we lived, and he was a master builder. It sounded like Jorge would have work for several months.

But we saw him a few months later, and he was looking for work again. The new building was already completed.

"It went up in three weeks," he complained. "It'll come down in 20 years."

Most of us care about doing quality work, and we want the things we create to last. But so much of what we're called upon to build is ephemeral. Nobody expects it to last -- whether it's a new laundromat, or furniture, or a quilt, or software. But most of us wish we could create work that lasts... because that imply it matters, and it makes a difference, and it will be appreciated by the people who use it.

I'm not sure that I expect the quilt I'm working on will be used in 100 years. Lord knows that I'm not good enough at my hobby that it will be considered a valuable antique. However, I'm putting a lot of time and love into this creation. I chose the fabric that I think the recipient will love (every time I see her, she wears these colors); I've spent time poring over patterns that might mean something (too bad I can't find her a Firefly motif...); while I sew, I think about my friend and how much I care about her. I think the recipient will feel the love that is sewed into her quilt, even if she doesn't know anything about how quilts come to be.

Most serious woodworkers talk about creating "100-year furniture." You won't get rich as a custom woodworker, but you can be reasonably sure that the table you built will be used by the grandchildren of the client for whom you build it today.

I like to think that you create software the same way. Yes, you're irritated when software development takes longer than it ought to — but you're even more annoyed when it's rushed and it cannot take as long as it should. Because what we create matters. We want the people who use it to appreciate it, whether the software is used for a month, a year, or a decade.

What's funny about this is that when it comes to software, nobody expects the code to last, and the time you invested in making it work perfectly and defect-free doesn't often have a lot of correlation with the value it has to its user. I know one developer who, working at a hotel chain, was teaching himself to use a new database reporting tool. For the exercise after Hello World, he ran a report comparing reservations by Day of The Week. His user happened to see the printout on the desk, got excited, and asked, "Can I see this report every week?"

I tried to think of the code that I'd written (or project in which I'd been involved) that ran the longest. I think the accounting application I custom-wrote for a gourmet market might have run for five years before they upgraded their equipment (and I'd moved cross-country by then). I asked a few other developers: Few have code running in production that's more than 7 years old.

So let's do a wider comparison with a poll:

Even if we know that our work won't last a hundred years.. Somehow, it's important that we act as though it will.

Photo credit: Smabs Sputzer 


See also:




By submitting this form, you agree to our
Terms of Use and Privacy Policy

Thanks for Subscribing

Keep an eye on your inbox for more great content.

Continue Reading

Add a little SmartBear to your life

Stay on top of your Software game with the latest developer tips, best practices and news, delivered straight to your inbox