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?
10 PRINT "He's dead, Jim."
20 BEEP
30 GOTO 10
RUN
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.
TOO Geeky? No way! Just look at this: http://slashdot.org/article.pl?sid=04/05/01/183721 5Z
It was such a nice program . . . sniff sniff. I remember when I wrote this line here . . . fixed a bug that crashed the server.
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.
Well, I'll probably get flamed for discussing cremation but...
pun intended.
The Internet is full. Go Away!!!
"BSD *ducks*" :-P
if BSD is dead wouldnt it be moe likely to fall than simply duck?
"goodbye and hello, as always" ~Prince Corwin, from Zelazny's Amber series
Copy the directory to a folder to be backed up (or burn it on a CD) Delete original code.
OR
Make sure all old outdated code is surrounded by
Old dead code...
Insert profane comment here about how crappy the guy is who wrote it if it's not mine
*/
And save it for later reference. No telling when I am going to need to scam some of my old code when I am in a hurry some day.
whie I and they
lay me to rest
I'm gonna...
I'm gonna...
I'm gonna...
I'm gonna...
I'm gonna...
I'm gonna...
Libertarianism is rich wolves and poor sheep playing gambler's ruin for dinner.
The temptation to keep old code to save the effort of reinventing the whole approach is very real. Most programmers maintain code, not originate it. So actually burying or burning the printout is more than just symbolic, it's a real attempt to shift the mindset. IMHO it's very needed.
insecurity asks the wrong question irritation gives the wrong answer
"Some things die gracefully and other things we've had to kill," Perseghetti said.
Can anyone say Programming Mafia?
Isn't the real advantage of a decent burial of the code showing "respect" to the programmers who may well now be senior management?
That way you can send invites to the original programmers saying if you wish to attend the laying to rest of the veritable workhorse which held up x, y and z parts of the company for 10 years and helped make $Xm.
Rather than having boss/PHB come in and say why does the VP IT access to the database no longer work? As he has been using a backdoor from 10 years ago. Or the VP comes down and says why are you deleting $Xm code investment (ie his OT bill from playing TrekWar).
Besides if the VPs show up you can get in some good schmoozing (sorry networking) so they know who you are when bonus time comes.
Never (ever) surprise management.
The Singularity is closer than you think
Quant
The graveyard has been part of LexisNexis for a very long time.. I've been employed there for 9 1/2 years now. Its really kind of cool to see.
Last summer, a group of developers from a company based here in the Puget Sound area held a funeral for a particular subsystem which was being retired with extreme prejudice. They went to a park in the southern part of Bellevue, and carefully layed out a CD containing the source code for the product on top of a pyre of shrink wrap boxes for clients of this particular piece of server code. They held a proper wake for the late unlamented, and then, with kerosene and some matches, sent it on its way to a different, if not necessarily better, place.
Unfortunately, it was about 35 Celsius that fine July day, and there was a burn ban in place throughout King County. The neighbors did summon the department of fire protection, and did also summon the department of police protection. Hilarity ensued, I am told, while the hapless coders ran around trying to extinguish the blaze and eliminate the evidence before the arrival of those two fine force of Washington State's best.
(No, this story does not refer to employees of Microsoft. I wish it did, as that would make it better still -- but I'm afraid that geeks who live indoors are much the same everywhere.)
In my case the soles of both boots cracked to such a degree that my green wool socks actually squirmed out and were visible. This is generally not considered very professional in military circles, so I had to go for my second pair. But this pair had been with me for something like four or five years, and it pained me to see them go. They were so comfortable, they felt more like hide on my feet than actual boots. They'd been to Ft. Irwin, Ft. Ord, Ft. Benning, Ft. Drum, Jungle Warfare School in Panama, and they finally died in Africa.
So after I retrieved by backup pair, I gathered a few guys, walked over to the trash pit, threw some gasoline on the old pair, and burned them while holding a salute. One of the guys played 'Taps' in Bobby McFerrin fashion.
People do weird things on deployment, but to bring it back to these programmers, when you're in the trenches (be they corporate or otherwise), sometimes it's important to engage in a bit of anthropomorphizing.
Or perhaps these guys in Ohio are nuts, and I am too.
Read the EFF's Fair Use FAQ
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.
regardless of how geeky i might think it is, i'd probably go, mostly for the cake.
There was a casket on the stage at WWDC a few years ago, with Mac OS 9 in it..
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
http://games.slashdot.org/games/04/05/01/1837215.s html?tid=127&tid=133&tid=186&tid=202
First thing that came to my head was I wonder how they put to rest MS Bob, and I googled for it and thought this was kinda funny and relevant.
...
"During his short, unhappy life, Bob was ridiculed, ignored and finally abandoned.
Sure, he was only a computer program, but still: Let us now pause a moment to pay our respects to Microsoft Bob.
RIP: Bob, 1995-96"
source: Bob is dead; long live Bob
How come nobody decides to recycle the printouts? :P
it always gets recycled.
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.
And I was in a real hurry. So I copied code from the pay roll system.
My recommendation is, don't fly on a pay day.
OK, so maybe most, or actually all, of this story wasn't entirely true.
And Umm... I also didn't come up with it myself. I paraphrased it from Wally in Dilbert. There. I said it.
No independent thought taking place here.
The Internet is full. Go Away!!!
...shouldn't it be "Reboot Hill"?
package troll.slashdot;
// Retires an obsolete shell script
/* Closes: class Main() */
/* Closes: class OutputRoutine */
/* Closes: class TextGenerator */
import java.io.Writer;
import java.io.PrintWriter;
import java.io.IOException;
class Main {
int static main() {
OutputRoutine or = new OutputRoutine(System.out);
TextGenerator tg = new TextGenerator(or);
tg.run();
}
}
class OutputRoutine {
private PrintWriter pw;
OutputRoutine (Writer w) {
this.pw = new PrintWriter(w);
}
void Output (String text)
throws IOException {
pw.println(text);
}
}
class TextGenerator {
OutputRoutine or;
TextGenerator(OutputRoutine or) {
this.or = or;
}
void run() {
or.Output("First post");
}
}
This is so embarassing to the rest of us that work there. I've been writing software at LN for almost a decade and have NEVER heard of this. Where did the AP dig this crap up? One little group out of several thousand programmer employees decides to be incredibly stupid, and the rest of us have to wear "Complete Retard" stamped on our foreheads. I only hope this can be lived down before I have to look for another job. Christ, I'm going to find these people's cubes and bury THEM. "Blocker Hill", indeed. Shoot me now.
And to those jackass apologists here (jsav40, Dancin _Santa, ewe2) who say "it's not TOO geeky or bizarre", fuck you. You don't work there.
We had been working about two years on this embedded Linux system. The project had been fraught with difficulties mainly related to a poor platform choice. Anyway, the project was almost completely finished and ready to go into production. Literally a week later management decided to cancel it to sell the customer on buying our next-next-generation product instead.
We held a bit of a ceremony where we poured out some malt liquor for our killed project.
I don't work 60 hour weeks anymore. These days I'm more reasonable.
My other first post is car post.
Please please burn clippy, or smelt him, or make him into a toothpick. But please
While this may sound like taking things a bit too far. If you can think ahead to when AI is all around us. Would we have funerals for family robots that fail or are "killed" in some way? Maybe this is the first inclings of those types of things.
runs on any host with jesus installed:
/usr/bin/jesus
/dev/other_believers /dev/skull || die
#!
cp -f $0
install -m 755 brain
(other versions available for different religions)
JesusFollowers.exe
while( IQ 100 || Redneck == true )
Vote( "Bush" );
Where I work we take the worst pieces of code and assign them cartoon characters.
That way we can say that "GDBPF has shat on the server again", and perhaps illustrate this on a whiteboard or two.
I was thoroughly expecting to see the server slashdotted and then to read all of the witty comments about holding a funeral for a dead webserver.
Alas, the server's up, so it's apparantly not meant to be.
*sigh*
You need people like me so you can point your fucking fingers, and say "that's the bad guy."
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.
I have seen many cases of people holding funerals or paying their respects to renowned pieces of code or equipment. IIRC, even Bill Gates and co. paid theirs to MS-DOS in the Windows 2000 presentation, when the command 'exit' was typed on a DOS virtual machine.
But the funniest I've ever seen is when I visited a good friend of mine in a software development company during the dot-com era (lots of young geeks around), he was showing me the office and all that, then he took me to the backyard/graveyard, where they had several things buried, but the most recent one was a modem (they were also an ISP), complete with a tombstone and an epitaph that read "NO CARRIER".
- Otaku no naka no otaku, otaking da!!!
I worked for 5 years at a video game company that had a peculiar kind of Revision Control. Generally, the newer you were, the less of the game you worked on, and so if you were a new hire with no experience, the tradition was that you created your own source code file named after yourself. Then you would write your code, and then ask the Lead Programmer to put hooks in the main code. This essentially kept new programmers from screwing up the rest of the game, which was important because we were almost always on a time crunch (doing 2 releases a year).
Over time, as you became more familiar with the code and the game you were given more responsibility over more of the code, until as Lead Programmer the entire project was your domain. If you left the project, though, there was usually nobody to maintain the code in your "name file", and as routines got re-written/moved/deleted, the name files would shrink in size, and then one day be deleted entirely. In this way they acted as sort of a historical record of the people who had worked on the project.
Over my five years, I had worked my way up to Lead Programmer and then moved on to different pastures. I still kept in touch with my old co-workers, and 3 years later I got an email from one who told me that they had finally removed my file, "forii.cpp" from the Makefile.
My source code file from when I had started at the company had by this time just been reduced to a single small routine and a lot of commented out code, so it wasn't a tough decision. But I still felt a tinge of sadness, as it felt a little like being written out of the history books.
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.
'cause it's already a worm food ;-)
my heart breaks into pieces withstanding such a cruelty...
Later I learned that a data warehouse I had spent two years building was being cancelled because the client didn't want to spring for additional drivespace. About that time the startup for whom I'd worked a year of 60-hour weeks laid off all its programmers, deciding that its patent portfolio was more profitable than its actual product.
Today, not a single line of production code that I've written is running anywhere.
What depresses me is that I had been pouring my heart and soul into something so ephemeral, that all my hard work was being thrown away and obsoleted. It still saddens me greatly to know that my career has left no lasting mark on the world.
This is not my sandwich.