We began brainstorming ideas for April 1 early in February. (The first version of the brainstorming document was written on February 20, but we had informal discussions when we started March planning.) The initial specification was written on March 5 and finalized on March 18. The first commit for the project was done on March 20. The basic design was approved on March 22 with the following comment:
All this CSS really sucks.
On March 27 we noticed the globe gif was 13.4Mb, so we replaced it with a smaller gif. The Architecture team approved the pull request on March 28:
I see a few things to tidy here but no blockers . . . nice work making the site hideous!
This is a very short turnaround for a feature that changes so much on the page. Because we start timed events like this at midnight +14 UTC, our developers were awake an an unreasonable time to handle any bugs that might occur. (I should have been awake too, but I slept trough the calendar notification.) Since the launch, I count 4 commits fixing a variety of bugs, including the one you mentioned.
We've been testing things on our development environment for the past week. Some people tested disabling the feature. I'm afraid we assumed that since it worked on the Y2K question it was working everywhere in dev. (But it might be there are relevant differences between dev and prod when it comes to cookies.)
That's the basic story of testing for this year. To address the bigger question of what testing should be done, it's important to recall:
- A prank like this is intended to be disposable, but not disrupt the function of the site.
- This particular prank is intended to look like a monstrosity from the late 90s built by someone with just enough knowledge of DHTML to be dangerous.
Our safety value was the ability to turn the feature off with a button click. Not only does that mitigate the performance and usability concerns, it also give April Fools grouches an option to avoid the whole thing. Since the cookie was broken, there was a period of time when the safety value failed. While it would be nice if that hadn't happened, it was fixed fairly quickly. (Most people saw the fix before April 1 began for them. ;-)
I think this was a reasonable amount of testing and I don't really feel too bad that it wasn't perfect out of the gate. I think this level of testing is appropriate next year. (But maybe we ought to reuse the code to toggle the setting rather than rolling a new version.)
Finally I want to address the concern that this prank will cause permanent harm. The model I have in mind for how people start participating on the sites is they find the site via a Google search. Most of the time, they get the content they were looking for (or not) and move on to other searches or search results. Once in a while people discover the content was built by an active community and get intrigued:
- Maybe it's because they keep landing on the a page from the site.
- Maybe it's because they connect the site with another one they are familiar with on the network.
- Maybe they just start poking around at other questions.
If that model is reasonably accurate, events like April Fools can really help the process of people discovering the community behind the site. Yes, there will be some people who land on an outdated monstrosity and don't get that it's supposed to be a joke. If so, they won't likely discover the community via the third route. But that doesn't mean they will never come back. In the days to come, the most likely candidates to join the site will find it again in future search results. I've talked with many people (including a theology professor just on Friday) who vaguely know about Stack Exchange because of search results. So some people will land on a site, notice the joke and discover there is something more to the site than a collection of great answers.
I could be wrong, of course. But if so it should be possible to look at it in the data later in the week. It's a pretty great opportunity to learn something about how people find the site. And we have many years worth of data to dig through with differing prominence of the prank.