Ever since I started the Summer of NHibernate Screencast series I have received periodic e-mail from various viewers wondering just what level of effort goes into producing these videos. In response, I thought I ‘d put together this blog post that outlines my process both for composing the whole series as well as for constructing each individual installment.
Step 1: Pick a Topic You Know (well!)
The first step in choosing a topic for a series of screencasts (which is really just a delivery method for training content) is to identify something that you know and have personal experience with. There is a lot of work involved in planning and producing even a single screencast of value and to add "ramp up on a new technology" to the already significant effort required to do any quality training (screencasts or otherwise) is just plain nuts.
In addition to choosing something you know, make sure that its something that its reasonable to assume that not everyone else already knows (else you won’t find anyone interested in your content). This isn’t actually as hard as you might think — in the giant (but tightly-packed) universe that today’s Internet provides, it’s almost hard to find a topic that doesn’t have a community that would be interested in consuming it. I bet somewhere out there is someone who wants to watch a screencast on how to build a classic ASP website using VBSCRIPT if you look hard enough
Step 2: Get (and stay!) Motivated
The Summer of NHibernate screencast series is nearly-complete now and will weigh in at a whopping 15 installments in its entirety when finished. That’s not a sprint — its a marathon . I don’t mean to suggest by any means that all screencast efforts need to be nearly this big or long to be useful. Even the seemingly-ridiculously-short 10-minute content in the screencasts from DimeCasts.net clearly proves that length isn’t a prerequisite for value in screencasts.
But for even a single screencast to be valuable to viewers, some effort is needed in planning, rehearsing, and executing the effort. If you cannot stay motivated by your belief in the value and utility of what you have to offer on your topic, then you aren’t going to be effective in your screencasts. I know that at various times in the production of the Summer of NHibernate series I definitely found myself with a dedication that both waxed and waned at different times. At each of the low-points in my own self-motivation, a different force re-energized me to continue and kept me going.
Step 3: Plan (but don’t lock yourself in)
In my initial post on my ideas for the Summer of NHibernate series, I laid out my original outline for the sequence of installments. This was my attempt to organize my own thoughts about the best way to structure the delivery of knowledge about how to get started with NHibernate. With hindsight it seems safe to say that this initial outline was probably at once both entirely too detailed and also entirely too narrow. The content at inner levels of the outline was probably a waste of my time to document — in the beginning I tried to follow this outline fairly religiously but over time began to focus on the high-level topics and let the innards sort of flow more naturally.
The astute reader will note that this initial outline actually suggested that there would be perhaps as many as five installments (and of course the final count — 15 — will end up being three times that number). Why? Well, partly because of viewer feedback — as time went by I received suggestions for additional topics to cover and I agreed that most of these made sense to integrate into the overall curriculum. But a lot of this extended content actually flowed from my reviewing what I had covered in past sessions and thinking hard about how those past topics logically pointed to others.
To be sure, this is a balancing act since the focus of this series was intended as ‘NHIbernate fundamentals’ rather than ‘everything you would ever want to know about NHIibernate’. Its easy for one topic to lead to the next to the next to the next and before you know it you’re trying to teach everything anyone could ever want to know about NHibernate . But with a little self-restraint and a review of your original plans and goals, you can recenter your focus (yeah, like exploding from 5 to 15 installments is me keeping my focus~! )
Step 4: Invest Time (a lot)
Even though the reason for the creation of the Summer of NHibernate series as a video screencast series was to provide a re-usable training resource for my company’s own internal new hires, none of the time that went into its planning or its creation actually happened on ‘company time’. I have a pretty full plate in my role as Senior Solution Architect, Project Manager, and director of our Software Development Group Patterns & Practices team for my company and the idea of somehow jamming all of the Summer of NHibernate work into that same 40-hour week of responsibilities was just not feasible (since its rarely ever a 40-hour-only week anyway).
Installments for The Summer of NHibernate series are released weekly and so everything necessarily happens on a 1-week iteration. Just for fun, here is a pretty typical chronology for any given week…
Sunday Afternoon (time = approximately 3 hours)
Sunday afternoon is when I usually start to think in detail about what I want to cover in the coming session. The high-level stuff is already predetermined since the prior-week’s session will have ended with a preview of this coming week’s content, but this is the point where I start to think carefully about the topic, the lesson, the best way to present the concepts that will be in the new session and some ideas about how to create some coding samples that reinforce the concepts for the session.
At this point Sunday afternoon, I will usually also do a quick spike or two to test the validity of my ideas about the coding strategy that will be in the session to see if its leading to an effective demonstration of the concepts for the week.
Monday Evening (time = approximately 3 hours)
I walk my dog about 30 minutes four times a day (that may seem like a lot but its my own excuse for daily exercise, so its not without its benefit for me too). When I’m not using the time on those walks to listen to one of the many tech/dev podcasts that I routinely consume every week, those dog walks give me some quiet-time to mull over the content for the week’s upcoming session.
But Monday evening is really my next chance to start actually constructing content for the week’s session. Most of Monday evening is usually spent creating the first draft of the Powerpoint slideshow that will present the concepts for the session. Creating this Powerpoint content helps me also refine my own poorly-formed thoughts about how best to use the coding for the session to reinforce the concepts. If there is time, I may also fiddle with some code Monday night too, but just as often not.
Tuesday Evening (time = approximately 3 hours)
Tuesday evening is final-tweaking time since each week’s Dine + Discuss for our company is held over a slightly-extended lunch hour on Wednesdays (astute viewers will notice that the dates of each of the screencasts make reference to Wednesdays). A lot has to happen Tuesday night, since this is the last pre-presentation-delivery period I have at my disposal. The Powerpoint content is finalized and I perform a run-thru of the coding exercises to ensure that they properly reinforce the ideas for the week’s session.
Wednesday (time = approximately 1.5 hours)
Wednesday is internal delivery day for the content for the session. Over an extended lunch hour each Wednesday, I deliver the presentation and run-thru the coding exercises via multi-point telephone conference and web-based desktop sharing for our software development staff (we use Microsoft LiveMeeting to facilitate this). Our developers are scattered all up and down the northeast coast of the United States both in various Microdesk offices and also from their own homes where a number of our developers are based so these remote-desktop-sharing technologies are critical to enabling our team to operate effectively in its distributed locations.
Wednesday to Saturday (time = approximate 3 hours)
Sometime between Wednesday evening and Saturday morning (depending on how tired I am ), I run through the presentation again in the comfort of my own home, this time using Camtasia Studio to record the presentation of the Powerpoint slideshow and the coding exercises with real-time voice-over by myself. After recording these elements, I use again use Camtasia Studio to combine the recording elements, the intro video, and the credits/outro video into a single video file that I then encode and upload to the Summer of NHibernate website so that its available for download to all. I also upload the video to an internal server at Microdesk so that our own employees can of course download the screencast to view it either to refresh their own understanding or to view for the first time if they were unable to attend the initial presentation live on Wednesday.
Total Time = approximately 12 hours
When you add all this up, you get about 12 hours of additional non-business-work-day hours that I invest each and every week to produce these screencasts (not counting the 1.5 hours of actual work-day delivery of the content to our developers on Wednesdays).
In the end, there are of course plenty of ways for interested parties to produce screencasts; this is just the outline of how I approached the challenges in the process as they confronted me in producing the ones in the Summer of NHibernate series.
Hope this answers some of the questions out there~!
Wow that really takes long time. Thanks Steve for you hard work.
And the quality and content delivered is very clear and well baked.
i know for sure it requires lot of plannig and hard work… thanks man
i have a quick qustion:
what are the podcasts you listen? please share the web site
[…] Session 08: Techniques for Effective Database-Driven Modeling is now availableNisar Khan on Anatomy of a Screencast: What does it take?Michael Moehle on Summer of NHibernate Session 08: Techniques for Effective Database-Driven Modeling […]
Another great session.
Just wonder why you not using the the build-in hibernate.current_session_context_class to manage your session.
You could have another level of abstraction by introducing a generic interface to have a plugable DAO layer design. Just my 2 cents comment. 🙂
[…] – Anatomy of a Screencast: What does it take? saved by juliarose2008-09-27 – A Quick Guide to Screencasting for Libraries saved by […]