Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Would You Add Easter Eggs To Software Produced At Work? 747

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?"
This discussion has been archived. No new comments can be posted.

Would You Add Easter Eggs To Software Produced At Work?

Comments Filter:
  • by phorm ( 591458 ) on Friday November 28, 2008 @05:59PM (#25918997) Journal

    Several large software companies have left easter-eggs in "Professional" products. Microsoft office had pinball and a flight simulator, I seem to remember.

  • by Clueless Moron ( 548336 ) on Friday November 28, 2008 @06:01PM (#25919037)
    Anywhere I've worked, we've always tended to add potentially useful but undocumented experimental features to our programs.

    Quite often they end up being useful and get cleaned up and documented in subsequent releases.

  • Re:I would (Score:5, Interesting)

    by jawtheshark ( 198669 ) * <{moc.krahsehtwaj} {ta} {todhsals}> on Friday November 28, 2008 @06:02PM (#25919055) Homepage Journal

    I already did... Long time ago, in an e-Banking application. If you pressed ctrl-alt and clicked on the bank logo, you got a picture of the development team. It was innocent stuff, but I know as a fact that they have removed it by now. It was simple code, a bit of JavaScript and a picture named as if it was an advertisement banner.

    Ah, the good old days when I was young and foolish.

  • by no1home ( 1271260 ) on Friday November 28, 2008 @06:06PM (#25919095)

    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.

  • Re:Well.. (Score:5, Interesting)

    by Clueless Moron ( 548336 ) on Friday November 28, 2008 @06:06PM (#25919097)

    Easter Eggs? No, funny comments/error messages, and bizarre variable names, absolutely.

    At one place I worked, the guy who wrote up the coding standard explicitly prohibited jokes in comments and humorous variable names. I'm not kidding.

    Presumably he will be reincarnated as a worker ant in his next life.

  • Comment removed (Score:4, Interesting)

    by account_deleted ( 4530225 ) on Friday November 28, 2008 @06:07PM (#25919109)
    Comment removed based on user account deletion
  • Well, yes (Score:4, Interesting)

    by girlintraining ( 1395911 ) on Friday November 28, 2008 @06:08PM (#25919115)

    Yes, you should. Just do so in good taste. I once put The Story of Mordac(tm) into a script that I made and distributed around the office, which described in a humorous and epic way the reason for its invention: All it did was send F5 to a window with a specified name.

    We were running HP Service Desk and the admins, in their infinite idiocy, disabled the auto-refresh of the views. This was because they seriously under-spec'd the server and were looking for any way possible to cut the load down. It crashed every few hours; Which is what you get for using Citrix for over five thousand workstations in six different countries for "security" purposes. And then using RAID10 on the database... oh god, the write times, they buuuurnses us. *snickers* In either event, after distributing it to our techs and letting it bounce around the working grunts in our various offices for awhile, I let it slip to a few friends about the story of Mordac, Preventer of Information Services (thank you Dilbert), who I credited with the debacle.

    Two weeks later, the auto-refresh got turned back on. Many queries were made and security operations attempted to track down who had made the "unauthorized script". To this day, whenever a feature gets turned off on a server that the users liked, or some dumb "security" policy goes into place... People chalk it up to Mordac. Many of them aren't familiar enough with the strip to know of the little-known Dilbert character. ;)

    Easter egg away my friend, but remember thy audience!

  • Short answer: If Google can do it, then why can't you?

    But about the Subject... There was a discussion about "moral" vs. "ethical". Here is a case that might help answer the question of "what is the difference"?

    Adding an easter egg to your product, one that doesn't add value to the product, could be spending company resources, and getting paid, to do something that was never your job. So, it's not ethical.

    But to say it's not moral? I don't think anyone would go that far.

  • by moniker127 ( 1290002 ) on Friday November 28, 2008 @06:19PM (#25919213)

    Eastereggs are the sign that a company is proud of its software. Add something in that only people who had heard of it and were looking for it would find. If people are looking for it, they probably arent the starch shirted old people who would be opposed to a little bit of humor at work.

  • Maybe - Maybe Not... (Score:4, Interesting)

    by Dolphinzilla ( 199489 ) on Friday November 28, 2008 @06:20PM (#25919223) Journal

    I would say if it is done in unquestionable good taste it is OK - I have a friend who was nearly fired over a log message that contained profanity and was written to some obscure text file - a government official was randomly looking at files and found it and alerted his superiors - it was a BIG mess...did I mention this was on a major DoD weapons system.... It is not an Easter Egg but it certainly shows the pitfalls of "personalizing software"

  • You tell me. (Score:5, Interesting)

    by Ihlosi ( 895663 ) on Friday November 28, 2008 @06:28PM (#25919285)
    I write firmware for medical devices. You want some easter eggs in your ECG?
  • Re:I would (Score:4, Interesting)

    by Walpurgiss ( 723989 ) on Friday November 28, 2008 @06:32PM (#25919313)
    And keep it useful and not potentially offensive, i.e. don't put in an Easter Egg like the one originally in SimCopter (some speedo wearing dudes that made out with eachother, swarmed the chopper and then had to go to hospital..)

    Easter Egg Link [wikipedia.org]
  • Re:Well, yes (Score:2, Interesting)

    by Anonymous Coward on Friday November 28, 2008 @06:37PM (#25919359)

    There are three potential problems that you mention. a) "unauthorized script"; b)"a feature that gets turned off...that the users liked"; and c) "some dumb security policy".

    It seems there is a common thread there. And it all seems to point to retaliation towards those making security decisions or (in general people 'higher up' making decisions). a) You said it yourself "unauthorized script". This is not an easter egg, this is an unauthorized script. b) the users are users, not security experts, and just because they liked something doesn't mean it was good. Writing a script to distribute some funny message in response is not (IMO) the right answer. c) "dumb security policy". This seems related to item b. If the policy is so dumb, then there are usually correct ways to get it changed. Writing a script (IMO) is not the correct way.

    I understood what you did may have been a lot of fun, but it doesn't seem to be what is generally described as an easter egg.

  • The best one ever (Score:5, Interesting)

    by nhtshot ( 198470 ) on Friday November 28, 2008 @06:38PM (#25919363)

    I used to be the lead programmer for a Big Company (tm). We'd just completed a several year project to build and roll out an in-house ERP system. It was mid-October.

    I decided we needed a little fun break. I whipped up a quick piece of code that recolored all the application screens in orange and black. Through it on the update server.

    When everyone logged in on Halloween, they were greeted with orange and black screens. Everybody laughed. Even the PHB thought it was pretty funny.

    If your work is so serious that you can't have a little fun, it's probably time to find a new job.

  • here's what I did... (Score:5, Interesting)

    by marhar ( 66825 ) on Friday November 28, 2008 @06:42PM (#25919385) Homepage

    It's only an easter egg for true geeks, but I used this value as an encryption seed:

    long encrypt_seed[]={1263681869,1381122376,1313821513};

    Hexdumping the executable shows:

    00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000140 00 00 00 00 4d 41 52 4b 48 41 52 52 49 53 4f 4e ....MARKHARRISON
    00000150 01 00 00 00 0f 02 00 00 00 00 00 00 00 00 78 00 ..............x.

    Since it's the file encryption seed, nobody can ever change it without destroying the program's ability to decrypt old files!

  • by dujenwook ( 834549 ) on Friday November 28, 2008 @06:44PM (#25919407)
    You do have to be careful with this sort of thing, depending on the customer and your revenue model. I find that giving functional freebies, especially in commissioned/ongoing projects, spoils the customer causing them to expect such extras in future mods. You also lose out on the chance to charge them for the feature. Of course on the other hand it could also work in your favor if they understand, appreciate and don't take the extra work for granted.
  • Professional ego's? (Score:2, Interesting)

    by wimmi ( 263136 ) on Friday November 28, 2008 @06:55PM (#25919499)

    Do you spit on the onion rings before you serve the burgers?

    I'm going to side with the professionals here (and those are not Microsofties and their stupid flight-sims):
    Leave the smart-ass thingies for good code and decent documentation. When the project's done, wrap it up, check the patches in, write documentary and go on to the next project. Don't waste time on funny shit.

    Jeff Atwood was right when quoting "the best code is no code at all [codinghorror.com]".

    Leave the funny eggs for your MySpace website.

  • by Coriolis ( 110923 ) on Friday November 28, 2008 @06:55PM (#25919503)

    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.

  • Re:I would (Score:5, Interesting)

    by eosp ( 885380 ) on Friday November 28, 2008 @06:58PM (#25919525) Homepage
    I've seen that before. I believe that it was on The Daily WTF. Someone was demoing a piece of software, and the guy who wrote a similar product was in the audience. He realized then that the software was very similar to his, although the splash screen had been removed. Eventually, he just accused the author of stealing it, in front of the whole group. Needless to say, he tried to deny it, only to be told to press a certain keyboard shortcut. He did, and sure enough, the accuser's face appeared on screen.
  • Be careful... (Score:1, Interesting)

    by Anonymous Coward on Friday November 28, 2008 @07:05PM (#25919599)

    Be very careful.

    Some clients (like financial firms and governments) have strict InfoSec policies that frown upon Easter Eggs and other intentionally "unknown" bits of code. To them, Easter Eggs demonstrate the vendor's lack of control against unauthorized and malicious changes to the product.

    When these clients find the Easter Egg (and they will find it), they will threaten to walk away from your products unless your company makes a sacrificial offering by terminating the "rouge" employee.

      - Posted anonymously for obvious reasons.

  • Re:Initial release? (Score:3, Interesting)

    by ScrewMaster ( 602015 ) * on Friday November 28, 2008 @07:22PM (#25919761)
    I think we're talking a difference in definitions here. To me, an Easter Egg is hidden functionality in a software product which is placed there by development staff without the foreknowledge or approval of management. I put plenty of finishing touches in my software, and sometimes there are hidden features that end users aren't told about until they need them. I see nothing wrong with that. Furthermore, such features always relate to the primary purpose of the application (diagnostics, auto-repair functions, etc.) and are not just a way for me to put my stamp on the product. As the senior engineer on the job, the product itself does that.

    Also (and this is important) I'm totally up front about everything that I'm designing into the software, management is aware of what I'm doing and approves it, and there are no surprises. So yes, I do believe a developer placing unauthorized code into an application not owned by him or her is suffering from an ethical lapse, regardless of how "harmless" that code is claimed to be. Depending upon the application, the mere existence of such code can cause problems. I guess you don't work on anything that would qualify as "mission critical", that's all I can say.

    And furthermore, it's not up to the individual developer to make the judgment about "harmlessness" either, not when it comes to potential legal liability, corporate PR or customer satisfaction. Just do your job to the best of your ability, and live with the knowledge of a job well done. If that's not enough for you, maybe a career change is in order.
  • by Burnhard ( 1031106 ) on Friday November 28, 2008 @07:23PM (#25919775)
    You don't expect a "jack in the box" pop-up doll on a spring to jump out at you when you open the hood on your new car, do you? And if such a thing were to happen, would you say to yourself, "wow, those guys at Aston Martin, don't they have a great sense of humour!"? Frankly, I suspect you'd see it as being a bit weird.
  • by Anonymous Coward on Friday November 28, 2008 @07:44PM (#25919937)

    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.

  • by ChameleonDave ( 1041178 ) on Friday November 28, 2008 @07:48PM (#25919967) Homepage

    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.

  • Re:I would (Score:5, Interesting)

    by iduno ( 834351 ) on Friday November 28, 2008 @07:51PM (#25919979)
    Thats kinda scary really if it got through an inspection process.
    Just think it could be a bit of JavaScript sending bank and user details to someone. I would think that banks would be pretty strict on the code being written since their customers rely on it.
    Especially when things like a major bank like Commonwealth Bank of Australia takes out a withdrawal twice, and keep the second withdrawal themselves. http://www.news.com.au/story/0,,24703544-2,00.html [news.com.au]
  • by SJrX ( 703334 ) on Friday November 28, 2008 @07:55PM (#25920019)
    About a month ago I was in the middle of writing proof of Concept code, that may perhaps later be used in production code, after a full rewrite. As opposed to properly handling Exceptions, (especially some generated from SSL problems), for the interm I decided to quash them and just print out unique messages each time one was quashed. Now as everyone knows quashing exceptions is VERY bad practice, and the comments reflected that. "I really shouldn't have done this", "What kind of newb programmer does this","I'm a moron, I should know better than to do this", "You must be getting very frustrated", "Why do I even have a job?". While demoing the product, they encountered a problem, and my manager ended up having to go look at the log (The problem was external to this). The log ended up looking something like this: Recieved Request ID=34 (Params a=...,b=...)
    Why do I even have a job?
    Why do I even have a job?
    Why do I even have a job?
    Recieved Request ID=35 (Params a=...,b=...)
    Why do I even have a job?
    Why do I even have a job?
    Why do I even have a job?
    ... It ended up being resulting in two really awkward meetings, where people wanted to reassure me that I had job security. Needless to say, I was told that perhaps I should write something else in my code.
  • by TrekkieGod ( 627867 ) on Saturday November 29, 2008 @12:07AM (#25921857) Homepage Journal

    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.

    You're a moron for not understanding statistics. That may be true for a random sample, but if you're adding extremely simple code that just displays some type of notice or picture, and doesn't interact with any other aspect of the software (why would it?), then the chances of introducing a bug is just over zero.

    When was the last time that you tracked down a bug in your software to the About box?

  • by beakerMeep ( 716990 ) on Saturday November 29, 2008 @12:55AM (#25922181)
    Don't take this too personally ( I don't even know you) but your comment kind of makes you sound like a terrible boss. You should be defending your developers to the client. Is it really so hard to explain to a client that letting your devs blow off steam for 5 minutes gets them a better product overall? This should be a opportunity for you to show them what they are getting that's so good. A chance to point out the benefits of working with you. And if your client relationship is really so fragile as to make an easter egg put it in jeopardy then you have bigger problems to worry about.

    *Unless this is some kind of health care or military or other critical safety related application
  • Re:I would (Score:1, Interesting)

    by Anonymous Coward on Saturday November 29, 2008 @05:25AM (#25923475)

    Still that kind of thing should never happen since a bank should always keep things in balance at a database level (to prevent software on top doing this exact thing). To have money suddenly appear or go poof, means that there is very poorly designed code or someone intentionally put it in there.

    Stop being so naive. Remember the Global Financial Swindle? It was last week wasn't it? You're berating banks for maybe not writing their database and applications correctly. Banks were the ones that loaned trillions of dollars to people who couldn't repay in the Subprime Mortgage Swindle. Then they bundled up the bad loans and sold them as good investments in the Credit Default Swap Swindle. Then they refused to lend each other money in the Let's Crash The Financial System So We Can Dump All Our Bad Loans Swindle. Then they dumped all their bad loans and got government approval of their fraud in the Demand Bailout From The Taxpayers Swindle.

    How long are you going to be paying extra tax to pay for the bank, car company, etc, bailouts? How much did you lose when the value of all investments crashed when they pulled all the above swindles? Do you think it really matters if the bank takes two withdrawals out of your account? They can just take the whole thing any time they want.

    What is "money"? You think that some numbers stored in a database in a bank computer is "money". Guess what? If the bank pulls down the steel shutters tomorrow and then never opens them again, your money is gone. You can stand outside the bank rattling the shutters for as long as you want, they won't come out and give you your money. Yeah it'd be great if banks would handle deposits and withdrawals correctly. It'd also be great if they wouldn't commit global fraud and crash the financial system. But it's not going to happen is it? Watch how quickly the bank executives are thrown in jail for fraud.

    And don't put easter eggs in your application. What if you put in your game of doom or whatever and it introduces a killer bug that nobody notices until after you ship? You'll feel pretty bad then. It's not worth the risk of adding bugs to a polished application, surely.

  • by Facegarden ( 967477 ) on Saturday November 29, 2008 @07:47AM (#25924027)

    Your examples are horrible: Do i want a doctor leaving anything abnormal behind in my body? Fuck no. Do i care if a piece of software i use has an easter egg that shows the dev team when i hold Shift+F8 and click on some logo? No, i don't care at all, they are completely different things!

    Now i know you say you worked on mission-critical software for the police, etc, and if there was a place i might omit an egg, it would be there, but that doesn't mean that easter eggs are universally horrible, and you don't seem to get that.

    And i get paid on salary, which means i get paid to get my work done. I already work over 8hrs every day, and if i have already gotten my work done and I decide to stay an extra half hour and screw around, that's MY decision, on MY time. That's not "screwing the pooch and exploiting [my] employer" as you put it (which i would say borders on stupidity, given the possible situation i just described). Of course i know someone else is paying for the software and i know that my screwing around would never be okay if it was detrimental to the final work, but i don't consider easter eggs detrimental, if they are simple and harmless.

    Simple and harmless may seem like an innocent and uniformed concept, but honestly, unlike what another commenter said, i just don't agree that software is infinitely complex. It's SOFTWARE for christ's sake, it's made to run on a machine that only understands two states, 0 or 1. Software is absolute, and it is one of the simplest things you can encounter, when correctly designed. If i write code that checks for keypresses by running some function in every portion of my program just to have an egg, that could very well lead problem, but if there is a reasonable place to deal with keypresses and i am already using that input for legitimate things, adding one more case is is in most situations going to be completely harmless. I would never encourage a novice to add an egg, but i can't say it's horrible if you know it won't cause damage.

    And ultimately, yes, it is unprofessional, in the sense that the ideal professional never has fun, and only does their job, but don't you think you should lighten up just a bit? I do.
    -Taylor

  • by ralph.corderoy ( 178991 ) on Saturday November 29, 2008 @10:32AM (#25924629)

    I was working on Air Traffic Control software at a sub-contractor and dismayed at how the company had recruited Ada/VMS programmers to program C with X Windows/Motif on Unix, since they had no knowledge of common C programming flaws, or even handling pointers. Together with being given the "dead wood" employees of a sister company sharing the same site to save on redundancy costs it wasn't a good start. Coupled with this was the shoddy quality control practices that management were complicit with.

    A contractor who Barked out hundreds of SLOC in a short time, thanks to poorly structured code that needed re-factoring, would be praised and given a rise and the next piece of work. That his was some of the most buggy code and didn't meet the spec. in many ways was ignored. Others would be given his crap to fix when a week later the problems came to light in testing; management wouldn't pull him off the new piece to do it. Time and time again this was repeated.

    Fagan Inspections were mandatory. But few programmers put much effort into them; as long as they could find a spelling mistake or two in a comment to validate their "claimed" one hour preperation time management was happy.

    The testing tested only the positive outcomes; did X happen when Y occurred? Good. Did X happen at any other times? Who cares.

    So I added a new image to the existing set. I called it "ignored". It was a plane buried nose-first in the ground, smoke rising from it, with a little parachutist floating above. You'd think that might stand out in ATC software. I added code to display it under certain conditions; all the relevant variable names followed the rest of the code but with "ignored" instead of "foo". The image went, with all the others, through Fagan Inspection and was, theoretically, checked against a spec. picture that didn't exist. The code was inspected a line at a time, including, theoretically, against the spec. that gave the logic for when the picture should appear. And the end result went through run-time testing by a large test team against test plans.

    It wasn't discovered. Ever.

    Finally, after many months, when I was about to leave I pointed out it was there. It was removed and no one complained that I'd done it. They all knew too well that it showed my verbal complaints about the process were valid; they just wanted it swept under the carpet.

    Today, that ATC system is controlling the airspace in and out of a major Western country with some of the busiest airways in the world. Oh, and we had a project football team. It was called "Go By Boat".

  • Re:I would (Score:3, Interesting)

    by geekmux ( 1040042 ) on Saturday November 29, 2008 @11:35AM (#25925043)

    Does a rooted backdoor count as an easter egg? :D

    To anyone else, yes. According to Sony, well, not really...

If all else fails, lower your standards.

Working...