JQuery and SharePoint Blogging Sample

Filed under:SharePoint,Web 2.0 — posted by Jason MacKenzie on January 13, 2010 @ 1:47 pm

It’s been a while since I posted due to a change in careers.  I have become an independent SharePoint consultant and am loving the change.

Reading my favourite (IT) site, EndUserSharepoint and all the interesting examples of what the authors are doing with SharePoint has gotten me very excited about the possibilities of integrating JQuery with SharePoint to create some very slick user interfaces.  I want to some highlights of this latest prototype because it touches on a lot of different areas.

Firstly the shoutouts:

Heather Solomon for her blog on Customizine the CQWP
Michael Hofer for rolling up blog comments with the CQWP
Everyone at EUSP

So without further ado here’s a quick video of what the prototype looks like.  Prototype

So the first thing I did was create a new site based on the Blog template, added a few posts and made a few of my typically dim comments.  I actually added a column on the comments list called Highlight which we’ll use later. 

I added a CQWP to my page and you’ll notice that there is no way to roll up blog comments from the UI.  A little research led me to Michael’s blog above.  So configuring the CQWP to roll up blog posts and then exporting it, modifying the server template property from 301 to 302 and reimporting it did the trick.  Keep in mind that if you modify the CQWP in the UI after words you’re going to have to go through that process again.

While we’re on the subject of modifying the webpart we might as well add the extra fields we’ll need to the CommonViewFields property in our webpart. Essentially this makes the fields available to use when modifying the XSL a little later.  For more information please read Heather Solomon’s post above.

<property name=”CommonViewFields” type=”string”>Body, Text;Title,Text;Highlight,Boolean</property>

Moving along….I wanted to get a  nice accordion effect with the results which naturally led me toward the jQuery accordion.  For those that haven’t used it, it really could not be simpler.  Add a reference to the right jquery libraries, format the HTML and away we go.  Actually in the interest of clarity, here are all the jquery references and code required for this sample.  I’ll explain them as we go:

Simply place this all into a Content Editor Web Part (this definitely is not a best practice but for the purposes of this article we’ll leave it like this).

  <script type=”text/javascript” src=”http://jqueryui.com/latest/jquery-1.3.2.js”></script>
  <script type=”text/javascript” src=”http://jqueryui.com/latest/ui/ui.core.js”></script>
  <script type=”text/javascript” src=”http://jqueryui.com/latest/ui/ui.accordion.js”></script>
<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js”></script>
<link rel=”stylesheet” href=”http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/ui-lightness/jquery-ui.css” type=”text/css”>

<script type=”text/javascript”>
  $(document).ready(function(){
    $(“#accordion”).accordion(
{
    autoheight: false
}
);
jQuery(“#dialog”).dialog({
      bgiframe: true, autoOpen: false,  modal: true, show: ‘slide’
    });

  });

  function PopulateText(textToShow, title)
  {
        document.getElementById(“dialog”).innerHTML = textToShow;
        document.getElementById(“dialog”).title = title;
  }

 </script>

The appropriate HTML formatting for the accordion looks like this:

<div id=”accordion”>
    <h3><a href=”#”>First header</a></h3>
    <div>First content</div>
    <h3><a href=”#”>Second header</a></h3>
    <div>Second content</div>
</div>

Since we’ll need to control the HTML output we’ll turn to our friend the itemstyles.xsl file.  It’s located in the style library which is easy enough to find in SPD:

Again, for the mechanics of creating new templates etc. please refer to Heather’s blog post.  She’s far more articulate that your resident troglodyte here.  Anywhoo…we’ll create a new template and this is really where the magic happens.  The first challenge I had was that I needed to have a <div id=”accordion”></div>  block surrounding the CQWP.  But, obviously this output will be rendered for each item. 

However with the following check we can ensure that the following output is generated only for the first item.  I’ll explain the code snippet in red later – it’s not germane to this discussion.  So essentially on the first match we’re going to spit out <div id=”accordion”> and then everything else will be contained with in that div.

 <!–If this is the first match let’s put a header on it–>
  <xsl:if test=”count(preceding-sibling::*)=0″>
   <div id=”dialog” title=”Comment”>
    <p>
     <xsl:value-of select =”@Body” disable-output-escaping=”yes”/>
    </p>

   </div>
   <xsl:text disable-output-escaping=”yes”>&lt;div id=accordion &gt;</xsl:text>
  </xsl:if>

