It’s not even April 1 in my timezone and I’m already sick of April Fools’ Day.
This year, our developers came up with a Tamagotchi-like game for our users to play. It’s called StackEgg. Users vote on a Twitch Plays Pokémon sort of way. Each community owns their own pet site and work together to help it grow from private beta to public beta to graduation to “winning the internet”. The idea was to give people an overly simplistic model of how Stack Exchange sites grow.
Because of timezones, the game started before I woke up and we’d already crashed our own sites:
Thankfully our developers had that problem solved before I had brewed my morning coffee. But the fun didn’t stop there:
However, where there is great inventions there seems to be users who use things for evil. Some users from Programming Puzzles and Code Golf have apparently raided other sites’ stack eggs, forcing them to restart.
If you haven’t used our sites, this might be unintelligible. The back-story is that early in Stack Overflow’s history people decided that it was supposed to be about serious coding questions. Traditionally, programmer forums (or at least the ones I used) sprinkled in fun posts such as challenges to write a program to solve a particular problem in as few characters of code as possible. This game is called Code Golf or sometimes Perl Golf after the language which kicked off the earliest events.
Typically, there’s no practical advantage to writing short code. In fact the winning examples often use (and misuse) obscure features to eliminate characters. Reading winning code golf entries tends to be challenging even for experienced programmers. Writing production code in this way won’t win you many friends.
Meanwhile, another type of request common on programming forums, code reviews, were deemed inappropriate for Stack Overflow. This is where you start with some working code and ask experienced programmers to look over it for style and clarity problems. The results of a successful code review are just about as far as possible from the results of code golf. When Stack Exchange expanded beyond Stack Overflow, two sites were created nearly simultaneously: Code Golf and Code Review.
So fast forward to this morning: a few Code Golf users noticed that our Stackagotchi game allowed people to reset their progress if their pet site was doomed to failure. They also noticed that the game didn’t require anything to play other than an account. Being a clever bunch of programmers, they decided to use that bit of information to win the game by resetting rival sites’ progress.
Unfortunately, they decided to “raid” Code Review.
Now I don’t think this was a malicious decision; it’s clear from reading later comments that Code Golf folks thought raiding was part of the game. There’s long been a friendly rivalry between the two sites, but they weren’t the first target. However, when Code Review got targeted, it set up a “Toxoplasma of Rage”. Code Review users were understandably annoyed that their game was being interfered with. And Code Golf people were annoyed that Code Review people were taking the situation so seriously. Which only annoyed the Code Review people even more.
It turns out the reset function was not designed for raiding. One of our brainstorming ideas was to set up battles between sites after their Stackagotchi had matured. But that idea fell by the wayside as the deadline approached. We gave users a network leaderboard, but no other way for sites to interact. In retrospect, it was inevitable that the raiding strategy would develop. What’s surprising was how quickly Code Golf discovered the exploit.
Thankfully, the controversy has mostly blown over already. As far as I can tell, the treatment regimen was good, old-fashioned communication. The people doing the raiding have more or less stopped now that they understand how folks on other sites felt about the strategy. And I, for one, gained a greater appreciation of the clever users of Code Golf. They aren’t evil at all; just misunderstood.
So maybe tomorrow hasn’t been so bad after all.
Send feedback by creating a GitHub issue.