As it happens, I've just returned from the Gilbane Group's conference (in partnership with CMSWatch) on Content Technologies for Non-Profits and Government Agencies. My role at the conference was to be a panelist discussing "Everything You Ever Wanted to Know about SharePoint 2007." While this is a pretty broad topic, given only the hour for the discussion, the format allowed each of the three SharePoint consultant 15 minutes to discuss what they liked and disliked about SharePoint; in effect, we could discuss how SharePoint fit or didn't fit into various business scenarios. The other two panelist were Randy Woods, President of non-linear creations and Russel Stalters, Chief Technology Officer of Applied Information Sciences. Each consultant primarily focused on Microsoft Office SharePoint Server 2007 (MOSS), but a great deal of content could equally apply to Windows SharePoint Services (WSS), since MOSS incorporates everything that is WSS.
I can't take credit for either Randy's or Russ' presentations, so I've not provided their comments herein. However, I am providing the list I presented during the panel, with a summary of my verbal comments. Since a single post would be pretty long, I've broken it up; this post contains the "what I like" list and the subsequent post will contain the "what I don't like" list.
What I like about SharePoint
- Accessible to a wide range of skill levels
By far, one of SharePoint's strengths is ease of use. While some may disagree, the real determining factor (for me) is the tight integration with the desktop. When any application pushes its features down into the tools that most people feel comfortable using, like Office, you immediately make it accessible to just about anyone, whether or not they they know how to use the enterprise package or not. In SharePoint's case, whether you're using Office 2003 or 2007, you have a fairly rich set of SharePoint features embedded right inside the Office products. For example, using the Research task pane, you can execute a search against SharePoint and return results from your intranet or Internet site right inside of the Office product you're using. Want to create a new collaborative workspace? All you have to do is open the Shared Workspace task pane and create one. The functionality surfaced is limited by the rights any given user may have inside of SharePoint, but the point is that users don't have to leave the comfort of Office to use SharePoint.
- Flexible and extensible
From a developer point of view, most software packages don't live up to the promises most manufacturers make. This, in part, is why I think open source is so attractive -- if the package doesn't operate the way you want, just change it. While Microsoft is not rushing out and posting SharePoint source code to SourceForge, they have created a pretty robust framework that .NET developers can extend to meet needs Microsoft didn't anticipate. For example, Microsoft created a "feature" framework that allows developers to add all sorts of extensions to SharePoint and surface those extensions directly in the out-of-the-box administrative or user interfaces. Do the out-of-the-box workflows processes not fit what you want, simply create another one. Microsoft built SharePoint workflow on top of Windows Workflow Foundation (another fabulous framework) and provided both developer centric (through Visual Studio) and power-user centric (through SharePoint Designer) interfaces to allow for customization and extension.
- Easy to own and operate
At a very basic level, a SharePoint-based web site is just like any other database driven web site. This, of course, is a fairly big over simplification. However, from a maintenance perspective, maintaining SharePoint is similar to maintaining any other web site, driven by a database. To keep SharePoint healthy, just follow the rational steps you've hopefully already established in your company to keep other web-based applications healthy -- monitor the site, monitor the database and make frequent backups of both. Now, maintaining the applications is one thing, but what happens when something bad takes place -- like a drive failure or, worse, a server failure. The answer is pretty much the same as other web-based applications -- spin up a new server (or drive), re-install SharePoint (if necessary) or restore the databases (that you've of course backed up) and all should be right with the world. There are certainly lots of moving parts to SharePoint -- like the search engine, the crawler, various data connections and the like -- but Microsoft has done a pretty good job of providing out-of-the-box maintenance tools like the backup utility in Central Administration and STSADM (and who doesn't love command line utilities in Windows...). Finally, Microsoft provides a Microsoft Operations Manager management pack for SharePoint to enable users of MOM to monitor all of those moving SharePoint parts -- hopefully avoiding a more expensive adverse event.
- Connected to core Information Worker (IW) toolset
As I mentioned earlier, all of the Office products have a built-in connection with SharePoint. Obviously, Microsoft wants to encourage users to migrate to Office 2007, but even older Office versions are compatible with SharePoint 2007. Microsoft was kind enough to author a "fair, good, better, best" document, which describes how each version of Office "plays" with SharePoint 2007 (and SharePoint 2003). They clearly have more insight into their own product than I do, but it suffices to say that most users can get a great deal out of SharePoint without ever looking at the web-based SharePoint interfaces Microsoft created for the product and a good deal of that functionality is available in Office versions most users already own. In addition, Microsoft took additional time, in this version, to ensure cross-browser compatibility -- using Firefox or Safari gives you the same or a very similar experience as using Internet Explorer (yes, even on a Mac).
- Large community of developers
One of the major draws of open source is an extremely large community of developers all contributing tasty bits of code to some common application. To their credit, Microsoft has certainly encouraged that same sort of collaboration around their product sets and this is especially true of SharePoint. A quick look at CodePlex and you'll find all sorts of SharePoint extensions, in addition to general .NET controls, extensions and applications that one could easily integrate with SharePoint (NOTE: when a developer uses the word "easy," it usually means that they could do it given time and space, but it doesn't necessarily translate to "cheap" in dollar terms). Often, we'll suggest that customers check out these community sites for code that may provide the needed functionality or, at least, get them started before beginning a new development cycle; there are lots of well-written and valuable components contributed by this developer community and organizations large and small can take advantage of the collective efforts as an answer or a good beginning.
- Publicly available support documentation
Interestingly, one of the disagreements the panelists had was on the availability of documentation for SharePoint. This was referring to both end user and developer documentation. To his credit the individual who made this statement had slogged his way through the Beta product, where documentation is typically pretty light; it's not uncommon to have CHM files be filled with statements like "document is not complete" or "need to complete content." That said, I think most folks will find that the current set of documentation on SharePoint is fairly robust. Just looking at what's available on MSDN alone, most developers should be able to find what they need. Of course, there are always holes, since creating documentation for such a "large" product is no easy task. However, there are also loads of non-Microsoft sourced books on SharePoint; some of them were written in the Beta time frame and, as a result, may have errors due to changes between beta and Release to Manufacturing (RTM), but the bulk of the content should be relevant. The combination of Microsoft and non-Microsoft source content really provides a very deep knowledge well upon which to draw as you start your own SharePoint project.
- Base platform included with server OS
As I mentioned earlier in this post (and for the benefit of folks new to SharePoint), there are really two distinct products call "SharePoint" -- Windows SharePoint Server (WSS) v3.0 and Microsoft Office SharePoint Server (MOSS) 2007. WSS is the base collaborative platform that provides document collaboration, basic document/list management and the underlying base feature set for MOSS. To Microsoft's credit, they provided WSS as a free add-on to the Windows Server operating system. Even though WSS does require a database, Microsoft ships WSS with SQL Express, which is a "lite" version of the full SQL Server 2005 product. What this means is that anyone who wants to use SharePoint simply needs to have a licensed copy of Windows Server to begin taking advantage of SharePoint collaborative features.
- Broad partner community
Most technologists innately understand that no software package can solve every business problem. In fact, most packages require some amount of customization or extension to be truly useful to organizations. SharePoint is no exception. After this realization, most companies begin to look to the vendor of the software package to provide these extensions, write them in-house or hire consultants to make the changes. The alternative is to turn to partner communities (companies that sell add-ons for a given software package) for assistance. One of the great assets that Microsoft has in the marketplace is an absolutely horde of ISVs (Independent Software Vendors) that provide add-ons to a great number of their packages. SharePoint, by proxy, benefits by having this broad ISV support. Do you need a specialized backup solution? Look to AvePoint. Do you desire an integrated and holistic management solution? Look to iDevFactory. Wish you had a web part that enabled your users to change their password through the portal? Check out Bamboo Solutions. In fact, there are tons of vendors that provide all kinds of solutions that bolt on to SharePoint. Some of these solutions enhance existing functionality, like K2's workflow solution or Mondosoft's Ontolica solution for search. Other vendors have created tools to cater to specialized needs like employee performance management from Jakoba Software (DISCLOSURE: I am Jakoba's Chief Technology Officer). Beyond commercial solutions, Microsoft occasionally contracts with system integrators to product add-ons they often release for free. A good example is the DOD 5015.2 records keeping add-on.
The list I've provided above is just a few of the areas where I believe SharePoint really shines as product. SharePoint is certainly packed with lots of features that I haven't mentioned here, but this list represents the majority of what I've found is most valuable to customers.
In a follow-up post, I will give you the counterpoint to this list. Interestingly, some of what I've listed here as strengths can also be weakness, as in the broad partner community, but that is for a different discussion.
I'm interested in your thoughts. What do you think are SharePoint's greatest assets? What makes the platform valuable to your organization or what do you see as its best features?