Of course then at the end of the template will put the following check it to render the closing tag on the last match:

  <!–If this is the last match we’ll put a footer on the end to close off the html–>
  <xsl:if test=”count(following-sibling::*)=0″>
   <xsl:text disable-output-escaping=”yes”>&lt;/div&gt;</xsl:text>
  </xsl:if>

The next step we want to do is make sure that only the list items or comments that have Highlight checked are rendered.

A very simple check like so makes that happen:  <xsl:if test=”@Highlight=’True’”> …put everything you want rendered in here  </xsl:if>

Now – you’ll notice in the video that when you click the more button for each item a nice jquery modal dialog pops up with the body of the comment.  Here’s how that was accomplished.

That snippet in red above is the container that will be required to store the text we want to show in the jQuery dialog so we’re going to need to come up with a way to dynamically populate this.

So in our XSL we will do the following – comments inline:

       <tr valign=”top”>
        <td><strong>Details</strong></td>
        <td valign=”bottom”>

<!–The users will click an image with the word “More” on it in order to show the comment body.  We wrap the image in an <a> tag and then in the click event we set the dialog properties (height, width etc.) and then we open the dialog.

However on the mousedown event (prior to the onclick) we render some script that will call the PopulateText function and pass in the comment Body (@Body).  When the dialog opens it will display the right text. 

–>   
<a href=”#” onclick=”jQuery(‘#dialog’).dialog(‘option’,'show’ , ‘slide’);jQuery(‘#dialog’).dialog(‘option’,'height’ , 300);jQuery(‘#dialog’).dialog(‘option’, ‘width’, 500);jQuery(‘#dialog’).dialog(‘open’); return false”>
   <xsl:attribute name=”onmousedown”>
   <xsl:text>javascript:PopulateText(“</xsl:text>
   <xsl:value-of select =”@Body” disable-output-escaping=”yes”/>
   <xsl:text>”, “Comment”);</xsl:text>
   </xsl:attribute>
   <img border=”0″ src=”/SiteCollectionImages/Moreicon.gif”></img>
   </a>
     </td>
       </tr>

In order to change the them for your accordion and dialog all you need to do is change the link to the theme css file (<link rel=”stylesheet” href=”http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/ui-lightness/jquery-ui.css” type=”text/css”>).

And that is how I created some nice effects for Blog Posts using the CQWP and jQuery.   I hope you enjoy, get some ideas and provide me with some feedback.

Jason

For reference sake the entire XSL template is below:

<xsl:template name=”HighlightedBlogComments” match=”Row[@Style='HighlightedBlogComments']” mode=”itemstyle”>
  <xsl:variable name=”SafeLinkUrl”>
            <xsl:call-template name=”OuterTemplate.GetSafeLink”>
                <xsl:with-param name=”UrlColumnName” select=”‘LinkUrl’”/>
            </xsl:call-template>
        </xsl:variable>
  <xsl:variable name=”SafeImageUrl”>
            <xsl:call-template name=”OuterTemplate.GetSafeStaticUrl”>
                <xsl:with-param name=”UrlColumnName” select=”‘ImageUrl’”/>
            </xsl:call-template>
        </xsl:variable>
  <xsl:variable name=”LinkTarget”>
            <xsl:if test=”@OpenInNewWindow = ‘True’” >_blank</xsl:if>
        </xsl:variable>
 
 <!–If this is the first match let’s put a header on it–>
  <xsl:if test=”count(preceding-sibling::*)=0″>
   <div id=”dialog” title=”Comment”>
    <p>
     <xsl:value-of select =”@Body” disable-output-escaping=”yes”/>
    </p>
   </div>
   <xsl:text disable-output-escaping=”yes”>&lt;div id=accordion &gt;</xsl:text>
  </xsl:if>
  <!–Only show the records where the HighLight Column has been checked–>
  <xsl:if test=”@Highlight=’True’”>
   <h4>
    <a href=”#”>
     <xsl:value-of select=”@Title”/>
    </a>
   </h4>
   <div height=”350″>
    <p>
     <font size=”1″>
      <table>
       <tr valign=”top”>
        <td><strong>Author</strong></td>
        <td><xsl:value-of select=”@Author”/></td>
       </tr>
       <tr valign=”top”>
        <td><strong>Posted On</strong></td>
        <td><xsl:value-of select=”@Created”/></td>
       </tr>
       <tr valign=”top”>
        <td><strong>Details</strong></td>
        <td valign=”bottom”>
   

   <a href=”#” onclick=”jQuery(‘#dialog’).dialog(‘option’,'show’ , ‘slide’);jQuery(‘#dialog’).dialog(‘option’,'height’ , 300);jQuery(‘#dialog’).dialog(‘option’, ‘width’, 500);jQuery(‘#dialog’).dialog(‘open’); return false”>
   <xsl:attribute name=”onmousedown”>
   <xsl:text>javascript:PopulateText(“</xsl:text>
   <xsl:value-of select =”@Body” disable-output-escaping=”yes”/>
   <xsl:text>”, “Comment”);</xsl:text>
   </xsl:attribute>
   <img border=”0″ src=”/SiteCollectionImages/Moreicon.gif”></img>
   </a>
  

   </td>
       </tr>
      </table>
     </font>
    </p>
   </div>
  </xsl:if>
  <!–If this is the last match we’ll put a footer on the end to close off the html–>
  <xsl:if test=”count(following-sibling::*)=0″>
   <xsl:text disable-output-escaping=”yes”>&lt;/div&gt;</xsl:text>
  </xsl:if>
 </xsl:template>

VN:F [1.9.3_1094]
Rating: 9.0/10 (1 vote cast)
VN:F [1.9.3_1094]
Rating: +1 (from 1 vote)

Popularity: 64% [?]

Static vs Dynamic Content

Filed under:IT,SharePoint — posted by Jason MacKenzie on July 22, 2009 @ 11:29 am

You are under the gun and need to get information published about your 40+ operational units before your SharePoint rebranding goes live. You need the same information about every unit, which in this case is their Expertise, Services and Equipment. You wipe the sweat off your brow, or elsewhere, but we won’t get into that. You consider the options and decide that you are going to either create a new page layout or simply create a site and save it as a template and recreate the rest from it. Since you have the content you need you decide that you are simply going to use the Content Editor Web Part to display it. It works and you are golden.

The portal is relaunched and people browse around the new content – once. Your boss asks you, “This information is great. What can we do with it?” Your response of, “Not a hell of a lot” is not well received.  You leave early and drink yourself to sleep.

Let me suggest an alternative approach. Since each operational unit has a site and those sites all reside in the same site collection, content types and the Content Query web part are an excellent solution that can acheive the same presentation requirements while providing the ability to centrally manage the information and use it more effectively.

In this case we can create 3 content types (Equipment, Expertise, Service) that correspond with the information we need to capture.  We’ll keep the default Title field and add another for Operational Unit Name.

At this point you can create a list and associate those content types to it.  Click here for a detailed explanation of content types.

ContentTypes

 

 

 

 
We’ll add an entry for each content type for our fictitious Operational Unit 1.

ListOverview

We are now in a position to be able to create the site, page or whatever is required for our new Operational Unit.  Keep in mind that in order to use the Content Query web part the SharePoint publishing infrastructure must be enabled by activating the feature.

Once the site is created we can drag add 3 Content Query web parts to the page.  We need to use three in this case to achieve the standards set for the presentation/look and feel.  For the purposes of this blog I’ll add 1. 

ContentEditor

You can see here that we are able specify the content type we want to display and we are able to filter the results to show only those items that are associated with Operational Unit 1.

The Content Query web part provides rich opportunities to customize the look and feel of the results by changing the XSL stylesheets in the style library.  That’s definitely a topic for another post but suffice it to say you have a lot of options to make it look purdy.

Workflows can be associated with the content types we have created and of course the regular SharePoint permissions apply to our Master Overview list so that we can delegate responsiblity for managing the Services, Expertise and Equipment to a key person at each operational unit if desired.

We also now have the ability to look at that master list and use it for our advantage.  If someone wants to see all divisions that are experts in a specific kind of stamping we can.  If we add more metadata such as Region we can obviously get more granular in how we look at the information.  We could then use this master list to start to associate specific people with areas of expertise to further enable people to find the people that can help them more quickly.

In conclusion, I have attempted to show you a different way of using some of the out of the box features of SharePoint to achieve your presentation requirements while giving you the ability to centrally manage key data and use it for a broader suite of business purposes.

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Popularity: 37% [?]

Web Parts – Getting Rid of them Properly

Filed under:IT,SharePoint — posted by Jason MacKenzie on @ 5:50 am

We are currently looking at ways of optimizing the performance of our SharePoint implemention and I learned something very simple about Web Parts that I did not know.   We have had users that when removing Web Parts from our pages are placing the page in Edit mode and “removing” the unwanted web parts by the method shown below:

Close

 

 

 

 

 

 

This has been going on for some time.  Navigating to the Web Parts maintenance page (easily accessible by appending “?contents=1″ at the end of URL of the page in question) shows the following!

WebParts

The Web Parts are still considered as being on the page but you simply can’t view them.  These means that additional resources are being used render and download the page.  In fact this same situation will occur if you use the Close option as shown in the screen shot below.

The proper way to remove Web Parts from the page is to use the Delete option.  Simple. 

Delete

A more eloquently written post I stumbled across can be found here: http://gvaro.spaces.live.com/blog/cns!B06529FD3FC75473!379.entry

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Popularity: 43% [?]

Moving from File Shares to SharePoint 101

Filed under:IT,SharePoint — posted by Jason MacKenzie on July 20, 2009 @ 6:26 am

doc-import_workflowConsider the following situation that many people, teams and businesses find themselves in.   You have a large set of related documents in which critical business decisions are made.   You have no processes in place to deal with capture, approval, disposition etc.  You are using a windows file share to manage these documents with which results in issues with security, versioning, finding the one version of the truth, searching and all the associated problems that go along with this semi-structured approach.

SharePoint provides excellent functionality out of the box to deal with these types of situations.  The question you need to ask yourself is how can I deliver the value the most quickly in the context of the current situation. 

I don’t want to spend a lot of time talking about Content Types in SharePoint as they are not germane to the specific scenario I will talking about in this article.  An overview of content types can be found here: http://msdn.microsoft.com/en-us/library/ms472236.aspx.  Suffice it to say that a content types allow you to specifiy the metadata and behaviours of content in a reusable way across your site collection.  They also provide the power to truly bring your enterprise search alive.

The situation I was presented with last week was the following:  Our team that is responsible for global contracts and services currently manages the Global Contracts documents in SharePoint (in a list) and “manages” the supporting Service related documentation in a Windows file share.  There is a two way 1-n relationship between Global Contracts and Services.  So in other words, there may be one or many Services related to a Global Contract as well as one or many Global Contracts related to a service.   There are none of the processes I briefly covered in the first paragraph defined and there is also very little in the way of standards templates and standard document sets that are associated with a service.  There is also a fairly complex folder structure used to manage these documents which is resulting in a lack of clarity about where to put what which ends up with multiple versions of the same document being stored.

Querying the user about what they need indicated the following initial requirements:

  1. We need to be able to simplify the storage of these documents so there are less chances to make mistakes
  2. Organize documents by Service
  3. Categorize and view documents by document type
  4. Categorize and view documents by vendor
  5. Be able to see what global contracts are related to a service that we are working on.
  6. I need to be able to work on drafts and publish the final version

Clearly, this team is not at the point of even considering the more sophisticated options that SharePoint brings to the table. I thought back to a simple but effective technique demonstrated on a webcast by Dux Sy last month: http://sp.meetdux.com/archive/2009/05/15/how-to-emulate-network-shares-in-a-sharepoint-document-library.aspx

Here’s what we did:

1. Firstly we created a few lists that will be shared between the Global Contracts and Services libraries.  One was to store a central list of services and the other was to store a list of Vendors.   Keep in mind that this data could be exposed from an LOB through the BDC however they are not licensed for Enterprise and regardless there is no back end system that houses this data anyway.

2. We then created a document library called Services that had the following columns:   Service Name (lookup from the Service List), Vendor Name (lookup from the Vendor list with the option of selecting multiple options) and Document Type (choice which included Form, Proposal, Financial Analysis, Misc. etc.).

3. We then added a lookup column to the Global Contracts list that will allow selecting multiple values from the Service Name list.

4. We created a Web Part Page that will show both the Services and Global Contracts lists categorized by by Service to allow for easy reference between the two.

5. Turned Major and Minor versioning on for the Services list to allow for the publishing of Major versions.

That’s about it.  I’ll include some screen shots when I have the time but I want to summarize the immediate benefits that this brings to them. 

  1. There is only one “folder” to drop documents into which eliminates the current confusion.
  2. Using metadata instead of a folder structure to categorize content gives much more flexibility to view/filter/group sets of documents that you want.  Show me all the Forms where the vendor is SAP.  Show me all the services where IBM is a member etc.
  3. The content is indexed by SharePoint so searching is much quicker.
  4. Security is much easier to manage through the SharePoint UI
  5. Allow for the management of versions.
  6. Instead of getting too worked up about categorizing every type of document create an option for Miscellaneous or Uncategorized in the Document Type column.  This will allow the customer to easily see which documents need to be categorized over time and as they work through their processes in more detail.

This is step one of what will hopefully be a concerted effort of defining the appropriate business processes, building document templates  and further understanding what types of metadata are required.  But it helps them with their immediate problem and also keeps it very simple.  Since I am not a complex thinker, keeping it simple is what I do best :)

VN:F [1.9.3_1094]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.3_1094]
Rating: +1 (from 1 vote)

Popularity: 74% [?]

SharePoint Governance (PKS) Part Trois.

Filed under:IT,SharePoint — posted by Jason MacKenzie on July 6, 2009 @ 6:55 am

I wanted to talk briefly about a specific project and how it might be implemented while keeping the governance considerations mentioned in the moss_2007last 2 posts top of mind.

In my view, if we had an engaged Business Strategy team the strategic instructions would look something like this.  Developing people is a critical activity to ensure the future success of our company.  Training is a crucial component of developing people and it’s imperative that we find a more cost effective way to deliver this training.  We must also continue to leverage our investment in SharePoint and continue to work towards making it our primary platform for delivering rich media and interactivity.

However, really how it went was more like:  It would be cool if we could have streaming video for stuff like eLearning.   These comments and conversations were casual but repeated and were initiated prior to the kick-off of the governance project.

We were keenly aware of a few things:

  1. People Development and Training is a strategically important area for our company
  2. Costs of delivering training must be reduced – especially considering the current economic climate
  3. We have invested heavily in SharePoint as both a communication,collaboration and application platform and need to continue exploit that investment
  4. There has been an expressed desire to slowly start introducing Enterprise 2.0 ideas and capabilities to the organization.
    1. Our executives have been blogging and slowly introducing more supporting media to their posts
    2. The next step will almost certainly be executive podcasting
    3. Allowing for ranking and commenting on content is a simple way to increase the interactivity of the portal and generate more feedback.

As the Manager of Global Business Solutions I had my team download and install the SharePoint PKS on our SharePoint development environment.  Configuration and testing took a few weeks and as soon as it got to a reasonably demonstratable state we assembled our Technology team and a SharePoint Business Analyst from the People Development and Training department (the functional owners of the portal).

We spent a few days putting detailed documentation together on what it would take to implement the PKS in production based on the information we had (which was very little).  Our objective at this point was to think through the possible implications but to also stress to the Business Strategy team that this was a significant undertaking.  The documentation covered the following main areas:

  1. Business Opportunity and Objectives
  2. Prerequisites
  3. Infrastructure Requirements
  4. Policy and Guideline Requirements
  5. Estimated Project Costs (this was a WAG)
  6. Ongoing Costs
  7. Resource Requirements
  8. Risks
  9. Potential Success Criteria and KPIs

Point 2 relating to prerequisites are where the governance piece comes into play.  Whilst the governance development is well underway, the teams are currently working on their action items – some of which are related to training, acceptable use, SLAs, disaster recovery etc.  We stridently insisted that these must be approved and in place before introducing more complexity to our SharePoint implementation.

We demonstrated the software to the Business Strategy team members and reviewed the documentation with them.  It is currently in their hands and we’ll see in the near future what the decision is.  As I have stated previously, this is the approach we have decided to take.  Proactivity on the part of the Technical Strategy team to look forward and initiate projects that we believe have business merit and bring those to the BST for approval.

VN:F [1.9.3_1094]
Rating: 8.0/10 (1 vote cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Popularity: 28% [?]

SharePoint Governance Part Deux

Filed under:IT,SharePoint — posted by Jason MacKenzie on July 3, 2009 @ 11:35 am

Delivering Governance that Makes Sense for Your Organization

moss_2007Part 1

Here is where organizational context becomes important.  We don’t currently have what I would consider to be an appropriately engaged Business Strategy team.  Despite that fact, things need to move forward.  So as a senior member of the Technical Strategy team we have decided that in order to stay proactive we’ll drive things forward and present our current and planned activities to the Business Strategy team for the thumbs up or down.  We are fortunate in that we are senior enough in the organization to have a good sense of what we need to be doing.

Part of the challenge of delivering something resembling governance model is determining what to focus on first and to create something useful that will have a positive short term impact.  If you try to deliver the comprehensive, all-bases covered governance document it will take you a year and be outdated by the time you are done.  Be agile, be smart and figure out how you can have the most impact.  Finding committed people and delegating deliverables is critical in ensuring you that you deliver anything.

In our situation the Technical Strategy team went through a collaborative process to determine what we believed to be the top  priorities.  We did this by using our own collective experience along with an analysis of all SharePoint related issues that were handled by IT and were tracked in our Help Desk software.

We then categorized these priorities based on their relative importance to one another.  We agreed on the following list:

  1. Determine/Improve Current Skillset
  2. Continuity and Availability
  3. Policies
  4. Improve Taxonomy/Information Architecture
  5. Protect Data
  6. Keep SharePoint technology up to date.

We then further subdivided those main focus areas into more detailed deliverables.  I won’t go into all of them but will list the ones that fall under Determine/Improve Current Skillset.  It became very clear by analyzing the data that a major impediment to the adoption of SharePoint as well as a significant source of confusion and pain for IT is related to training.

  1. Site Administrator training – Tier 1
  2. Help Desk training – Tier 2
  3. SharePoint Administrator training – Tier 3
  4. End User training

Now that the main focus areas have been determined we will present them to the Business Strategy team for approval.  In parallel, however, we will continue to move forward with the process.

The next step is falls to the tactical teams themselves.  They must review the tasks or objectives and will provide a listing of objectives they feel they own, or partly own responsibility for.  They will also prioritize the objectives they own based on what makes the most sense and provides the most business value based on the original priorities provided by this team.  Finally they will create a plan of action for how they will begin satisfying the outlined objectives.

At this point the Technical Strategy team is able to meet less frequently and with the responsibility for ensuring that the tactical teams are making appropriate progress.  They will also be responsible for clearing any roadblocks the teams might be facing.

Our realities are very similar to what most organizations are facing.  SharePoint activities and initiatives won’t and can’t stop while governance is being created and implemented.  At the same time we need to start implementing the pieces of the puzzle that will have the most impact.  What I like about this model is that it allows for that.  Responsibility is delegated to those closest to the problem.  This is a major tenet of our corporate philisophy.  It also allows for concurrent activity and implementation of completed pieces while the development of others is ongoing.

Look for Part 3 coming soon.

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Popularity: 29% [?]

Six Great Reasons to do a Technical Webcast « It’s Possible

Filed under:IT,Personal — posted by Jason MacKenzie on June 28, 2009 @ 7:19 pm
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Popularity: 24% [?]

SharePoint Governance

Filed under:IT,SharePoint — posted by Jason MacKenzie on @ 7:05 am

moss_2007As stated previously I want to post about SharePoint governance and what we are learning as we go through the process.  We’ve had SharePoint (2003 and then MOSS 2007) at our organization for about 4 years now and it, along with our organization, has been consistently evolving to reach the current state.   In order to illustrate my point I want to talk about governance and also about how the potential implementation of the SharePoint Podcasting Kit will work vis-a-vis this model.

To provide some context here’s a quick overview of where things currently stand.

  1. Approximately 8000 users globally and being implemented as the mandatory home page for all Active Directory members in the organization
  2. Approximately 18,000 home page hits per day with 500,000+ for the entire portal per month
  3. A public area and a secure area.  The public area is primarily used for communication purposes while the secure area is more collaborative.
  4. 500+ sites, with a legacy mess of site collections and sites with a fairly incoherent taxonomy.
  5. More SharePoint groups than I can even begin to count.
  6. Divisions (manufacturing facilities) are beginning to come on board and replacing their divisional intranets with site collections on our central implementation.
  7. A very poor level of overall user training.
  8. Exectives are blogging reguarly
  9. Integration with some LOB systems through the BDC
  10. One farm, located in Toronto with:
    1. 2 load balanced front end web servers
    2. 1 application server
    3. 2 clustered SQL servers
    4. SAN
  11. A very, very lean IT organization to support the platform.

I’m sure our implementation and the current state with its strengths and weaknesses is not uncommon for many organizations.  One of the areas we currently are lacking in is a governance model that works for our organization.  A lot of research has been done on the various approaches to tackling this monster and there is a lot of conflicting information.   We have decided to create 5 times, each with their own specific areas of responsibility.  Somehow I got stuck on most of these teams but that’s a story for another day.

  1. Business Strategy Team
    1. This team consists of appropriate business owners willing to provide strategic insight and direction for the portal, and able to drive strategic initiatives into their respective organizations. Resources represent a good balance between business and IT, and also centralized control vs. decentralized empowerment. This team is a small, living team and can be reconstructed on a quarterly basis with new volunteers to maintain a fresh perspective on the business and exploit the collective wisdom of the company.
  2. Technical Strategy Team
    1. This team consists of knowledgeable technical leaders to provide technical direction on the portal. It is important that key relational systems experts should be involved in this team. If a business direction requires new integration or effort with other technologies then a technical representative for that technology will be necessary to ensure the planning, architecture, and implementation stages are more effective. This team is small and can be reconstructed on a quarterly basis with new volunteers to maintain a fresh perspective on the business and exploit the collective wisdom of the company.
  3. Tactical Support Team
    1. SharePoint site owners, plant system administrators, help desk personnel, and other various support resources create an effective support system with proper channels of escalation for end users of the SharePoint environments. This team handles application questions, bugs, and other problems requiring issue resolution.
  4. Tactical Operations Team
    1. Infrastructure (IT) resources provide operational support for the system as they help to ensure the enforcement of the governance plan and manage the more routine maintenance of the system by performing nightly backups, usage monitoring and analysis, scheduled task validation, and keeping the system current with security releases and system upgrades.
  5. Tactical Development Team
    1. Technically talented people both willing and able to customize, personalize, and use SharePoint in a manner that fulfils the business opportunities as identified by the strategy team. This team is a loosely-knit community of developers with varying degrees of proficiency in software development. Members can range from highly skilled programmers to technically savvy end users in charge of personalizing departmental team sites. Skilled developers will handle large change requests, new features, and program management while ensuring adherence to standards.

I’ll wrap this post up and focus on organizational context and a case study of the SharePoint Podcasting Kit during the next post.

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Popularity: 28% [?]

SharePoint Governance – A practical methodology

Filed under:Enterprise 2.0,IT,SharePoint — posted by Jason MacKenzie on June 26, 2009 @ 1:46 pm

moss_2007Look for a post over the next few days around how to manage the process of implementing a practical governance model. I’ve learned a lot and am eager to share.  I’m a very pragmatic person and believe that context – in the form of corporate culture, engagement, strategic direction (or lack thereof) – should be a primary consideration in developing a governance model.  Stay tuned.

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Popularity: 26% [?]

PMP Professional

Filed under:IT,SharePoint — posted by Jason MacKenzie on @ 6:23 am

KirillI want to take a moment to post a link to a blog I can see offering a lot of excellent information.  It’s written by Kirill Karmi,  a friend and colleague who brings a tremendous amount of depth in both SharePoint and Project Management.  Don’t mind the creepy picture – he’s harmless.

http://pmp-pmprofessional.blogspot.com/

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Popularity: 19% [?]


next page


image: detail of installation by Bronwyn Lace