Next Generation Developer Training

I've been (in some manner) involved in the software developer training business for over 10 years now. Over the past 3 years however, I've really been questioning the value and purpose of classroom training for software developers. So has Don Box. The internet has had a lot to do with that I think and the # of developers taking a week off work to sit in on a class has dropped in recent years. There was a buzz about elearning for awhile - but it hasn't really gone mainstream - and you hear about blended learning now too.
Vendor-based classroom training typically amounts to not much more than reference manuals. A component is introduced, a few demo's or scenarios on how you can use it - and a lab to follow. About 80% of what I see in these classes I could find on google. And the best part about google is that I can find it when I need it....just in time, on the job. After I learn something on google, I get to use it in a real life scenario so absorption is pretty high that way.
Classroom training has the advantage of taking you outside of your typical day (usually for a week) and forces you to sit and spend some quality time with some new technology on a grand scale. The problem with googling for small bits of information is that you miss the bigger picture and a full architectural understanding of how best to accomplish something. The instructor is an important part and can make the difference between a good class and a great class. But the problem remains with traditional training in that they are really just showing you how to swing their hammer. There is only a small percentage of leeway when an instructor can add extra value above and beyond the curriculum. The good ones do, but there is never enough time.
Several months ago we took a hard look at what people really needed and what kind of value we could bring to bear above and beyond what people could learn from reading the online help or googling. That extra value is of course the experiences of the instructor and the resulting set of best practices....stuff that you rarely find in any book.
The problem of course with relying on an instructor to make the difference is that sometimes they don't. And sometimes their experiences are different than others. You end up with a very inconsistent delivery.
So we decided to create new courses based primarily around the best practices captured from the experiences of several developers. We still cover some fundamental tools & techniques but quickly move beyond that into the best practices of how to apply that. The idea is to have students spend less time on things they can learn on their own time. How often to you get to spend a week with an expert who has been using a new technology for a few years? The idea is to maximize the time for that week.
We haven't relied on just our own experiences either. We've decided to lean heavily on the community in this regard, in particular, the content coming out of the MS Patterns and Practices Group. The culmination of all this work was the first delivery of our new courseware based on "Best Practices" a couple of weeks ago. It was also John Lam's first course with ObjectSharp. I had the opportunity to talk to a few students, including a couple of our own instructors who sat in on the course, and I even managed to drop in for about 30 minutes on the last day.
The comments are great on the evals too. Our evals are always good, but these evals were awesome. "The most professionally run course I have ever taken." "The best course I've ever taken". Our salesperson told me that she even had a student ask in the middle of the week if we were going to be handing out evals because he wanted to make sure he had an opportunity to comment on how great the course was. I'm really proud of what we accomplished but I'm even happier that we've touched a nerve with our customers and found a way to maximize the value to them for taking a full week out of their lives. I can't wait until I get to teach one of these new courses.

Too late for Windows Update

I took the train to Montreal to see DevTeach Conference on Monday Tuesday. I managed to get a train without internet access so I took the opportunity to do a long time coming repave of my laptop. I installed from the Windows XP Pro SP1a msdn dvd. I knew I'd have a ton of Critical Updates to get from the Windows Update site when I got to my hotel, but at least I wasn't installed from the Windows XP gold 1.0 disc.

So I get to my hotel room and there is something like 20 critical updates to do. After I get through those there are some more iterations of recommended updates and more critical updates (on the the recommended ones). It was about an hour or so before I had my machine in a nice secure state......but the whole time I WAS CONNECTED TO THE FRIGGIN INTERNET.

I'm still uninstalling and cleaning virus crap off my VIRGIN XP install that I got while connected to the internet waiting for critical updates to secure my machine.

But the problem is that it's too late. What we need is a roll up (Windows XP SP2) but even that is going to get stale. I think what MSDN needs (or maybe Technet already has this) but a roll up of offline windows update stuff that comes out monthly. An Offline Windows Update of all critical updates that I can run on a virgin machine without connecting to the internet to get them. Isn't there some wishlist address at MS.COM I can send this too?

BizTalk 2004: New Training Course for Developers

We now have a course available for BizTalk 2004 in our Toronto office. I get so many of these requests about BTS2K4 these days. Matt Meleski, who is our BTS guru is teaching the first one on July 5th. Matt's been using BTS 2004 right throughout the beta.  BTS has improved dramatically over 2002, it's quite amazing. I hope I have a chance to sit in on part of it.

TechEd 2004 Sesion Slides & Videos Available Online to Public

The site doesn't yet contain everything but things are trickling in.

.NET Rocks: Test Driven Development

I'm doing the .NET Rocks thing tonight regarding Test Driven Development with John Alexander. Now where is my harp.

Update: This show is now available for download. Click Here.

Smart Client Deep Dive

Myself and Adam Gallant delivered an MSDN Deep Dive last week about developing Smart Client applications. I covered the overview & secure data access sections. The samples and IssueVision (1.0 C# & VB) along with the slides are available over here. Thanks to those who came out.

Update: If you want to take advantage of getting this stuff (and more) on the DevDays CD, you can fill in the form here.

Data Driven Development

So we have Test Driven Development and Model Driven Development or Design by Contract (similar perspective). But in the past, I've been a fan of Data Driven Development. This is a technique I haven't had the pleasure of using recently....because it relies on you building new applications with new databases.

What is this technique you ask? Well for me it is designing the data model first. In the early days of Client/Server, PowerBuilder and ERwin were my tools of choice. New applications. New databases. My design process (and that of many of my associates) was not so much to design a database but to document the data that existed in the organization - and do that in 3rd normal form. ERwin still stands as one of the best modeling tools ever because it actually made the job of coding up a database schema easier and faster than any other alternative. I could also use my model throughout the entire lifecycle since it did an excellent job at full round trip engineering/synchronization.

One of the cool features of PowerBuilder was your ability to annotate your database schema with UI hints. So you could say that a given column in your database should by default be shown as a checkbox, and that checked should be saved as “true“ and unchecked as “false“ - or whatever weird thing your DBA said it had to store. Whenever you designed a screen with that column, bam you'd have it the way you'd expect - as a checkbox. The downside of PowerBuilder's datawindows of course was that the data store/entity/container was quite pretty tied to your database and they made no attempts to hide that fact. But boy, productivity was really high - although I was producing tightly coupled, loosely coupled code :( .NET let's me build better code now, but productivity is still lacking.

At TechEd a couple of weeks ago, I stopped by the DeKlarit booth for a demo of their product by their lead architect Andres Aguiar. I was happy to see a tool that builds upon the Data Driven Development process. Of course, you don't have to start with an empty database, but this tool does an excellent job of making your job easy when starting from scratch. Andres promised to send me an eval so I can play with it some more to see how it works with existing databases but this tool so stay tuned. I could easily see this tool paying for itself in a matter of a couple of weeks.

As for ERwin, I'm still a fan although it really hasn't changed much in the past 10 years. I remember the first copy I had fit on a single floppy. So did the 200 table model I created with it. I was using LBMS System Designer who stored my model in some kind of 10mb black hole and took 10 minutes to generate a schema. When I first installed ERwin, I had it installed and reverse engineered by LBMS model - and forward engineered to from Oracle to SqlServer inside of 10 minutes. I couldn't believe the schema generation took 20 seconds compared to LBMS at 10 minutes.

Outsource Proof Your Career (with Tom Peters) Hint: think excellence

Tom Peters is giving a live meeting webinar on how to Outsource Proof Your Career on June 30th from 12pm - 1pm est. Click that link to register. Tom's even got a blog. Too bad about the no RSS feed thing.

Join Host Tom Peters, Author, Business Guru, and Founder of the Tom Peters Company and Special Guest Daniel Pink, Author of Free Agent Nation

Seminar Overview  
Tom Peters has generated international attention for his "rants" about outsourcing.   Dan Pink has traveled to India to talk to the software programmers who are "stealing" U.S. jobs.  Now Tom and Dan join     forces to offer a clear-eyed, hard-headed look at the most controversial business issue of our day: the offshoring of U.S. jobs to low-wage countries.

Ten years ago, Tom predicted that 90 percent of white-collar work would disappear.  Now his predictions are coming true, accelerated by hundreds of thousands of talented overseas workers connected to the United States by fiber optic lines.   What does this mean for your future?  Tom will answer that question by giving you a reality check.

Then Dan will offer an early sneak preview of his upcoming book, which elaborates on that answer.  He'll describe how outsourcing is just one of three powerful forces that are reconfiguring the landscape of work.  And he'll show how those forces are moving us from "high tech" work to work that is "high concept" and "high touch."   Mastery of these "high concept" and "high aptitudes," he'll argue, will now mark the fault line between who gets ahead and who doesn't.


  • Where outsourcing is overhyped – and where it's underhyped
  • The two kinds of work that will increasingly define the U.S. economy—and offer individuals a shield from outsourcing.
  • The six essential aptitudes that white-collar workers will have to master to survive on this new terrain. 

This session will include a lively questions and answers session where Tom and Dan will take your questions...Live.  Don't miss this opportunity to hear the Ur-guru.

TechEd (Day 3): Hands On Lab Manuals downloads available to the public

No need to have a TechEd commnet password. You can download ALL the pdf's for the plethora of topics. Some good stuff to see how the newly announced stuff (Team System, etc.) works.

Update These links are broken, give this a try:

TechEd (Day 1): New Sessions on Visual Studio 2005 Team System

A bunch of sessions that were formerly named “TBA” are really about the new Visual Studio 2005 Team System.

  • DEV200 General Session: Managing the Software Lifecycle with Visual Studio 2005   Halls GH
    Tuesday 10:45
  • DEV300 Visual Studio 2005 Enterprise Tools: Software Project Management  Room 20D
    Tuesday 1:30
  • DEVC36 Testing Visual Studio 2005 Applications Using the .NET Framework  Cabana 06
    Thursday 10:15
  • DEV302 Visual Studio 2005 Enterprise Tools: Building Robust and Reliable Software  Room 20D
    Thursday 1:30
  • DEV303 Visual Studio 2005 Enterprise Tools: Enterprise-Class Source Control and Work Item Tracking  Room 20D
    Thursday 3:15
  • DEVC39 Extending Visual Studio 2005 Team System   Cabana 06
    Thursday 5:00
  • DEVPNL4 Enabling the End-to-End Solution Lifecycle: Microsoft Partner Panel  Room 20D
    Friday 12:15
  • DEV356 Visual Studio 2005: Managing the Enterprise Build Process with MSBuild  Room 31ABC
    Friday 1:00