Archive for the 'Miscellany' Category

How to give a killer demo

Sunday, July 4th, 2010

You’ve been there. You’re sitting in a demo where the lead engineer is presenting a new product to the customer. With laser pointer blazing, he shows off the 300 features of the new Blarney Gadget. He’s going a million miles an hour, switching between PowerPoint and the product on the screen as fast as the keyboard will allow. 50 slides later, he finally finishes, crossing the demo finish line like an Olympic sprinter. He sits down, glad the demo is over, and takes a deep breath. At this point, the audience’s heads turn slowly, like spectators at Wimbledon, to look at the customer, hoping for approval. The customer sits quietly for a moment, leans forward, and asks, “Does this have a new Blarney Gadget?”

This was not a killer demo. I’ve sat through a lot of these, and I’m sure you have too. Fortunately, you can do a few simple things to make sure your demo goes better than this. I have most experience with intimate demos involving an audience of fewer than 30 people. These suggestions work best with that kind of audience.

1. Explain the Setup

Any product worth its salt is complicated, at least under the hood. You’ve just spent a lot of time building a new product with a team of engineers. If it were simple, you wouldn’t need to do a demo to show it off. So you’ve got to explain the background. Here’s a checklist of things that you ought to explain before diving into the demo:

  • Physical configuration
    • Are there cables involved?
    • Explain how everything’s connected
    • Explain the computers involved and where they are
    • Explain all the software involved, with diagrams if it helps
  • List improvements since last time, if applicable
    • “Do you remember how the product used to do X?, and that sucked?”
    • “In the past when I clicked this button, it took 30 seconds to process. Now it’s done in 3 seconds”.
    • “Users told us that this used to be confusing. We’ve tried to make the feature more approachable and user friendly.”

2. Tell the Future

Don’t expect your audience to know whether the demo worked or not. Tell them what’s going to happen when you click that magical button, before you click it, so they can participate in the demo success when it works. Get them to feel the excitement of anticipation, and when it works, they ought to instantly think, “Yes, it worked!”, just like you do. To make this emotional connection, you have to tell the future. Here’s an example of telling the future:

“When I click this button, you will see that light blink (point at it), an on-screen spinner will begin to turn, and about 10 seconds after that, a message will appear with the number forty-two. Any questions on what’s going to happen?”

Take time to listen for questions. Make sure the audience is completely clear on what’s about to happen before you click that button. Don’t rush this.

Then, click the button.

After the process finishes, don’t jump in and say, “See? It worked.” Instead, let the audience come to that conclusion themslves. You gave them enough information to evaluate whether it worked, and if you “told the future” correctly, they will see for themselves. This way, they will believe more seriously that your product works (they verified the results themselves, after all).

3. Face Checks

Take time during your demo to make eye contact with each member of the audience, if possible. If you have more than about 20 people in your audience, you’ll have to limit this exercise. Check for the following expressions in the audience:

  • Confusion: A furrowed brow, looking downward, or a pained grimace
  • Boredom: Eyes glazed over, looking at nothing in particular, or head bobbing
  • Excitement: Eyebrows raised, lots of motion, smiling, or the “ah hah” look

If you catch someone bored or confused, it’s time to engage them. Start asking questions. If you can’t think of a question to ask, try this one:

Any questions?

Followed by a 10-second pause. 10 seconds is a long time in a demo. Count it down in your head, “10 Mississippi, 9 Mississippi, 8 Mississippi, …”

Another list of engaging questions:

  • Does this seem like a good approach to you?
  • Do you think your organization will be able to make use of this?
  • In your opinion, are we on the right track?
  • Are there any concerns with what I’ve presented so far?
  • Do you feel like there’s something we could have improved?

By the way, don’t be afraid to take the conversation in a new direction based on the responses to these questions.

You should do a round of face checks after making important points in your demo. Take a look at each face and spend about 1 second looking for the expressions listed above. Just looking at their faces can cause them to better engage in the demo. The audience needs to feel like they are participating in an interactive experience, and not just “along for the ride” like some kind of academic lecture.

4. Slow the Tempo

Presenters almost always go too fast, especially during demos. I think there are two reasons for this:

  1. They are nervous
  2. The technology is more familiar to the presenter than the audience

As a presenter, you should go slower than you think. You almost can’t go too slow. Here are a few tips:

  • Allow silent moments
    • Just look at the screen and look at the audience.
    • This will let the audience absorb.
    • Don’t fear the silence. Embrace it.
  • Ask what the audience thinks
    • If you get no answer, you are going too fast
  • Draw on a whiteboard
    • This will naturally slow things down
  • For long demos, plan regular breaks

5. Easy on the Superlatives

Avoid words like “fantastic” and “spectacular.” Let the demo speak for itself, and let the audience come to their own “fantastic” conclusions. Instead use phrases like “isn’t that neat?” and “we thought you’d like this.” If the demo is pitched properly, the audience will see how “fantastic” it is without you cramming it down their throat. If you start tossing around superlatives, and the audience doesn’t agree, it will solidify a strong opposition to your product in their mind, and they might think of you as a slimy marketing weasel.

This is one place where Steve Jobs excels. He uses phrases like, “we think you’ll like this,” and “this is really neat,” and “wasn’t that cool?” It’s startling when people get up after Steve and start tossing words around like “phenomenal” and “amazing”. When I hear words like that, I think, “hey, you just show me the product, and I’ll decide whether it’s phenomenal.”

You can use accurate superlatives like “totally new” and “unprecedented”, but be careful to stick to accurate words and don’t venture into the realm of hyperbole.

6. Repeatedly Repeat Yourself

It’s okay to repeat yourself. Don’t worry about insulting the audience’s intelligence. Most people go too fast and shower the audience with so much new information that they get hopelessly lost. Err on the side of too much repetition rather than too little. If your face checks reveal that the audience is bored, you might be repeating yourself too much, but this is unlikely.

7. Trade Vocal Cords

Don’t talk too much. It’s human nature to support ideas when you feel like you invented them. You can use this principle when giving a demo by letting the audience talk through ideas. By letting them talk, you are letting them take ownership of the product, which is a good thing if you want them to be your supporter.

Be a good listener, but be careful not to lose control of the demo.

Pay attention to industry terminology they use, and try to use the same terminology in your presentation.

I think a good ratio is about 1/3 to 2/3. You should talk about 1/3 of the time, and let them talk about 2/3 of the time. This guarantees that they are engaged, and it really helps them solidify all the concepts in their mind. As an added bonus, you just might gain an insight into how they operate, which can help you make your software better for them.

8. Spend Your Time Wisely

A good demo has lots of audience discussion. Getting the ratio right is key. Here’s roughly how I divide my time during demos:

  • 1/4: Setup and background
  • 1/4: The actual demo
  • 1/2: Discussion and Q&A

Notice that it usually takes about as much time to explain the background as it does to give the actual demo. Sometimes, the background actually takes longer, and that’s perfectly fine.

Also notice that about half the time should be spent discussing and answering questions.

Happy Demoing

These tips have helped me demo successfully, and I hope they help you. If you have anything to add, please let me know. I’d love to work new suggestions into this article.

Never tell me the odds!

Thursday, March 25th, 2010

M&Ms are yummy. At work we have ginormous bags of M&Ms to snack on. One day I reached into the bag and pulled out a handful (about 8 M&Ms). I happily munched until there were 4 left. Lo and behold! The remaining 4 were all blue. “What are the odds,” I asked myself. So I set out to find the answer.

I started by figuring out how many different M&M colors there were. My bag had 6:

  • red
  • green
  • blue
  • brown
  • yellow
  • orange

Then I assumed that there were an equal number of each color in the bag (that may not actually be true, but it makes the problem a tad easier to solve).

Armed with this information, I started up the wayback machine to go back to Computer Science 235, when, back in my college days, I studied probability. This is when I realized that I had forgotten pretty much everything I knew about probability, except dice rolling odds (which I use in Risk to conquer the world). So it turned out that memory lane wasn’t that helpful after all.

At this point I decided that I should compute the odds of choosing a handful of 8 M&Ms at random with at least 4 blue ones, this being a prerequisite of having 4 blue ones left in my hand after eating the other 4. To do this, I first drew 8 boxes on my white board, to represent the 8 M&Ms I could draw at random. This helped me reason about the problem. For any given box, I have a 1 in 6 chance of drawing a blue M&M. If I draw a blue one for a given box, that leaves 3 more I would need to also randomly draw. So I started enumerating a few permutations that could make this happen:

1 2 3 4 5 6 7 8

And so on. I realized pretty quick that there were too many permutations to enumerate so it was time to get analytical. I started to reason this way:

In position 1, I have a 1 in 6 chance of choosing blue, but I don’t really care which position the blue M&M lands in. I also know that, if I get lucky and chose blue in position 1, that does not impact my odds of choosing blue in position 2. So each position is independent. What that means is I have a 1 in 6 chance of choosing blue the first time, and again the second time, and the third time, and the fourth time. But, and this is the kicker, I don’t have to choose blue for the first 4. It just has to be any 4.

So if I were to compute the odds of choosing all 8 blue, it would look something like this:

1/6 x 1/6 x 1/6 x 1/6 x 1/6 x 1/6 x 1/6 x 1/6.

That’s a good starting point. Since we don’t have to choose all 8, but only 4, blue M&Ms, we can just throw out 4 of the terms, so we end up with this:

1/6 x 1/6 x 1/6 x 1/6

This is when I started getting confused. I started to wonder if maybe the 8 don’t have anything to do with the problem at all. Maybe the odds of choosing 8 at random, eating 4, and being left with only blue are the same odds as just randomly choosing 4 blue M&Ms.

This is when I ditched the analytical in favor of the empirical. As much as I wanted to eat 10,000 M&Ms to prove my hypothesis, I decided to write a small computer program to randomly choose 8 M&Ms from a virtual bag, randomly eat 4 of the virtual M&Ms, and then see if the remaining M&Ms were all blue. This I did, and ran it 5,000,000 times. The result: 0.077% of the time, I had 4 blue M&Ms left. That’s right, 0.077% is the same as 1/6 x 1/6 x 1/6 x 1/6. So I conclude that the odds are the same, and the problems are, in fact, equivalent.

So I beat the odds that day when I had 4 blue M&Ms left. Without even trying, I did something whose odds were 1,296 to 1, against. I should have gone to Vegas that afternoon.

P.S. The odds of having 4 M&Ms left that are all the same color (any color) are 6 times easier: 1 in 216.

P.P.S. If you want to see the source code (warning: it’s C++), just ask.

Technology Predictions for 2010

Friday, January 1st, 2010

My brain’s been a stewing about 2010, and I just gotta let it all out. If I’m even half right, 2010 will be awesome.

1. Hulu in the Living Room

In 2010, Hulu will partner with a company like Western Digital or Popcorn Hour to release a tiny box that connects to your HDTV to watch TV shows and movies, streamed from Hulu’s servers. The box will cost less than $100, and have no monthly subscription, because its development will be subsidized by Hulu’s ad revenues. If it’s not released in 2010, it will at least be announced.

2. Cable Networks Become Record Labels

Just like iTunes changed the music industry, online media and broadband Internet access will start to change the TV industry. It remains to be seen who will be the big player (my money’s on Hulu), but one thing is for sure: Americans will have a choice when it comes to buying subscription TV services. The trend will begin in 2010, allowing consumers to get on-demand TV content for free, and will finish some time in the future with cable companies either totally transforming into something like modern record labels, or going out of business.

3. HDTV Sales Will Boom

HDTV’s have gotten so inexpensive that nearly every American household will have one by the end of 2010. This will be driven by the fact that online media will be so easily accessible that most people won’t need to buy cable, so they can easily justify the cost of a new $500 TV.

4. Qt’s Best Year

Companies who develop desktop application software that needs to run on Mac and Windows will simply have no other choice for their developers than Qt. That trend will strengthen in 2010 to the point that it’s a no-brainer decision over platform-specific choices like .NET, Cocoa, and others. Qt has matured so much over the last 5 years that its toe-hold in this market will grow to a full Nelson in 2010.

5. Model Aviation Takes Off

Model airplanes have gotten very popular and accessible. Manufacturers have pushed prices down so low that anyone can afford to get into the hobby. Batteries, R/C electronics, and planes have gotten cheaper, and planes have gotten easier to fly for the novice pilot. The entry-level model airplane market will take off in 2010.

Your Turn

Do you agree with my predictions, or am I totally off?

Have any predictions of your own?

The undertaker who revolutionized telephones

Wednesday, July 23rd, 2008

How about a hit upside the head with a history lesson in telecommunications?

You’re still here?

Okay, buckle up. In the late 1800′s, a paranoid undertaker from Kansas worried that human operators were routing phone calls to his competitors. You see, back in the day an operator (usually female) would manually connect your phone calls for you. No dialing. If you’ve ever watched an episode of “Lassie” where Timmy falls in the well, you’ve seen this in action. So you would pick up the phone and ask the operator lady to connect you to a certain person or business. If you asked for an undertaker, for example, she was free to route your call to whichever undertaker she liked the best. This really torqued off our heroic undertaker, Almon Brown Strowger, who, rather than just blogging about it, set out to solve the problem.

Strowger invented a new kind of relay (which is EE speak for a fancy switch) that could be operated remotely by sending it electrical pulses. The relay could connect phone calls automatically based on what you dialed on your rotary phone. By hooking a bunch of Strowger relays together, you could route calls to any other phone, without the need for a human in the loop.

You’ve probably seen these old phones with rotary dials. That’s why we have ‘em. All because a disgruntled undertaker saw a problem and decided to fix it.

What torques you off? Why don’t you go out and invent something to fix it?

Electrifly L-39 Re-maiden

Saturday, May 31st, 2008

Well, I upgraded my L-39 jet’s motor and re-maidened it. I don’t want to give away the ending but it wasn’t pretty. The new motor was fantastic. It bolted in with no modifications to the plane, and provided lots of thrust over the stock motor. It was great.

The added thrust helped control the plane. Without it, I would have been toast out of the gates (like last time). The take off was uneventful other than the 90 degree right roll on launch and the first turn which almost crash landed the plane right into the adjacent road. Yikes! Here’s the video:

Everything was going okay, but it was extremely twitchy and stall happy. I think it’s too heavy, cause I was fighting to keep it aloft the whole time. I held my own for a few minutes, and then the low-voltage cut off kicked in. The motor must have been pulling more juice than I realized. I was up wind, which was a problem because the wind was blowing at about 10-15mph. Nevertheless, I managed to bring it in for a nice soft landing. Well, “soft” is relative. The plane touched down at the same spot where the only obstacle in the whole park was sitting: a sideways metal pole. Oops. Here’s the video and crash site photo:

You can’t tell very well from the pic but both the wing and horizontal stabilizer are bent, because they went under the poll while the rest of the plane went over it. Not pretty.

Oh well. Live and learn. My battery was badly puffed (due to the low voltage and high amp draw I’m sure), but it subsided back to normal. Not sure if I trust it for another flight yet, but I will definitely be keeping it in an ammo box and carefully monitoring its voltage before I use it again.

Thanks Cliff for filming!

How Fast are the Google Street View Cars?

Wednesday, February 27th, 2008

Well, about this fast:

RC Stryker Onboard Video

Wednesday, August 15th, 2007

It’s a short video today, but a good one. I strapped a co-worker’s video camera to the Stryker. It was a heavy load, but the Stryker handled it quite well. Here’s the video:

Thoughts on Global Warming

Monday, June 11th, 2007

This gentleman proposes a thought-provoking argument in favor of spending resources to stop global warming.

I believe I may have found the hole in his argument. The hole is this:

It starts with one assumption: Resources are limited. Now consider dozens of problems with 2×2 grids like the one in this video, and apply the same logic to each problem. You get one grid for global warming, one for the war on drugs, one for terrorism, one for world hunger, etc. Using this gentleman’s logic, we would choose to spend resources on every single problem, and we are left unable to solve any of them fully.

Global warming, whether real or not, is one of many problems facing modern humanity, many of which could arguably lead to equally disastrous outcomes. Can we solve all of them? No. Therefore, we have to choose which problems to solve not based on the magnitude of their worst-case scenario, but rather based on a combination of both their magnitude and their likelihood of actually occurring.

The fallacy is this: one should not spend resources on a problem based on the magnitude of its outcome without considering the likelihood of the outcome actually occurring. This logic would lead me to believe in moving the entire human race to a different solar system because our sun is going to die.

Any thoughts on that?

Why Instant Messaging Beats other Communication Forms

Thursday, April 26th, 2007

I often hear people telling others to “get off your butt and go talk to the person face-to-face,” as if face-to-face communication is the silver bullet of all communication forms. Recently, I installed a jabber server at work, and a few of us software developers have been using it to collaborate on our software project. Let me tell you why it’s better than at least 3 other communication mediums: phones, face-to-face, and email.

Instant Messaging Beats Phones

When you call me on my office phone, it forces me to stop what I am doing and focus about 90% of my attention on your phone call, at this very instant. If I choose to ignore the phone, it rings at least 4 times, and each time I feel a wave of anxiety pass over me, because I know you’ll probably come find me face-to-face in a few minutes (more on that later). Lastly, when you call me I have to turn off my music. Music helps me tune out other distractions, so please don’t make me turn it off.

