Blog

23 apr

#ISCLondon – How Users USE Information

End User Adoption No Response

International SharePoint Conference – Developing an End User Adoption Strategy

Information Architecure

Information Architecture starts with the User: I Love Users

Information Architecture: structural design of shared information

Do not (only) look at their current folder structure
folders are easy way to put information, but makes it difficult to find

“If I store it, thats how I use it, but how do others use it?”

Key Components in defining Information Architecure

  • Content – what does exist?
  • Context (business, organizational) – why does the content exist?
  • Users – how does users use the content?

How to search?

Most people use the Google-Model
The users think:
“I ask a question, magic happens, and the system gives the answer”

But this doesn’t work because
– users don’t know what they search
– users don’t know how they search (querries, spelling)
– users don’t have patience

There are different ways how people search

  1. Users are looking for exactly one item e.g. a certain form – if the query is clear, search is usually good, since only a few results show up
  2. Users are looking for everything – users don’t know what they search, so they have no expectations of the results
  3. users kind of know what they want, but they are not really sure (exploratory) – usually queries are not good, because users don’t know how to get to the answer
  4. users try to find something again

SharePoint uses the Berry-Picking-Model

  1. Search
  2. View results
  3. Refine
  4. Repeat

How to learn from users

TALK to USERS, not management
– Ask
– Listen
– Test
– Repeat

…but remember: users don’t know anything!

…but remember: Opinion Right
Just because it’s somebody’s opinion, doesn’t mean it’s right.

…So, Instead look for patterns in the answers.

