The opinion is based on experience with SharePoint 2010 and takes SharePoint 2013 and 2015 into consideration. Too often we get caught up in numbers and versions. Numbers are all fine and good, but an opinion from practical experience is also important.
As with all individual statements, there are varying degrees of agreement and dis-agreement over the use of SharePoint as a Content Management System.
Most of these agreements and dis-agreements are based on varying opinion of SharePoint meeting a particular need in content management, and in a particular environment. This enforces the reality that for some, SharePoint as a content management system is absolutely one of the best products on the market; and for others it is total junk. Here in my opinion, I include the role a company’s management plays in the success or failure of SharePoint as a content management system; along with issues and solutions Microsoft and 3rd parties provide in SharePoint for content management.
Basic Content Management System Defined
Before delving into SharePoint’s capabilities (or the lack of) for content management, we need to define what exactly content management is. Breaking down the three words of the subject, we find a broad meaning.
- Content equates to any item which is held and managed by another item. A box manages its content by helping to prevent damage, helping to maintain organization, and in some cases even prevent unauthorized access.
- Management – that same box provides the ability to stack items in a location where the content is organized and allocated space is used in an optimum way.
- System – any methodology that aids in management of the content in the box, by use of the box in a consistent manner.
With this simple definition, it would appear that SharePoint is a content management system. However a typical content management system in modern day terms, goes far beyond this simple definition.
Modern Content Management Systems
Today a content management system must do more than just hold and provide simple organization of content. If that weren’t true, then a simple network share would suffice as a content management system. The problem is the mess that develops in network shares, is typically what starts the call for a content management system. Even in a small business environment, a network share can quickly become very un-organized where multiple duplicate items exist and typically in multiple locations. A system is needed where items could be electronically checked out and secured from change except for the checked out version; and then checked in for others to use and make changes if needed. Today’s content management systems provide:
- Organizing - content into storage folders or locations.
- Security controls to prevent un-authorized access, changes, and deletion.
- Publishing capabilities - holding drafts until the author or those authorized approve changes for those with read or greater access to view.
- Workflow - for automated routing, review and publishing.
These services are generally provided through a single interface such as a web page. This is starting to sound a little like collaboration using a centralized access point – sort of like SharePoint?
Stretching the boundaries of content management today include many types of websites that we are all familiar with. Facebook®, Twitter®, and many other social websites are all to some degree, content management systems. Content management is the management of any type of content, the content management system was designed to handle. In my initial definition, I used a box. In modern terms, that box is managed by a computer application, a content management system full of tracking numbers, quantities, and so on. In the broadest terms, everything we do from backups, to warehouse management, to document or data management is content management. That makes SharePoint a content management system by its design.
Getting Confused By Terms and Definitions
It’s very easy to look at a document management system, asset management system, imaging management system, records management system, and many other “fill in the blank” management systems and say they are all content management systems. They are, but to varying degrees. These applications (combined) that manage content are referred to as enterprise content management. All of these systems are similar to a content management system, with the exception that they are specialized to manage a particular type of content. A document management system in most situations wouldn’t work well to store project code in. The same works in reverse. Code management systems would not work well for a document management system.
Where does a content management system fit then? I believe a content management system is a generic type of management system that can manage many different types of content. A content management system can be made to do the work of a document management system, but is it as good as a dedicated document management system? For instance with SharePoint, is it a great document management system? In my opinion SharePoint is not a great document management system, at least not without moderate to heavy modification, but it is a good one. We’re back to the original question, why use SharePoint for a content management system?
Content Management System - Breaking It Down
Let’s break down what we expect out of a content management system and how SharePoint can or cannot fulfil those requirements. Remember, this is all based off of SharePoint 2010 (Enterprise) and is just my opinion, others may vary. I will mention where use of 3rd party tools allowed me to go outside of what out-of-the-box SharePoint was capable of, or the 3rd party tools simply did the job better than out-of-the-box SharePoint.
Data Storage – Initial storage and the capability to expand storage capacity with any content management system is very important. In most content management applications, storage isn’t an issue. Content management systems have long been designed to have very large storage and expansion capability. In most cases it can be said that SharePoint has adequate capacity for content management because it has very good expansion capability. SharePoint does have hard numbers for sites, storage capacity of data in lists and document libraries, document size and so on. There are three real issues that I’ve seen come up with SharePoint as a content management system concerning data storage.
- The first is in document size. SharePoint under most circumstances is limited to 2GB file size or smaller. This isn’t completely SharePoint’s fault. A 32 bit pointer in SQL has been an issue for storage of large files in the content database for not just SharePoint, but for other systems using SQL for data storage.
- There also is the maximum upload size in SharePoint. Setting the upload file size in SharePoint to its maximum can help but there’s still a hard limit.
- The third problem is with speed, or the lack of it. SQL Server is a great database system. It responds quickly and has a great deal of storage capability. However, transferring data from SQL through SharePoint isn’t what I believe anyone would call fast. One department I worked with uses massive datasets in the order of 200, 400, or even 500 gigabyte of data. The department manager was not pleased when I told her that yes SharePoint can store large amounts of data, but there are limitations and that it’ll take many hours (like start the transfer before you go home and hopefully it’ll be done by morning) to complete. SharePoint does not shine when trying to move large amounts of data. For a company that has a ton of data, moving it into SharePoint is very time consuming and difficult. Then getting that data back out brings up the complaint of “it’s so slow”. Add to that the SQL manager yelling about how the SQL log and audit file system filled up and is causing all kinds of havoc.
The solution we found that worked best is actually part of SharePoint – BLOB storage (Binary Large Object). We used Metalogix International’s StoragePoint, a BLOB component for SharePoint. You can also use Microsoft BLOB storage. StoragePoint BLOB storage met our needs and has a few extra features we liked. With BLOB, all data content is stored in an external container instead of the SharePoint content database. In StoragePoint, pointers are placed in the SharePoint content database that point to the external content. Our StoragePoint BLOB is on our NetApp. Large data transfers are completed using the Explorer window in SharePoint and between our network shares, where the data is temporarily held. Transfers are much faster both to and from SharePoint, and limitations are reduced.
Security – In some situations the security of data is critical. Who can read, write, and delete is a primary reason to have a content management system. The security in SharePoint is spectacular as far as granularity is concerned. A site all the way down to a specific document or list item can have its own specific security setting. The issue is permissions are controlled manually and that becomes a very big headache. An example is that I have a document library in a site. In this document library I have 5 documents. Three of the documents can be read by anyone in the company. For the other 2 documents, I need to provide exclusive read capability to only a specific set of people. First I have to grant all the ability to see and open the site using read access. The same goes for access into the library. Under most situations, a document library will inherit the site security. Now for the 3 documents everyone can read, I can leave those alone allowing them to inherit the read only security from the library which was inherited from the site. For the 2 documents that I want limited read access to, I have a choice. I can create a folder and place those documents into that folder. I then break the permissions on that folder and apply new permissions on the folder. Or I can do the same for each document. You can see that if I only need to do this for a few documents, either method will work and isn’t really a bother to accomplish. Now imagine the need to do this for 100 documents or 1000 documents. There’s also another issue here – finding out who has permission to do what to each document, is crazy in SharePoint. At different security levels, you’ll run into SharePoint telling you at a site level that John Smith has “Limited Access” to the sites content. What John Smith can access is much more difficult to determine. Limited Access means John Smith has access to something in the site – what he has access to is really fun to figure out (sarcasm).
Permissions in SharePoint as a content management system, especially dealing at a granular level of specific documents or list items, can be rather difficult and irritating. There are solutions though – several 3rd party applications will assist with security at granular levels. In my situation I found a 3rd party workflow add-on from HarePoint named Workflow Extensions. This add-on provides over 200 additional actions to the 30 out-of-the-box actions provided in SharePoint. Some of the actions available allow my workflow to change permissions at site, library, and individual list or even document levels. I simply write a workflow to allow site administrators to decide what level of security needs to be placed on a document or list item. They make a change to the item, the workflow runs, and the appropriate permissions are set.
Content Types – Capturing metadata and other information can be done fairly easily in SharePoint. Content types have been around for some time in SharePoint and enforce continuity and consistency in content entry into a list or library. The drawback is that just about everyone hates content types. The sad part is that it is an excellent way to capture data allowing a content management system to work well. What I’ve found is that when I enforce a content type, I usually get little use out of the library. I get no content because no one wants to fill out the required information. Because of this, I’m not a fan of using content types and enforcement of metadata in SharePoint. Getting your users to use it is very difficult and there are other ways to gather metadata and content information.
Search – I hear a lot of complaints in the SharePoint community about the out-of-the-box search in SharePoint. It’s so generic and bland looking. Its advanced search is a joke, and other comments have been made.
I’ll admit that it’s not the greatest search tool in the world, ok not even close, but it does work. I’ve not had many instances where I’ve gone looking for a document and not found it. More important is that Microsoft provides SharePoint with one of the better search capabilities in Microsoft’s FAST search server. With FAST it’s virtually impossible to not be able to find what you’re looking for in SharePoint. FAST resolves the “I can’t find it in SharePoint” comments from end users.
Versioning – The versioning capability in SharePoint is fairly good, but I wouldn’t call it excellent. One thing versioning does do that I like, is display the list item or document in its true format before changes were made. This means I can open a prior version, open an existing version and display them side by side to see the changes. The bad news is that versioning doesn’t highlight or in any way indicate, what was changed. You have to eyeball it. The versioning also can’t tell the difference between a legitimate change and from a field that was changed, and then changed back to what was originally in that field. To SharePoint versioning, that was a change even though the list item or document is identical to the prior version.
Publishing – SharePoint has the capability to hold a document or list item in a hidden or unpublished state, only displaying an approved and published version of that document. This provides a review process prior to providing employees with information that they may not be authorized to view. By default, SharePoint publishing is turned off. Once turned on, an approval process is setup and followed for each item in a list or document in a library.
Workflows – Content Management Systems almost always have some sort of workflow engine. SharePoint has a workflow approval process built in. It is limited though. This is an area where some content management systems fail, including SharePoint. The OTB workflows in SharePoint provide some good workflow actions but they are still limited. Add-in 3rd party workflow extensions and much more can be accomplished. For instance I mentioned above about the ability of the workflow extension to address permissions on list items and documents. Additional capabilities include adding and removing users from appropriate AD groups for access; converting documents from one format to another, copying or moving a document to an appropriate document library, checking in a stale checked out document, sending the document to an FTA server or website, or even modifying document content based on rules in the workflow . Workflows are the power behind a good content management system, along with someone capable of working complex workflows. To be honest, without the HarePoint Workflow Extensions I use, I would not be able to provide the routing, approval, and security requirements needed to meet the requirements of my customers for a content management system.
Upgrade – A good content management system should be upgradable. Take into consideration a system that contains most company documents. Management of those documents has been through the use of workflows like what I’ve mentioned in the prior section. Just mentioning upgrading SharePoint (let’s say from SP 2010 to SP 2013) where workflows are extensively used to a SharePoint admin will turn them white. Upgrading a content management system should not break the processes put into place to manage that content. Unfortunately that’s typically what happens with a SharePoint upgrade. This area is of great concern if you’re looking at a content management system and SharePoint is in the running. I’ve already mentioned that moving large amounts of data in SharePoint isn’t always easy or fast. Since workflows will most likely break when converted to the new version of SharePoint, the alternative is to setup and build an entire new fresh SP 2013 (or beyond) system. Once done, move the data over to the new system. This is time consuming, tedious, and what do you do for the next upgrade?
Management Support – This is key for any content management system, not just SharePoint. My experience with SharePoint in an attempt to move data from an Engineering departments network share into SharePoint, bombed terribly. There are two reasons for this. The first is that management hired a content management expert who had no idea how SharePoint handles content. This person knew one way and that was through the use of network shares. Shares and files were setup to use a cryptic naming convention that is not compatible with SharePoint. Many attempts were made to bring this person into the SharePoint environment and method of content management with no luck. The second issue you may run into had to do with management. The management that wanted to move the network share data into SharePoint was not committed to moving the data. Instead the management decided that the content management person was right and there was no possible way to move the data into SharePoint. The project to move the data into SharePoint went on for almost two years with almost no progress, until it was finally dropped. Without management pushing for real content management, no matter what system is purchased, SharePoint or any other, success will not be met.
Summary – The big picture questions:
- Do you need a content management system, a collaboration area, a dedicated content management system like a document management system, or a combination of the above?
- What are your storage requirements now and in the future? This should include both capacities as well as file sizes.
- What are your security requirements going to be now and in the future? Is this system going to need to be SOX compliant?
- What will the requirement be for metadata, indexing, grouping of similar documents and is that going to be by document type or content?
- What is the importance of versioning for your organization? Will original versions of documents stored 7 or more years ago be required?
- How well does the search capability of the chosen content management system work?
- What types of publishing controls are needed and of great importance, who will control and approve published documents?
- Will automated routing be needed or other controls that workflows can provide to enhance and ease management of content, and who will write and maintain those workflows?
- How often will the chosen system need to be upgraded and will upgrading cause any issues?
- Does your management support the use of a content management system?
Out of all of the above, the most important is the last bullet item. Without support of management; and this is more than just management agreeing to fund the project, a content management system is hard bound not to fail. Management must insist upon the use of a content management system and remove alternatives.
The good news is that for a content management system, SharePoint can meet most of the above requirements fairly easily. Yes add on features will most likely be needed, and there are drawbacks such as difficulty in upgrading. However for an overall system to store and manage multiple different types of data, SharePoint can provide adequate services for most small to mid-size companies.
– For a small business just getting into content management, SharePoint will work well, even the standard version without 3rd party add on’s. For a mid to large business, moving to SharePoint for content management, first and most importantly must have management backing and support. Management must also be willing to provide the tools to enhance SharePoint such as BLOB storage, 3rd party workflow extensions, FAST search, and education of employees on the reasons behind such things as content types and their importance. Isn’t management support a key factor in almost all business choices? SharePoint as a content management system is no different.
This article is published from the DotNetCurry .NET Magazine – A Free High Quality Digital Magazine for .NET professionals published once every two months. Subscribe to this eMagazine for Free and get access to hundreds of free .NET tutorials from experts