Thursday, March 23, 2006

Live Demos...

Live Demos.  In reading the comments on my last blog entry – some were about using live demos while presenting.  While I think they can be effective in some cases – I personally avoid flashy ones like the plague.  In fact, I often state that I have a “no demo” clause in my contract.  I use SQL*Plus frequently (constantly) to demonstrate concepts – but don’t ask me to setup a laptop scenario with a database, 14 tiers of middleware stuff and a GUI.  Something is bound to go horribly wrong.

My first really big presentation included a live demo with many moving pieces.  Big time mistake – it crashed in a most spectacular fashion.  

I’ve seen people make the biggest demo mistake of all times – hitting the “do it again and maybe it’ll work button” over and over and over and over (hit it once and have it fail – ok, hit it twice and have it fail – maybe.  But that third and fourth time and beyond – sorry, you just lost me there).  You need to be able to recover gracefully.

Anytime I go to “ad-hoc” something in response to a question – I tell the audience “we are no longer in demo land – we are in real life – this may or may not work”.  Ad-hoc’ing a demo is like developing a new application – it may or may not work the first time around.  My “demos” are my tested production systems.  I have a special set of VM’s (virtual machines with VMWare) that I call my production instances.  They are very carefully crafted and I don’t use them for anything but my demonstrations.  Anytime I step out of them and use another environment (another VMWare machine – like the one I use to answer questions while on the road) – the demo’s invariably crash and burn.  It just happened to me at the GOUG this week in fact!  I was doing a live “AskTom” session and the question I received was most easily answered by example.  I didn’t have my USB external disk plugged in so I just used my internal disk with my “answer questions” VM instances.  They can be a mess since I just whip up examples and change things constantly.  I started up the script and of course I immediately had name space conflicts to clean up (I really should be more original than to use T for tables, T_IDXn for indexes, P for procedures, F for functions and the dreaded V for views – htmldb (apex) users should understand why V is a really really utterly bad choice!).  So I got the demo to work – but it was not as clean as it could be.  Made a couple of jokes while cleaning up my schema to let the demo run – and then it did. (If it did not work the second time, I would have not gone for a third try)

At the same conference – I was watching another presenter, she was showing off Workflow.  She got a question and ad-hoc’ed the response.  Received a “404 Not Found” message during the process.  Did not panic, went back – tried the process again, got the same error.  Recovered gracefully – “it is just a demo, this is my laptop, not production, I won’t bore you by debugging this now” and explained what the process would be.  Excellent.  If you do live demos and ad-hoc them, the ability to gracefully recover and not get the “deer in headlights” panic setting in is crucial.  Make a joke of it and continue.

I’ve always been skeptical of “large” demos I see on stage anyway.  If we are looking at a graphical interface showing us stuff and just have to take it on faith that “stuff is really happening in the background” – I don’t see the point (might as well just screen cam it).  I remember my manager back in 1995/1996 wanting to build “the coolest demo system ever”.  We would run it like a production system – it would do thousands and thousands of transactions continuously, run parallel query – it would model an enterprise.  I pointed out that to run such a “demo” system continuously would require staffing similar to running a “production” system in the same fashion (our demo systems are our production systems when we are on stage, think about that).  I used the “chocolate world” analogy at that point.  My thought was “this is a demo, it needs to work – it needs to work exactly the same every single time – it needs to work every single time – it needs to just work without any surprises whatsoever”.  Chocolate world in Hershey park (near where I grew up – been there dozens of times) is a chocolate factory simulation.  It demonstrates what they do in the factory.  It is not a factory, it is a carefully crafted simulation of one.  My concept for this demo system he wanted to build was “we should just get cardboard boxes, cover them with aluminum foil and blinking Christmas tree lights – those are the servers.  Then explain how the software running on them would work in real life and show information from real systems”.  Just like chocolate world.  That to me is what a large scale demo should be about – trying to make it be 100% real, in an environment like you have when presenting (5 seconds to setup before hand – your laptop you use for “real life”) is a recipe for disaster.


Blogger Doug Burns said....

I like the way you do it Tom - running pre-prepared scripts in sqlplus and paging through the results. First, there's nothing to go wrong because you've set it up that way. Two, it minimises the messing around and you can just concentrate on the important parts but, Three (and most importantly) you're showing that it's really happening and you're not just 'Making Stuff' up, as the Sponge might ;-)

Thu Mar 23, 08:31:00 AM EST  

Anonymous CT said....

Its amazing how many people can't grasp the idea of _not_ panicking when things go awry...Whether its something as simple as a presentation or as life threatening as an upside down car in a creek (theres a story there but I digress), don't panic. Just relax, think, and do. Probably a personality/genetics characteristic so I'm not criticizing, but it sure can make things, ummm, interesting...

Thu Mar 23, 08:56:00 AM EST  

Anonymous Michael Olin said....

Hershey's Chocolate World really does strive to make it look "real". The fake pipes that run thoughout the "factory" have appropriate industial labels on them indicating what is flowing inside ("cold water", "milk", "sugar", "chocolate liquor"). This does not compare, however to the attention to detail that the designers of this attraction put into the nameplate labels that are attached to the simulated machinery you pass while circling past the drying rollers. Just below the simulated manufacturer's information such as model and serial numbers is this gem: Arbitrary Verbiage

It's my favorite part of the ride (well, that and the cow that says "Smoooooooooth"). I just checked Hershey's web site, and the factory tour ride is currently being renovated. I hope the designers of the new "tour" have the same sensibilities as their predecessors

Thu Mar 23, 09:03:00 AM EST  

Anonymous Anonymous said....

Easier said than done.
I remember working for many managers esp in consulting companies where we were forced to build a demo to impress the client. I dont think we could have said no to that.

Thu Mar 23, 09:50:00 AM EST  

Blogger Thomas Kyte said....

Easier said than done.

No, not at all - misses the point.

There are demos, on stage, as part of a show.

There are PROTOTYPES, PROOFS OF CONCEPT - which is what you describe. I do those. They are excessively scripted, you stay on script, you come in with infrastructure, you have setup time, you carry your production system with you. You have more than 5 seconds between speakers to get ready to go. Very controlled environment.

Totally totally different from what I was talking about.

And what you call a demo isn't - it is a prototype or proof of concept. It can be very very very fake as well (should be, it is totally throw away)

The problem would be if your manager decided it should be "totally real", which is "totally unreasonable"

Thu Mar 23, 09:55:00 AM EST  

Anonymous Anonymous said....

Legoland has a fake factory - and it is invariably nearly devoid of people, regardless of how crowded the park is.

Thu Mar 23, 09:57:00 AM EST  

Blogger Thomas Kyte said....

and it is invariably nearly devoid of people,

would it be more crowded if it were the real factory?

doubt it. I've been to legoland - I've been to Hershey park. Chocolate world works for two reasons:

o big shop, mostly store with shirts, and other trinkets. That draws as many people as the chocolate world experience does.

o the smell - a fake chocolate factory that smells like a huge candy bar. It is almost as good as eating the chocolate itself

Legoland - the plastic stuff just doesn't smell as good and doesn't make you want to hang out.

Doesn't mean "canned demos are bad" (your analogy) just that sometimes a demo just doesn't make sense!

Thu Mar 23, 10:04:00 AM EST  

Anonymous CT said....

Legoland - the plastic stuff just doesn't smell as good and doesn't make you want to hang out.

And the taste...Don't even get him started on the taste...

Thu Mar 23, 10:57:00 AM EST  

Blogger Thomas Kyte said....

And the taste...

but so many small children do enjoy placing them in their mouths! :)

Thu Mar 23, 11:01:00 AM EST  

Anonymous Anonymous said....

but so many small children do enjoy placing them in their mouths! :)

...hoping their parents would give them chocolate instead ;-)

Thu Mar 23, 02:07:00 PM EST  

Anonymous Anonymous said....

but so many small children do enjoy placing them in their mouths! :)

...hoping their parents would give them chocolate instead ;-)

Thu Mar 23, 02:07:00 PM EST  

Blogger Kurt Graustein said....

Even the canned and practiced sqlplus scripts have their risks. I recall in one of your Hotsos Symposium sessions you gave a caveat that you intentionally disabled GATHER_STATS_JOB or some other "auto" feature in 10g to ensure that the execution plan you got on stage was what you expected. A lesson best learned in the lab and not on stage.

I use sqlplus to demonstrate concepts as much as possible in training sessions I conduct. Solid examples make a point stick. When designed properly, they are solid proof that what you are teaching is true.

Thu Mar 23, 02:51:00 PM EST  

Blogger Thomas Kyte said....

Even the canned and practiced sqlplus scripts

yes, even those - but I can usually recover quickly :)

but yes - the new auto stuff can definitely introduce changes - my next column in Oracle Magazine has a class 10g example.

The very act of running a test query that was never run before can change all of your demos after the next gather stats job!

See this link for details.

Thu Mar 23, 03:08:00 PM EST  

Blogger David Aldridge said....

Damn you Burns ... * shakes-fist *

I have another t-shirt that says, "Don't leave now, your humiliation is important to me". Next year, maybe ...

Thu Mar 23, 04:02:00 PM EST  

Anonymous Anonymous said....

I like Penny Cookson's approach to "live" Oracle demos. Penny takes a whole bunch of screenshots and includes them in the presentation. Magically in the presentation as Penny clicks on the different buttons in the screenshots the "application" responds. Who thought Powerpoint has such power and control?

Wisely the trick to this method is Penny tells the attendees what she is doing in order not to pull the wool over their eyes.

Amazingly the demonstration works everytime!

It does however take more work to put the presentation together, and is not really suitable for rich UI presentations as you have to include far too many screenshots.

Chris Muir.

Thu Mar 23, 05:34:00 PM EST  

Blogger Danny R said....

Hi Tom

Thanks for your advice the other day about presenting. Just thought you would like to know, the presentation I did to the local British Computer Society group went well. Not perfect, but I have definately learned from it. Your advice helped, and I managed to answer all the questions I received confidently.

Thanks again.

Danny Roach

Thu Mar 23, 06:50:00 PM EST  

Anonymous Anonymous said....

In my previous assignment, there was a initiative to migrate
existing client/server systems to web based system.

The prototype / proof of concept went very well and the management did buy into it .

At the end of 3 years (overshooting the budget by 120 %, of course )
, the web based application was less scaleable and was dying at least 5 times a day.

Isn't ( bad) prototype a curse on the s/w development process ?

Fri Mar 24, 02:26:00 PM EST  

Blogger Thomas Kyte said....

why would a failed implementation have any relationship to "prototypes are bad"???

I don't see any connection. A prototype, proof of concept shows that an idea might work, could provide benefit, has the right set of possible functionality.

You throw that out and implement the system. Whether that fails or not depends not on whether you had a prototype (although having a prototype can INCREASE the chance of success, it won't assure it)

Fri Mar 24, 02:33:00 PM EST  

Blogger Andrew Allen said....

After one too many vendor presentations. . .

Q: So, what platform does their product run best on?
A: Powerpoint.


Fri Mar 24, 05:41:00 PM EST  

Blogger Sue said....

I sometimes wonder if a demo is to show the audience what the product is capable of, or to show the audience the speaker can do these 'nn' steps. If the former, then using "canned" power point screen shots or even a viewlet - i.e. prerecorded, which is clear, legible and well thought through and gets the point across, is no cop out. I have sat through many, many (poor) talks where the demo was hardly visible, we had reems of code thrown at us and the speaker seems to sigh with relief when it all holds together to the end. In those circumstances, I feel the speaker is showing us they can do it. That's the reason I think speakers go into a mad panic when things go wrong...It's the fine line they're walking.
I have demo'ed very beta software and it's nerve racking if I don't trust the product and I think the audience get nervous too. What's the point?
As speakers, we should decide what we want the audience to walk away with and plan the demo accordingly. (canned or not)

It doesn't mean I don't live demo and I doesn't mean I don't have finger (and blank mind syndrome) during my demos. I'm still learning...


Mon Mar 27, 04:07:00 AM EST  

Blogger Thomas Kyte said....

Sue very intelligently said: I'm still learning...

aren't we all :)

Nice comment over all. I liked it. I run all of my demos in 1024x768 with the largest possible font (in sqlplus - very simple). I have very good vision but almost everytime I sit in the back row - a GUI demo is being run in 10000000x10000000 resolution with teeny tiny fonts so everything fits - I hate that.

yet 100% complete,
and simple

those are my demos. In a really big font, as big as I can make it.

Mon Mar 27, 07:11:00 AM EST  

Anonymous Claus Jandausch said....

I agree to most of everything that's been posted here, but missed one important aspect. One CAN use even complex demos, as long as the presenter is a) able to let it appear to the audience as being simple, and b) most of all: "Demo that this technology/product is stable and fast - even on a laptop!" Installing software (production or beta) and setting up the demo is only one part of the story. A reliable demo has been TESTED, TESTED, TESTED before you step on stage with it! Even in real life, TESTING is NOT a minor part of the application development cycle. Whenever one uses a demo, it becomes an important part of the demonstration, hence it's part of the job you get paid for and one should take it serious - and this includes testing. If there's no time for intense testing, don't use a demo, as you would not go into production with your customer's application...

Thu Mar 30, 01:36:00 AM EST  

Anonymous Anonymous said....

Hi Tom: I installed oracle 10g Release 2 successfully, however, I got couple of problems the password i gave to all my database object like sys, sysoper, scott the same, cutting and pasting it.

Now I can't access, I tried to trail and error method of getting correct password.. i.e, with or withought capsloc....not success\ fulanys

Mon Apr 10, 12:50:00 PM EDT  

Anonymous Anonymous said....


Mon Apr 10, 01:03:00 PM EDT  

Anonymous Anonymous said....

hi tom,
i am using oracle version 7.3.4 and it is connected to around 60 terminals and if the total users if crossing 48 , the listener get down
after showing error
can't get err.txt.
when the 49th user is trying to connect, he gets the same message, i am new user of oracle, so pls help me if possible, reply to

Mon May 29, 02:40:00 AM EDT  

Blogger Thomas Kyte said....

i am using oracle version 7.3.4

goto asktom and if I'm taking questions, there will be a button there - else, there is always a link there on the home page to "other resources"

Mon May 29, 07:33:00 AM EDT  


<< Home