I’ve been watching an interesting discussion about the Shortage of SharePoint Skills based on a blog post by Nadir Kamdar and followed up by Doug Ware. The conversation has been brewing for a few months and I wanted to provide five of my thoughts on how easy or hard it is to find SharePoint skills.
First, SharePoint is a big product. It’s a product that no one person can really expect to know completely. I run in some circles with really smart folks and folks who’ve been on SharePoint for a long time. We’ll all admit that we learn something new about SharePoint all the time. For some of us it’s daily, some of us it’s weekly – but we’re always learning something new about SharePoint. Here’s an analogy that I think helps the business to understand how they have to think about SharePoint as a platform.
The other platform most organizations have is Microsoft Windows. Sure it’s an operating system but it’s also a platform. The organization doesn’t expect one person to know everything about Windows. Sure mid-sized and smaller organizations ask one person to know everything but everyone knows at some level that this isn’t realistic. There are specialists around Active Directory including Kerberos and Federation. There are specialists around storage including quotas, DFS, file replication, quotas, file classification infrastructure, etc. There are specialists around networking including DNS, DHCP, etc.
Expecting any one person to know every aspect of Windows deeply isn’t really realistic. There are a handful of people I know – including the Microsoft Certified Masters for SharePoint that come close to this but in general expecting to find that one expert isn’t something every organization can expect. Instead of hiring one expert, hire a few.
Second, Build Don’t Buy. Rob LaMear of FPWeb.net commented (in a Linked in group) that FPWeb.net “bake” their own engineers and developers. I’ve pretty universally recommended this strategy to customers for the last several years. I generally offer a few hours a week to review their new SharePoint folks progress whether that’s a new developer or IT Pro. It works out well because they get an employee that’s well trained – over time – based on the same apprenticeship model that’s worked for hundreds of years. I’m not saying that you shouldn’t look to hire SharePoint folks if you can find them – I’m saying, I don’t expect that you’ll be able to find them. You have to be prepared to build your SharePoint professionals when you can’t buy them.
Third, you don’t need a developer for every SharePoint project. When all you have is a hammer everything looks like a nail. That is, a developer always wants to develop. Ignore the business need. Ignore the platform’s capabilities. They want to develop. This isn’t always in the business’ best interests. I advocate the Value of Imperfect SharePoint Solutions. I believe that you can get a ton of value with out of the box functionality. SharePoint is a platform. Find the right resource to leverage the platform – that’s often a business analyst.
Fourth, SharePoint is more restrictive than ASP.NET. I sometimes use the Statue of Liberty as an illustration about developing for SharePoint. I use this illustration because SharePoint is all about leveraging what you’ve got. If you look at the Statue of Liberty there are really three distinct layers. There’s a relatively large star shaped platform that the pedestal sits on. In the analogy this large star platform is .NET – or more specifically ASP.NET. There’s a ton you can do – but the relative height or what you can do out of the box is relatively small. In other words, .NET is broad but not deep. The pedestal is SharePoint. It’s relatively speaking tall. In fact in the Statue of Liberty’s case the pedestal is roughly 40 percent of the total height – think about that 40% the total height. On top of this sits Eiffel’s infrastructure and Frédéric Bartholdi’s sculpture – what everyone thinks of as the Statue of Liberty. In the analogy the sculpture is the work that you build on the SharePoint platform. It’s got all of the quirks, intricacies, and wrinkles of the business problems that it solves. When you compare this with something like the Eiffel tower which stands more than 4 times the height of the Statue of Liberty you could say that you want the flexibility to build an Eiffel tower.
However, you’ll note that the architect (or structural engineer if you prefer) for both projects was Gustave Eiffel. Both are appropriate at different times. It’s true that SharePoint is more restrictive than ASP.NET. However, it’s also true that for workloads that SharePoint is good at, I can build a solution faster, cheaper, and I dare say better – than I could build in ASP.NET – because I have a great advantage in the platform that I’m building on top of. I don’t have to figure out document storage, versioning, workflows, navigation, security, etc. I get to use all of that stuff for free. All I have to do is build on the platform.
Fifth, Training is possible! I have spent a lot of effort over the last few years to augment the training opportunities that specialized training companies like Critical Path Training and Mindsharp offer with more standardized offerings that anyone can get. I’ve released the SharePoint Shepherd’s Guide for End Users including corporate licensing options and coming soon I’ll have classes that any Microsoft training center can teach. I was indirectly involved in Microsoft Learning’s 10175 course for SharePoint Development (corresponding to the 70-573 exam) and was the lead author for Microsoft Learning’s 10232 course for Professional SharePoint Development (corresponding to the 70-576 exam). Yea, the MS learning courses are for-pay resources but they’re scalable – you can get them from your local training provider. Historically the SharePoint courses from Microsoft hadn’t been very well regarded – on the developer side I can say that they’re much better. For that matter I can say that the exams are more focused on important skills rather than minutia as the 2007 exams were sometimes accused of. I also spent a great deal of time working with Microsoft Patterns and Practices on the SharePoint Guidance – free guidance on the best way to build SharePoint applications. In 2008, I helped launch www.mssharepointdeveloper.com which has been updated for developing on SharePoint 2010 – all free content on how to develop with Visual Studio 2010 and SharePoint 2010. I know the folks that worked on the exams and courses on the IT Pro side as well – it is solid content like wasn’t available for SharePoint 2007. I’m also working on some other courses that will make their way out to the public in 2011 that will cover more specialized workloads for SharePoint.
I should say that I take issue with some of Nadir’s initial post because there are some technical inaccuracies and some things which are misleading. There’s a focus on some of the details about navigation. The platform is actually quite extensible in this respect. It supports multiple navigation providers and any menu control that works with navigation providers. I’m not saying everything is possible out of the box but the areas he picked on are quite easy to extend. That’s what’s great about the SharePoint platform – it is extensible.
Your “developers want to develop” comment resonates with me. I tell my customers that they should recognise that every *day* of custom dev adds at least $5000 to the TCO of the project, if you account for additional project management, test, deployment, config management, perf and security review, support, maintainence and so on. I tell my clients that they should be justifying, with real business drivers, every single day of custom development.
Great post, Bob! On the ‘build, don’t buy’ concept, what people need to remember is that developing SharePoint skills is very easy in comparison to understanding your internal systems, the nuances of your line of business applications, and how to navigate your organizational politics — all things that would slow down (and increase cost of) an outside developer.
Not to knock some fantastic consultants out there, but overall you should manage to the strengths of your team and allow those who are capable of learning SharePoint to step it up and own the environment.
Ben, your argument is very misleading. You are implying custom dev costs more, but you’re ignoring time spent working with SharePoint to get it to do what the client needs. Sure, SharrPoint offers “out of the box” functionality that could save time for various portions of the site, but more often than not, customization above and beyond OOB functionality costs significantly more in SharePoint than it would to implement in custom dev. Every long-term cost analysis I’ve seen in regard to SharePoint has lead to a very significant loss. Those suggesting otherwise, in my experience, are either lying to get more high-paid work, or they’re simply blinded by their own cognitive dissonance.
I have exhausted myself using .NET programmers on SharePoint projects. It’s a battle the entire way. They do everything the hard way and want to develop everything from scratch, even if they already know a good bit about the platform. It’s a mentality issue, not a skills issue. And to add insult to injury, get a manager that lets them do it that way and you end up with monstrosities of maintenance and major obstacles for upgrading. It’s just not worth it. We don’t need developers, we need consultants and business analysts who can code if they need to. The fact that most all of the job ads call for developers proves that hiring managers are mis-managing their SP environment.