At Tech-Ed this year I felt a new vibe from the people I talked to. This feeling has been there before but this year it was even more pronounced. It was the feeling that your brain just couldn't take any more. In the past we used to come out with a new wave of stuff every 3-4 years but now with various libraries and CTP and CodePlex projects I'm being hit with "cool" new stuff nearly every day.
The problem is... I don't have time to look at all this stuff, much less figure out how to use it or what to do with it. I'm glad people are innovating and doing cool stuff, but I just want to get my work done. The reason I'm saying all this is that I have been contributing to the intellectual backlog in your brain. Personally, I'd like some of your mental cycles... is that ok?
Actually, rather than just fill your head with random stuff, I want to help you get your work done quickly and correctly. I recognize that most of you are not specialists. You have to write everything from the web page to the SQL scripts and workflows and web services and on and on it goes. The funny thing is that here at Microsoft most of us *are* specialists. We focus on a product or area and try to grow very deep in that area. We often get together with our specialist buddies and geek out going very, very deep in certain areas. But I have the feeling that the vast majority of people who we speak with just want to get the project done. Who can blame you? I have a life outside of work too!
Well... I was thinking about this the other day and it seemed to me that we have been guilty of scope creep. We asked for a portion of your brain and we just kept asking for more and more. What we need to do is to create learning that is scoped for you. You want to learn about web services? Why should we ask you to plumb the depths of WCF? Why should we expect you to ascend to the heights of REST? Good grief! All you want to do is create a simple web service, a syndicated feed or a LO-REST service that is read only and available to anyone on the web.
It occurred to me that this is like a video game. I like playing video games and typically you start out with a pretty simple level, sometimes even a training level, that helps you to develop the skills you will need throughout the game. You have some simple challenges, you acquire skills, powers and weapons that you will need to tackle the harder stuff. Eventually you take down the big bad boss on the highest level.
Isn't that what learning all this technology should be like?
What if we had something that scoped your learning
Web Service Developer Level 1
Knows the basics of WCF (contracts, service descriptions and simple security for intranet scenarios)
Web Service Developer Level 2
Adds Web Http programming model (REST) and Syndication
Web Service Developer Level 3
Adds duplex, advanced security, etc.
Then we could create scenarios and tell you what the scope of the skills required would be kind of the way that home improvement shows rate the difficulty of home repair jobs
Scenario: Intranet SOAP Web Service - requires Web Service Developer Level 1
Scenario: Internet ATOM Syndication Feed - requires Web Service Developer Level 2
Then if you just want to get the job done, you find a scenario that maps to the job you have to do and you get an idea of the skills, concepts and techniques that you will need to know or learn to get the job done.
Now you don't need to feel like you have to read that 300 page book to get your job done (after all nobody really reads all 300 pages do they?)
Really... we can't have heads exploding around here. It's far too messy.