Sunday, April 8, 2012

Draw Something? Impossible

How to draw “MULTIPLY”? Hmmm. My first thought was to show two copulating Easter Bunnies surrounded by a field of colorful baby bunny marshmallow Peeps, but I lack the artistic skills to handle anything more complicated than a few dots and lines, and so I drew a series of screens similar to this one:


I drew 2 dots and 3 dots, then 6 dots. MULTIPLY.  Get it?

As I watched my friend Smudgy try to solve the puzzle it became painfully clear that there was no way she would ever guess MULTIPLY. It was impossible. Draw Something had given her the wrong letters.

The Problem

In turn #18, the previous turn, the answer actually was “EAGLE”. Smudgy’s iPhone hadn’t received the new letter choices for turn #19 and so was stuck with the letters in had in turn #18. Can you draw “BUG”?

The Problem Behind The Problem

I don’t know what’s behind this particular bug. For the sake of argument, let’s assume that this EAGLE/MULTIPLY problem is a result of explosive growth—a growing pain.

Draw Something is the fastest growing game ever, going from zero to more than fifty million downloads in just two months. Growth this explosive is bound to result in problems. (“The kind of problems you want to have,” I hear the people at OMGPOP saying, “like what to do with $210 from Zynga.”)

Anybody would have a hard time scaling up their servers, bandwidth, code, QA, and bug-patching fast enough to handle this unprecedented growth. Maybe in Smudgy’s case something in the server infrastructure was just plain overloaded and so never got out the message that “the word isn’t EAGLE anymore, it’s MULTIPLY”. Such rapid-scaling problems are inevitable, aren’t they?

How to prepare for 50 million users (the super short answer)

If you think you need 50 million testers to make sure you’re ready for 50 million users, then you’re looking at the problem wrong. That one-for-one approach works for 5 users, but not 50 million. When viewed correctly, preparing for 50 million users is fundamentally no different than preparing for 5 users, or 5 thousand, or 5 billion.

In future blog entries we can explore more deeply how to prepare for scaling without problems. For now, here’s an extreme over-simplification:
  1. create a MAXUSERS adjustable variable
  2. start with a small, manageable size for MAXUSERS (e.g. 5, 50, or 500)
  3. test the hell out of your system with maximally active MAXUSERS, MAXUSERS+1, MAXUSERS*2, MAXUSERS*10, etc…
  4. work out all the kinks at this level of MAXUSERS testing, making sure
    • there is no compromise in data integrity, EVER
    • when maximum limits are approached, appropriate “we’re sorry” actions are taken (e.g. “fail whale”) – this is the absolute worse that should happen (and it’s not very bad)
    • the user never experiences a “what the hell is going on” moment
One more thing to do early on: Add a giant kill switch that will shut down everything and give your users some version of  “sorry, we’re down for maintenance”. You never want to use this kill switch, but you want to test it often.

The above steps don’t mean you’re ready for 50 million users yet, not by a long shot (future Problems Solving Problems entries should make it very clear just how much remains to be done), but it does mean you have at least thought about the problems brought on by too many users, and you’ve thought about those problems when it’s still early enough and easy enough to do something about them.

Apologies to OMGPOP

BTW, OMGPOP appears to have done a really amazing job of preparing for explosive growth, and I have done no research to show that this particular EAGLE/MULTIPLY bug is due to growing pains on their part. I only pick on OMGPOP because, geez, if you can’t pick on someone who is currently flying so high, who can you pick on?

Today's Takeaway: To prepare for too much demand on resources, you must simulate too much demand on resources. That often involves lying to yourself about what is "too much".

7 comments:

  1. Replies
    1. Wow! What a totally unfair and unresearched piece! I know you apologized, but you ought to remove it. Yes, , they definitely have issues, but none of us know why. And why call this a 'problem solving' site if all you do is vent???

      Delete
  2. If you google "draw something wrong words" you will find hundreds of people having the same problem, and getting crickets from the app maker. The game is seriously broken. And I think Zynga is stupid to put their name on it without fixing this serious bug first.

    ReplyDelete
  3. I had the same problem just now! I'm playing against a random user (from a random search) and I was drawing the word "hand" for her. The last round's word was "cloud". I think I have the exact same issue as you. Here's a screenshot I posted to my Facebook of what happened: http://www.facebook.com/photo.php?fbid=3962979187324&set=a.1621053880655.2085996.1065672625&type=1&theater

    I'm not really sure what to even do... This is the first time this happened -- I've been using the app (on my iPhone 4S) for a good few months. I'm relieved I'm not the only one this happened to but this really sucks!

    ReplyDelete
  4. If you fast-forward the round, pressing the little icon in the top left of the picture screen then this should fix the problem. This has happened to me several times now and that's how I've solved it.
    I think it has to be the person who drew the picture that needs to break the deadlock; you click 'your turn' and it starts showing the picture you drew, but with the wrong letters (usually the ones from the previous round) you need to press the 'skip' icon right away and it will say 'nice try, the drawing was not guessed' and tell you that you're back to turn 1 - don't panic, as soon as you leave that screen it will take you back to where you were before! Last time it happened to me I was on turn 554, you only lose the frozen turn, the game will continue from your opponent's last picture. You guess it again, then draw something new for them and carry on as before :D

    ReplyDelete
  5. I have an iPad First Gen, and everything was going along just fine until my last word guess. When I placed the last letter, it froze a little larger than the other letters. From there everything was froze. I have restarted the game dozens of times hitting the "X" button in top right hand corner. It asks if I want to start a new game. I hit "Yes" button, thinking we'll move on to the next round, but NOOOOOOOOOO! I completely shut down the iPad hoping to reset, and that didn't work either. My hubby, the only person I game with can't do anything from his end either. The only solution we know is to close the ap (lose all my points) and start over. Not sure if that will even work. Anyone have any ideas what to do?

    ReplyDelete