In 2008, I started on a project to discover the real story behind SharePoint’s inner workings from a developer perspective. The result is the book Building the SharePoint User Experience, and it details, in as much detail as I was able to put in my grossly under estimated 350 pages, how SharePoint works. Not what the documentation tells you, nor how it would be logical that a feature worked, but really what the bits and pieces do when you put them together.
With SharePoint 2010, there’s a new ballgame, but sadly, it’s riddled with bugs that prevent it from being a great platform for building enterprise or even professional applications.
Over the past two years (I’ll skip the relative timing and just say I started with SP2010 development in July 2009), I’ve been building a range of SharePoint 2010 applications. It’s a great experience most of the time, but then, as if out of nowhere, SharePoint will don a clown suit and start giving out balloon animals to everyone and you’re left embarrassed to have portrayed it as a professional and serious platform.
It may just be that I’m working with more ‘enterprise’ projects now than earlier, but it seems to me that the issues I see with SharePoint 2010 are more serious and obvious than in 2007.
Let me give you a few examples.
SharePoint Document Sets Considered Harmful
Here’s a typical example of a great idea that just falls flat on its face due to lousy coding. I’ve made a video to show this ‘feature’ including its fix, but let me still give you the brief overview:
If you are using shared columns, at least columns of certain types, you can never visit the document set settings page after setting up those columns the first time. Well, not if you want to upload Office documents.
It’s not like I’m trying to find troubles either; a client had a requirement to add a lookup column shared across multiple documents in a document set. So, we set it up and were thrilled with the result, all until we started seeing that when users uploaded Word documents, the shared columns would just disappear until we checked out and in the documents manually (without changing anything, mind you).
Here’s the video:
You can view it in on YouTube here.
“Weird, ” I’m sure you say, “but this surely must be a unique and freak scenario, and I cannot imagine anyone would want to share columns in document sets while using Office documents. That’s just crazy talk!”
Well, although I highly doubt anyone in their right mind would say so, let’s assume that someone would claim it is a rare occurrence and take a look at some of the other weird things with document sets.
Share Column Behavior Changes with Number of Documents
The behavior of shared columns change if you have more than a certain number of documents in a document set. From being set immediately, SharePoint hands over the propagation of the columns to a timer job that by default runs only every 15 minutes.
That’s right, just when you’ve trained your users to even grasp the concept of document sets and then meticulously explained how to set up shared columns (and avoid using Office), now you have to tell them to count the number of documents in their document sets to know whether their columns work as you explained or not.
Now You See It, Now You Don’t
During the beta of SharePoint 2010, Microsoft had a feature to download a document set as a zip file, but then, when it came time to ship, they just removed it. I haven’t seen any real explanation for why they wanted to remove this wonderful feature, but regardless, it’s gone now.
But wait, it isn’t really, because it’s still there, you just need to add your own custom action to get it to appear. That’s right, there’s a great feature, right there, that you can’t get to, unless you hire a developer to throw you a new feature, or download one from the web yourself.
I think we’ve let document sets have it for now, but feel free to check out Michael Pisarek’s post on Document Set Limitations and Considerations in SharePoint 2010 (which also, by the way, mentions that document count feature).
SharePoint 2010 Social Features Suck!
I’ve written about this before, on how I think that SharePoint 2010 Social Features are at least one version away from being anywhere near mature. I’m not going to reiterate my criticism, because I trust that you are able to complete the workflow of clicking that link, reading, making up your own mind, and eventually returning here.
In short, however, all the new ‘social features’ of SharePoint 2010 lack a sense of completeness, from the way that events in your activity feed are really a set of events that are completely disassociated and impossible to manage, to the way that profile fields went from ‘easy and intuitive’ to ‘complex and quirky’, to the commonplace notion that the user profile service is the mother of Satan himself, a mother, mind you, that Satan rarely acknowledges due to her just being mean.
Here’s the problem, as I see it. Microsoft needs to get on the ‘social’ bandwagon and portray an image to their enterprise customers that they are ‘with the times’. Of course, anyone will realize that with a three year product cycle, and with at least a year or two with development, the rapid moving social arena will have moved miles down the track before SharePoint can tie the shoelaces on its sneakers.
Add to that the adoption rate of companies, and what Microsoft in practice offers is ‘social’ technology that’s half-a-decade old before users get to use it. What users are now adopting was probably designed either in late 2008 or early 2009.
That poses a massive problem, because if it takes three years to get the technology widely adopted, that means it takes at least that long and probably longer to get serious user feedback, and no, I’m not talking about the jokes that are the early adopters program. What the users then see is old technology which they compare with new and updated social components (Google+ wasn’t even a name when SharePoint 2010 shipped, not to mention when SP2010 social features were designed). By the time that feedback comes back to Microsoft, the next version of SharePoint (codename SharePoint 15, SharePoint 2013, or SharePoint vNext, take your pick) is well underway and at least some of its new features are set.
But hey, it can’t be that bad, can it? If users are now starting to adopt SharePoint as a social platform, even though it is based on three year old ideas, they will let Microsoft know, and Microsoft will put it in the next version, right?
Well, assuming they would, we’re still a couple of years away from the next version release, at best perhaps 12-15 months. That means that there’s still a lag from when users give Microsoft feedback and the time new features even make it to a shipped product. Even then, organizations will likely take a couple of years to adopt, and users will still see a three year gap between versions and that’s far too long in a marketplace where social software evolves as rapidly as it does.
So, What’s the Solution?
Microsoft certainly isn’t able to move quickly enough to compete with much more agile and nimble companies. Don’t get me wrong; that’s not a bad thing. After all, we expect Microsoft to support missile defense systems if required, and we definitely wouldn’t ask Facebook to do the same. Microsoft’s role is to provide enterprise ready software, not drive innovation in the social arena.
Microsoft, when trying to keep up with the times, seems more like an elderly person wearing hip-hop clothes to appeal to their grand children.
Speaking of which, here’s another intermission in the form of a video, and yes, this is exactly how I see Microsoft on the social arena.
Ah, but I mentioned a solution. Well, here’s my suggestion: Microsoft, stay away from things that move too fast for you. We don’t need to have more aging technology released as the latest and greatest. Leave innovation to others, your ISVs, your younger competitors, and get back to delivering stable and enterprise-ready software and platforms, because right now, you’re failing on both.
Bah, You’re Just Stirring The Pot!
I’ll gladly admit I have a tendency to blow things out of proportion to make a point, but I’ll also admit that I’ve grown far more disappointed with SharePoint 2010 than I ever was with SharePoint 2007, and that’s despite evolution supposedly being a good thing.
The really sad thing is that most of my quarrels is with SharePoint Server. The horrible Publishing feature, which is a giant oil supertanker when all you needed was a can of gas; the fundamentally flawed social features (should be rebranded as ‘social features your grandparents would love, if they understood it); the buggy document set implementation, and although I’ve only mentioned these things here, the list is far longer.
Microsoft mixes the roles of SharePoint the platform (WSS/SPF) with SharePoint the Product (MOSS/SPS) and can’t seem to get either quite right.
The platform is great for building applications; it really is. However, as a product, it lacks virtually everything that makes it sellable, including a price. Granted, there are… features… in SharePoint the Platform too, including what I discovered just the other day, that adding web parts to a page programmatically breaks down after adding the fifth web part, but at least I’m dealing with something built for extension and modification.
The product fucks up everything as a platform; the more you build on top of it, the more you hate how flawed it is. However, it is easily sellable with all its features and it does have a price, because sales people have to eat too. It is also infinitely demoable and you can train any monkey to show off spinning bells and whistles. If what you want is what you get out-of-the-box (including the elderly social features), then getting the server product is great. If it’s slightly off what you want, don’t expect it to be as easily modifiable as SharePoint the platform.
I would like… No scratch that, I would love it if Microsoft could completely separate out the ‘server’ features. Sell it out, split it up into less cumbersome products, but whatever you do, don’t keep adding more and more features that destroy the image of SharePoint to the monolith that is SharePoint Server. I know it’s the SharePoint Server product that brings you money, but you’re killing off a great platform by trying to be everything for everyone and succeeding only in being consistently worse every time. Except to those selling SharePoint, of course, because it’s a lot easier to sell something huge once than selling a small thing ten times, but that’s a completely separate rant.
I’m not holding my breath, though. I anticipate that Microsoft will throw in a new page worth of features into SharePoint Server 2013 (or whatever SharePoint 15 will end up as), making it even bulkier and harder to use than today.