What Gives Software the Ability to Stand the Test of Time?
By: Eric Potter
The Old Safe
In the near future, Aptera will move into a wonderful new building. When we purchased the building, it came with a safe left by the previous owner. The safe is old, much older than the software I was working on, but it works as well today as it did the day it was made. What is it about the safe that has made it stand the test of time? It is built with high quality components.
The critical parts of the lock are made with brass, not some cheap pot metal. The users may never know that the drive wheel and the drop-in lever are made of brass or even that they exist. They have kept the lock working smoothly for all these years.
In the same way that the brass internals of the lock have kept the safe operational without the end users awareness of it, clean code keeps software operational whether or not the end users are aware of its existence. The overall functionality of the application I'm working on hasn't changed much over the years. But it has needed to be tweaked and added onto over the years to continue to meet the needs of the business.
It would have been initially cheaper to use lower quality metals in the safe. In the same way, it would have been cheaper initially to write messy, but functional code. But the software wouldn't have lasted as long and wouldn't have provided nearly as much benefit to the bottom line if it wasn't built to last.
The users may never know that the code is well structured and properly named. They may never know that the unit tests exist. But they will directly benefit from software that functions reliably for years to come. So, if you want to build software that will stand the test of time, always take the time to code it cleanly. Consider maintainability to be a key aspect of the code. Because just like the safe, even if the end user can't see the value, time will prove your effort well worth it.
About Eric Potter
Eric is a Microsoft MVP and Software Architect for Aptera Software in Fort Wayne Indiana, working primarily in the .Net platform. He has been developing high quality custom software solutions since 2001. He is also an adjunct professor of computer science at Indiana Tech. He loves to dabble in new and exciting technologies.