On the other hand, when you send me an IM (instant message), I am free to choose how much attention I want to give you, and I don’t have to respond right away. I can also leave my music running, so psychologically I have less context switching to do. I can wait to respond until I’m done writing a section of code. That way I don’t have to spend any time trying to remember what I was working on before you called. If I see that the IM is a simple yes/no question, I can respond right away with “yes” or “no” and move on. I don’t have to go through the pleasantries of saying “how are you” or “this is he” or “that sounds good” on the phone, followed by the pleasantries of “ok, good bye” or “thanks, see ya later”, etc. In fact, while I am writing this very article, I have answered about 10 IM’s, and it hasn’t interfered with the flow of my writing at all. If I had received 10 phone calls, however, I would have never made it past the title. What’s really great is that I only had to give about 25% of my attention to the IM conversations. That is until half way through the conversation when my co-worker had a really good idea; so good, in fact, that I stopped writing this article for a few minutes to schedule a meeting to talk about it. All this with no interrupting ring tones!

Instant Messaging Beats Face-to-Face

When you come into my office to talk to me, not only do I have to stop what I am doing immediately, but I have to give you eye-contact. This interrupts my work flow big time, because I can’t even passively monitor the program that I have running (let alone actively type code), for fear that you will think I’m rude. What’s more, I can’t take my eyes off you for the entire time you’re in my office, for fear that you’ll steal something (just kidding). Face-to-face conversations almost always degenerate into something other than what was originally intended, perhaps a personal conversation about the past weekend or something else. Lastly, it can disturb my office mate (we sit two to an office), causing double distraction. IM’s don’t pose any of these problems.

Instant Messaging Beats Email

Email is the most passive form of communication. It doesn’t interrupt me, and it doesn’t require immediate attention. You may be wondering at this point why IM’s are any better. Email takes passive communication to the extreme, so extreme in fact that many people never get around to answering emails. If I had a nickel for every unanswered email in my co-workers’ inboxes, I would be a very wealthy man. This leads us to the problem: When I send an email inquiry to a co-worker, I can’t count on getting a response in a timely matter, or even at all! When I send an IM, I can usually tell right away if they got it because my IM program tells me when they are typing a response. I also know if they will receive it because I can see if they are online or not. Email gives neither of these responses. I also know immediately that when I get an IM, it was meant for me. Whereas I get lots of email every day that is meant for the whole company or for an entire department, which may or may not have any relevance to me at all. My email client just tells me I have mail in the system tray, and without opening it to read all the messages, I can’t know quickly who it’s from or whether it was even intended for me at all.

There’s an Exception to Every Rule

Don’t get me wrong. Face-to-face conversation has its place, as does the phone and email. I would not recommend, for example, using an instant message to ask for a raise. If you absolutely need 100% of your co-worker’s attention, go visit him in person. Also, if you need to pose a question to several people at once, and they all need to participate in the discussion, email may be better (side note: consider IRC for this).

For the last week, I spent about 40 hours locked in a conference room with two other software engineers working on a project. I thought we would be very productive, but our productivity really improved when we separated into our own offices and started using IM. I can only conclude this: Instant Messaging is great for software development, so try it out if you haven’t already (I recommend OpenFire as a good Jabber server).

So go ahead, stay in your seat. Don’t go interrupt your co-worker unless you’re pretty confident that what you’ve got to say to them is worth their entire attention. Might I suggest that you IM them to ask permission first? That’s what I do.

GWS Formosa Maiden Flight

Monday, April 23rd, 2007

Today was the maiden flight of my new GWS Formosa, which I have now dubbed “The Rocket.” This plane flies fast and rolls fast. It rolls faster than the frame rate of my camera, so you can barely tell when it’s rolling. I would estimate it can do about 3-4 rolls per second. My first flight was a crash because I attempted a loop right out of the gate, and lost control. Oops. Second flight was beautiful, with a picture perfect landing. The third flight I played with some inverted flight, and I lost my orientation. I was about two mistakes high, but I lost orientation twice, and crashed hard. My packing tape held up great! The fuselage is cracked in 4 places around the battery box, but it’s still in one piece. With some epoxy and a bit of plywood reinforcement, it’ll be back in the air in no time.

Here’s a quick video of my third flight. You can see some rapid rolls and inverted flight. About 5 seconds after the video stopped rolling, I ate the dirt. Enjoy: