Presentations...are they about audience comfort?

Daniel Moth has written a post called The ABCDEFGHI of setting up Visual Studio for Demos. Some of his points are great. Things like using the default colour scheme, larger fonts and maximizing the screen are bang on.

Other points that he lists I'm more ambivalent about. I really don't think that changing the tab key to be two spaces is really going to gain you enough horizontal space to make a difference.  If you're so deep into nested logic of any kind that your code is falling off the side of the page, you should probably be rethinking your code structure.

Still more of the points Daniel makes I disagree with completely.  First and foremost, we presenters are up there to convey ideas within a realm of perceived knowledge and skill. If you're on stage presenting I guarantee you that there will be people (probably a lot) who are in the audience that see you as an omnipotent coder.

If you ignore that fact and start working or writing code in a way that is not following best practices, these people will leave thinking that it's okay for them to do the same the following day at work. When that happens, you've just killed a puppy. Developers around the world have had their skills set back because of seemingly innocuous incidents like this.

When I'm writing code during a presentation, no matter it's topic, I'm a spokesman for good coding practices. That includes code design, code structure, tools and personal (developer) processes. It's incumbent for the few of us that have the stage and the audience in earshot to ensure that we are working to do more than just spew out the most recent technology. We have to convey the topic at hand in a way that people can see better ways of doing things at the same time.

I, for one, will never again present without my productivity tools installed in the IDE.  For a while this past year I was doing presentations on the new language features in .Net 3.5 without ReSharper. I disabled v3.1 of ReSharper because it added clutter to the screen when it found language features that it didn't know how to handle. Like Bil says here, you never looked like a bigger fool as when you repeatedly, in every presentation, catch yourself trying to introduce a variable, going to definition, or some other shortcut that I was used to. I was quite embarrassed to have to say, in every one of those presentations, that "..I'm so used to using ReSharper...one second while I figure out how to do this." 

Turning off your productivity tools gives the audience a false sense of the real world. I don't know of a single developer worth his/her salt that doesn't use ReSharper or Coderush or some other tool in their day to day work.  We do it because it makes sense. Yes there are things on the screen that will cause members of the audience to ask questions not related to your presentation. A simple request to come and ask you after is how that can be addressed, and you're free to carry on with the show. If you're worried that constantly hitting Ctrl-Alt-V to introduce a variable with ReSharper is going to confuse your audience, then take to talking them through what you're doing while you do it. "Let's create a new variable for the Foo object....new Foo...Ctrl-Alt-V to introduce the variable...Tab over the Type and Tab to accept ReSharper's recommended name."  Not so hard is it?  Not only does it not distract greatly from the presentation, it gives the audience a little something else to take home and think about.

While productivity tools are a reality of modern development, so too are best practices. Daniel suggests, in item H, to remove the namespace declaration and it's related curly braces.  Fantastic.  In every file that we open we have now saved 3 lines vertically. For those three lines, we've just suggested to the audience that namespacing isn't important. We've created a "Don't do this in production code" moment. Nothing pisses me off more than hearing or feeling that I have to vomit out that statement. It's ridiculous. Why are you doing it then? To save 3 lines of space? Fan-fucking-tastic.  What's next, eliminate the blank lines so that we can recover some more space? Thanks for making the code unreadable.

Coding best practices have been categorized as such because they should be universally adopted.  We presenters should never assume that the entire audience understands and fully appreciates these practices.  If you're going to get up in front of a group of people and talk about car safety, but when you demonstrate the proper hand location on the wheel you don't put on the seatbelt, then you'd better damn well be prepare for people to assume that the previously taught seatbelt lesson really isn't as important as you claim it to be.

Not everyone knows best practices.  Not everyone knows patterns.  Not everyone knows good coding standards.  Not everyone knows what presenters know (although with some presenters I'd argue most know more, but that's another drunken rant).  One of the plagues that is currently running through the industry is the notion of presenting just the Api.  No worry or thought is put into the surrounding practices.  You don't have to go out of your way to include these things into your presentation.  Instead, you should just code like you do any other time.  If you get to a point where you think you should be implementing a pattern, then do it.  Briefly explain what you're doing and why.  People love these little nuggets in a presentation.

People come to User Groups, Code Camps, Bar Camps, Conferences and whatever else you can think of, to learn.  Let's not be afraid to challenge them.  Better yet, let's not be afraid to teach them.

Daniel, none of this was targeted at you.  The topic has been simmering for some time and your post just galvanized the thoughts for me.

posted @ Monday, March 03, 2008 8:46 PM

Print

Comments on this entry:

# re: Presentations...are they about audience comfort?

Left by Daniel Moth at 3/4/2008 3:23 AM
Gravatar
Donald: Thanks for sharing your views – I do appreciate that. I am also happy to have galvanized your thoughts :-) and as much as I'd love to engage in the higher level principles of "what should presenters do" and "when do we kill puppies and when not" I will leave that for another day (hopefully for an in-person conversation – are you at Tech Ed?). So, putting aside the generalisms, I want to offer more of my thoughts (if you don't mind) on the specific points that I made (and that you picked up):

You seem to discard the "2 spaces versus 4" advise but without actually having anything against it (other than just believing it doesn't help) – have you tried it?

You also discard the deleting of namespaces as bad practise. Of course it is not something you would do on a real project, and I think I would be insulting my audience's intelligence if I believed for a second that it would be one of their takeaways. Most people won't even notice that I don't have a namespace (VB devs certainly won't!) it is just a silent benefit. Seriously, if you haven't tried it, you cannot knock it. You've probably been in a presentation where someone did and never noticed the namespaces were absent, it isn't an "in your face" change as your posts suggests.

Anyway, rather than talk about those two points (and I am more than happy to agree to disagree), here is a screenshot that shows the before and after. The point is that when scrolling up and down in a code file like this, you'd have to constantly adjust your h-scrollbar which I find distracting:

http://www.danielmoth.com/Blog/SomeMethod_normal.png
http://www.danielmoth.com/Blog/SomeMethod_tabs4_nspace.png

Your other point about "best practises" is something that your post brought into the picture (not mine) so while I have opinions, I won't discuss it here for now. All I'll say is that I don't see that connection form my post to yours.

And finally: the whole thing about using ReSharper. It sounds like you have personally built a real dependency on a 3rd party tool and also you think that every developer worth their salt (and I guess anyone worth attending your presentations) must use it. That is absolutely fine. Especially when you are presenting on agile topics (process/methodology) instead of pure library topics (APIs), I think that is a defendable attitude. Not my attitude or something I subscribe too, but acceptable nonetheless. The only generic feedback I have (if I may) for everyone subscribing to that attitude is: please include that dependency in the abstract of the session (if you are also including the words "Visual Studio" of course).

Once again, thank you for engaging in conversation on this topic!

# re: Presentations...are they about audience comfort?

Left by Bil Simser at 3/4/2008 4:59 AM
Gravatar
The namespace issue causes me concern for the same reasons you mention here. I actually use them in BDD style coding to separate out contexts, so they're important. I don't feel trying to save 3 lines on every file increases readability. Like you mentioned Donald, that's not real world so why omit it? As for the 2 spaces vs. 4, that's a coversation over a Scotch. Or 2. Or 4.

# re: Presentations...are they about audience comfort?

Left by Daniel Moth at 3/4/2008 6:24 AM
Gravatar
Bil: It is not 3 lines, it is 2 (or 4) columns that you are saving. I think the screenshot demonstrates the wasted white space and need to h-scroll, but if you are not convinced, think about it next time you are on stage having to make that extra scrolling to fit in those 3 extra characters ;-)

Obviously if you need namespaces in your demo, then the tip goes out of the window. I qualified that in my original post ("most").

# re: Presentations...are they about audience comfort?

Left by Donald Belcham at 3/4/2008 7:41 AM
Gravatar
@Daniel. Thanks for the detailed response. First, I'll say that there is little connection between the "best practices" section that I included in my post and your post. That was all information that I have had pent up for a while and, although tangential, it came to mind while writing this.

On the horizontal spacing (2 vs 4 spaces), I'll say this. First, let's never consider this to be an across the board argument for the number of spaces in a tab. This very much is a presentation thing only. That said, I look at the images of your IDE and I see one thing that will solve some of your problem (plus another) when working at 4 spaces to a tab. Don't pin the Solution explorer. If you unpin it you'll gain about 5-7 more characters of width in you text editor area. Sure it's not a lot, but it makes a difference. Now the argument against doing that is that people like to see the Solution Explorer. The truth is, people like to see it when you're explaining concepts around it or moving to files within it. It's easy enough to get it to pop back out using Ctrl-Alt-L (I can't remember the keystroke for the Properties window, but it works the same). The best thing about this approach is that you can expand the Solution Explorer to be as wide as needed to adequately show it's contents. I'm not sure about you, but I rarely have class names the size of Class1.cs or Program.cs when I'm working in the real world, and thus my presentation classes rarely do too (this falls back to my rant on do it like you do at work section). As a result I need a Solution Explorer that is wider than what you're showing in your images for the contents to be meaningful. If I just expand it and leave it pinned, I'd end up losing about 2 to 3 times the real estate that your Solution Explorer takes up.

To your point on my dependency on third party tools I'd like to stand up and say (tongue in cheek) "Hi, my name is Donald and I'm a ReSharper addict". We have a MS DE in our area that proclaims VS to be "God's IDE". While I think VS is a good tool, I'm not sure that I can go that far. I do, however, think that VS offer brilliant extensibility and I thank the world for the creation of tools like ReSharper and CodeRush. One of the points that I was thinking, but never adequately made, was that presenters who aren't using a productivity tool lose credibility with me on that point alone. By no means is it all credibility, but they do lose some. What it says to me is that the presenter hasn't been exposed enough to see that there are other, more productive ways to work in the IDE. As a consultant, I get paid to be productive. My productivity sky rockets when I'm using these tools. Why should I hide this fact when I'm doing a presentation?

In the end, regardless of what you and I proclaim here, presenteres need to feel comfortable when they're in the IDE on stage. The more comfortable you are, the better your presentation will go.

To your question on TechEd, the answer is no. I am however trying to make some plans to bring my colonial ways back over to the mother country this year. I'll definitely be looking you up so we can go tilt a few and talk this through in person in more detail.

# re: Presentations...are they about audience comfort?

Left by Bil Simser at 3/4/2008 11:35 AM
Gravatar
I'm in a bit of a foul mood today (long story, beers sometime or maybe a blog post about Product Owners stabbing an Agile team in the back) but I seriously can't believe we're arguing about 3 extra lines or 2 vs. 4 spaces in and IDE?? Next we'll be griping about how many pixels a button should be in a dialog box or something. Talk about being intellectually bankrupt.

# re: Presentations...are they about audience comfort?

Left by Daniel Moth at 3/4/2008 2:45 PM
Gravatar
Bil: Too right. I dunno if I should never share the way I do things or if I should start posting controversial views more often. Decisions, decisions...

Donald: You are on for a few jars when you visit, starting with the "credibility" comment cause my poor imagination can't make that link – just ping me when you are in the country.

# re: Presentations...are they about audience comfort?

Left by D'Arcy from Winnipeg at 3/10/2008 6:02 AM
Gravatar
OMG Bil, are you serious?! Do you not realize that *everyone* knows that a dialog box button should *never be* more than 50px in width and 25px in height?! That's like a question on the US SAT exams! Intellectually bankrupt?! I challenge you to a Dialog Box Walkoff, Zoolander style baby!

D

# re: Presentations...are they about audience comfort?

Left by Jeff Tucker at 3/12/2008 12:44 PM
Gravatar
I finally got around to posting my views on presentations on my blog here: http://agilology.blogspot.com/2008/03/how-to-give-presentation-to-people-who.html. I agree with a lot of what you say, particularly on focusing on good design and development principles during any kind of presentation and the use of tools. Even if I'm not at your presentation for those things, I could still pick up something new and that's just as valuable to me as whatever you're presenting about.

Your comment:



 (will not be displayed)


 
 
 
Please add 6 and 4 and type the answer here:
 

Live Comment Preview: