Programmers Hold Funerals for Old Code
MacBrave writes "The AP has an interesting story about how the programming staff at an Ohio company are holding funerals for retired or 'killed' programs. I dunno, this sounds a little TOO geeky for my tastes......."
Or do they bury it?
At the last place I worked, we retired a particular version of the application. We printed out the code onto paper, and all gathered around the project manager's barbeque and burnt the code, praying that we never, ever had to touch it again.
#!/bin/sh
echo "first post"
Sure, they may not be people, but it's easily comparable to a pet's funeral. They didn't have a so-called 'soul', nor were they human. However, they meant a lot to us, regardless of their intelligence.
I think the same could hold true for a program. Admittedly, I've never had an emotional connection to any of my programs, but I know a few people who might actually love their code, and I could sorta-kinda-not-really-but-ok-it's-your-choice understand.
I cant wait for the day that ASP.NET has it's funeral... so I can pay my disrespects.
The 'dead' programs represent a chunk of those coder's lives and a fitting sendoff provides closure for the 'parents' of that code.
God knows how many times I've sat in front of my source code knowing that not only could it be made better, but that there is probably a better way to do it. Unfortunately, the reason old code stays around hobbling around the system with plaster casts around its legs and band aids covering its heads, yes more than one head because at some point I figured that it would be better to stick a brand new head on there rather than refactor the functionality out and create a brand new program. No, reuse of old code is like the Jesus of programming. No matter how dead and in the grave Lazarus.exe may be, somehow we can reach in and squeeze just a few more years of life out of the system be applying just another patch, just another incantation. Lazarus, come forth! When in reality, it would have been better to leave that rotting corpse in the grave.
A ritual like they describe in the article seems like a really good way of encouraging long-needed rewrites and the tossing out of old code. Good code lives on, always young and fresh and rosy fingered. Timeless, never aging, good code does its job and does it well. Good systems are built around good code and intuitive use cases are built around good systems. A system that needs constant tweaking and patching and magic to keep it going is a system that is hopelessly falling towards the tomb. Better to print that code out and bury it in the cemetary and replace it with good code than to find another way to keep the herking and jerking system from collapsing under its own weight.
Back in the early 90's, the department my father was in held a funeral for the ampersand in their Lotus Notes email addresses. Yeah, they were the hardcore nerds of the company... dealing with Generation and Transmission at a large power company. Unfortunately it was also a sign that the entire department was about to be laid off.
"Some things die gracefully and other things we've had to kill," Perseghetti said.
Can anyone say Programming Mafia?
we'll be holding services for their social lives.
I saw the /. writeup, and thought it sounded like where I work. Surprise, it is! Not as a coder, though.
How come nobody decides to recycle the printouts? :P
0xdeadbeef is a new one. I always see 0xbaadf00d. I suppose 0xdeadbeef is 0xbaadf00d?
10) I merely inherited this code, but I'm not responsible for it.
9) All the developers of the original code have been laid off, so we need to rewrite it to understand it.
8) Sorry, IT has no more maintenance hours to support this application, but we still have development hours to rewrite it.
7)[insert new tech buzzword here] is the future, the old platform of [insert old tech buzzword here] is passe.
6) If we rewrite the application, we'll have more features, less cost, and better quality...I promise.
5) What were they thinking, I have a clear vision of the solution now.
4) What was I thinking, I have a clear vision of the solution now.
3) The customer changed the requirements and a rewrite is required.
2) Prior mismanagement lead us to this position, but the current management can support us in this rewrite.
1) I need to justify my job, this application should be rewritten.
or maybe
#include
int main() {
printf("Goodbye World!\n");
return 0;
}
I actually did this once. Our school's CS cluster was maintained partly by students, one of whom was me. I was, of course, very inexperienced in actual Unix administration, though I had read Slashdot, Usenet, etc., quite a bit. There was a directory in someone's home directory that no one could delete, even as root (probably due to some bizarre NFS issue, never figured it out). I had heard the phrase "send flames to /dev/null" and others in that vein. Plus I knew... er, "knew"... that /dev/null would always delete what you sent to it. Putting 1 and 1 together to make 3, I typed sudo mv undeletable_dir /dev/null.
/dev/null to the actual device in /devices/pseudo/ (this is a Solaris system). Crisis averted.
In the terminal room, there was suddenly a cacophany of beeping. The phone started ringing. This was bad. And no one knew how to fix it.
Someone suggested rebooting the machine. Of course, the machine promptly refused to boot. Much panic was in abundance, the phrase "complete restore from backup" was ominously spoken. Finally, someone with a Clue (TM) showed up and pointed out that we only needed to remake the symlink from
Moral? Several. man(4) null. Don't do things as root if you aren't sure what will happen. When you fsck shit up, try to find someone who actually knows what they're doing, and get them to fix it. And, above all, don't believe what you read on the Internet.
There was a filesystem repairing utility on old versions of AmigaOS called diskdoctor. This thing was awful, and you ended up with a blank floppy or an even more screwed one most of the times you used it. I recall an interview from one of the amigaos guys, where he explained why it did disappear from later version of the os. As they were pondering whether fixing it or removing it, they got an idea: letting it choose its own fate. They put the source on a floppy, erased it from their harddisk, then ran diskdoctor on the floppy. The filesystem got screwed and the sources lost. It had just commited suicide.