Software Development Is Like Archaeology

Software Development Is Like Archaeology
   For years I have thought that software development is very similar in feeling to archaeology.  As a software developer you get to work on that legacy project that is ancient. The ancient developers are gone and you are on your own. You start to dig into the project and discover different artifacts that tell the story of the project. Sometimes you can uncover written traces from the past that we usually call comments. These traces can be hard to understand especially if the landscape around them has changed and they are now out of context. The ancient texts are sometimes written in a language you do not understand. However written traces are sparse and you usually need to uncover other artifacts like code fragments or just try to reimagine the life of the ancients by clicking on the software buttons and tracing code paths. There are layers of code from different ages. You can see how requirements changed through the ages and the developers adapted and changed their ways. Usually more recent code destroys and replaces the older code but you can always discover something from the dawn of ages. Sometimes you are required to restore broken artifacts from the past. You can use modern tools to do so but you need to preserve their original function and they should be able to work together with all the other ancient code.

  Sometimes you are amazed of what the long gone developers have done with their primitive tools. They built ships of wood and giant pyramids without machines. They did not have generics in the language, cool IDEs and refactoring tools. They were strong and conquered the hostile territories of the far north and south. They wrote their own web services implementations and parsed XML as string using clever patterns and had patience and willpower that developers nowadays lack.

   More often however the ancient developers were not that clever. They had no knowledge of simple according to our standards things. They did not know they could smelt metals to create tools, they did not know they should not drink and eat from lead cups and plates. Things like semantic HTML, unit tests and separating code into layers were unbeknownst to them.

   Sometimes you uncover scenes of bloody sacrifices due to absurd superstitions or simply scenes of horrific, barbarian brutality. These moments can make you really sad when you dig all the skeletons. Your reaction is usually "WTF?!?!?" and the skeletons are often on display in The Daily WTF museum for other archaeologists to study.

   If you study the ancients long enough you get to know their ways and you become good at navigating their catacombs. You can predict what artifacts you will find and you can restore them faster. You become used to the horrors of the bloody sacrifices and they do not scare you so much anymore. At this point you may become indifferent and start to commit atrocities (into SVN) similar to the ancients. However you may also realize that you are now part of history and you are responsible for what future archaeologists will find. You can make their lives easier and make them admire your work or you can horrify them. The choice is yours.

Update:
It seems like there is even a term "Software Archeology".
Tags:   english programming stupid 
Last edited by:   Stilgar
on   09:53 04.10.2010
Posted by:   Stilgar
15:03 23.09.2010

Comments:

First Previous 1 Next Last 

Posted by   Guest (Unregistered)   on   13:25 24.09.2010

We need no stinking regexes for parsing XML, all we need is *pch++;

Posted by   Guest (Unregistered)   on   17:49 29.09.2010

"scenes of horrific, barbarian brutality..."

Love it. This makes me feel better when I have to trudge through bad old code.

Posted by   Guest (Unregistered)   on   12:38 12.12.2010

I am one of those old coders and what makes you think the new coders are any better?

Hah!

Give me a break will you.

Posted by   Stilgar   on   14:31 12.12.2010

Never said the new coders were better. In fact I suggested that the new coders can will pobably produce the same artefacts for future generations.

Posted by   Guest (Unregistered)   on   17:25 13.12.2010

I am actually inclined to believe you, seeing that you seem to take this (your craft) seriously that raises you up a few notches in my book.

I know sometimes, the old folks tend to get a little reactive but its just from overall experience.

:)

Posted by   Stilgar   on   17:36 13.12.2010

The whole point of the article is that if you write code someone will have to read it and he will judge you by what he reads.

First Previous 1 Next Last 


Post as:



Post a comment: