Friday, March 27, 2009

The Art Of Making Effective Presentations : Steve Jobs Way

A few years back, I did some extensive research on Apple's CEO, Steve Jobs. I learnt a lot from the way he delivers his Key note speeches/presentations. Sharing my very popular slide deck from SlideShare...

Tuesday, March 10, 2009

Wednesday, March 4, 2009

Develop Knowledge Management Portal in Sharepoint 2007 - A Case Study

Recently, I incorporated an organization level Knowledge Management Portal primarily built for warehousing/capturing knowledge across our organization.

Our Site Collection topology was as follows:

Metadata is as follows:

All the above Sites share a common Meta-Data
(all of the meta-data mentioned below have been incorporated as SharePoint Lists)

Ratings:
I have also used an innovative feature known as List Item Rating, where users can rate each of the above meta-data.

To incorporate the same, kindly download the Document Rating System from Codeplex: http://sptoolbasket.codeplex.com/Wiki/View.aspx?title=SharePoint%20-%20Document%20Rating%20System&referringTitle=Home

Also read the
SharePoint_Document_Rating_System_Manual.pdf
It contains step-by-step guidelines as to how to set-up the Rating model for lists/libraries.

Implementation Approach:
So the approach was to create a MOSS publishing collaboration site with all of the above meta-data as lists and implement them as Content-Types on the Top-Level site-collection, since meta-data is common across the entire site-collection except for a few columns like Keywords and Related Items, which are subject to a specific Technology site. Both these columns were created as seperate SiteColumns in the Site Column Gallery for that respective Technology site.

I also incorporated a common list namely Technology Category on the top-level site-collection having Category name and Technology as two columns. This has a special significance, as each of the knowledge sharing Technology sites have respective Technology Categories like for eg: Microsoft has C#.NET, VB.NET, Workflow foundation, Web-Services, Sharepoint etc and so on and so forth for other technologies....

This list will be used as a look-up column in each of my Meta-Data Content-Type as I need to identify my content with a Technology Category, i.e if a user wants to share a Sharepoint E-Book, he will go to the Microsoft site, and then go to the respective meta-data list, in our case E-Books and then choose the Technology Category i.e Sharepoint and upload the required PDF file. Keywords is a common list we maintain at each Site level and then use as a look-up column in each of the list, so that the user can select Keywords and add them in reference of the item he is creating, similarly for Related Content column.

Use of the Query String filter approach:
Now, the idea was to create and maintain as little pages as possible on our Technology sites, so we had just two pages for each of the Technology sites, i.e Microsoft site had just one landing page, where all the meta-data lists are shown as ListView webparts and are grouped by Technology Category columns within the site.

We created static links of Technology Categories specific to each site, linking to the same landing page with a query string parameter, we then used a Query String filter web part inside this landing page to filter all the List View web parts using web part connections property filtering Categories on the basis of the column 'Technology Category'

So now, if there is a new Category added, the user just needs to go to the top level site collection list namely Technology Category and make an entry.

He then needs to create a navigation link on the respective site with Query string specifying the Category, for eg: /sites/kbase/microsfot/landingpage.aspx?Category=Sharepoint, (NOTE: This Category parameter should exactly match the category name specified in the top level site-collection list namely Technology Category).

So, this is how we avoided creating pages for each Category, Query String Filter webpart did the trick for us.

Apart from that, each user could also see his own content uploaded in various lists as, we added a separate list view web part with the filter formula "[Me]" on the Created By column.

Approvers Console:
The second page in each of the Technology sites behaved more like an Approvers Console, where we used Audience Targeting feature to allow only approvers to see this respective section.

Very importantly, all the lists had Content Approval feature enabled, so if a user uploads a document it is in the Draft stauts, he needs to Publish this document to send it for Approval, it then goes to the users defined in that site-specific "Approvers" group for Content Approval. (NOTE: By default a Publishing Collaboration site has an Approver group in place). The document lands in the Approvers Console and is not visible to anyone except the Author and Approver.

Security:
All our sites inherited permissions from the Top-Level site in the sitecollection. We validated users from the AD and we had one Domain users group which spawned all the employees in the organization, this group was assigned "Viewers" rights on the top level site, by default all the other sites inherited these permissions.

We then changed the List level permissions and assigned "Contributor" rights to the "Viewers" group.

Since, all the users in each of our lists had the same "Contributor" rights, I had to use the List Write security feature provided OOTB, where i had to allow only the Author of the document to Edit/Delete the list item and Read access to all.

Customization:
We also desgined our Custom Branding and page layouts using Sharepoint designer and then packaged it as a feature.

Effort:
The Knowledge Management site was developed within less than 2 months of our time with 2 resources, we had add some data to kick-start this portal and make it more inuitive for the end-users.

It is an extremely user-friendly interface and looks contemporary with Article ratings implemented.

If you feel this article as valuable, share it with your friends and colleagues :)