How to test user adoption?

  1. Surveys – are not a good choice, only the people with strong feelings will fill it int, usually the ones that hate it
  2. Wireframing – Usefull because it does not interfere with design
  3. Card Sorting (http://boxesandarrows.com)
    open: participants are given cards showing site content, no pre-established grouping
    task: let them group
    closed: participants are given cards showing site content, with an established initial set of primary groups
    task: let them sort cards into groups

    look for significance: the more people the higher the significance

Usability Testing

Usability’s Quality Components

  • Learnability – how easy can users accomplish basic tasks?
  • Efficiency – how quickly can tasks be performed? (NOT number of clicks, but predictability, I know where to click)
  • Memorability – after a period of non-use, how easy can a user re-establish proficiency?
  • Errors – how many errors does the user/system make? how servere? can the user recover?
  • Satisfaction – how pleasant is it to use the design?

Usability Heuristics

  • visibility of system status – do I know where I am?
  • match between system and real world – does it match natural flow?
  • user control and freedom
  • Consistency and standards
  • error prevention
  • recognition rather than recall
  • flexibility and efficiency of use
  • aesthetic and minimalistic design
  • help users recognize, diagnose and recover from errors
  • help and documentation

Performing a test
– before, during and after
– with at least 5 users, not stakeholders
– define list of common tasks (find this form, go to this place and upload a document)
– run the test (& don’t help!)
– analyze and report

What to do with results
– use as proof for nay-sayers
– provide best cost justifications
– identify simple issues that when fixed will greatly improve user acceptance

Read More

10 mrt

Microsoft Certified Trainer

MCT No Response

I am now an official

Microsoft Certified Trainer

For those who are interested in my two demonstration trainings, they can be found on youtube:
My first demo training was about Metadata – Magic with Documents
My second demo training was about Workflows – How automation can ease your work-life

Read More

23 feb

AlternateCssUrl breaks Site Templates

SharePoint 2010 No Response

When trying to access Site Settings for a Site which is created on basis of a Site Template which has an Alternace CSS Url configured you will receive an unexpected error:

SharePoint Foundation    Runtime    tkau    Unexpected    System.Web.HttpException: Error executing child request for /Style Library/Style.css

This is caused because the Site Settings page doesn’t access the CSS at the Site Collection Root
(“http://servername/Style Library/Style.css”)
but instead searches for it in the layouts folder
(“http://servername/_layouts/1033/Style Library/Style.css”)

Pete wrote a PowerShell script to fix the problem afterwards:

$w = Get-SPWeb http://YourServer/YourWeb; 
$w.AlternateHeader = $null; 
$w.Update()

But since this does not solve the actual problem, you always have to embed the reference to your StyleSheet in the MasterPage.

<SharePoint:CssRegistration
  name="<% $SPUrl:~sitecollection/Style Library/Style.css %>" 
  After="corev4.css"
  runat="server"
/>

But don’t forget, when you use SharePoint Foundation $SPUrl will not resolve, since this requires the Publishing Feature.

So in SharePoint Foundation you should reference your CSS like this:

<SharePoint:CSSRegistration name="/Style Library/Style.css" 
After="corev4.css" runat="server" /> 
Read More

30 aug

Portiva – SharePoint Seminars

Portiva No Response

SharePoint seminars, sept. + okt. 2011

Portiva organiseert samen met Microsoft en enkele partners een viertal boeiende SharePoint seminars. De seminars zijn bedoeld voor directie,IT Management (CIO, CFO, CTO)  Controllers en Business Managers. Met name de business aspecten en organisatorische voordelen bij de invoering van Portal oplossingen komen aan bod.

De seminars zijn bij uitstek geschikt voor organisaties die de implementatie van SharePoint op korte termijn overwegen, of al SharePoint hebben en hiermee verder willen optimaliseren.

De seminars met verschillende thema’s worden bij Microsoft in Schiphol en bij Portiva (locatie Nieuwegein) gehouden. U bent van harte welkom op onderstaande data:

  • Woe. 7 sept. ’11 te Schiphol – Portal technologie vanuit een Management perspectief
  • Woe. 21 sept. ’11 te Schiphol – Integratie van SharePoint en SAP met Duet
  • Do. 22 sept. ’11 te Nieuwegein – Portal technologie vanuit een Management perspectief
  • Do. 13 okt. ’11 te Schiphol – Project Management met EPM & SharePoint 2010

Aan de seminars zijn geen kosten verbonden. De seminars op bovenstaande data zijn van 13:00 tot 17:30.

 

Voor meer informatie check: http://portiva.nl/Events/SharePointSeminars.aspx

Read More

30 aug

New Job as SharePoint Software Consultant

Portiva No Response

Since my last post, a lot of things changed in my own personal SharePoint World.
After attending SharePoint Best Practices Conference in London, in April, I decided that SharePoint is exactly what I want for my future. So I directly stopped with my Master Study and looked for a new job.
As of 1st of July I now work at Portiva as a SharePoint Software Consultant.
There I started out with creating a small Supplier Management Portal for a retail company.
Next to minor development assignments, I am now busy with creating their own intranet portal. So my next posts will probably contain some of the things I run into while building it.

Read More

14 apr

BPCUK 2011: Best Practices – Developer

Best Practices, SharePoint 2010 No Response

Data Access from Code

– keep an eye on event throttling. SharePoint throws an unexpected error, if you try to receive more items than the allowed number: 5000

– use SPLongOperation to show the user the green in progress circle while doing an operations that takes longer time.

– things to consider when choosing the best option:

  • How to deploy? Farm vs Sandboxed Solutions
  • Where to run code? Server vs Client Code
  • How many items to return? Do you need to work with large return sets?
  • How important is developer productivity? Are IntelliSense and strongly-type access important?
  • – Server-side Code

  • Object Model – SPQuery
  • Object Model – SPSiteDataQuery
  • LINQ
  • – Client-side Code

  • SharePoint Client Object Model
  • Rest-based WebServices
  • Custom Web Service
  • Object Model

    – be aware of object disposal. Expose everything needed, but not too much. use SPDisposeCheck to check your disposal. Be awake that this tool does not always give correct feedback.

    – be aware how many items you want to retrieve. Do not retrieve more items than necessary

– be aware of item throttling

– there is a difference between SPList.Items.Count (all items, but no folders) and SPList.ItemCount (no all items, but folders)

– do not push against the SharePoint Boundaries

– always deploy using a solution file. The files stored on the file system are automatically populated to all WFE (even if new ones are added)

– be aware of where files are deployed, and might need to get retracted again

SPQuery

– Executes query against a single list, developer must parse together CAML fragments

– Query.QueryThrottleMode

    SPSiteDataQuery

    – Can execute query against multiple lists

– Query.QueryThrottleMode

– Query.webs (has a scope property)

– Query.ViewFields

– Be sure to properly test with production data, because all lists have to be walked through

    LINQ

    – Offers IntelliSense

– Does not provide more functionality than the Object Model. It is actually less, it only allows retrieval and edit of data, with code completion so that no more internal field names have to be used

– LINQ uses Extension Methods for adding additional functionality around the IEnumerable<T> collection

– Query Layout: Var query = from customer in dc.Customers Where customer.ID > 1

– Select clause can project an anonymous type: select new{surname = customer.LastName, FirstName = customer.FirstName}

– it is static (the Entity Model has to be updated to have changes made in SharePoint

– SPMetal creates Entity Classes and DataContext class

  • Each Entity Class represents a List in SharePoi
  • DataContext represents connection to sit – The Entity Model can be automatically updated via a command script, which can be included in the VS build. This way you will always have the latest Model Deployed

– Does not support throttling, no check in there. You have to manually make sure that you do not reach the limit

– LINQ queries are translated into CAML queries. Always check the generated query, e.g. for throttling (grouping is possible in LINQ, but not in CAML, thus first all data is loaded via CAML, then grouped via LINQ)

Client Object Model

– calls SP Foundation Object Model, thus no Server functionality available.

– No Context.Current.Web

– Explicit call to Execute, so reduction of server communication

REST

– Pay attention to security. It runs in _vti_bin, but for updates it is executed with the current user

– you can read the json file using JavaScript

– i think you can add a REST Service as a webservice to a VS project

Records Management

– there exists a DocID Feature for assigning a unique ID to a document, where ever it gets moved within SP

– try to use a separate Site Collection for Content Type Syndication

– Managed Metadata has support for multiple languages

– Content Organizer

  • Metadata-driven routing
  • Can target subfolders of destination library
  • Rule Manager User Group
  • In Theory, the rules should be managed by people that understand the documents, which is the "end-user". But he might not have the skills to manage rules – Email Routing Feature
  • Creates content type for emails
  • Creates drop-off library – In-Place Approach
  • Defines doc as record without moving it to a records center
  • Does not take advantage of features of the record center site
  • Lower cost (no need for record center)
  • Cannot apply location-based rules
  • More difficult to administer, because it docs are mixed with non-records – Repository Approach
  • Easier to administer
  • Harder to configure
  • Supports complex file plans
    • Location based policies
    • Metadata-driven rules
    • SharePoint in the Cloud (e.g Office 365)

      – use Sandboxed solutions

    – sandboxed solutions gets Resource Points assigned for their server usage, e.g. memory usage, CPU usage, for all sandboxed solutions together a maximum amount of Resource Points available is defined. When this limit is crossed, ALL solutions are disabled. Even after removing a solutions that would decrease the total amount again, you need to wait for a timer job to check everything again and enabled solutions. This timer job just runs once a day, I believe. So always check the Resource Points after deploying a sandboxed solutions.

Advantages:

(A1) they only run within the Site Collection for which they are deployed.

(A2) files are never store on the file system, but always in the content database

(A3) they use a separate process, and not the default SP process

Disadvantages:

(D1) only functionality allowed that does not cross site collections; no search, no user profiles, only limited API available. By using the client object model you can get around this issue, partly.

Solution Upgrade

– version number must always increase

– FeatureUpgrade Event, to define in code what and how to update

– Site Upgrade Feature, to define in XML what to upgrade, e.g. add column to content type

– important to think about what you want to update, all existing sites with that solution, just new ones, …

– in sandboxed solutions the filename must change, but the solution id must stay, the solution gallery then knows what to upgrade using the upgrade button

Solution Clean Up

– retraction of a solution does not remove anything that might cause data loss, like site definitions, content types or site columns

– use a feature receiver if you want to remove these too

Social Development

– there exists a SocialDataService to create and manage (NOT delete) social tags, ratings and comments) and to allow searching of these items in a url

Ribbon Development

– XML Customization

  • Do not remove OOTB controls
  • Always create your own group templates (copy-paste)
  • Provide multiple-layouts
  • Do not recreate existing controls
  • Use contextual tab groups
  • Only add customizations to the pages that need it

Ribbon Commands (a named object that performs an action)

– insert via Javascript and XML

  • Defined declaratively within the feature
  • Defined with xml
  • Execute and CanExecute portions defined within JavaScript – insert via Page Component
  • Defined entirely in a JavaScript object (in external js library)
  • Must be added to pages containing ribbon customizations
  • – insert via Page Component

  • Defined entirely in a JavaScript object (in external js library)
  • Must be added to pages containing ribbon customizations
  • – Command Types

  • Global: always available when on a page
  • Focused: only available at specific times, when designated by the page’s FocusManager
    • Try to avoid focused commands, they introduce complexity

    SilverLight Development

    – the load is completely on the client side, so you get no server load

    Event Receivers compared to workflows

    – it runs at the moment the event gets triggered and in the same http request

    – it has item delete events, (be aware that there are 3 ways of deleting an item)

Read More

14 apr

BPCUK 2011: Best Practices – IT Pro

Best Practices, SharePoint 2010 No Response

SQL Server Maintenance

– for improving performance, use defragmentation. Health Analyzer can tell you when it’s necessary

– never shrink, only if you know for sure that the DB never ever ever grows again

– (officially) run checkDD once a week (no one does it)

– if SQL is on the same machine as SP, limit the memory usage of SQL, otherwise it will use it all

– if you have a backup plan with full and incremental backups, be careful with ad-hoc backups.

Service Applications

– consider scaling, e.g. a separate server for Excel Services, Search Services, etc

– when manually configured, be sure that all (windows) services are actually started up

Application Pools

– ever application pool uses an own worker process, and as such own memory. Thus the more application pools, the more memory consumed

Read More

13 apr

European SharePoint Best Practices

Best Practices, SharePoint 2010 No Response

I’m acurrently attending the European SharePoint Best Practices (http://www.sharepointbestpractices.co.uk) in London for my Company: The Triple A Company

In the next days, you can find here some posts about what I learned there.

 

SDC12615

Triple A with Titan at BPCUK

Read More