Technology Archaeologist: noun
The reconstruction, decompiling, or reproduction of past technology and processes to fix, extend, or re-write them.
Over the last 25 years, I have been fixing, extending, and modernizing old code, technologies, and business processes. While every situation is different, here are a few of the common themes/roadblocks.
- The code was misplaced, and the customer only has the compiled DLLs.
- The original system was written in some ancient versions of code. C++, RPG III, Asp, Asp.net Forms, VB 6, or COM.
- The Data Access Layer was generated in subsonic or some other very very old and unsupported tooling.
- The underlying hardware is failing.
- Data in the database is encrypted, and the key is buried in a DLL that has no source.
- And my favorite: The company isn’t really sure how the software works other then cornerstone business processes depend on it.
Most of the time, the IT shop did not have time nor budget to replace these systems, and now the people who wrote the original code have either moved on or, in some cases, even died years ago(A single Sign-On project comes to mind over at NASA). The code is often full of cruft, and much of it leads to a dead-end or even worse; finds an execution path that nobody could have imagined(SQL triggers or some other hidden service running on a box under someone’s desk). Many times we are forced to spend the first week getting a DEV or QA version up and running, so we don’t blow up production. This inevitably leads to the discovery of missing tooling such as a CRUD generator like Subsonic that hasn’t been supported for 15 years or some missing COM+/interop DLL.
So with that said, I have decided to call myself a Technology Archaeologist. Exploring, recreating, and analyzing ancient systems is part of what I do, and my company BrightRay does. I am aware that this is a lofty title for someone who crawls around in the muck, but I have come to realize that I enjoy it. Understanding the ancient to fix, upgrade, extend, or re-write it is where I want to be. Migrating software to the cloud begins with Technology Archaeology as successful cloud replatforming requires digging in deep while leaving nothing to chance.