Today at MAX, I was to give a quick demo of Flex Builder as part of the keynote address. This is essentially the same demo that Kevin gave at Web 2.0, and the same one that I explained in a bit more detail on the video on the Labs site. For those of you who haven’t seen it, it’s a demo where you type in some code and show how quickly you can build a basic Flex app.
Well, I ran into some demo glitches. Would I have preferred that the demo go flawlessly? Of course. But things turned out ok in the end, which I’ll explain in a minute.
Anyway, back to the demo story.
The first problem I ran into was a Flex Builder bug. It’s alpha software, so there are bugs, right? I’d run into a few of them earlier, but I’d run through the demo ~50 times, and I thought I knew all the bugs.
Earlier in the day, I had done a run-through on the demo machine, and things had gone fine. Now, I was doing the demo on stage at the actual keynote, when I got to the part where I say “now, let me add a state called results”, I noticed… hm… it looked like there was already a state called results in the states panel where there wasn’t supposed to be.
It turns out that Flex Builder was confused and hadn’t cleared out the states panel from the last time I’d run through the demo. Doh!
Well, I figured there was nothing to do but keep going and hope for the best. I deleted the fake state hoping no one would notice, and went back to script. I ran through a bit more of the demo and hit Run.
It turns out that because the states panel was confused, it had messed up my code. Again, this is alpha software, and it has bugs.
I scanned the code quickly and couldn’t figure out what was wrong, so I made a quick joke, cleared my work and started over, moving as quickly as I could back to where I had been.
Ok. Now I was back to where I was supposed to be. But when I went to run the program, guess what happened? The compile error was gone (thankfully) but nothing showed up on the screen! Ack! I clicked the run button a couple more times and nothing happened. At this point, I started assuming that the program was just in a bad state.
What would you do in a situation like this? Things are seriously screwed. The application is *clearly* not happy, and what am I going to do? Go to a backup machine and start over? I’d already started over once. Am I going to ask the audience to sit through the beginning yet again?
Fortunately, someone shouts out from the audience: “Your browser is behind the other window!”
The application had come up after all. It was just hidden behind the window. *Whew*! People clapped. I find out later that it was James Polanco from our QA team who saved my bacon.
The funny thing is that (a) this happened because we were trying to be extra careful about the second portion of the demo, and we had pre-opened a browser window for the second part of the demo, and (b) I would normally have caught something like this, but I had assumed that the program was in a bad state.
I finished up the rest of the demo, the pictures came up, and people clapped some more. I felt like we’d pulled it out of the fire. Like I said before, the demo ended up fine in the end.
Throughout the rest of the day, people came up and congratulated me. “Man, that was really grace under pressure,” etc. etc. People were really enthusiastic about it, too. They would smile and shake their heads and commiserate, while also talking about how good the demo was and how excited they were about Flex.
In the final analysis, I think the demo glitches meant that people were really engaged. It didn’t feel fake and plastic, and it brought a certain tension to the whole thing. It’s like watching a movie. You want the setup, you want the tension, and you want the climax.
Not that glitches are a good thing. Next time I do a demo, I want it to go flawlessly. :-)