Easter eggs
As a developer, you most likely heard of the concept of 'easter egg'. An easter egg is some undocumented game, movie or other media that is activated upon a set of commands, mouse clicks and keystrokes. The order of commands usually is that random that it is very unlikely that a user of the software program will ever find it; it was programmed for a developer to find it.
Easter eggs are everywhere. Probably most of the common software that you have installed on your computer will have one or more of them. Well known easter eggs are the flight simulator in Microsoft Excel and the pinball game in Microsoft Word. Nowadays even web based easter eggs exist; the Google search engine contains dozens of easter eggs. Try typing 'google l33t', 'google gothic', 'google klingon', 'google linux' or 'google easter egg' in the search field, search by hitting the "I am feeling lucky" button and there they are!
Easter egg game in Google's search engine
Easter eggs should not be confused with minor flaws in the software. For example; try naming a folder 'con' in Windows explorer, you will not be able too. But it isn't an easter egg either!
The easter egg project
But did you ever think about how these easter eggs get into this
software? Do you really think a Project Manager would be happy to
postpone the deadline because the easter egg is just not finished? Do
you think a customer would agree on postponing the go-live date since a
major bug was found in the easter egg? Do you think developers
implement the easter egg without their manager knowing it? It is a fact
that most software projects do not deliver in time, or do not deliver
what they supposed to deliver at the deadline. Knowing that, it is even
more peculiar that easter eggs even exist. Where do those guys find the
time?
I asked these questions myself several times in the past. But all that was until the day of the easter egg...
In a former company I worked for the Development Manager one day suddenly announced "the day of the easter egg". On this special day all developers (about 20) were gathered in some nice restaurant for a drink and a speech. The Development Manager explained that that day was not a normal working day, it was the day of the easter egg. He separated the developers into 4 teams, each team got the task to create one easter egg and actually implement it into the commercial software.
And so there we were; developing an easter egg into the software without any specification, without the supervision of a project manager and without a tester. At the end of the day the 4 teams had to present the result. I was surprised how much was accomplished that day; 4 fully functional games embedded into the software and activated upon an arbitrary set of keystrokes and mouse clicks. Our team implemented a slide puzzle game consisting of a random photo of one of the engineers accompanied by a just too happy tune. Another team developed an arcade shooting game in which you entered the cockpit of a plane with the company logo on the outside and had to shoot down as much competitors (planes with other logo's) as possible.It was really amazing how much was accomplished in just one day of development. It seemed like the team did a much better job developing easter eggs then developing what they were supposed to develop. The easter eggs should still be there and I wonder if someone else ever found them. The day of the easter egg as far as I am concerned was a big success. Once in a year many development teams go carting or survivaling as a team building effort. The day of the easter egg was certainly not about developing the easter eggs. It was about team building...
And so the question is; are there any easter eggs in GX WebManager? To be honest, I am not completely sure. But I am quite confident that there are none. At least I never found any piece of code that looked like it had another purpose then what could be expected from a CMS. Did you?
Ivo Ladage is product architect and is part of one of the SCRUM-teams. Ivo has special interests in Workflow and Authorization processes and Spring MVC.
Other blog entries: