“GOVERNAGE” – Thé mix between Governance and end user Usage – Blog 2 follow up

a vision paper written by Rick Hilferink – SharePoint Consultant @ Portiva.

This vision paper will be written in a series of three blogs. In each of these series I hope to provide you with more insight in my understanding of today’s Microsoft SharePoint technology and how governance can be applied best.

Table of contents

  1. Blog 1 – A new Era
    1. Introduction
    2. SharePoint puberty
  2. Blog 2 – The rising
    1. SharePoint grown up
    2. Governance explained, what is it?
    3. End users (Business Roles)
  3. Blog 3 – The future
    1. Vision and Strategy – Ownership and dedication
    2. “Governage” and SharePoint as a platform – Find the right mix
    3. A look into the future (Maturity?)

Blog 2 – The rising

SharePoint grown up

SharePoint has evolved as a product, containing lots of modern technology and features suitable for a wide variety of businesses both small, medium and enterprise. Not less important it has also evolved into a strategic platform for large enterprises which are very much depended on this platform, day in day out. Microsoft is a strategic choice, so is SharePoint.

Some numbers…

Microsoft SharePoint is a grown up product these days. According to an article that was published on ZDNet.com three years ago, SharePoint had been adding 20.000 users per day for the previous five years. Between 2006 and 2011 that means, 36,500,000 users began using SharePoint.

In an article on caldiatech.com these massive numbers were revealed.
(Ref: http://www.caldiatech.com/blog/3-surprising-facts-regarding-the-worldwide-use-of-microsoft-sharepoint.html)

80 percent of the fortune 500 companies are using Microsoft SharePoint with approximately 100,000,000 user accounts. These numbers were updated after the SharePoint 2013 release, which proved very successful.

As we can see, the influence and dependency grows, and it grows fast. More and more companies choose Microsoft strategically; the decision for SharePoint is a no-brainer.

Off course these are just (awesome) numbers. Installing SharePoint, adding users and use it as a document management system does not solve all your issues or business challenges and far more important is not a guarantee to success.

This is the reason that governance is a hot topic the last few years, people and businesses start to understand that SharePoint is more than just a tool or application that is evident when Microsoft becomes a strategic choice.

It requires high priority and attention from upper management.

Governance:

“… The collection of guidelines, roles, responsibilities and processes, which is defined to control and to supervise the deployment of SharePoint, so that the pre-defined objectives can be achieved within the organization.”

The reason for establishing and implementing a governance plan is to control the platform and how it is used. It ensures that resources can be used to its full potential. Agreements are clearly defined within the framework by a strategy group that determines to what extent and at what level governance is applied and secured.

Governance explained

Introducing the SharePoint 2013 platform can be compared to building a house. The client has a specific design in mind. When constructing a house, all kinds of rules (procedures) should be followed. There is a zoning plan (vision), there are regulations (company policy), there is a design (functional design) and a drawing (technical design). When construction is completed, the building must be maintained and perhaps rebuilt again after several years to improve the structure or the use of it.

This is the same for the SharePoint platform. It requires designs, plans, regulations and maintenance.

A governance plan.

To start determining a governance plan for your company, you have to setup a strategy group. In that group people from multiple layers of the organization should be represented, preferably from multiple departments. This mix ensures a broad perspective on your governance plan thus providing a more qualitative governance plan.

The strategy group needs to determine and agree upon a lot of subjects which describe how the platform will function, to which rules people should obey and all procedures and guidelines to make the platform work the most effective as possible. These subjects are divided into two different areas: Functional and Technical.

  • Vision and Purpose of SharePoint Implementation
  • Roles and responsibilities
    • Support Roles
    • Who is owner?
  • Information policy
    • Document retention and lifecycle
    • management of data
    • Taxonomy
    • Agreements about metadata
    • External and mobile access.
    • Name conventions
    • Work agreements
  • Branding
    • Theming / MasterPage / Document templates
  • Education plan
  • Authorization structure
    • Define a matrix
  • Quota’s
    • Per Site Collection
    • Per Site
    • Per document library
    • My Site storage
  • Management organization and management tooling
    • Define strategy group
  • Auditing
  • Search

Functional

Example of an image that describes the user support within SharePoint. This way users know where to go and how support is being delivered. Part of the “Roles and Responsibilities” subject.

Technical

  • Updates
    • When and how often installed?
  • Service packs
    • Always the second most recent version available?
  • WSP deployment
    • Time windows, who can and who can’t?
  • Performance testing
    • Monthly or quarterly scheduled?
  • Backup
  • Recovery time
  • Allowed loss of data
  • Disaster recovery
  • Technical guidelines
    • Development via .wsp’s allowed or apps only?
    • Development guide
    • Testplan acceptance procedure
  • Service accounts

An important thing to discuss, besides these functional and technical subjects, are the things you, as an organization, do not wish to accomplish when implementing the SharePoint platform. These could be very practical things like: SharePoint should not only replace the fileshare and SharePoint should not cause employees to receive an information overload.

How to get the business involved?

Business users determine the success of a SharePoint implementation. Therefore the users should get involved with setting up the platform right from the beginning. This would mean that they, as a group, should be represented within the strategy group to begin with.

Within all organizations there are multiple types of end users, we call these the business roles. These business roles that make use of the SharePoint platform should be represented within the strategy group, this is best thinkable although not always possible.

The size of the strategy group and how many people are representing the business is dependent on a lot of things but should be thought of very well. This is an early mistake easily made, not inviting the right people for these discussions could cause them to loose direct interest.

Get the business involved, talk to the end users, set up a communication plan and communicate! And be aware, that when you communicate towards the business, your governance should be in place to provide the business with all guidelines and procedures in order to help them create added value for the company.

Write down all requirements that the business provides in a roadmap. Discuss about these requirements and roadmap in the strategy group and attach dates to them. Then again, communicate with your business and enjoy the controlled added value of the SharePoint platform.

In the next blog part I will talk about how governance has evolved along with SharePoint and provide a quick look into the future. One thing that will be more and more important these next few years is Office 365 and SharePoint online. Off course governance applies for these platforms as well, but is it the same? If not, what is different and how does that effect your business?

“GOVERNAGE” – Thé mix between Governance and end user Usage

A vision paper written by Rick Hilferink – SharePoint Enthusiast @ Portiva.

This vision paper will be written in a series of three blogs. In each of these series I hope to provide you with more insight in my understanding of today’s Microsoft SharePoint technology and how governance can be applied best.

Table of contents

Blog 1 – A new Era

  • Introduction
  • SharePoint puberty

Blog 2 – The rising

  • SharePoint grown up
  • Governance explained, what is it?
  • End users (Business Roles)

Blog 3 – The future

  • Vision and Strategy – Ownership and dedication
  • “Governage” and SharePoint as a platform – Find the right mix
  • A look into the future (Maturity?)


Blog 1 – A new Era

Introduction

Hi there, my name is Rick Hilferink. A SharePoint enthusiast working for Portiva, a top SharePoint company with its roots in the Netherlands.

In the past 9 years that I’ve been working in this business I have had the luck to see Microsoft SharePoint evolve from a document management solution into a strategic portal technology.

Back in 2001 when Microsoft introduced SharePoint, the product had three features, 1) Document management, 2) Intranet, 3) Content management. In those first few years that the product was released, companies started to use the technology with projects often started by the IT department itself. After it has proven successful other departments would try to hook on to this new technology. This was the classic grow model, mostly starting within the IT department.

Now, in 2014, SharePoint has become a lot more than just a document management solution. Today it provides an office-like interface for adding and editing content, lowering the threshold towards from site admins to end users. There is a wide variety of usage options, such as integration with ERP systems, social features, intranet portals, extranet portals, websites, business intelligence and enterprise search.

Implementing a new SharePoint platform is complex. It requires architects to plan hardware and infrastructure. Business consultants talking to the business, often in workshops, to gather functional requirements and startup an implementation project. One of the implementation steps is called ‘governance’. Creating a Governance Plan means that time should be spend on setting up rules and policies for using the application, for maintaining it, and also for creating new functionality on this platform.

Every single time that governance is set up and thought off, it is unique. For each and every organization the set of rules and agreements are tailored to fit and serve the business as best as possible. Governance should not be about creating barriers, it should be about long-term stability and quality.

I have come to this point, realizing that the next couple of years will be about finding the right mix in using modern technology and providing the best governance model possible for your organization. Keep it simple but organized. Don’t overdo!

That is what I call “Governage”. In a practical way, fitting the exact needs off the business to the complex enterprise platform SharePoint has become.


SharePoint puberty

SharePoint was designed from the need to have documents centralized available for sharing and collaboration, easily findable, without the folder jungle, that file shares did provide. On the network, outside the regular file shares that went 10 levels deep.

In 2001 two versions of SharePoint were released. SharePoint Team Services (STS) and SharePoint Portal Server (SPS). In STS users could create websites and fill content – a bottom up technology. SPS however was meant for administrators, the IT guys, for indexing files and other databases. There was no or very little connectivity between the two.

SharePoint 2003 was the first integrated application version that provided a solution for document/information sharing and applications/websites within the company network. STS and SPS were connected. A dashboard for creating sites, adding/uploading and removing files was added so that end users could contribute easily to SharePoint sites. Old school administrators, the IT guys, were left with the management of the SharePoint application and most of the decisions.

Within three years, a small shift from managing technique into managing information became visible. Still, the classic administrators had a significant role in how information architecture would be set up and maintained. The end users only provided the content.

A SharePoint implementation project, if it was a project at all, would be started bottom up: Starting with IT, it would sometimes evolve into a business application that would be used by upper management. Unfortunately this created enough inconveniences because of never thought off challenges such as storage limits or confidential documents being available somewhere in the site hierarchy.

This is the period I call ‘SharePoint puberty’. A rather new product with great potential became a quick success because of the upcoming internet industry. People started to use internet in their personal daily routines, which lowered the threshold for people when first confronted with this new portal technology. It was cool to use SharePoint instead of those old dull file shares everyone used.

In retrospect, what was missing in those days, regarding governance?

  • No or very little requirement inventory with the business
  • No definition of roles and responsibilities
  • No policies
  • No training / instruction
  • No agreements on usage
  • No plan for growth
  • No plan for backup and recovery


In the following posts I will discuss the SharePoint evolution history, how companies started using SharePoint as a tool and how it evolved into an enterprise platform requiring extensive guidelines and policies. I will also provide detailed content of what I think a governance plan should contain.

All you need to know about SharePoint 2010, for end users and information workers

A good blog post about all the ins and outs of SharePoint 2010 for end users.

It will give you information about:

– Capabilities
– Clear explanation on terminology
– How to videos
– Resources
– Communities

You can find it here: http://sharepoint.microsoft.com/en-us/Pages/default.aspx

SharePoint in Plain English

Often we (SharePoint people) are asked to explain what SharePoint is, what people can do with it and perhaps most important, what SharePoint can do for people.

Well, there is a YouTube video that explains in plain English what SharePoint is and I don’t want to keep it from you.

The video:

Creating a SharePoint 2010 Foundation MasterPage Solution and enable inheritance with Event Receivers.

As a consultant we very often need to develop a custom SharePoint 2010 solution which incorporates the customers company branding. There are a few ways to accomplish that and I will write down my preferred method in this blog post.

As the title of the blog states, this concerns a “Foundation” MasterPage solution, this is an important fact since SharePoint 2010 foundation MasterPages behave a little bit different then, for instance, a publishing MasterPage that you can use in SharePoint 2010 standard and enterprise. Inheritance of MasterPage settings is not an option in a Foundation environment!

Ok, lets start the magic!

Environment

For development and prototyping I have my own virtual machine configured with this software:

  • Windows server 2008 R2 standard – 64 bit
  • SQL Server 2008 R2
  • SharePoint 2010
  • Visual Studio
  • SharePoint Designer

    My virtual machine is configured without Active Directory and SharePoint 2010 uses local accounts to provide all Service Applications that I need.

    Here are some good blog posting on how to do that:

    Single Server Complete Install of SharePoint 2010 using local accounts

    Managed Accounts in SharePoint 2010

    Visual studio project

    Open up Visual Studio and create a new SharePoint project:

    Make sure you select “.NET Framework 3.5” type project!
    image

    Choose to what site you want to deploy your solution during test/debugging activities:

    The choice for a sandboxed or farm solution is up to you, most of the times I choose for a farm solution. In this case I am able to deploy a look and feel solution to multiple SiteCollections at once.

    image

    That’s it, you have created a SharePoint 2010 Visual Studio project.

    Choice

    An important decision you need to make before adding your MasterPage and stylesheets to the solution is where you want to deploy all the branding files, in the SharePoint content database or the the “layouts” folder on the file system. If you are creating a MasterPage solution for SharePoint 2010, deploying to the “layouts” folder is the best choice. It has a few advantages:

  • Performance – caching is a lot better when you deploy files to the “layouts” folder, rather then to the SharePoint content database. A blog post by Waldek Mastykarz on performance in SharePoint sites:

    How we did it: mavention.nl – Part 2: Performance

  • From within SharePoint 2010 Foundation MasterPages you can easily refer to a stylesheet that is in the “layouts” folder when you are in a subsite withing a SiteCollection, the relative path is always the same. Referring to the “Style Library” in SharePoint itself is a lot harder to keep it consistent and working on subsite levels.
  • In this blog post I will be using a combination.

    MasterPage

    Next, we are adding a module for our MasterPage:

    Right click on your project in the solution explorer and choose to create a new item, module.
    image

    Once you have done that, the new module is created and also a feature has been added to provision the module to SharePoint when you deploy the solution. You can rename that feature from “Feature1” to whatever you want! In my case: “DemoBlogPost”.

    image

    Feature

    You can delete the “sample.txt” from the MasterPage module and add your own custom MasterPage. That new custom file will automatically be added to the elements.xml. In my project I add some extra properties to the elements.xml so that it is available in SharePoint in the correct way:

    1 <?xml version="1.0" encoding="utf-8"?> 2 <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 3 <Module Name="MasterPage" Url="_catalogs/masterpage"> 4 <File Path="MasterPage\demoblogpost.master" Url="demoblogpost.master" Type="GhostableInLibrary" 5 IgnoreIfAlreadyExists="false" > 6 <Property Name="ContentType" Value="$Resources:cmscore,contenttype_masterpage_name;" /> 7 <Property Name="UIVersion" Value="4" /> 8 </File> 9 </Module> 10 </Elements>

    Images and Stylesheets

    Now we need to make sure that the images and stylesheets that are used by the custom MasterPage are deployed by the solution, these files will be deployed to the “layouts” folder on the file system. Better performance and easy to use in the MasterPage.

    Refer from the MasterPage to your StyleSheet by adding a css registration line.

    <SharePoint:CssRegistration ID="CssRegistration" name="/_layouts/1033/styles/DemoBlogPost/demo.css" After="corev4.css" runat="server"/>

    Then right click on the project in the solution explorer, “Add new item” and choose for “SharePoint "Images Mapped Folder”

    image

    If you want to create a mapped folder for your stylesheets you need to choose for “SharePoint Mapped Folder”, you then get a new popup file browser window that starts from the “SharePoint Root” hyve. Browse to your preferred styles location, usually: “Template\Layouts\LCID(1033)\Styles\” and click “ok”.

    image

    The only thing you need to do now is: add your images to the “Images” mapped folder (create a subfolder name for the specific customer or project, in this case:, “DemoBlogPost”) and do the same for the “Styles” mapped folder.

    Your solution is ready to be deployed, that would upload your custom files to the SharePoint environment and make the feature available for activation in Site Collection Features.

    Once you have activated that feature you will still need to manually set your custom MasterPage as the default for the SharePoint site with for instance: SharePoint Designer. This is something you don’t want to be doing for a lot of subsites(if there are any/many) so that’s why I created two event handlers.

    Setting a custom MasterPage as the default for a SharePoint 2010 foundation site.

    In order to make sure that all existing SharePoint 2010 foundation sites get your new custom MasterPage with custom branding you need to add a event receiver to the feature that was created earlier in this blogpost. This will take care of setting your MasterPage as the default on all sites after activating the feature.

    Right click on the feature and select “Add event receiver”:

    imageimage

     

     

     

     

    An event receiver was created.

     

     

    By default the newly created event receiver is opened for editing in visual studio. We need to add some code to make sure that all existing sites get this MasterPage as the default.

    Everything beneath this line:

    1 public class DemoBlogPostEventReceiver : SPFeatureReceiver

    You can replace with:

    1 { 2 public override void FeatureActivated( 3 SPFeatureReceiverProperties properties) 4 { 5 SPSite siteCollection = properties.Feature.Parent as SPSite; 6 if (siteCollection != null) 7 { 8 SPWeb topLevelSite = siteCollection.RootWeb; 9 10 // Calculate relative path to site from Web Application root. 11 string WebAppRelativePath = topLevelSite.ServerRelativeUrl; 12 if (!WebAppRelativePath.EndsWith("/")) 13 { 14 WebAppRelativePath += "/"; 15 } 16 17 // Enumerate through each site and apply branding. 18 foreach (SPWeb site in siteCollection.AllWebs) 19 { 20 site.MasterUrl = WebAppRelativePath + 21 "_catalogs/masterpage/DemoBlogPost.master"; 22 site.CustomMasterUrl = WebAppRelativePath + 23 "_catalogs/masterpage/DemoBlogPost.master"; 24 site.Update(); 25 } 26 } 27 } 28 29 public override void FeatureDeactivating( 30 SPFeatureReceiverProperties properties) 31 { 32 SPSite siteCollection = properties.Feature.Parent as SPSite; 33 if (siteCollection != null) 34 { 35 SPWeb topLevelSite = siteCollection.RootWeb; 36 37 // Calculate relative path of site from Web Application root. 38 string WebAppRelativePath = topLevelSite.ServerRelativeUrl; 39 if (!WebAppRelativePath.EndsWith("/")) 40 { 41 WebAppRelativePath += "/"; 42 } 43 44 // Enumerate through each site and remove custom branding. 45 foreach (SPWeb site in siteCollection.AllWebs) 46 { 47 site.MasterUrl = WebAppRelativePath + 48 "_catalogs/masterpage/v4.master"; 49 site.CustomMasterUrl = WebAppRelativePath + 50 "_catalogs/masterpage/v4.master"; 51 site.AlternateCssUrl = ""; 52 site.SiteLogoUrl = ""; 53 site.Update(); 54 } 55 } 56 } 57 } 58 }

    Save the event receiver and close it! You can now test your solution by right clicking the project in the solution explorer and choose “Deploy”. Now the feature will be deployed to the SharePoint SiteCollection we have selected as the debugging SharePoint site, also it will be automatically activated.

    Have a look at your SharePoint site and notice that your custom MasterPage is now applied to all existing SharePoint sites and subsites for the selected SiteCollection.

    image

    Make sure that newly created SharePoint 2010 Foundation sites get the custom MasterPage

    We have allready created an event receiver to make sure that existing SharePoint 2010 foundation sites have the custom MasterPage applied. In a non SharePoint 2010 Foundation site you would normally have the option for all subsites to inherit the MasterPage from the parent, the Site Collection default. In Foundation there is no such option, you need to do that manually with SharePoint designer or with an event receiver, this is our way to go offcourse!

    Right click on the project in the solution explorer and select, “Add new item”.

    image

    Then choose for “Event Receiver” and give it a name, I have used an example that I have seen elsewhere on the internet: ”ChildSiteInit”. It’s clear what you use it for, good job! Glimlach

    image

    Now you will be prompted with settings you can select for the event receiver.

  • Choose “Web Events” at the type selection and
  • A site was provisioned

    Click “finish” and the event receiver will be created for you! Open up the “ChildSiteInit” event receiver and replace:

    1 base.WebProvisioned(properties);

    With:

    1 SPWeb childSite = properties.Web; 2 SPWeb topSite = childSite.Site.RootWeb; 3 childSite.MasterUrl = topSite.MasterUrl; 4 childSite.CustomMasterUrl = topSite.CustomMasterUrl; 5 childSite.Update();

    This small piece of code makes sure that new sites created within the current SiteCollection will automatically be updated with the MasterPage settings from the parent site.

    That’s it, you have created a SharePoint 2010 Foundation MasterPage Solution that automatically is applied to all existing and newly created sites within your preferred SiteCollection.

  • Modifying a page in SharePoint 2010 breaks the XML Viewer WebPart

    In SharePoint 2007 it was a known fact that when you edit a page with SharePoint designer, unexpected behavior could occur after saving it! Extra tags in your MasterPage, PageLayout and style references you don’t want..

    I now have come to the conclusion that this hasn’t changed in SharePoint 2010.

    Place an XML Viewer WebPart on a SharePoint 2010 page, edit the XSL for that WebPart(For instance: Display a RSS Feed)  and save the page.

    When you now open that same page with SharePoint designer, do some adjustments on listviews, dataviews or change a random property on that page, save it, the XML Viewer WebPart is broken!

    What happens?

    After editing the page with SharePoint Designer some extra “enters”(CR) are put in the XSL of the XML Viewer WebPart and thus the WP is not displaying anything anymore…

    Original:

    image

    After SPD:

    image

    Which results in a XML Viewer WebPart not displaying the requested results anymore..

    image

    “Solution/Workaround”:

    Put your XSL Style Sheet in a separate file on the SharePoint site, and refer to that file from the XML Viewer WebPart so that SharePoint Designer cannot screw up the XSL anymore..

    image

    XML Viewer WebPart displaying some random RSS Feed.. (oh I don’t drink Heineken btwKnipogende emoticon)

    image

    The “What’s New” WebPart in a SharePoint 2010 Group Work Site

    In SharePoint 2010 there is a new template called “Group Work Site”. A Group Work site is basically just a Blank Site template with some extra added WebParts that stimulate group activities such as:

    • Group Calendar (Use the Calendar list to keep informed of upcoming meetings, deadlines.)
    • Circulations (Use this list to inform team members and request confirmation stamps.)
    • Phone Call Memo (Use this list to share the incoming phone call information.)
    • Resources (Use this list to document shared assets, such as cameras and vehicles. Users can reserve and track listed resources in Group Calendar.)
    • Whereabouts (Use this list to quickly and easily track the location of individuals throughout the day.)
      image

    After creating a SharePoint site based upon the “Group Work Site” template you immediately will notice the purpose of the site, if that was not already clear to you due to the obvious template title ;)… There is a BIG calendar view on the homepage!

    image

    The WebPart I would like to demo is the “What’s New” WebPart which allows you to have updated information always available in just one view, the homepage!image

    What does it do?

    It displays all items from pre-selected lists where your username occurs in a pre determined column, to make that more clear a screenshot with the WebPart settings:

    As you can see you are free to add or remove a list from the “What’s New” WebPart.

    Important: At the bottom of the WebPart settings there is a line:

    Only lists that have indexes on [Modified] column can be added to this web part. To enable index, go to the list setting page

     

     

     

     

     

     

     

    When you have created a custom list or for instance a document library, just click on “Metadata navigation settings”.In the next properties window you can configure key filters, there you need to add the “Modified” column.

    image

    This makes sure that you can select your custom document library in the “What’s New” WebPart so that you get to see updates from that library as well.

    image

    Select the column that you want the “What’s New” WebPart to filter with your username.

    Off course you can think of solutions where you have added a custom column of the type “Person or Group” and filter by that column in the “What’s New” WebPart.

    Result:

    Pretty basic overview of items in different lists.

    image

    It can also show your items with a little bit more details:

    image

    Conclusion:

    Easy to use, easy to configure query WebPart that keeps you updated on a user friendly manner.

    Handy!