Would You Add Easter Eggs To Software Produced At Work?
Mr. Leinad writes "Do you add Easter Eggs to the software that is produced at the office? I mean, if you have complete control over the final product, do you spice it up with that little personal touch, which, as unlikely as it is that anyone will see, carries with it an 'I was here' signature? I've just finished the development of a large software product, and I have a couple of days left to try to add my own personal Easter Egg code, but given that the software is quite professional, I don't know if I should. What do you think? Should we developers sign our creations?"
Subtlety is key, even if it's for something like proving the program was coded by you if some asshole attempts to take credit...
Of course! Doing so in an unobtrusive, unharmful way only adds charm to the product.
Need an automatic screenshot taker? Try here.
Easter Eggs? No, funny comments/error messages, and bizarre variable names, absolutely.
I will never forget the day a student who was using my software for a project asked during a meeting what an 'out of cheese' error was. The poor kid was so confused :)
A learning experience is one of those things that say, 'You know that thing you just did? Don't do that.' - D. Adams
If your "easter egg" causes bugs that end up costing the company money, your ass is grass.
My personal take on this is to go ahead. First, the world NEEDS to step back from the super-serious attitude, but still be polite. Second, coding is as much art as science and I think your paintings, songs, code, engineering, etc should all have your personal mark, something to make it identifiably yours. Third (kinda goes with the first) doing so can be a moral booster for you AND those who discover it.
However, there are issues to keep in mind. You must keep it professional, so no vulgarity, rudeness, or jokes about loss of data. Certainly, you should avoid all the '-isms' like the plague. And, just as important, it should be clear that the Easter Eggs do not break security in any way.
In short, make it secure, polite, fun and it should be cool.
I hope this comment is well received... I could have moderated instead!
Persecutors will be violated!
One of Microsoft's head programmers tried a little stunt like the one you're suggesting. It cost him his career... his dignity... and if the suicide note was of any indication, even his life.
His name was Andrew B. Clippy, and his "personal touch" tore him asunder.
Don't forget the Windows95 Easter Egg where a simple series of actions on the desktop would get you a blue screen with a special message from the OS.
I used to work in the visuals department for a flight sim company and it was common practice for the image database devs to sign their names and leave each other messages at something like -10m below the airport's primary runway.
This was all well and good until we had some sort of glitch on a sim under test and the customer's chief pilot managed to land through the runway and the entire cockpit view was filled with something like "Fuck off Dave!"
Management were not pleased!
AT&ROFLMAO
How are your going to be able to explain NOT fixing a bug that got through in your code when you had time to include an un-spec'ed Easter egg?
This isn't about charm. This is about having to explain to management why a customer is unhappy.
It's only an easter egg for true geeks, but I used this value as an encryption seed:
Hexdumping the executable shows:
Since it's the file encryption seed, nobody can ever change it without destroying the program's ability to decrypt old files!
Yes, I want it to reverse current and shock me so my heart pulses out jingle bells! Whilst the readout shows vectored pine trees!!!
from 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
to 45 2F 6E 40 3C DF 10 71 4E 41 DF AA 25 7D 31 3F
Hey, it still works in Vista!
I'm not insane! My mother had me tested.
At my current place of employment, all the code we write belongs to the client (which is pretty much SOP in the field). Our clients sometimes do not share our sense of humour. As the technical lead, if I find it, you can be damn sure you're taking it out again. And I am looking :)
I'd discourage actual functionality easter eggs too, in most programs. The industry average is estimated to be 10-20 defects per 1000 lines of code. Every non-essential line of code you write risks introducing a bug.
Rgasuya aata! : I have been coding Perl and cannot tell where my fingers are now!
Aren't easter eggs supposed to be hard to find?
[ ] You know what Raid 10 is
[X] Your original post was talking out of your ass
HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
I hid a secret dialog box in an application I did for a call-center project my employer was working on back in 1999. The software was to manage a call center of untrained temps calling various suppliers of a Very Large Company surveying their Y2K compliance. We were a small company run by an ex-employee (laid off and rehired as a consultant) of the Very Large Company. I hid the egg just as a joke, not really thinking about it. To hide it from the other programmer on the project, I obfuscated the code that created the egg and hid it across several modules. Anyway, about two weeks before we were to ship (and get paid), our salesguy decided to give the customer a preview of the software, which was feature complete and in final testing. He decided that rather than ask me for a demo version, it would be faster to simply send the customer a copy of the folder on my desktop. (This is when I learned to be paranoid about locking my screen when unattended!) All of a sudden the Very Large Company called us and told us they no longer needed us or our software, as they had "repurposed a software used for a previous project". The salesguy threw a fit, talking about how he had "gone above and beyond" to make the sale and "even done a demo". When asked about the demo, he admitted what he had done.
So a week later, my boss and I paid the Very Large Company a visit to meet with the manager who was our contact. He and his boss very proudly showed us his call floor with about 60 people working at workstations running a very familiar-looking piece of software, talking about how they had this "just lying around" and "forgot they had it" and were "really very sorry".
So I asked if I could see the "software that beat us". Before he could say anything, his boss said "Sure, go ahead!", and he didn't argue. So I sat down at a workstation, opened the about box on the software, and noted that the text strings had changed but not the layout. So I clicked where my hidden button should be, and sure enough, there was the hidden dialog box with my name, the date, the company's name, and a large picture of Sailor Moon and Chibi-Usa.
My boss was livid. The manager turned white as a sheet. All of a sudden he didn't want to talk to us anymore! He called security to show us to the door, but the damage was done. Both he and his boss had seen what I did. His boss was not pleased. Apparently he had claimed "finding" the software as an expense. After some discussion between them and our lawyer, it was decided that in exchange for us not suing them and not telling anyone about it they would pay us four times our original contract value. The manager responsible was fired by the Very Large Company, and we fired the salesguy for exposing the company to such liability.
So yes, absolutely, I hide some sort of identifying mark in everything I do. You never know when you might need to prove you worked on something.
Yes, and it seems very unprofessional of them.
I find it a little annoying that OpenOffice has an entire Space Invaders game in it (put =GAME("StarWars") in any Calc cell) when the suite is so slow and bloated. It makes the statement that they they don't care about streamlining.
http://www.folklore.org/StoryView.py?story=Stolen_From_Apple.txt
Some of the responses in this thread make me think a lot of the folks responding either don't do contract software development for a customer, don't work on any sort of mission critical software, or aren't terribly mature.
An easter egg is: a) extra code that could introduce a new bug (accidents happen, even in easter eggs - I've seen a screwed up easter egg crash a program and leave the machine locked up)
b) something that is not part of requirements and if caught during client code reviews or after installation, would put your employer in a complicated position since your spending time on such an unallocated task could basically be considered a form of fraud if the client is paying for your services
c) a sign of vanity - professionals do the job, do it well, and move on, not write silly-ass amateur crap just to amuse themselves and stroke their egos
d) something some other poor software engineer might have to fix or remove and they might not find so darn funny
A professional should take satisfaction in a job done well.
Do civil or mechanical engineers leave easter eggs? Do nurses? Do doctors? Grow the hell up... people bitch about software folks never being given the same respect as other engineering fields and it is the attitude of the average programmer that has a sizable part in explaining this.
Would you want your doctor leaving an easter egg? Would you want your dentist? Or would you find it funny if your phone dialed random numbers on some developers birthday? Or if your traffic light flashed all green every summer solstice? I think not.
I suspect the gulf here between those respondents who manage programmers and deal with clients or who work in any form of mission critical software or professional services and those who write shrink-wrapped software or less critical applications when it comes to easter eggs is probably sizable. All it takes is seeing a co-worker having his ass kicked because a manager had his chewed off by an angry client to understand that, in professional environments, this kind of stuff doesn't fly (and shouldn't).
You're not paid to be an artist. If you were, they'd cut one copy of your code and display it up in a museum. You're paid to implement requirements as defined by your employer and possibly your customer. When you aren't doing that, you're basically screwing the pooch and exploiting your employer. Some may feel justified doing this, but that's a crock. If you don't like the job, GTFO. If you do like the job, be a professional and leave the high-school hijinks behind.
(And yes, I've worked for 15 years in mission critical software for the police, the military, air navigation training systems, cell phone portals, VOIP and call processors, HR systems, and so on, so it does colour my view on easter eggs...)
-- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."