Stages of Grief and SharePoint Development
I have been teaching SharePoint 2007 (WSS and MOSS) Development courses for over a year now! Both the excellent Ted Pattison materials and the (getting better) Microsoft Official Cirriculum courses surrounding SharePoint.
The development model for SharePoint customizations using Visual Studio is.... How can we say? "non optimal". We are coding web pages inside of a class library project. That's right. Just sit back and think about that for a minute or two so it sinks in. ASP.NET 2.0 development, with absolutely none of the productivity of a web project to develop it in. "Auto event wire up"? Ha! We are back to a code behind model that literally has the class file sitting on its own with us to wire it up to the ASPX page manually.
While "The Feature" and WSP Solution Packages are there to save the day from a deployment perspective, it still needs us to understand deeply the "12 hive" and TEMPLATE directory to figure out exactly where all the bits and pieces need to go. And then to get it to actually work (since WSS wants to work with a minimum of security enabled). Debugging? Deploy the solution and "attach to process". And the sometimes extra fun of GAC debugging (making sure your PDB symbol files make it to the GAC MSIL directories). The round tripping from code changes to testing can fray the edges of your sanity a bit.
So I've figured out that my role as an instructor in this course is not to teach them all about SharePoint (well, only a side objective), but rather to take them through the Kübler-Ross model better known as the "stages of grief". My role is better described as a counsellor whose objective is to take students over the course of 5 days from Denial towards the path of Acceptance. Refer to Wikipedia, but the stages in our case for SharePoint development are:
- Denial: "This can't be happening. I simply refuse to believe that this is how we have to code an ASP.NET 2.0 application"
- Anger: "Why me? Why was I assigned this? It's not fair!"; (transfer of blame) "Microsoft provided NO SUPPORT at all to the person developing in SharePoint?!? You have go to be kidding me!"
- Bargaining: "I'll do anything. This is my job. Please just a little bit of help! A tool! A utility! Something!!" (ever try to do a BDC Appliation Definition File?)
- Depression: "I'm so sad, why bother with anything?"; "I'm going to die . . . What's the point?"
- Acceptance: "It's going to be OK. I'm not alone. Everyone has to do customizations this way."; "I can't fight it, I may as well just figure out how to do it."
If I could attach a picture to "bargaining" it would my one of my students Jarred. Picture him sitting in front of the computer intently staring at the screen, both hands raised with fingers crossed, thinking "Come on! WORK!!!".
It is HOPE that keeps us going. It is getting better. Lots of great SharePoint MVPs and CodePlex community efforts have provided lots of excellent utilities and tools (THANKS, Ted Pattison for STSDEV on CodePlex). The SDKs are getting revved with better tools and templates. The big hope will be the next version of Visual Studio, where hopefully the underlying development model for a SharePoint web application will be directly supported with ASP.NET 2.0 like productivity!
Provide some comments! Am I alone in this analogy?!?