This article is a roadmap for presenters thinking of using the other articles in the series to present on Visual Studio Extensions to other developers.
There are three articles in this series for Visual Studio 2008, and two for Visual Studio 2010. Each gives you everything you need to make a presentation to a user group, a code camp, or a similar group of developers. The talks will all fit in a 75 minute time slot. Each article includes:
- A slide deck for you to present.
- Detailed slide-by-slide speaker notes (in a separate document) that cover the goals of the talk, provide examples you can use as you're presenting each slide, and suggest some timing tips.
- A detailed demo script (in a separate document) with complete instructions (including screenshots and source code) for doing the demos.
- Videos for you to watch as part of your preparation. Since these can't be hosted here on CodeProject, I've settled for the only remaining free video hosting site - YouTube. I know that's inconvenient for some people, and if anyone can suggest another place to host them, I am all ears. You can download them using kickyoutube.
None of the demos require you to start with specific "starter code" - either you open some project that is already on your computer (for example, to demonstrate inserting a code snippet) and it doesn't matter very much what project you use, or the entire demo is built from scratch using the instructions in the demo script.
How to do a great job presenting on this topic
First and foremost, you must know and care about Visual Studio Extensions. If you don't use any extensions yourself, have never written one, and don't know anyone who likes them, you are not going to do a great job introducing developers to Visual Studio Extensions. If you are interested in them and care about them, that enthusiasm will show. Even if you intend to deliver only one of the talks in this series, you should watch the videos and read through the decks and the speaker notes for all of them. This will raise your overall knowledge and make it much easier to talk to the slides. For example, even if you don't intend to present either of the "Top Ten Free Extensions" talks, if you watch the videos, you will see the benefit of some of those specific extensions, which will make coming up with "off the cuff" examples in the "What and Why" talk much more natural. Alternatively, if you're going to present "Writing Extensions" for 2008 or "Writing Editor Extensions" for 2010, having a good grounding in the fundamentals from "What and Why" will get your talk off to a good start.
The second requirement to do a good talk is practice. When I deliver someone else's material, I typically follow this process:
- If there is a recording of the entire talk, watch it from start to finish.
- If there are only recordings of the demos, open the slide deck and read the slides to myself, pausing to play the demo videos at the appropriate points in the deck.
- Read through the speaker notes to see what the author suggests I add to each slide as I present it.
- Get my machine set up to deliver the demos. Most demo scripts have a section at the beginning about what you need (what version of Visual Studio, an internet connection, etc.) to complete them, but I read the entire script start to finish, looking for instructions like "launch Tool XYZ from a command prompt" that tell me what I need to install.
- Work through the demo at my own pace, adding to the demo script if I need more details on how to do something, or if there is an error that can occur if I miss a step.
- Once all the demos work every time, I start to feel I "own" the material, and I'm ready to practice talking to the slides.
- Deliver an entire dry run of the talk, with the slides and doing the demos at the right time, all the way through. I may have to pause a few times if a demo blows up or I realize I don't know what to say to a slide. I keep track of my overall time and the length of these pauses so I have a total time for my first dry run.
- Decide what I need to do next. Maybe there are some points where I babble because I really don't understand that part of the material yet. Maybe my overall time is way too short or way too long. Rather than drop or add slides when someone else has provided them, I look to see how I can say more or less to each slide.
- A major cause of being too short is lack of familiarity with the material. It takes very little time to read out a bullet that says "improved productivity". It takes several minutes to give two or three concrete examples of how something makes you more productive, how much time you can expect to gain from this tool, and so on. If your first run is much too short, you have some learning to do. If you are only a little too short, techniques as simple as pausing more often to let your words sink in, or speaking more slowly and clearly may make all the difference.
- A major cause of being too long is repeating yourself. Sometimes there is a slide that says "there are four kinds of <whatevers>" and you talk to this slide for minutes on end explaining each of the four whatevers in great detail, only to advance and realize there is one slide on each whatever. Repeating your explanation again will put you over time. Knowing your deck will save you from this, and that comes from practice. The other major cause of length is demo flailing. You can't find the menu item, you make typos in your code, you open the wrong file and scroll up and down, up and down, looking for what you wanted to show them. Again, just doing the demo over and over will make you crisper. Practice.
- Hitting your time is probably the most important skill a presenter can learn. I've been doing this for over a decade, so I can get where I need to be with less preparation, but I always practice the entire talk multiple times until I know the pace I need to use to hit my time.
- Once I have a successful dry run - I hit my time, all the demos worked - my preparation is complete. However, if you are not an experienced presenter, may I suggest one more dry run of the demos using presentation settings? Lowering your screen resolution to 1024x768 and bumping your fonts so they can be seen from the back of the room are vital to a good talk. They also make Visual Studio harder to use, requiring you to scroll around a bit more, or hide some tool panes. If the first time you meet that challenge is when you're on stage, the presentation may suffer. Similarly, if you are practicing on your own machine but will be demoing on a VPC, you should know before you get on stage whether that makes your demos slower.
Which talk should I do?
You can deliver all of these talks, though probably not to the same people at the same event. There is essentially no overlap among them for a given version of Visual Studio. They each have their own objectives:
Extending Visual Studio 2008 - What and Why (article)
This is a 200 level talk to introduce developers to the existence of extensions. It discusses why Visual Studio is extensible, why a developer might want to use an extension, and why a developer might want to write an extension. It provides a few examples of extensions to illustrate these benefits. There are no real demos, but there are several places where you switch to Visual Studio to show attendees what you're talking about. It also introduces some of the vocabulary that is used in the other talks.
Top Ten Free Extensions for Visual Studio 2008 (article)
This is a 300 level talk for developers who know that extensions exist, but haven't started exploring them yet. It has no material at all on writing or developing extensions. Rather it is a lightning tour of ten extensions that will make a developer more productive. Some are specific to a particular subset of developers (for example, those who are working with WPF or those using Team Systems), but overall, the ten are very popular, very useful, and free.
It is a challenge to fit this talk into a one hour slot. Be warned. It fits a 75 minute slot very nicely if you practice the demos repeatedly to minimize flail. (The challenge, especially when showing an extension you use yourself and like, is not to get carried away showing what else each of them can do.) Also, as the presenter, you will need to download and install all ten extensions before the talk.
Top Ten Free Extensions for Visual Studio 2010 (article)
This is the same talk updated for Visual Studio 2010. I dropped five of the demos and added five new ones. Because some of the tools available at this point in the release cycle are smaller than those for 2008, it can go a little faster. I would still be happier in a 75 minute time slot than a 60 minute one. There are 13 extensions to manage, and you will need to enable and disable some of them as you go. Practice is vital.
Writing Extensions to Visual Studio 2008 (article)
This is a 300 level talk on how to write extensions yourself. It is designed as an inspiration, a zero-to-60, trust-me-you-can-do-this fun ride. It will just fit (if you have practiced a lot and are disciplined) into 75 minutes. It starts with code snippets, then macros, then an add-in, then an item template, and finally, an item template with a wizard. The demos total roughly 48 minutes, leaving a little less than 30 minutes for you to talk to slides. The trick is to get to the end of the final 17 minute demo still calm and confident, showing the audience that writing an extension is actually something an ordinary programmer could fit into their day. And in the scope of a whole working day, 17 minutes is very little effort - it just feels like forever when you're on stage. This talk has never failed for me, and it impresses attendees. Just give it the practice it deserves, and you will inspire them.
Writing Extensions for the Visual Studio 2010 Editor (article)
This is a 300 level talk on editor extensions only. The aim is to make it accessible, to intrigue them, to convince them they can write their own if only they can come up with a good idea. The demo is not very complicated, but it's visual so they can see if it works or not. This talk also covers the VSIX format and publishing your extension to the Visual Studio Gallery.
Writing Templates for Visual Studio 2010 (article)
This is a 300 level session for people who are comfortable with Visual Studio and have created plenty of projects. There are three demos, and because they have strong similarities, you need to work to keep it all straight for your attendees.
Each deck includes a number of useful links. The two most important for you, as someone who'll be presenting on the world of extensions, are:
- www.visualstudiogallery.com - The gallery of extensions
- www.microsoft.com/extendvs - The developer centre