13 June 2007

Is SharePoint the "Right" Solution - Part 2

In a previous post, I described a panel that I participated in where each of three consultants presented what they liked an didn't like about SharePoint. In that post, I gave you my "likes;" in this post, I'll continue the discussion with what I think are SharePoint's disadvantages or shortcomings. While the product is quite good, there are definitely areas where it could improve -- some of those areas have more to do with the way Microsoft markets the product than the product itself; none-the-less, they are disadvantages.



SharePoint Disadvantages


  • Accessible to a wide range of skill levels
    You'll notice that this particular bullet point is listed twice -- once on my "like" list and once here. The reason for it appearance here is simply this: SharePoint is almost too easy to setup, configure and use. Normally, this isn't a bad thing, but in SharePoint's case, it has led to trouble at many companies. At a recent SharedInsights conference, I had the opportunity to speak with a number of professionals who were interested in SharePoint. One of the attendees described a situation in his company where a non-technical, non-IT employee downloaded the SharePoint bits and spun up his own Windows SharePoint Services environment. The issue isn't so much about the actual instance of the WSS server as it is a matter of management; since this installation was done with out IT's knowledge, it's impossible to control and ensure operational integrity. Most of us, I'm sure, have either used a tool or created one that was widely distributed in the general population and provided great value, but did not come with the official support of a larger corporate group. These tools, if they're good, quickly become "mission critical," and a nightmare to support if something goes wrong. My own experience was with a really useful expense reporting system built in Access -- it was created in my division, but as folks from other groups saw it, they also wanted to use the same tool. In much the same way, SharePoint is like the expense reporting application -- pretty easy to use and distribute, but it can lead to headaches for groups responsible for keeping the technology lights-on as it were.

  • Rigid architecture
    Microsoft has made great strides in providing a fairly flexible architecture that is both easy to use and able to be extended to fit individual organizational needs. Unfortunately, this flexibility isn't universal in the product. Very key areas of the tool are horrifically rigid. To make certain kinds of changes, you're required to modify, what is in effect, the based product interfaces (all of which could, as Microsoft constantly reminds us, be changed through a service release). The best example of this rigidity is the out-of-the-box interfaces for adding, editing and deleting list items. As you might already know, everything in SharePoint is a list. As such, these contributor interfaces are quite important to the product. Let's take an event list. Try scheduling an event for a time not on a 5 or 10 minute increment -- say 7:11 am/pm. Now, this may seem trivial, but I know of a baseball team that recently signed a deal with 7-11 convenience stores and now start their night games at 7:11 p.m. If that baseball team wanted to use a SharePoint event list to keep track of all of their games, they'd have to modify the out-of-the-box list item entry interface to insert additional values in the minute drop-down box or change the drop-down to a text box. Think this is an unrealistic example? Consejo just finished delivering an intranet solution, on SharePoint, for an MLB team (thankfully not the one in this example). Granted, if the solution were an Internet solution instead of an intranet solution, the team could have simply written a custom field control (great flexibility), but the out-of-the-box interfaces for these more internally facing solutions simply aren't as flexible... which brings me to my next point....

  • Really great at too little
    I've always heard that Microsoft identifies commodity features in a space and produces products that meet 80% of those needs. While I can't take credit for this position, nor do I think it's entirely accurate, I do see the wisdom in it. SharePoint, in particular, suffers from the Jack-of-all trades problem: it isn't really good at any one thing. It's document management features aren't as good as Documentum. It's web content management features aren't as good as Ektron (or even the product it replaced -- MCMS 2002). The wiki and blog templates that ship with the product are passable, but don't compare with SocialText for wikis or Community Server for blogs. It's collaboration features and integration with Office are admirable, but you can't take content offline easily (even though Groove can). All-in-all, it's good at a bunch of things, but not great at any. As a result, I constantly run into customer needs that can't be met as well as either the customer or I would like. The counterpoint to this complaint really comes down to the sheer combination of features in a single package: if you need a good all-around product that can handle many common information worker content management (broadly) needs, SharePoint is usually a good fit -- being good at a lot is SharePoint's strength.

  • To many partner-based solutions
    Like the first bullet in this post, I've listed the broad partner community as both as asset and a liability for SharePoint. It is true that no one software company can realistically produce a perfect solution. However, I get concerned when a product has to consistently rely on a partner community to lend features or functions not found in the base package; this usually means that customers must a) spend additional dollars to get the solution they need and 2) deal with multiple parties to support their solution (finger pointing between Microsoft and their partners has been elevated to a sport). One could certainly argue that a broad partner community is an asset, since it does give customers additional flexibility in finding the right solution through the coupling of "best of breed" features. True... this is why I'm on the fence on this one. As it stands though, Microsoft seems to market SharePoint as it's content management platform (effectively the only content management platform for Microsoft). However, there is an absolute ton of bolt-on solutions for SharePoint. They run the gamut from scorecard solutions like Alegri CIO Scorecard to work management to point solutions like Automated Well Lifecycle Solution for the Oil and Gas Industry from geniant. In addition, Microsoft (to its credit) recently released a set of "application templates" for MOSS 2007 and WSS 3.0. Each of these templates support the management of information for a given "vertical," such as a help desk, a baseball team , projects and clinical trials (there are almost 40 templates available). The trouble is that these templates are generic; just like the templates shipped with the product. If you really want to address very specific needs you need to turn to a partner like CorasWorks or Quest Software (who recently acquired Workplace Architects) for both templates and new web parts that address customer needs specifically. Ultimately, you almost always have to implement a partner product, in concert with your SharePoint implementation, to get the solution that will meet your needs. The easiest example of situation is in the search space -- I almost always recommend Mondosoft's Ontolica suite to improve search functionality.

  • Inconsistent feature lifetime
    Anyone who has been working with SharePoint since the 2001 days, knows that various features have come, gone and come back again. Some examples of here today, gone tomorrow and back again are items like workflow (started in 2001, almost non-existent in 2003 and back with a vengeance in 2007), versioning (major and minor versions in 2001, only major versions in 2003 and major/minor versions reintroduced in 2007) and meta data enforcement (2001 would force meta data entry through all interfaces, 2003 only enforced meta data entry when using the web or Office interfaces, and 2007 re-introduced end-to-end meta data enforcement - albeit not as thoroughly as 2001 - controlling content meta data through workflow). As a result, customers who have implemented solutions across the three versions are whipsawed from one feature set to another -- loosing functionality and, in some cases, gaining it back again as they upgrade. Not only does this approach make it very difficult for IT to support the platform, but it creates training nightmares for end users. I can certainly sympathize with the product team at Microsoft -- it takes a great deal of effort to rebuild an entire product (as they did between 2001 and 2003) -- but you can't simply eliminate features that are useful to customers between versions; you must keep what you have and add on (unless there's a really good reason to phase out a feature).

  • Microsoft’s "Go-To-Market" for Web Content Management
    Microsoft made the decision, with this version of SharePoint, to discontinue it's web content management server product, Content Management Server. In its place, it added features to SharePoint (specifically MOSS) to support web content management. Unfortunately, instead of mimicking the features provided by MCMS (or other dedicated WCM tools), they made the WCM features fit inside of what SharePoint natively understands: lists and libraries. While Microsoft can point to a number of public sites running on SharePoint, I just don't think SharePoint is the right tool for managing content in a public web site. Perhaps it's the weird URL patterns created by SharePoint (since web pages sit inside of a special document library -- a "pages" library -- every URL has "pages" in it) or changes they need to make to SharePoint to force WCM into the platform (see this blog post from Tyler Butler on the SharePoint team regarding anonymous access sites on SharePoint as an example) or the restrictions around how you can use master pages and/or themes in SharePoint (you can only have one master page per site for example) or simply the fact that navigation is really just enumerating every site in the site collection (using the site hierarchy to display the various navigation levels), the platform just doesn't really "fit" the WCM model almost every other vendor in this space uses. Being different isn't a bad thing if it works, but I don't think WCM in SharePoint works; it's close, but not totally there.

Ultimately, I must admit that I like SharePoint. I think it's a great product, despite what I perceive as its failings. The Office product team at Microsoft should be commended for producing a tool that is quite broadly useful. I would encourage anyone who hasn't used SharePoint to download the trial version of MOSS or simply install WSS on their Windows server. I think you'll be impressed with its ease of use and tight integration with Office; as a colleague of mine was famous for saying -- it just works. That said, you need to understand how you'll use the product and in what context; understanding both what SharePoint does well and what it doesn't will help you avoid a bad implementation that doesn't add value to anyone's work day.

Give me feedback. Tell me I'm wrong or simply give me more examples for either list. I would love to hear from you.

07 June 2007

Is SharePoint the "Right" Solution?

Since this is the first post on Consejo's blog, I thought I'd start by digging into a topic we often discuss with our customers -- does SharePoint fit their organization or should they look at other technologies. The "easiest" and most consultant-like answer is: it depends. Now, after you've stopped rolling your eyes, you'll (hopefully) realize that this answer is the only one possible with a such a generic, blanket question. However, what most people want is a quick comparison between what they need to accomplish and where SharePoint might fit.



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?