Future-proofing
your projects
March 10, 2006
** Listen to this
column on your computer, iPod or other audio player **

Listen
to the Podcast
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 data
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.
Question of the week: How can you build in flexibility
into your current projects so that they can easily continue even in the
face of outside issues?
Join the career discussion in the Career-Op
forums at http://forums.friendsintech.com/
If you find this column and podcast helpful, please leave
a donation for the author.
|