Back in the Good Old Days™ I worked on a project that had grown "organically", which is another way of saying that a bazillion cheap programmers had worked on it and the code was full of crap. (For the record, the only other possibility is that the code is rewritten, and then it's crappy code written by fewer people. There is no non-crappy code.)
Anyhow, this particular project had a lot of spatial analysis, and one of the important things was where sites were on the earth. We had libraries full of homegrown functions to do things like come up with the distance between two points on the earth, or determine whether you could see one point from another point if you knew the elevation information for that area.
The main problem was that every time a new person added another function to calculate something, they appeared to have also added yet another structure to specify a point on the earth. All of the structures contained the same information (latitude and longitude), but in order to take the output of one function and use it in another one, you had to convert the first structure into the correct structure for the next function. So not only did we have libraries to do all of the spatial analysis, we had a lot of code to convert all of the different structures (all 14 of them) back and forth. As any programmer knows, this is a great way to add all sorts of random and interesting problems.
It stayed this way for a long time because fixing it would require a lot of work and we all had other things to do, but finally Rvan and I decided to attack the problem and just change everything. So we did.
Or, at least, I did. Rvan got sidetracked a few days into the conversion and decided to leave this inspirational note on my desk:
I know you're supposed to forgive and forget and all, and I've more or less forgiven him for this, but forget? Yeah right...
On a different note, I'd like to believe that people walking by my house see things like this
and that's why everyone stares. I'll keep believing that until someone proves otherwise.
No comments:
Post a Comment