There are many articles written about how governance is a fundamental part of any successful SharePoint 2010 strategy. However I think that there is a bit of a gap on how we can implement practical governance in SharePoint 2010, using the features that exist in the platform.
To some peoples surprise there are many tools with the platform that can help enforce governance. I’m not going to talk about what governance is, there are many great articles about that, but in this series of articles I am going to talk about some of the techniques that I use to support governance on the 2010 platform. In my view governance is really about controlling SharePoint and the content that resides within SharePoint. I know that governance encompasses a lot more than this from a holistic lever but if we assume for simplicities sake that we simply want to control content then this series will make sense.
One way to govern the growth of content within your SharePoint environment is to make sure that no longer useful versions or draft of documents are deleted. This is one of the many ways that you can control content within SharePoint 2010 on an item level, the other that is most commonly used is implementing Site Quota’s around Site Collections which control the growth of content on a Site Collection level.
Of course this can be done manually but the chances of users actually doing this manual, laborious task are pretty much zero. Ideally what we would like is to be able to delete previous versions and drafts of documents after a specified of time automatically. Sounds like something that might be complicated to do, but it’s actually really easy.
From a governance standpoint slowing the growth of content, whilst ensuring that valuable content is retained is something that is frequently requested. So let’s see if we can configure SharePoint 2010 to help us out with this (incidentally this also applies to MOSS 2007 as well)
An automated way to delete previous document versions and drafts that is transparent to end users. Ideally we would like to be able to specify the different types of content that this can apply to and be configurable around dates.
The Solution – Information Management Policies
For me Information Management Policies (IMP’s) is the forgotten golden arrow in many SharePoint implementations. IMP’s are extremely flexible and contain a number of different policies that you can apply: Retention, Auditing, Barcodes and Labels. You can also create your own policies programmatically if you are so inclined as well, check out MSDN.
Policies can also applied to specific Content Types as well which gives us some flexibility.
But today we are going to look at the Retention Policy Feature to see if it can help us manage document versions. We have created a custom Content Types called ‘Contract’ and have some recommendations from the governance committee:
· 1 year after a Contract is created all previous drafts should be deleted
· 2 years after a contract is approved all previous versions should be deleted
So we create our custom Contract Content Type (don’t even start a discussion with me about NOT using content types, I am likely to become extremely agitated J ) and to represent that a contract is approved we have a date field called ‘Approved Date’ as seen below:
Now let’s set up our IMP. Click on Information Management Policy Settings and then click on Retention. A couple of things to note that are important from an Information Architecture perspective. Firstly the Administrative description field is only visible to administrators so fill it in with useful administer focused information:
More important is the Policy Statement which allows you to communicate with end users what the policy is and why. When a user creates or edit’s a document with this policy, they will see the policy statement in the Office client as below. It’s a really great way to provide information to users about policies, all with very little effort:
Now if we click on Add a retention stage we see that we are presented with a number of options.
Firstly we have an event date that contains the dates that are associated with our Content Type. The default Created, Modified and Declared Record dates are there but so is our custom column, Approved Date.
Secondly we have a range of actions that we can perform. The ones that we are interested in are ‘Delete previous drafts’ and ‘Delete all previous versions’. There is also another action that I will talk about next time but that will have to wait.
So back to our requirements firstly we want to delete all previous drafts after one year. That is easy enough:
Then we want to delete all previous versions 2 years after the Contract is approved. That is also easy since we now have our ‘Approved Date’ field that we can use:
So at the end of this we should have our IMP looking something like:
And that’s it really! Now this will happen automatically when the dates are hit on the piece of content. No user input is needed, everything is handled by SharePoint. If you ask me that is pretty impressive, for 5 minutes of configuration we can keep Contract versions in check, satisfying both user and governance requirements.
You might have noticed that there are a lot more options available in Information Management Policies. I will talk about this in latter articles however there are a wide range of possible business scenario’s that IMP’s can handle. You can also launch a workflow at a specified date as well which means that you can easily implement content review life cycles.
However for me one of the most powerful uses of IMP’s and SharePoint 2010 is Content Type Syndication. This allows me to define Content Types, with associated metadata and IMP’s from a central location, and have this available within any Site Collection on the same farm.