Hi everyone, I'm Matthew Lakier, and I'm a PhD student of the University of Waterloo in Canada.
I'm going to be presenting this work today that I did with my supervisor, Dan Vogel.
It's called, "More than just Software Surprises:
Purposes, Processes and Directions for Software Application Easter Eggs".
Does this look familiar?
It's the dinosaur game hidden inside of Google Chrome.
This is an example of a software Easter egg, which is an undocumented feature hidden inside
of software.
Here's some of the kinds of words that have been used to describe Easter eggs.
At first glance, Easter eggs might seem like silly little gimmicks just for the amusement
of developers.
So why bother studying them?
Let's look at an example.
Ant Design is a highly popular open-source React user interface framework.
It has tens of thousands of forks and stars on GitHub.
Software developer Shun Liang documented a case in 2018, when the developers stealthily
inserted a feature that added snow to the tops of buttons and also changed all the page
titles to "Ho Ho Ho".
This also meant that the effects propagated to any production websites that were using
the latest version of the framework.
This resulted in some serious backlash from users on GitHub.
One user thought that the code base was hacked, two users claimed to have a pay reduction,
and one user claimed to have been fired.
All of this was just a result of this seemingly innocent fun holiday Easter egg.
So we can see that Easter eggs certainly are software surprises, but they're a whole lot
more than just that.
Let's come back to our work.
In this work, we focus specifically on the context of non-game software applications.
Easter eggs also exist in other media like music and games.
But there's a lack of research on Easter eggs in software like productivity applications.
Here's our working definition of software Easter eggs.
Easter eggs are hidden features in software applications that are activated either at
certain times or through specific user interactions, and whose functionality is undocumented.
This definition is less restrictive than some past definitions that specify that Easter
eggs need to be entertaining, implemented by the original developers, or reproducible.
In this work, we develop a categorization of Easter egg purposes, including developer
stories and insights about Easter eggs.
This table on the right is in the paper and gives examples of Easter eggs in each category.
We also present some related key benefits and challenges associated with Easter eggs,
and we suggest ways that Easter eggs can inspire new ideas for software application interfaces.
Given the exploratory nature of this work, a number of different approaches could have
been taken.
For example, a developer-centric approach might investigate the role of Easter eggs
on, like, developer workflows or workplace culture, whereas a user-centric approach might survey
users and ask them what they think about Easter eggs.
Instead, we focused on learning what we can from developers about Easter eggs that made
an impact to users.
We needed a starting point to find Easter eggs.
We used eeggs.com, which is one of the larger databases of Easter eggs,
and it has a dedicated section for software applications, unlike other online databases.
Unfortunately, fewer than 4% of the entries have been added since 2010, so we used a keyword
based approach to find Easter eggs in the modern application counterparts, and combined
this with an iterative process of data analysis and collection.
We also conducted email-based interviews with four developers behind Easter eggs in very
well-known software applications.
Now let's look at some Easter egg purposes, with some examples.
So one purpose is to encourage development or remixing.
Over here, this is a screenshot of GIMP, an open-source image-editing program.
And so over here, I highlighted a menu item that says "Goat Exercise", "Exercise a goat".
And so this is actually small demo for developers that shows how to make a plug-in using a graphics
library called GEGL, which stands for "Generic Graphics Library", and the name is a joke
and it comes from a nickname that the developers gave the library, which is "Genetically Engineered
Goat, Large".
Another purpose of Easter eggs is to showcase developer skills and new technological capabilities.
So in Matlab, the image command produces this upside-down image of a boy.
But if you dig into the bits inside the image, one finds a bunch more images hidden inside
even further.
This Easter was added in response to complaints the Matlab only supported double-precision
values at the time.
Easter eggs also serve as a creative and expressive outlet for developers.
One example is the sheep sound hidden in Adobe After Effects.
Shift-clicking on the title in the effects control pane causes a "baa" sound to play, and this is
what it sounds like...
Now, let's briefly look at some benefits and challenges associated with Easter eggs.
Easter eggs have the ability to "get a life of their own", which is a term that we borrowed
from a developer explaining the Easter egg in After Effects, the sheep sound.
If we come back to the dinosaur game Easter egg that I opened with, if we look on the right here now,
this is a zoomed out screenshot of just some of the remixes of it on Scratch Online.
Each of the separate squares is a separate remix, in other words, a separate new version,
or changed version of that original design.
There are huge communities for hunting Easter eggs, discussing them, and remixing them.
At the same time, coming back to that Ant Design Easter egg, Easter eggs can sometimes
pose challenges.
Ant Design are not the only ones who have run into problems with Christmas-themed decorations.
Cultural sensitivity is an important consideration in the design Easter eggs.
Now let's look at some future directions.
First, we'll look at some future directions for Easter eggs themselves and then we'll talk about
some future directions for research on Easter eggs.
So there's plenty of potential for users to make their own Easter eggs,
for example, through remixing.
Past work has shown how remix culture supports personal expression and relationships,
and also helps to develop communities.
There are also opportunities for appropriation, when people adapt technologies into their own practices.
For example, past work has shown how the location field in Twitter has not only been used for
location, but other purposes like fake locations, humour, or reflections of one's personality.
There are also opportunities for social Easter eggs.
In past work by Wikström and colleagues, they created a web-based game in which players
must move their cursors in unison.
And so in a similar way, a remote collaborative application could unlock an entertaining Easter
egg when remote participants synchronize their actions to simultaneously perform some sort
of secret gesture.
Easter eggs also have a lot of potential to provide educational value.
Here's one of my favourite comics.
I'll give you a moment to read it.
So this is obviously intended to be a parody of interfaces freezing, but if we think about
this seriously for a minute, maybe hidden behaviour like this could actually be useful.
For example, hidden tutorials could show themselves when the user seems lost, or for example,
interventions could help calm users when they're frustrated with their work or with their computer.
In terms of future directions for research, Easter eggs could be investigated using other
research approaches like a developer-centric or user-centric approach as discussed before.
Also, we focus specifically on Easter eggs that have been written about online in English,
but it would be super valuable to look at Easter eggs written about in other languages,
and investigate cultural differences in Easter egg development and perceptions.
I hope I've gotten you excited about Easter eggs.
They're a lot more than just software surprises and valuable to keep in mind when designing
interfaces.
I'd be happy to answer any questions you have.