"All the known bugs are fixed, and I have a couple of hours of personal time to spend."
So, in other words, you'll spend a couple of hours cranking out some poorly-thought-out and untested code and jam it into your well-tested and otherwise fully-functioning application.
Hm. I'll have to think about that one for a minute. Personally, I think you're better off updating your documentation, doing some alpha-testing, working on a script to help automate some part of your workload, something, anything but an Easter Egg.
The engineers are falling out of ranks and getting creative and expressing themselves! They're gonna give the launch codes to the evildoers and put a back door in my heart-lung bypass machine and they think it's all a big fat joke! Well, that's not what humor is, that's what Karl Marx is! In sixty days we're gonna deploy, and you all think it's a joke! For two stinking cents, I'd jump through these tubes and rip your cowardly, stinking body limb from limb! Easter eggs one day, and the next it's mopery, listening to classical music and being a smart guy. What do you mean we can't punish you? You want justice? Justice is a knee in the gut from the floor on the chin at night sneaky with a knife brought up down on the magazine of a battleship sandbagged underhanded in the dark without a word of warning! Garroting! That's what justice is, when we've all got to be tough enough and rough enough to ship this build! From the hip. Get it?
I am not a crackpot.
No offense, but... after than ramble I think you need to change your sig.
That doesnt mean I have the option to screw around with our product. Ever. You can have a fun and satisfying job without adding easter eggs...
Thank you. Okay, so far that makes about seven in this thread that get it. I guess I'm not really surprised, but I'm really hoping that Slashdot is not representative of the coding community as a whole in this country. If it is, we're in trouble.
And what do you think will happen to that engineer if and when it is found?
Nothing. In engineering, it seems most easter eggs are inserted with the approval of management. They're especially popular in the electronics industry, but they exist elsewhere too.
In some cases they can be useful in litigation about illegal copying.
Yes, but those aren't Easter Eggs, by definition. If it's authorized, it's not an Easter Egg.
Programmers and engineers should make their mark in the world by designing and implementing quality products[...]
I just wanted to express my strong agreement with this and thank you for posting. I'm not a professional but I do strive to write solid code and documentation without any pollution from my ego (the worst pollution is my habit of premature optimization, a very hard one to break).
Well, we all have our bad habits (as a developer, I have a few I'm trying to get rid of myself, after thirty years I'm not too hopeful) but your basic attitude is sound. Keep it up and you will be a professional, if that's what you're trying to be. The problem I see with many programmers (a lot of them in this thread) is that they confuse the ability to produce well-written code with professionalism. The two are related, but not equivalent.
If you do such a thing by accident, nothing you were working on will break, and it's not going to trigger on a real-time task.
How the hell do you guarantee that? Can you say with any certainty that nothing some other coder does won't trigger it or cause some other unwarranted interaction? Of course you can't. You're trying to find a justification for doing something that you know you shouldn't.
If you don't own the code, don't screw around with it. You have no legal, ethical or moral right to do that. Besides which, if your code is unauthorized (which is the case with most Easter Eggs... if they're authorized, they're not Easter Eggs) then there's no way for quality control procedures to test it.
You're also evincing a complete lack of understanding of how end users perceive software. They don't want it to do anything but what it's supposed to do, and if it starts playing jokes on them they're likely to lose confidence in it. That's a bad thing, both for you and your employer.
Thank you. I've been loosely keeping track of the people that seem to "get it" in this thread. Counting you, that makes five, I think.
But know this: other people will look at your code.
And that, actually, cuts right to heart of the matter. People put in Easter Eggs and so forth to "impress" the customer. I'm not really sure why: to me, the customer is probably the person least likely to appreciate the quality of my coding because he'll only see what I present on the screen. Only another programmer can say, "damn, that sparse array class of yours really did the trick!"
Even so, if the customer is going to say, "Whoa, that was cool!", it shouldn't be because of some stupid Easter Egg, but because the program does what he needs, and does it so well that he just had to let you know. That's how you garner customer loyalty and appreciation, and for me personally, it means a lot more than "Hey! I accidentally pressed shift-alt-ctrl-tab-del-end-enter and the desktop changed to Ronald Reagan's head!"
I am a robot. I do only as instructed. Beep beep. Bloop Bloop.
Be insulting if you wish...
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.
HE'S being insulting?
Writing good code and adding easter eggs are not mutually exclusive. What is more likely to happen is if you write good code, people won't mind that you added easter eggs and if you write bad code people will bash you for writing bad code and wasting time on easter eggs.
Yes, he was. On the other hand, all I'm trying to do is inject a little understanding here, maybe make some of you think about what you're doing. It's obvious that many of you are not (thinking, that is.) If that's insulting to you, then maybe you should start thinking.
An Easter Egg (as I define it) is code placed into a commercial application without the knowledge or consent of company management or the end user, which (from the end user's point of view) can execute at unpredictable times, with or without user input. It's also code that (by definition!) cannot have proper quality controls applied, because if QC finds it, it'll have to be removed, right along with the programmer in some cases. Is that acceptable to you? I know of no other field where this kind of behavior would be tolerated, yet some programmers feel they're an exception. Matter of fact, this behavior is not tolerated in the software field, otherwise you people wouldn't have to hide the things! I can guarantee this: some of you are in for a rude surprise one of these days.
Consequently, I don't care how well-written the application: if you put an Easter Egg in there, then it's not good code. You've demeaned yourself and given the rest of us a bad name, all because you can't empathize with your employer or your customers. Put it like this: when people buy good software, what they're paying for is, in large part, predictability, the ability to have specific tasks performed reliably on an indefinite basis. That's what you risk denying them when you throw Easter Eggs about, and they don't deserve it.
What I'm saying is, think about how your software will be received, think about the effect your Easter Egg will have on the user's perception of the entire application. You'd be surprised how little it takes for users to completely lose confidence in a program and the company which supplied it. Easter Eggs are all fun and games... until someone loses an eye.
Feel free to disagree, it's not as if I will be crushed if you do. But I would ask you to realize that I'm offering these comments with the best of intentions. As I've said before, I've been doing this for a long time, I enjoy my work, I do it well, and I take it seriously. Furthermore, I take pride in my work (it's why I keep doing it), but I do what's best for my employer, and what's best for their customers. I'd like to believe that others in this profession do as as well. Honestly, from some of the comments I've been reading in this thread I really have to wonder.
Burnhard and a few others who get it are excepted, of course.
Like many things, programming can be an art, but for the most part it isn't. The bulk of software development is like most engineering: dull, routine, and professional. It's a job, where a lot of paper gets pushed.
You people need to get over yourselves and realize that (with very, very few exceptions) you aren't Van Gogh's, you're not Da Vinci's, you'll never be Michelangelo's. You're just programmers, software engineers and designers. No more, and certainly no less, but that's what you are. Professionals, if you want to be, and professionals do what they're paid to do, and they do it well. Granted, there's a lot of wiggle room there, but a true pro in any field does his best to keep his ego in check and do what is best for those who pay the bills. Anything else is unjustified self-glorification.
I've been doing my job for a lot longer than most of those here on Slashdot (yes, I can tell... thirty years in a business gives you that ability) and I have a pretty good idea where my talents lie, what I'm good at, and what I'm not. What I don't have is the inflated sense of self-worth that I see exuding from many of the posters here. Yeah, I was like that once, but the real world beat it out of me.
Keep putting Easter Eggs in your work and it'll beat it out of you even faster.
Would you want an easter egg in an application that controls the running process of an oil refinery?
How about an oil rig?
I think not...
When a downtime costs you about 1.5 million USD per hour of downtime you really do not want any sort of undocumented "feature" or "egg" in the system.
oh, and if you question the hours of downtime.. Think about this: If the control system becomes unresponsive the whole underlaying system goes into ESD mode.. Emergency Shutdown. Have you ever "rebooted" an oil rig? It does take a while;)
I'm with you on that one. The big dichotomy in this entire thread appears to be between people who work on dangerous applications and know it... and those that don't, those who look at their work with a professional eye... and those that don't. Time and experience usually bridges that gap though. Time, and a few major ass-chewings for screwing around with the company's products.
If you feel insulted by EkriirkE's comment then maybe you have a psychological aversion toward criticism. Is the avoidance of apparent failures of software so important that it overrides both the motivation and the self criticism that Easter Eggs can provide? Moreover, do you know for a fact that Easter Eggs cause project failures at all?
Huh? Everyone has a psychological aversion towards criticism. That's why it's called criticism... it's not supposed to be pleasant. However, sometimes it can be constructive, and sometimes it isn't. EkriirkE's isn't.
Regardless, I'm not interested in avoidance of apparent failures, I'm interested in avoiding actual failures and, as a sideline, not performing unethical acts. Yes, I do know for a fact that Easter Eggs cause failures. No, I'm not going to bother documenting them for you, that's what Google is for (and there are some other relevant posts in this very thread.)
Ask yourself this: how many software managers do you know that would approve of an Easter Egg? What's that? NONE? That's right, because it's not in the company's best interests to have undocumented, unauthorized code extant in a shipping system. Keep that in mind the next time you try to sneak something by the QC department. It's NOT YOUR JOB. Why is that so goddamn hard to accept?
Geez, you guys are the SUV drivers of the software development world: it's my God-given right to screw with everybody else. I have news for you. It's not.
Do civil or mechanical engineers leave easter eggs?
The fact that you can't find them doesn't mean they aren't there.
And what do you think will happen to that engineer if and when it is found?
The GP's point is valid. Pros don't do that kind of stuff, that's all there is to it. And if you do (no matter what your skill or talent at the job) you're not a pro, and you won't be until you cut it out.
Sure be funny, but when your easter egg causes an error the bypasses a safety feature and shoots a 8x4 piece of wood too soon and it cuts a guys leg off, you'll realize that there is a place for professionalism, and a place for creative outlets.
No, I did not write that code, I just removed the easter egg and fixed it.
Security, safety, correctness are not affected by humor.
Oh, yes they are, when it comes to complex software systems: bits and pieces of programmer humor don't belong there. I mean, would you want that realtime ECG to show a flatline and zero pulse and zero blood pressure and a steady tone when you happen to press a certain combination of buttons... and then a few seconds later flash "JUST KIDDING!" on the display? Because if you allow programmers free reign on their twisted idea of what is funny that's exactly what will happen. Believe me, if you knew programmers the way I do, the very last thing you'd want is us imposing what we think is funny on your equipment.
I would not tell you how to run your practice, or how to interact with your patients. That's because I wouldn't know everything that could cause damage and what would not. None of us do: we're software people not doctors. That's your department, that's where you need to be in control. The software should be transparent, in the background: anything entertaining that happens between you and your patients/coworkers should be your responsibility. That principle applies to any field, really, whether you're a doctor or an operations manager at an oil refinery.
Now I agree, in a working environment humor is a vital part of job satisfaction. The people I work with every day are among the most intelligent and genuinely funny people I've ever known. I enjoy my work all the more for that. But (and this is a big "but") they also take their work very seriously, and would look askance at most of the people in this thread. Certainly, they'd never dream of putting an Easter Egg in one of our products. That's not what we're paid to do. Period.
I would fully expect a doctor to appreciate that perspective.
I'd say a better analogy is choosing between a doctor who gives you an EEG
And a better analogy would be a patient whose heart has stopped being given a shock to restart it. Everything would have been fine, but the dye in the new humorous nipple-colored pads was slightly conductive... and electrocuted the EMT.
What we're essentially talking about here is the Law of Unintended Consequences. Your average Joe Congressman could tell you all about that.
Have a drink, man. Everyone knows if they're doing something life-critical. So just chill out. People like you harsh my mellow.
No, I'm getting the impression that they don't (and I've known way too many software guys who treat their jobs as a big joke to just ignore my feelings on the subject.) That bothers me. Regardless, the casual acceptance of this bothers me more. Slippery slope and all that (today an easter egg, tomorrow a back door or time bomb.) Just do your jobs, people. If you want to express yourself, learn to paint or play an instrument, or learn how to design good software. Don't treat it like a toy. It isn't.
No matter. I'm sure if any of your Easter Eggs causes a real problem, the prosecution's expert witness will figure it out for you.
I don't disagree with your professionalism, and I personally have never put any easter eggs into my software (perhaps slightly casually phrased error messages sometimes, but my software is often for internal use only anyway).
Well, I do make a general distinction between in-house development, and software that's sold to end users. If it's for internal use, you're going to know your customer base and you'll know whether they're going to have a problem with something.
though "wanting to earn the trust of both your employer and your customers" certainly is a form of wanting to attract attention.
No it's not. It's a matter of wanting do do the right thing by those who trust you, and sign your paychecks.
We all have 'childish' desires, but we don't all satisfy them in the same ways.
Yes, but earning trust is what any good employee strives to achieve, and I don't know of an employer that would consider that childish. Conversely, I know a number of employers (my current one included) that would consider an unauthorized Easter Egg to not only be childish, but likely worthy of immediate dismissal. Have fun, enjoy your work... but keep the software, the customer and your company from paying for that enjoyment.
That's what pros do. You're not paid to put humor, jokes, Easter Eggs or anything else into your work. People need to understand that, look at it from the company's perspective rather than their own. Believe me, as someone who has run a small software business and paid others to write code for me, I'd have been thoroughly torqued off if one of my customers had called to complain about anything like this. Play practical jokes on your coworkers all you want, don't play them on the people who pay the bills. That's just stupid.
For security reasons, I simply do not allow any signature.
The problem with that is auditing. It's nice to know who did what (we don't sign the code, but we do keep revision logs.) You have to know who did what, if nothing else because what's in their head is valuable, and if someone else later has to fix something, it's nice to know who touched it last, so you can go pick their brain.
Sure he did, because he was a PHB. I'd have told you, ha ha, very funny... don't do it again. Regardless, there's a difference between monkeying around with an in-house project, and something that can affect paying customers with a legal staff.
I'm quite disappointed with so many comments here encouraging confusing variable names, and the addition of un-approved functionality.
Me too. So far in this thread all I've seen is a bunch of people who should know better promoting the defacement of their employer's products, if not outright criminal activity. All in the name of having a good time. I just don't get it.
Wow, you know, i actually never expected one of the uptight programmers to be posting on here.
You're exactly the kind of person who this is referring to.
Go buy some humor, i hear it is really cheap because of the recession.
Well, my perspective is different than most. Many of the software types here seem to be employed developing relatively unimportant applications, the kind that perhaps can tolerate their idea of what is funny.
Am I uptight? No, not particularly, I enjoy a good joke and a few beers as much as the next person. It's just that my job entails some severe penalties for failure. A job with significant responsibility is something a lot of you goofballs will never get if you keep your childlike mentality towards software development. Well, you may get it, but somebody else may pay the price for your ego.
I'm sorry, but a sense of humor is not worth the hazmat issues or court time that result if my software screws up. So you'll forgive me if I take matters a bit more seriously than some people.
I hate to ruin your fun, but maybe instead of thinking about "easter eggs", you should try fixing your broken development process.
You shouldn't be able to sneak code into a project. Certainly not one that's almost done. No code reviews == fail.
I agree. A true Easter Egg is a piece of code that is meant to be found, but was put there without management knowledge. A hidden feature that was put there on purpose as part of the product's design is not really an Easter Egg, it's just a hidden feature.
"All the known bugs are fixed, and I have a couple of hours of personal time to spend."
So, in other words, you'll spend a couple of hours cranking out some poorly-thought-out and untested code and jam it into your well-tested and otherwise fully-functioning application.
Hm. I'll have to think about that one for a minute. Personally, I think you're better off updating your documentation, doing some alpha-testing, working on a script to help automate some part of your workload, something, anything but an Easter Egg.
The engineers are falling out of ranks and getting creative and expressing themselves! They're gonna give the launch codes to the evildoers and put a back door in my heart-lung bypass machine and they think it's all a big fat joke! Well, that's not what humor is, that's what Karl Marx is! In sixty days we're gonna deploy, and you all think it's a joke! For two stinking cents, I'd jump through these tubes and rip your cowardly, stinking body limb from limb! Easter eggs one day, and the next it's mopery, listening to classical music and being a smart guy. What do you mean we can't punish you? You want justice? Justice is a knee in the gut from the floor on the chin at night sneaky with a knife brought up down on the magazine of a battleship sandbagged underhanded in the dark without a word of warning! Garroting! That's what justice is, when we've all got to be tough enough and rough enough to ship this build! From the hip. Get it?
I am not a crackpot.
No offense, but ... after than ramble I think you need to change your sig.
That doesnt mean I have the option to screw around with our product. Ever. You can have a fun and satisfying job without adding easter eggs...
Thank you. Okay, so far that makes about seven in this thread that get it. I guess I'm not really surprised, but I'm really hoping that Slashdot is not representative of the coding community as a whole in this country. If it is, we're in trouble.
And what do you think will happen to that engineer if and when it is found?
Nothing. In engineering, it seems most easter eggs are inserted with the approval of management. They're especially popular in the electronics industry, but they exist elsewhere too.
In some cases they can be useful in litigation about illegal copying.
Yes, but those aren't Easter Eggs, by definition. If it's authorized, it's not an Easter Egg.
LPT0 On Fire!!!
Another good one, although didn't that one have a basis in fact?
I just wanted to express my strong agreement with this and thank you for posting. I'm not a professional but I do strive to write solid code and documentation without any pollution from my ego (the worst pollution is my habit of premature optimization, a very hard one to break).
Well, we all have our bad habits (as a developer, I have a few I'm trying to get rid of myself, after thirty years I'm not too hopeful) but your basic attitude is sound. Keep it up and you will be a professional, if that's what you're trying to be. The problem I see with many programmers (a lot of them in this thread) is that they confuse the ability to produce well-written code with professionalism. The two are related, but not equivalent.
If you do such a thing by accident, nothing you were working on will break, and it's not going to trigger on a real-time task.
How the hell do you guarantee that? Can you say with any certainty that nothing some other coder does won't trigger it or cause some other unwarranted interaction? Of course you can't. You're trying to find a justification for doing something that you know you shouldn't.
... if they're authorized, they're not Easter Eggs) then there's no way for quality control procedures to test it.
If you don't own the code, don't screw around with it. You have no legal, ethical or moral right to do that. Besides which, if your code is unauthorized (which is the case with most Easter Eggs
You're also evincing a complete lack of understanding of how end users perceive software. They don't want it to do anything but what it's supposed to do, and if it starts playing jokes on them they're likely to lose confidence in it. That's a bad thing, both for you and your employer.
It really is a question of professionalism.
Thank you. I've been loosely keeping track of the people that seem to "get it" in this thread. Counting you, that makes five, I think.
But know this: other people will look at your code.
And that, actually, cuts right to heart of the matter. People put in Easter Eggs and so forth to "impress" the customer. I'm not really sure why: to me, the customer is probably the person least likely to appreciate the quality of my coding because he'll only see what I present on the screen. Only another programmer can say, "damn, that sparse array class of yours really did the trick!"
Even so, if the customer is going to say, "Whoa, that was cool!", it shouldn't be because of some stupid Easter Egg, but because the program does what he needs, and does it so well that he just had to let you know. That's how you garner customer loyalty and appreciation, and for me personally, it means a lot more than "Hey! I accidentally pressed shift-alt-ctrl-tab-del-end-enter and the desktop changed to Ronald Reagan's head!"
I am a robot. I do only as instructed. Beep beep. Bloop Bloop.
Be insulting if you wish... 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.
HE'S being insulting? Writing good code and adding easter eggs are not mutually exclusive. What is more likely to happen is if you write good code, people won't mind that you added easter eggs and if you write bad code people will bash you for writing bad code and wasting time on easter eggs.
Yes, he was. On the other hand, all I'm trying to do is inject a little understanding here, maybe make some of you think about what you're doing. It's obvious that many of you are not (thinking, that is.) If that's insulting to you, then maybe you should start thinking.
... until someone loses an eye.
An Easter Egg (as I define it) is code placed into a commercial application without the knowledge or consent of company management or the end user, which (from the end user's point of view) can execute at unpredictable times, with or without user input. It's also code that (by definition!) cannot have proper quality controls applied, because if QC finds it, it'll have to be removed, right along with the programmer in some cases. Is that acceptable to you? I know of no other field where this kind of behavior would be tolerated, yet some programmers feel they're an exception. Matter of fact, this behavior is not tolerated in the software field, otherwise you people wouldn't have to hide the things! I can guarantee this: some of you are in for a rude surprise one of these days.
Consequently, I don't care how well-written the application: if you put an Easter Egg in there, then it's not good code. You've demeaned yourself and given the rest of us a bad name, all because you can't empathize with your employer or your customers. Put it like this: when people buy good software, what they're paying for is, in large part, predictability, the ability to have specific tasks performed reliably on an indefinite basis. That's what you risk denying them when you throw Easter Eggs about, and they don't deserve it.
What I'm saying is, think about how your software will be received, think about the effect your Easter Egg will have on the user's perception of the entire application. You'd be surprised how little it takes for users to completely lose confidence in a program and the company which supplied it. Easter Eggs are all fun and games
Feel free to disagree, it's not as if I will be crushed if you do. But I would ask you to realize that I'm offering these comments with the best of intentions. As I've said before, I've been doing this for a long time, I enjoy my work, I do it well, and I take it seriously. Furthermore, I take pride in my work (it's why I keep doing it), but I do what's best for my employer, and what's best for their customers. I'd like to believe that others in this profession do as as well. Honestly, from some of the comments I've been reading in this thread I really have to wonder.
Burnhard and a few others who get it are excepted, of course.
coding is as much art
Like many things, programming can be an art, but for the most part it isn't. The bulk of software development is like most engineering: dull, routine, and professional. It's a job, where a lot of paper gets pushed.
... thirty years in a business gives you that ability) and I have a pretty good idea where my talents lie, what I'm good at, and what I'm not. What I don't have is the inflated sense of self-worth that I see exuding from many of the posters here. Yeah, I was like that once, but the real world beat it out of me.
You people need to get over yourselves and realize that (with very, very few exceptions) you aren't Van Gogh's, you're not Da Vinci's, you'll never be Michelangelo's. You're just programmers, software engineers and designers. No more, and certainly no less, but that's what you are. Professionals, if you want to be, and professionals do what they're paid to do, and they do it well. Granted, there's a lot of wiggle room there, but a true pro in any field does his best to keep his ego in check and do what is best for those who pay the bills. Anything else is unjustified self-glorification.
I've been doing my job for a lot longer than most of those here on Slashdot (yes, I can tell
Keep putting Easter Eggs in your work and it'll beat it out of you even faster.
Would you want an easter egg in an application that controls the running process of an oil refinery?
How about an oil rig?
I think not... When a downtime costs you about 1.5 million USD per hour of downtime you really do not want any sort of undocumented "feature" or "egg" in the system.
oh, and if you question the hours of downtime.. Think about this: If the control system becomes unresponsive the whole underlaying system goes into ESD mode.. Emergency Shutdown. Have you ever "rebooted" an oil rig? It does take a while ;)
I'm with you on that one. The big dichotomy in this entire thread appears to be between people who work on dangerous applications and know it ... and those that don't, those who look at their work with a professional eye ... and those that don't. Time and experience usually bridges that gap though. Time, and a few major ass-chewings for screwing around with the company's products.
If you feel insulted by EkriirkE's comment then maybe you have a psychological aversion toward criticism. Is the avoidance of apparent failures of software so important that it overrides both the motivation and the self criticism that Easter Eggs can provide? Moreover, do you know for a fact that Easter Eggs cause project failures at all?
Huh? Everyone has a psychological aversion towards criticism. That's why it's called criticism ... it's not supposed to be pleasant. However, sometimes it can be constructive, and sometimes it isn't. EkriirkE's isn't.
Regardless, I'm not interested in avoidance of apparent failures, I'm interested in avoiding actual failures and, as a sideline, not performing unethical acts. Yes, I do know for a fact that Easter Eggs cause failures. No, I'm not going to bother documenting them for you, that's what Google is for (and there are some other relevant posts in this very thread.)
Ask yourself this: how many software managers do you know that would approve of an Easter Egg? What's that? NONE? That's right, because it's not in the company's best interests to have undocumented, unauthorized code extant in a shipping system. Keep that in mind the next time you try to sneak something by the QC department. It's NOT YOUR JOB. Why is that so goddamn hard to accept?
Geez, you guys are the SUV drivers of the software development world: it's my God-given right to screw with everybody else. I have news for you. It's not.
Do civil or mechanical engineers leave easter eggs?
The fact that you can't find them doesn't mean they aren't there.
And what do you think will happen to that engineer if and when it is found?
The GP's point is valid. Pros don't do that kind of stuff, that's all there is to it. And if you do (no matter what your skill or talent at the job) you're not a pro, and you won't be until you cut it out.
Sure be funny, but when your easter egg causes an error the bypasses a safety feature and shoots a 8x4 piece of wood too soon and it cuts a guys leg off, you'll realize that there is a place for professionalism, and a place for creative outlets.
No, I did not write that code, I just removed the easter egg and fixed it.
What happened to the programmer who put it there?
Security, safety, correctness are not affected by humor.
Oh, yes they are, when it comes to complex software systems: bits and pieces of programmer humor don't belong there. I mean, would you want that realtime ECG to show a flatline and zero pulse and zero blood pressure and a steady tone when you happen to press a certain combination of buttons ... and then a few seconds later flash "JUST KIDDING!" on the display? Because if you allow programmers free reign on their twisted idea of what is funny that's exactly what will happen. Believe me, if you knew programmers the way I do, the very last thing you'd want is us imposing what we think is funny on your equipment.
I would not tell you how to run your practice, or how to interact with your patients. That's because I wouldn't know everything that could cause damage and what would not. None of us do: we're software people not doctors. That's your department, that's where you need to be in control. The software should be transparent, in the background: anything entertaining that happens between you and your patients/coworkers should be your responsibility. That principle applies to any field, really, whether you're a doctor or an operations manager at an oil refinery.
Now I agree, in a working environment humor is a vital part of job satisfaction. The people I work with every day are among the most intelligent and genuinely funny people I've ever known. I enjoy my work all the more for that. But (and this is a big "but") they also take their work very seriously, and would look askance at most of the people in this thread. Certainly, they'd never dream of putting an Easter Egg in one of our products. That's not what we're paid to do. Period.
I would fully expect a doctor to appreciate that perspective.
I'd say a better analogy is choosing between a doctor who gives you an EEG
And a better analogy would be a patient whose heart has stopped being given a shock to restart it. Everything would have been fine, but the dye in the new humorous nipple-colored pads was slightly conductive ... and electrocuted the EMT.
What we're essentially talking about here is the Law of Unintended Consequences. Your average Joe Congressman could tell you all about that.
Have a drink, man. Everyone knows if they're doing something life-critical. So just chill out. People like you harsh my mellow.
No, I'm getting the impression that they don't (and I've known way too many software guys who treat their jobs as a big joke to just ignore my feelings on the subject.) That bothers me. Regardless, the casual acceptance of this bothers me more. Slippery slope and all that (today an easter egg, tomorrow a back door or time bomb.) Just do your jobs, people. If you want to express yourself, learn to paint or play an instrument, or learn how to design good software. Don't treat it like a toy. It isn't.
No matter. I'm sure if any of your Easter Eggs causes a real problem, the prosecution's expert witness will figure it out for you.
I don't disagree with your professionalism, and I personally have never put any easter eggs into my software (perhaps slightly casually phrased error messages sometimes, but my software is often for internal use only anyway).
Well, I do make a general distinction between in-house development, and software that's sold to end users. If it's for internal use, you're going to know your customer base and you'll know whether they're going to have a problem with something.
though "wanting to earn the trust of both your employer and your customers" certainly is a form of wanting to attract attention.
No it's not. It's a matter of wanting do do the right thing by those who trust you, and sign your paychecks.
We all have 'childish' desires, but we don't all satisfy them in the same ways.
Yes, but earning trust is what any good employee strives to achieve, and I don't know of an employer that would consider that childish. Conversely, I know a number of employers (my current one included) that would consider an unauthorized Easter Egg to not only be childish, but likely worthy of immediate dismissal. Have fun, enjoy your work ... but keep the software, the customer and your company from paying for that enjoyment.
That's what pros do. You're not paid to put humor, jokes, Easter Eggs or anything else into your work. People need to understand that, look at it from the company's perspective rather than their own. Believe me, as someone who has run a small software business and paid others to write code for me, I'd have been thoroughly torqued off if one of my customers had called to complain about anything like this. Play practical jokes on your coworkers all you want, don't play them on the people who pay the bills. That's just stupid.
For security reasons, I simply do not allow any signature.
The problem with that is auditing. It's nice to know who did what (we don't sign the code, but we do keep revision logs.) You have to know who did what, if nothing else because what's in their head is valuable, and if someone else later has to fix something, it's nice to know who touched it last, so you can go pick their brain.
Even the PHB thought it was pretty funny.
Sure he did, because he was a PHB. I'd have told you, ha ha, very funny ... don't do it again. Regardless, there's a difference between monkeying around with an in-house project, and something that can affect paying customers with a legal staff.
I'm quite disappointed with so many comments here encouraging confusing variable names, and the addition of un-approved functionality.
Me too. So far in this thread all I've seen is a bunch of people who should know better promoting the defacement of their employer's products, if not outright criminal activity. All in the name of having a good time. I just don't get it.
That's just a hidden copyright message. How the hell is that an Easter Egg? Why are there so many clueless newbies around?!
Clueless mods, too. It's not a goddamn Easter Egg if the owner of the code puts it there himself.
Cripes.
Wow, you know, i actually never expected one of the uptight programmers to be posting on here.
You're exactly the kind of person who this is referring to.
Go buy some humor, i hear it is really cheap because of the recession.
Well, my perspective is different than most. Many of the software types here seem to be employed developing relatively unimportant applications, the kind that perhaps can tolerate their idea of what is funny.
Am I uptight? No, not particularly, I enjoy a good joke and a few beers as much as the next person. It's just that my job entails some severe penalties for failure. A job with significant responsibility is something a lot of you goofballs will never get if you keep your childlike mentality towards software development. Well, you may get it, but somebody else may pay the price for your ego.
I'm sorry, but a sense of humor is not worth the hazmat issues or court time that result if my software screws up. So you'll forgive me if I take matters a bit more seriously than some people.
save a copy and pass it on to your children.
Save a copy and pass it on to your lawyer.
I hate to ruin your fun, but maybe instead of thinking about "easter eggs", you should try fixing your broken development process.
You shouldn't be able to sneak code into a project. Certainly not one that's almost done. No code reviews == fail.
I agree. A true Easter Egg is a piece of code that is meant to be found, but was put there without management knowledge. A hidden feature that was put there on purpose as part of the product's design is not really an Easter Egg, it's just a hidden feature.