Have you ever been given another developer's code and tried to work out exactly how the last Neanderthal ever got their apps to work? Welcome to the world of software archaeology!
Being a fan of the Indiana Jones movies and a bit of a history buff you'd think trying to figure out how other projects worked would be a fun task. Alas, it is nothing like chasing the bad guys to the ends of the earth, saving the world from evil and picking up a gorgeous woman along the way.
Rather when comments are missing from the code when there is no or little documentation and when the original developers have disappeared off the face of the earth, it certainly takes the fun out of saving the day for clients or employers.
I came across a great example a couple of months ago when asked to add some new features to an existing Web site. The previous developers had moved on and left no documentation, the code was all over the place with no comment tags, there was no back-up and getting hold of the information on the Web Server was quite frustrating.
The owner of the Web site was not that tech savvy and didn't know what skills he needed in a hire to leverage the existing code and work on some enhancements. After sifting through the code it became obvious that by the time I worked out how everything worked, it would be easier to just re-write it from scratch. Hardly ideal, but the customer could see little alternative other than employing an expensive consultant.
Not that the site was complicatedÃ¢â¬"all that was needed was a few forms, search functionality, a sign-in area for customers and a system by which the customer could update the Web site easily without having to call on the help of a designer or developer. I shudder to think what this would be like for much larger and more critical applications out there on the market.
You'd think it would go without saying that it really should be in the developer's interests to follow good business practices and deliver solid support.
Of course, clients are not always easy to please, but at least if you document everything you'll be remembered when the next development team that comes in on the project a much easier transition. It will also keep your reputation intact in the marketplace and amongst your peers.
I'm sure there are plenty of similar stories out there. Share your experience in our forums of playing the software archaeologist and how you saved the world from code that was lost in the dark ages. For the best answer this week we'll award a special prize.