The Jet Propulsion Laboratory (JPL) recently launched their latest space probe, New Horizons, which will be the first such probe to visit and study the planet Pluto. While you probably don’t need to worry about ensuring your latest network server is still operating 10 years from now and a couple billion miles away, taking a long-term approach to your projects, like JPL, can help to insure their success. I call this future-proofing
Too often high-tech workers live and work at the end of their nose. This server has crashed. That PC has to be re-built. This program has to be written now. There simply isn’t the time, or in most cases, desire to look beyond the next release, the next milestone, the next upgrade. Unfortunately, this can hamper a company’s ability to do business and lead it down dead-ends that might have been easily avoided.
Keeping your options open
While it is impossible to predict the future, there are ways to make your project more adaptable to it. Often, I see projects that are locked into one particular piece of software or hardware. Everything depends on this one item, which is usually only available from a single source. If this is the case with any of your current projects, you should be making some important decisions. If you are truly locked into one program or device, you need to develop a plan so your project doesn’t stop in its tracks.
The single most important way to help insure the long-term success of your project is to think first about the essential purpose of the project…the data. Hardware and software may come and go, but the main reason your project exists is the data that it stores and manipulates. Don’t lock up this data in proprietary formats or database structures. Build in, from the very beginning, the ability to export your data in any number of ways. Start thinking today about what you, or more likely, you successors, might be doing with this data 5, 10 or 25 years down the road.
If you can provide a migration path for your data, you are well on the way to future-proofing your project. Instead of facing a dead-end, you are creating a hallway of open doors. Data portability will allow you to face an impending company failure, discontinued hardware and buggy software upgrades with aplomb. Such events become more of a “so what?” proposition instead of a major crisis. Sure, there will still be problems associated with the changes, but you will have already prepared for the worst eventualities.
Thinking of others and yourself
Long-term planning can effect your career in another dramatic way. We have all faced projects where we were responsible for upgrading an existing system. I am sure you have also experienced the frustration of discovering that previous workers provided no information, or even clues, to how the system operates. Like an archeologist studying hieroglyphics and trying to tease out their meaning, we are forced to dig through obtuse code to try to reconstruct the operation of the system.
Be kind, to yourself and others, by clearly and completely documenting any system on which you work. First, do this for yourself. Who knows how many times you might be asked to change or add functionality to this system once it is in production. Are you confident that you will remember the reason for every tweak and compromise that went into its creation? Send notes to your future self by documenting everything fully. This will mean the difference between a quick fix and long, frustrating hours trying to understand your own work.
Documentation also helps to insure the future of your projects by insuring that others can pick up where you left off and keep the project moving forward, weeks, months or even years later. Your successors will quietly praise your name instead of cursing it, as we curse those who came before us. Providing a roadmap to others should be considered common courtesy. If enough of us do it, perhaps those that come after us won’t have to suffer as much as we have.
While projects come and go, you can help to insure their continued success by allowing data to move freely and by documenting the systems themselves. These two, relatively simple, concepts can insure that you, your successors and your company will enjoy the benefits of your work for years to come. Even more importantly, protecting your projects and helping them to stay productive does wonders for your reputation and your high-tech career.