Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Would You Add Easter Eggs To Software Produced At Work?

Posted by Soulskill on Fri Nov 28, 2008 04:55 PM
from the throw-in-a-flight-sim dept.
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?"
+ -
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • I would (Score:5, Insightful)

    by malkir (1031750) on Friday November 28 2008, @04:56PM (#25918979)
    Subtlety is key, even if it's for something like proving the program was coded by you if some asshole attempts to take credit...
    • Re:I would (Score:5, Interesting)

      by jawtheshark (198669) * <slashdotNO@SPAMjawtheshark.com> on Friday November 28 2008, @05: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.

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

        by iduno (834351) on Friday November 28 2008, @06: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]
    • Re:I would (Score:5, Funny)

      by supaneko (1019638) on Friday November 28 2008, @05:43PM (#25919401) Homepage
      Does a rooted backdoor count as an easter egg? :D
    • Re:I would (Score:5, Interesting)

      by eosp (885380) on Friday November 28 2008, @05: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.
        • by kaladorn (514293) on Saturday November 29 2008, @03:19AM (#25923205) Homepage Journal
          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...)
    • Re:I would (Score:5, Funny)

      by igny (716218) on Friday November 28 2008, @09:29PM (#25921231) Homepage Journal
      Subtlety is indeed a key. There was a Russian developing team working on games for a big American company. So the manager demanded that the coders would not put the word "dick" (in Russian it is as offensive as "fuck") anywhere in the game. He stressed that repeatedly saying that Russians are notorious for mentioning the dick somewhere on the wall or something. He pleaded and begged, saying the game is for children and he would fire everyone before getting fired himself.

      So they released a game, and only few noticed that if you look at some plane drawing smoke pictures in the sky from a certain angle, you would see that it writes the infamous "dick".
  • Of course! (Score:5, Insightful)

    by ohxten (1248800) on Friday November 28 2008, @04:58PM (#25918985) Homepage
    Of course! Doing so in an unobtrusive, unharmful way only adds charm to the product.
    • by khasim (1285) <brandioch.conner@gmail.com> on Friday November 28 2008, @05:30PM (#25919299)

      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.

      • by ohxten (1248800) on Friday November 28 2008, @05:46PM (#25919417) Homepage

        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?

        Blame the intern.

      • by BigZaphod (12942) on Friday November 28 2008, @05:55PM (#25919505) Homepage

        Ugh. I've seen this comment (more or less) all over this thread and I just have to say: Why are so many of you living with such FEAR of your management? It can't be healthy! Lighten up, people! How can you even work for your management if you can't even think of them as *humans* who might like a joke as much as the next guy? Geesh. </rant>

        • by Splab (574204) on Friday November 28 2008, @06:51PM (#25919983)

          It's called a roof, it stops rain from falling on your loved ones.

          It's called food, it stops hunger.

          Having a job and being secure in said job helps with this. Pushing easter eggs into the code when you should have fixed #00314224 Critical could end up costing your ability to supply roof and food.

          • by bill_mcgonigle (4333) * on Friday November 28 2008, @06:56PM (#25920027) Homepage Journal

            could end up costing your ability to supply roof and food.

            in theory. Even if he got fired, he'd almost certainly find a new, and probably better job.

            However the effects of stress are real and demonstrated. Humans tend to overly guard their immediate downside risk at the cost of the long-term downside risk.

          • by Lumpy (12016) on Friday November 28 2008, @07:26PM (#25920323) Homepage

            Both of which can be had with a walmart job. So your excuse has no merit.

            Quit treating your management like they are your lord and king and treat them like the people that should be thankful you are working for them.

            Cripes. Grow a pair.

        • by Coriolis (110923) on Friday November 28 2008, @05: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.

        • by smilindog2000 (907665) <bill@billrocks.org> on Friday November 28 2008, @06:06PM (#25919603) Homepage

          Any good software company should allow easter eggs. Back in the good-old days at QuickLogic, we had an awesome movie-like credit's screen with something funny about every contributer. At the new company I founded, I've lost control over our easter-egg policy, and they've been removed :-(

          There was one funny episode at QuickLogic. Bill Falk was the manager, and he just about had a heart attack any time there were show-stopper bugs found late in a software release process. So, after we already bought something like 4,000 copies of our release on floppies, a very special easter egg went off. It detected if your name was Bill Falk and if it were a specific date, and then invoked some of the worst possible crashes - the stuff that's random each time, and depends on debug mode vs compiled. We all laughed so hard when Bill went ballistic, we never dreamed our easter egg would work so well. After seeing how hard it was on him, we decided never to do that to him again. The next release came around, and this time there was a real show-stopper late-stage bug, and Bill was convinced we'd planted another easter egg. It got pretty ugly.

  • by mrmeval (662166) <mrmeval@gmail. c o m> on Friday November 28 2008, @05:00PM (#25919023)

    Getting such things past the pointy heads is just good fun. Getting the doomsday code past them is a riot.

  • Well.. (Score:5, Funny)

    by thermian (1267986) on Friday November 28 2008, @05:00PM (#25919033)

    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 :)

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

      by Clueless Moron (548336) on Friday November 28 2008, @05: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.

  • by Clueless Moron (548336) on Friday November 28 2008, @05: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.

  • Shit happens (Score:5, Insightful)

    by gmuslera (3436) <gmuslera@@@gmail...com> on Friday November 28 2008, @05:02PM (#25919047) Homepage Journal
    Is a pending accident waiting to happen. Maybe because the change adding the Easter Egg the application have a problem (security, speed, space, whatever), maybe people find or know about your easter egg, do every possible misuse of the application to try to find another, and something breaks somewhere. And adding something not requested/approved by your company is a bad precedent, another way to put an "i was here" message is called "backdoor".
  • by Anonymous Coward on Friday November 28 2008, @05:03PM (#25919065)

    If your "easter egg" causes bugs that end up costing the company money, your ass is grass.

  • by no1home (1271260) on Friday November 28 2008, @05: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.

    • by Burnhard (1031106) on Friday November 28 2008, @05:24PM (#25919245)
      Speaking as a Software Engineer (I consider myself a professional); you are undermining the customer's trust in your product simply to massage your own ego. Customers are naturally concerned about integrity and security (more so today than ever before). Once you've demonstrated a desire to hide "secret features" in their products, they may start to wonder what other (perhaps malign functionality) is lurking in the code.
      • by ScrewMaster (602015) * on Friday November 28 2008, @05:32PM (#25919317)

        Speaking as a Software Engineer (I consider myself a professional); you are undermining the customer's trust in your product simply to massage your own ego. Customers are naturally concerned about integrity and security (more so today than ever before). Once you've demonstrated a desire to hide "secret features" in their products, they may start to wonder what other (perhaps malign functionality) is lurking in the code.

        Thank you. I was starting to think that attitude was entirely missing from the Slashdot crowd. "Easter Eggs", bah. Programmers and engineers should make their mark in the world by designing and implementing quality products and not, as you say, massaging their obviously-inflated egos.

        • by EkriirkE (1075937) on Friday November 28 2008, @05:43PM (#25919397) Homepage
          I am a robot. I do only as instructed. Beep beep. Bloop Bloop.
          • by ScrewMaster (602015) * on Friday November 28 2008, @05:58PM (#25919531)

            I am a robot. I do only as instructed. Beep beep. Bloop Bloop.

            Be insulting if you wish. If you're a programmer or a software engineer, one day you may get involved with a project that has a serious penalty for failure (and no, I don't mean a bank or e-commerce Web site or something equally safe.) Believe me, when that happens you'll change your tune and get pretty damn serious. "Easter Eggs" and other irrelevancies suddenly become significant liabilities, and you don't even think about them anymore.

            I'm happy when a customer notices that the software functions well, is easy to work with, and is solid. In other words, if get noticed it's because I did my job right, not because of some childish desire for attention.

            Still, if you work on trivial applications it's okay to treat them like toys, I suppose. I don't, on either score. In any event, I agree with Burnhard. It boils down to whether you want to satisfy some psychological need, or want to earn the trust of both your employer and your customers. The latter is usually more satisfying.

            You decide.

                • by neomunk (913773) on Friday November 28 2008, @07:19PM (#25920281)

                  But that's not the choice you're being given. I'd say a better analogy is choosing between a doctor who gives you an EEG with regular white pads and a doctor who gives you an EEG with pads that are colored like nipples (or polka-dots at a family doctor). You're getting the same quality of work (or at least the quality is unaffected by this particular variable) with only slight change in aesthetic.

                  I'm not disagreeing with your main point about software integrity, but your analogy struck me as disingenuous.

  • God, no (Score:5, Insightful)

    by eddy the lip (20794) on Friday November 28 2008, @05:11PM (#25919147)

    These make for great legends, but as much as I hate to admit it, I've gotten very serious about my work. Easter eggs are not generally appreciated by the Powers That Be, or by clients paying big cash for a product. My personal reputation, and producing a quality product have become important to me.

    There's also the fact that that more code == more bugs. You can't get around that. Why open up a professional product and your reputation as a developer by making it more likely that you'll screw up?

    I can see certain exceptions to this - for instance, games with easter eggs (approved, of course) can add to the charm of a product. An easter in egg in Quicken would be less cool.

    • Re:God, no (Score:5, Informative)

      by Krishnoid (984597) * on Friday November 28 2008, @05:35PM (#25919333) Journal

      These make for great legends, but as much as I hate to admit it, I've gotten very serious about my work. Easter eggs are not generally appreciated by the Powers That Be, or by clients paying big cash for a product. My personal reputation, and producing a quality product have become important to me.

      Here's one of those legends [rinkworks.com] where a well-executed easter egg of sorts served to corroborate one's professional reputation:

      My old boss spent some time writing statistical analysis packages for the Archimedes. One of them got fairly popular for Archie software, and he started a small business selling it. For those who don't know, Archie software usually came as source code and was executed through an interpreter.

      One day at a scientific meeting, he noticed that another company was showing Archie software with remarkably similar functionality to his own, so he wandered over. The longer he watched, the more familiar it looked. Eventually, when the sales representative had gathered a good crowd, he asked in a loud voice:

      • My Boss: "Are you using my copyrighted code for this?"
      • Sales Representative: "Of course not."
      • My Boss: "So what happens if you press [key combination]?"
      • Sales Representative: "Nothing."
      • My Boss: "Do it for me."
      • Sales Representative: "Ok sir, but I can assure you it does--"

      The screen displayed my boss' copyright notice. All they'd done was remove the front end.

      It widely accepted as the biggest laugh of the show.

  • by Veggiesama (1203068) on Friday November 28 2008, @05:15PM (#25919183)

    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.

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

    by Ihlosi (895663) on Friday November 28 2008, @05:28PM (#25919285)
    I write firmware for medical devices. You want some easter eggs in your ECG?
  • The best one ever (Score:5, Interesting)

    by nhtshot (198470) on Friday November 28 2008, @05: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, @05: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 kalislashdot (229144) on Friday November 28 2008, @06:33PM (#25919837) Homepage

    I was working on a Web App that has date fields. There is an example of how to format the date next to it and I put my wedding day. The spec did not call for any certain date. I can look at it years from now and see where I left my mark.

    I do not get any more adventurous then that. Once were were going to make a database table called WEGAS, which stood for Who Else Gives A Shit, it was a list of people who wanted to be notified when the issue/ticket was updated. We chickened out and called it Notification.

    Also if you have a small shop, then it is fun, but in a larger shop it is usually frowned upon. then you also may have to explain it in a code review. So just stay light like I do.

    Once I wrote in the document about paging I put "Example page 7 of 9". to me this is an Easter egg. I could have but page 3 or 10, but that means nothing, and 7 of 9 works just as well.

  • by Anonymous Coward on Friday November 28 2008, @06: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 Linker3000 (626634) on Friday November 28 2008, @05:28PM (#25919277)

      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!

    • by Beardo the Bearded (321478) on Friday November 28 2008, @05:29PM (#25919291)

      That's just good practice. You should put in a handful of bugs and see how many your QA department finds.

      If you put in 10 and they find 8 of those plus 24 other bugs, then you can roughly estimate that there are about 30 bugs in the code that you have to fix.

      Test your testers.

    • Re:Well, yes (Score:5, Insightful)

      by Splab (574204) on Friday November 28 2008, @06:43PM (#25919927)

      Uhm, RAID 10 on databases has for a very long time been the defacto way of doing things (mirror and stripe everything). And your comment below about it being a raid 5 raided over 5 makes little sense - to me it seems like you have no idea what you are talking about.

      Granted these days you would most likely opt for RAID 60 if you got the money for it, but RAID 10 is still the best price/performance for databases.