About 10 years ago, I worked at a rather large company, that had all sorts of policies on source code repositories, code reviews, etc. Over time, numerous systems were built that tended to daisy chain data from one system to the next. One such system had an applet (running on a user's PC) access a servlet (running on a Unix server) which accessed an EJB-session bean (on another Unix box) which did an RPC to a CORBA (C++) server (on yet another Unix box) that made a COM call which accessed a DB on an AIX box. Then the whole thing repeated, in reverse sequence, in order to return data to the applet.
One day, my boss's boss pulls me into his office and tells me that we need to upgrade the COM service, and the following conversation ensued:
Me: No problem, where's the source?
Boss: It's been lost
Me: How can it be lost? All the repositories are backed up!
Boss: The manager of the system didn't follow procedures, the code was
stored on someone's local C: drive, and the PC has since been trashed
Me: OoooooKaaaayyy - where are the spec's? We can just rewrite it
Boss: It was a one-off project - no specs
Me: Where are the original people? Programmer? Manager? Someone who might
remember what the thing was supposed to do?
Boss: All have left the company
Me: What systems access it? We can look at that code and see what it's
trying to do, and determine the specs like that
Boss: Unknown
Me: We can put a packet-sniffer on the box and see where all inbound packets
are coming from, then see what applications are running on those machines
and work it backward from there
Boss: Already tried - the security folks won't go for it - corporate policy
Me: Turn off the COM server and see what breaks, then work it backwards from there
Boss: Can't do that: risk to business is unknown
Me: (laughing hysterically) - short of getting Jeannie to cross her arms and blink...
Two months later, we get approval to shut it down. Within two hours, we got about two dozen system errors, and tracked back the requests. We were able to reverse engineer the requirements in two days, and replace the system in about 10 days.
God, I love my job, if only for the entertainment value :)