Share - Manage - Govern
BLOG ABOUT RSS CONNECT WITH RENE RSS RSS Feed
12. August 2010  

Beginning of June, I received Michael Sampson's brand new "User Adoption Strategies" book.

User Adoption Strategies BookIn the 260+ pages (as stated, "I want this to be a book you can read quickly and apply rapidly.", which I can confirm), Michael explains why there's a need for a user adoption strategy (simply said "What is the biggest complaint around the introduction of new collaboration technologies into a group or organization? The answer: No one uses them."), and provides a quite simple process with multiple strategies (you don't have to use all of them, but of course can select the ones that are relevant and suitable for your enterprise). While it took me a while to finish reading the book due to time constraints, during the actual times that I could read it, I didn't want to stop. The author truly holds his promise that it's a book to "read quickly and apply rapidly".

The first chapter explores the basics and explains the need for user adoption strategies. Particularly interesting here (and generally in the whole book) is that Michael focuses on what he calls the "Second Wave People", the people who have use the new technology as it is provided, and did not participate in an "early adopter" stage. The reason behind this is that these people form the majority of all users in a company, and these are the ones that need to be "convinced" the most. This is what make the book so useful, as you will generally have to put in more effort into engaging these users than others!

Chapter three goes on to explain the change processes that are involved, and the author provides a short roadmap with explanations for each step. Afterwards, he describes how people nowadays collaborate with each other.

Chapter 5 onwards contains the real gems! In here, Michael first describes a four stage process to get users engaged, and describes multiple strategies for each stage in the following chapters. In itself, the "Four Stages" are a very simple, but well thought through and powerful process:

Four Stages

Michael dedicates a chapter to each stage, and provides 3-6 (18 in total) different strategies for each stage. Not only does he list them, but he lays out in detail what they, how to use them, why to use them, and why they work, all usually backed up by data gathered from his survey.

Excerpt
(Excerpt from index)

What I enjoyed most from the book is the way Michael explains these strategies. Not only do you get to know how they work, but also when to apply them (in which situation), and why they actually help you. All that written in a very understandable language filled with lots of examples, making it easy for you to grasp the concepts immediately when you read about them. While reading, a few times I thought "why didn't I think about this before!". These aren't complex frameworks for which you need to read and think a lot beforehand to understand them, and neither does it take a lot of time to apply them.

Excerpt
(Excerpt from the book)

As I said, the strategies are usually backed up by survey data, which Michael acquired by conducting a global survey with more than 400 responses. Those strategies are not just theoretical concepts, but proven strategies!

My recommendation: go and order the book (US$39 incl. shipping), in my opinion it's a must have for anyone who is planning to implement SharePoint( or already has), or more generally speaking works on an IT project and wants to improve the user adoption!

Comments Comments (1)
 
07. August 2010  

AIIM, in their own words "the leading non-profit organization focused on helping users to understand the challenges associated with managing documents, content, records, and business processes", recently launched some new SharePoint certifications. Whereas the existing certifications from Microsoft focus on developers and server administrators, these new certifications rather target IT managers, business users, staff that is directly involved in the rollout of SharePoint, and similar.

The following image shows the structure of the certification program as a whole, including the 2 "main" certifications (Practitioner, Specialist):

31da3568-36d2-458e-8b28-7240bc157d5a

I had the opportunity to start with the SharePoint Practitioner certification end of July, and finished it (well, and got my certification!) 6 days later. I've also registered for the SharePoint Specialist course, which will be ready in another 2-3 weeks.

The website says about the Practitioner course: "The SharePoint Practitioner track covers concepts and technologies for SharePoint, and is available as an online or classroom training course leading to a Practitioner designation. The online course consists of 13 online modules, and each module is approximately 45 minutes. The primary focus of this training is on 2010 capabilities, touching on 2007 or earlier capabilities as needed." Or in other words, "What is SharePoint?"

For each module, you can download some resources (usually the presentation slides as well as a summary), view the online presentation (the slides including some audio with further information), and of course do the online exam:

2752e9b1-382d-462b-9133-bbd7910bf3f2

 

If you launch the online presentation, you will see the following screen:cd85c450-bb24-4fab-9c22-f5747b10ffd6

As you can see, the slides are presented on the right side, with the navigation on the left. Additionally, you can switch the navigation to a thumbnail view of the slides, a notes view (which is the text that is narrated), or a Search that searches all slides and their corresponding notes.

 

For example, if you switch to Notes, this is what you will get for the same slide:
c78bc29e-5910-4043-ab1b-5fa8e9ecf5b6

 

My recommendation while going through this online presentation is to switch to the Notes view and take notes where applicable. Not everything that is contained in these notes is on the slides, however all of it (slides AND notes) are relevant for the exams!

3ba57d48-9c70-4eee-8ff8-ccfd785f6f0d

 

For each module, there is an exam to pass. Once you passed all 13 exams (1 introductory exam, 12 for the modules), you get the overall certificate and can call yourself SharePoint Practitioner.

Each exam consists of 12 questions plus an additional three feedback questions (naturally, those three don't count towards the result). A question is either a true/false question, or a multiple choice where you need to choose either one of four options, or select all choices that apply.

4d8506a8-7942-46a6-856b-1f72711fd381

2c62468a-cbb4-4ed4-9d00-ebcf8e0e6f4a

 

Once you answered all 15 (12+3) questions, you get to this overview screen where you can go back to individual answers, or click on "Grade Exam" to get your result.

1bc9ce0a-422c-488b-9f4b-6bc4fcba54fb

 

Once you have your exam graded, you will see immediately if you passed or not. In either case, you will get a general hint in which areas you answered wrongly (though you have to remember which questions are applicable for these areas, you don't have the chance to review them).

If you passed your exam, you can download a certificate that shows that you passed this particular module.

cf2e78af-4306-4d0b-883e-468b19c41a90

My opinion:
For myself, I didn't learn many new things, as I've been working with SharePoint for 3 years now. The course is more suitable for people who want to get a broad overview of the features an functionalities of SharePoint 2010, and how they can be used. If you already have some experience with SharePoint, it should be quite easy to pass it.

Comments Comments (0)
 
22. July 2010  

A part of every SharePoint implementation is a proper training plan for employees. Without proper training, your SharePoint rollout is quite likely to fail (though, naturally, the reverse is not guaranteed either; that is, if you hold a training it will be a success, as many factors play a part in this).

Being now in my second big implementation in the Asia Pacific region, each time for a big MNC, here are some of my findings and experiences (none of which I claim to be complete or 100% accurate, please see the first point). Going into more detail for each item would result in a huge growth of this entry's size, resulting more likely in a whitepaper-worthy length. The purpose, of course, is to be more thought-provoking than detailed.

Things that need to be considered regarding training of staff are

  • No training plan fits all companies!
    There is no standard training plan template that can be applied to all companies and all SharePoint implementations. As with all IT projects, a SharePoint implementation is highly complex. And so are the requirements for the training.
    Therefore, some of the points I mention below will not be applicable for your specific situation. If you are a small office with 20 users, holding sessions with as few as possible users will usually be more beneficial than holding one big training session for everyone. If you are a large MNC, you usually can't provide training in one language only, but rather need to translate it into multiple languages. For that reason, everything else that will be mentioned here CAN be taken into consideration for your training plan, but you should always consider your own needs and the relevance to your situation.

  • Different kinds of end users
    For example, you might have users that use your SharePoint mostly for data consumption, and users that contribute a lot. Naturally, the second groups needs a training with a stronger focus on how to add, edit, and maintain data stored on SharePoint. Another possibility is that you have "regular" users as well as "power" users, the latter which is allowed to and responsible for creating new lists & libraries. Training everyone on how to set these up is clearly overkill, but providing such a training for key users definitely beneficial.
    Another option would be to hold trainings for different departments (or any other kind of user groups that you can identify). The Finance department members might be more interested in learning about Excel Services and dashboards, whereas the Sales people want to know how they can quickly find all the relevant product information that they need.

  • Different locations
    While there are situations where you have all employees that need to be trained, more likely you will have dispersed teams, sometimes spread across countries or even continents. So you will need to hold multiple sessions for all those teams. One option would be to visit all those teams and hold the training directly, though this is obviously a very expensive one.
    Another alternative would be to train some key users ("train the trainer"), which afterwards train colleagues at their own location. This also gives you the benefit of having trainings in different languages (see below).
    Yet another option is to hold training sessions by sharing your desktop with other people through a web-based tool. That way, you can train people located in Paris while you're sitting in your office in Seattle.

  • Different training times
    If you need to conduct multiple trainings at a location, plan for different timings as well. The reason? People have different schedules with some regular and some irregular items. If you plan to hold 2 hour trainings on 3 different days, try to spread them across the day. That way, it will be easier for people to join a training session, as it is less likely that it will conflict with their calendar.

  • Trainings in different languages
    As mentioned before, you might need to train people in different countries in different languages. By holding trainings in one language only, you risk that not all participants understand the contents clearly, and you risk that even though they attended a training, they do not understand how to use all the functionalities covered.
    It is thus recommended to hold trainings in multiple languages where it makes sense. If there are only 3 people that speak a different language, translating your whole training materials would be overkill. But if you have let's say 100 people, you could consider it a must.
    How should those trainings be held? One option would be to hold them bilingual, e.g. in Chinese and English (assuming that English is the commonly used language in your company). You present in English, and someone else (e.g. a knowledgeable colleague, or better a translator) conducts the training in Chinese, both of you switching to one another regularly (~ once per slide). The drawback here is that you will have to include a lot more time for this kind of training, but more severe is the fact that most people will probably stop listening to you and concentrate on the native speaker only. Thus, a "train the trainer" beforehand and the local native speaker conducting the local training by himself makes more sense.

  • Different kinds of trainings
    A training should not be a one-time thing only. It is simply impossible to include everything that you want to train people on in a single training session, so you need to plan for a few different trainings.
    The first kind of training would usually be an introduction on SharePoint that covers the reasons for the implementation, the benefits that can be achieved for the company and the users, and the most basic functionalities.
    Afterwards, it is possible to hold small "refresher trainings" to allow those employees that could not participate the initial training before (e.g. due to time constraints, or as they joined the company only afterwards) get the relevant knowledge. Furthermore, some people might take up the opportunity to go through a training again and get a better understanding.

  • Different formats
    There are many ways how a SharePoint training can be conducted. Michael Sampson goes into more detail in his book "User Adoption Strategies" about classroom training and web-based training. Another option is to hold a one to one training.
    Each of them has its benefits and drawbacks. Holding a one to one training is definitely the most effective, but also the slowest (imagine having to train everyone this way!) and most expensive. Web-based training, conducted for example through a tool like WebEx, has the benefit of allowing participants in different locations to join. However, it will be difficult for them to do some exercises during this training session, more likely this kind of training would follow a presentation style.
    The most standard kind of training, the classroom training, allows participants to work on exercises, and get support and feedback easily and immediately. The fewer participants here, the more effective the training usually is (yet, the total number of people to be trained and the timeframe of the trainings play a big factor here as well).

  • Executive support
    As with most things, having executive support shows that the company in total is committed. There may be a lower resistance level to participate in a training if employees are asked by their superior to go. So if you set up a training, why not let the CEO send an email to staff to inform them about it? Or alternatively, ask the department managers to notify their staff about the trainings, asking them to participate.

  • Provide registration possibilities
    If possible, give people a choice on their training schedule. As mentioned before, different people have different working schedules, and they know best when a training for them would fit in. So why not set up a training registration page on SharePoint, where they can then select the training they would like to participate in?
Comments Comments (0)
 
12. July 2010  

Disclaimer: As my intention is to write about the implementation in general (as for most of it, you could say that it is relatively straightforward to do; only OOTB SharePoint functionality combined with some SharePoint Designer magic is used), you will not find detailed steps on how to create a similar solution here. However, I will briefly describe some tricky parts which I hope will help others doing something similar.

Shortly before the recent FIFA World Cup started, I was approached by a colleague asking me if I could implement a tipping competition for it in SharePoint. Their office already had plans for a regular "offline" competition locally, but in order to promote our SharePoint based intranet, and to let others join as well, he suggested to do it in SharePoint.

After a little bit of testing, I came up with a working, though not perfect solution (the drawbacks and "security issues" are mentioned below). It has been, however, used without any major issues, and can be considered a success.

The Rules

For each match in the World Cup, people are allowed to submit a tip. We decided to let them tip the result after 90 minutes (irrelevant for the group stage, but important for Round of 16 onwards), and awarded points for each tip as follows:

  1. 5 points if the exact result is tipped (e.g. both result of the match and the tip are 2-1, or 3-3)
  2. 3 points for the correctly predicted goal difference of a match (e.g. if the result is 2-1 and the tip is 1-0 or 3-2; or if the result is 1-1 and the tip is 2-2)
  3. 1 point if the correct winner was predicted, but the goal difference is different (e.g. if the result is 1-0, but the tip is 3-0 or 2-0)
  4. 0 points otherwise

Implementation Basics

 image
A dedicated site was created for the competition. In that site, the following elements were created

  • a "Group" page for each of the 8 groups (A-H). Tipping for the individual matches of a group is done through here
  • a dedicated page for each of the later stages (Round of 16, Quarter Finals, ...) on which tipping for the corresponding matches is possible
  • a scoreboard page that displays the current standings of the tipping competition
  • a list that holds all the fixtures of the World Cup (group matches, Round of 16, .... Final)
  • a list in which all the tips are stored. As authentication is done through Active Directory, it is always possible to know who submitted which tip ("Created By" field)
  • a list in which comments are stored. These comments are displayed on all pages, allowing employees to chat and talk about the World Cup

Additionally, two Excel spreadsheets were created. The first spreadsheet is used to calculate the points of all tips by connecting to the SharePoint fixtures list and tips list, and comparing each tip with the actual result and awarding the points as defined above. Based upon this, a ranking is updated each time new results were entered into the SharePoint fixtures list.

The second spreadsheet is used to display these rankings in a Web Part on the scoreboard page.

This could have also been achieved inside a single spreadsheet,  however in order to prevent other people from accessing the calculations but still be able to show the results, this "two file solution" was implemented.

How it looks like

The entry page of the tipping competition site contains a short welcome message and some brief infos. Below that, the next few matches are displayed, and the official World Cup RSS feeds from FIFA are displayed inside widgets from Widgetbox:

ea632b6e-9aa9-48d5-8569-c098462cd9ce

To make it very easy to navigate among the different group pages and other pages, all of them can be accessed from the site's quicklaunch:

f6dc18ba-2733-44c1-adee-53bc8ce19b2c

As mentioned before, on each page the comments list, called "Have Your Say", is displayed:
a9b0c387-8d9c-4838-8cf5-b4ab3a70fd05

What I'm doing in this case is actually displaying two Web Parts: the top Web Part is a Custom List Form Web Part that allows employees to add a new comment, below that is the List Web Part which displays the latest comments. In order to make it look as if they are one, the bottom Web Part's title bar.

A group page shows all matches of a group, the results (if the match was played already), and the tip for the user accessing the page. Once a match has started, tipping is no longer possible:

12a51991-2402-4736-9347-deff2e2cc74a

The pages for the later stages (Round of 16, Quarter Finals, ...) contain the corresponding matches. As it can be seen below, a tip has been submitted for the match Uruguay-Netherlands, but none yet for Germany-Spain:

6cd06ff0-d727-4955-b5da-5acadb4f1c1f

As mentioned before, the ranking is stored inside an Excel spreadsheet, which is displayed on the scoreboard page:
13759b71-7376-484d-b95a-668fb9e3c440


Technical Information

The Fixtures list is used to store all fixtures. Initially, only the group stage matches were entered with empty Home Goals and Away Goals. As soon as a result was final, it was entered in here.

Later onwards, the corresponding matches from the next stages were entered here as well. To differentiate between the different groups and stage levels, so that the corresponding matches can be show on the appropriate match pages, the column Group contains the group (e.g. A) or the stage level (e.g. Semi Final) for a match.

0ee98f9a-3af0-4bb3-a2ff-06dc1636a0ad

When people submit a tip, it is stored in the Tipps (sic!) list.The additional columns in this Custom List are Fixture, which is a lookup column that references the ID column from the Fixtures list, and Home Goals and Away Goals (in this case of course not the actual result, but rather the tip by the user). We can see who submitted which Tip in the Created By column.

bb3d485e-8dcb-47d1-b8e0-23203b766c7d

The Excel spreadsheet imports these two lists. The evaluation for each match is done at the Tips list level. That means, for each tip it is being calculated how many points should be awarded.This is done by comparing the actual Match results (added here via lookup for easy referencing) with the tipped result, and awarding points for draw, home win, and away win. For example, for home win it is first checked if the actual result was a home win AND the tip was a home wine, and if not 0 points are awarded. If it was a home win, we then check if the tip and the actual result are the same and award 5 points if so, otherwise we check the if the difference for both results (actual and tipped) is the same, and award 3 points, otherwise 1 point.

Points for away win are calculated the same way, the calculation for a draw is easier.

Lastly, we simply sum up the points from those 3 possibilities (note: at least 2 of them are 0 points, of course) in the Points to Award column.

815d627d-a195-41ef-9262-560e3494f404

These points are then summed up per user, and a ranking can be created.

Technical Snippets

While implementing this solution, I came across a few points that are worth mentioning:

One small problem I had was that I needed to show data from two separate lists. On the tipping pages, I wanted to display the tip of the current user (1) from the Tipps list, as well as the match details (2) from the Fixtures list.

06594e88-73a6-45e0-a247-de88485be399

To achieve this, I created a new Linked Source in SharePoint Designer made out of these two lists with a Join:

72cd60ec-0f44-4221-909f-1fb4bd8be8e4

As it can be seen here, it was then possible to access both of them through a single connection:

cfd78395-7a32-4147-b69a-1b26a5c7751c

In the Data View Web Part used to display the match details and the tip, I then filtered the Tips by the current user and by the ID from the Fixtures list. That way, only the tip for the current match by the current user is selected.

da10a5bc-ead4-40c9-bc51-dc1fb1f84be1

If no tip has been submitted, and thus the row count is 0, a button for first time tipping ("Tip!") is displayed, otherwise the existing tip together with an "Update!" button is shown.

I also wanted to prevent users from both submitting after a match had started and submitting more than one tip. The first step was to check if the current match has started already, and if so, do not display the Tip/Update button.

For this, I created two variables: one for the current time, the other one for the match time.

<xsl:variable name="matchdaytime">

     <xsl:value-of select="number(translate(ddwrt:FormatDateTime(string(/dsQueryResponse/Fixtures/Rows/Row[@ID=$FixtureID]/@Match_x0020_Time),1033,'yyyyMMdd HHmmss'),' ',''))"/>

   </xsl:variable>

   <xsl:variable name="curentdaytime">

     <xsl:value-of select="number(translate(ddwrt:TodayIso(),'-T:Z',''))"/>

   </xsl:variable>

With these two variables, it was then possible to act accordingly (here shown with Update):

<xsl:choose>

       <xsl:when test="$matchdaytime &gt; $curentdaytime">

        <input id="updateTippButton{@ID}" type="button" class="button" value="Update!" />

       </xsl:when>

       <xsl:otherwise>Tipping Period over</xsl:otherwise>

</xsl:choose>

 

As it can be seen, there is no action defined here once the button is clicked. I make use of jQuery in order to process the tip and submit it.

The following script shows the two important functions involved here: one is the $(document).ready() function from jQuery, which attaches an event handler to all Update/Tip buttons (uniquely identified with the match ID). The other one is the Tipp function that submits the tip (either through adding a new tip or updating the existing one) .

<script language="javascript">

  function Tipp(fixtureID, tippID, cmd) {

  //alert (fixtureID + "--" + tippID + "--" + cmd);

  var Home = $("#HomeTeamGoals"+fixtureID).val();

  var Away = $("#AwayTeamGoals"+fixtureID).val();

  //alert(Home+" : "+Away);

  if(Home != '' && Away != '' && Home>=0 && Home<=12 && Away >=0 && Away<=12) {

  var id = "";

   if(cmd=="Update")

   id = "<Field Name=\"ID\">"+tippID+"</Field>";

        var batch =

            "<Batch OnError=\"Continue\"> \

                <Method ID=\"1\" Cmd=\""+cmd+"\"> \

                 "+id+"\

                    <Field Name=\"Fixture\">" + fixtureID + "</Field> \

                    <Field Name=\"Home_x0020_Goals\">" + Home + "</Field> \

                    <Field Name=\"Away_x0020_Goals\">" + Away + "</Field> \

                </Method> \

            </Batch>";

        var soapEnv =

            "<?xml version=\"1.0\" encoding=\"utf-8\"?> \

            <soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \

                xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" \

                xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"> \

              <soap:Body> \

                <UpdateListItems xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\"> \

                  <listName>Tipps</listName> \

                  <updates> \

                    " + batch + "</updates> \

                </UpdateListItems> \

              </soap:Body> \

            </soap:Envelope>";

        $.ajax({

            url: "http://ap.landisgyr.net/WC2010/_vti_bin/lists.asmx",

            beforeSend: function(xhr) {

                xhr.setRequestHeader("SOAPAction",

                "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems");

            },

            type: "POST",

            dataType: "xml",

            data: soapEnv,

            error: showError,

            success: proceedSuccess,

            contentType: "text/xml; charset=utf-8"

        });

    } else

  {

    alert("Incorrect Input");

    document.getElementById("newTippButton"+fixtureID).disabled = false;

}

}

function showError(xData, status, error) {

     alert("Error: " + status + " - " + error);

}

function proceedSuccess(xData, status, requestObject) {

location.reload();

}

$(document).ready(function() {

    $(".button").click(function() {

     //new

     if($(this).attr("id").replace('newTippButton','') != $(this).attr("id")) {

       Tipp($(this).attr("id").replace('newTippButton',''), 0, "New");

     }

     //update existing

     if($(this).attr("id").replace('updateTippButton','') != $(this).attr("id")) {

     var id = $(this).attr("id").replace('updateTippButton','');

          Tipp($("#FixtureID"+id).val(), id, "Update");

     }

    });

});

</script>

Drawbacks / Issues of my implementation:

As there was not much time left before the start of the World Cup, and also because I was busy with several other more important tasks, I focused on getting the solution to work even if it meant that there'd be some smaller bugs or issues.

One of them is that I did not any possibility for the users to submit multiple tips. As it can be seen in my code above, I only handled the case of submitting a single tip. So if a user wanted to submit multiple tips, for example for all matches in Group C, he/she had to tip each match individually.

One security issue was that there was the risk that people would discover that they can enter their tips directly into the list, and would then update them accordingly after the matches. I did not look for any way to prevent this, but simply did a timestamp check in the Excel spreadsheet. If a tip was submitted after a match started, it would've been highlighted. It didn't happen.

As for the evaluation, there was still a lot of manual processing required. I could've tried to automate the processes more (e.g. I had to create the ranking manually), but in the end I decided that it would not be worth the effort. Doing it manually was a 5 minute task each day, and I didn't know how long it would take me to create a fully automated version.

Summary

I really enjoyed creating this solution. While it definitely isn't the technically most perfect, and it also lacks some other things (e.g. a very nice design....), it was a nice endeavour different from my other SharePoint activities. It allowed me to show my colleagues what else could be done with SharePoint.

Comments Comments (0)
 
15. December 2009  

After nearly 2 years and 4 months with my current company, I will start working for another one here in Singapore from mid-January onwards.

I definitely learned a lot during my employment here at my current company, and gained a lot of experience in different fields. It was a great work environment, with great colleagues and a very interesting job scope.

My new job will be very similar to my the old one, but with some more responsibilities. I'm already very excited about the opportunities this brings with it, and I'm looking forward to applying my knowledge and experience which I gained during the past nearly 2.5 years in a new environment.

Comments Comments (1)
technorati tags: , ,
 
1 2 3  Next»