I’m in the training room this week delivering a course and during the breaks I’ve been catching up on my blog reading. I cam across this post by John Montgomery about the challenges involved with keeping the feature set (or concept count as he termed it) low in a tool like Visual Studio Express in order to keep it approachable.

The problem got me thinking about how you could create an inductive experience for non-professional developers which allowed them to learn one feature at a time and build upon their previous experience. The Guidance Automation Toolkit is a piece of technology allows enterprise developers step through a series of steps in a recipe to build something that you would find in your typical enterprise system, but I wonder if this, or something like it could be used to “team my dad how to cut code”.

What I am thinking is when you download the product on the left hand side of the screen you would have a “Lessons” tool window which lists out the lessons that are currently available to you. It wouldn’t give you any options to do lessons where you haven’t established that you have the requisite skills (so as not to overwhelm folks). As each lesson was completed it would be evaluated against a dependency graph of lessons to determine what new lessons could be made available – the graphic below illustrates what that map might look like.

Each lesson that is completed is illustrated in green, and lessons that are available to be completed are in orange. The red ones are ones that based on the dependency map would be too much to take in at that particular point in time.

LessonMap

The lessons themselves would be for fun/useful things as John suggests and rather than having a static lesson map the lessons could be out of the web somewhere and could be expanded overtime. When you select a lesson it would download a little VSI file and run it and that would give you the starting point for the lesson.

Eventually the system could be opened up and third party content publishers could build lessons which snap in to the overall lesson map

Of course – you could always just implement clippy.