03 December 2012

Write Better

When I started working as a consultant in the latter half of the 90's, our firm had writers that specialized in writing for the web.  These folks constantly had to help clients refine and organize traditional print copy for the "new" medium.

Recently, Jason Fried over at 37Signals published a short blog post that referenced a post by Maria Popova at BrainPickings.org highlighting writing advice from David Ogilvy, the original "Mad Man."  What I found fascinating is that the advice that Ogilvy delivered in 1982 is much the same advice our writers gave clients more than a decade later (in the context of writing for the web).

Clearly, good advice never goes out of style.

18 September 2012

Adoption: The forgotten key to Success

A solution is not just technology.  A solution is not just new features and functions.  In fact, a solution has many facets, including adoption.  While adoption is critical to the success of any solution, it is often ignored.

Organizations who are interested in successfully introducing a new technology or solution, need to spend as much time considering and developing an adoption plan as they did building the solution.  Here are a few keys to adoption success:

  • Communicate early and often with the end user community 
    Start well in advance of any change.  Start with letting folks know that a change is coming and why it’s important to them.  Create a clear connection between a challenge you know they have and how the new solution seeks to address it.   Once you reach specific milestones in the solution’s development, send out additional communications with more specific information and dates (like when folks should expect to see the solution). 
  • Introduce the new solution properly
    Spend time developing ways to acquaint your end user community with the new tool or function.  Simply sending an “informative” e-mail is insufficient; try something new.  For example, if you’re introducing a new Intranet, have a “scavenger hunt” to find specific information or content; the “winner” should get some prize for being the first to find the requested item (e.g. a gift card to a local restaurant or simple public recognition).  This helps introduce the new site, gets people to use the tool AND “tests” the new information architecture.  Feedback from the event can also help you avoid questions in the future.
  • Create triggers for using the solution
    Dr. BJ Fogg runs a persuasion lab at Stanford university.  Dr. Fogg’s Behavior Model suggests that while motivation and ease-of-use are important, people still need to be “triggered” to exhibit a specific behavior.  This means that no matter how easy the solution is to use, nor how motivated your end user community happens to be, you’ll still need to “remind” them to use the tool until a habit of use is formed.  Dr. Fogg’s research involved how Facebook uses e-mail notifications to “trigger” people to return to the site.   Think of ways to trigger your end-user community to constantly use the tool (e.g. remind them of what problem the tool solves OR how they can save themselves time by using the tool).
  • Gather feedback liberally
    Whether you’re speaking personally to people or using a more generic survey, always gather feedback.  Your solution might be fantastic, but there will always  be room for improvement.  Demonstrate you’re interested in your end user community by asking for feedback on what works, what doesn’t and how the solution can improve.  Clearly, you’ll get lots of opinions, but what’s important will be the trends you can discern; these trends will represent what’s important to the most number of users and where you should focus your attention.
  • Constantly evolve
    Once you’re done with the initial implementation… you’re not done.  Any solution will need to evolve to stay relevant to the end user community it serves.  Use the feedback you’ve gathered, combined with what’s happening in the broader organization and/or marketplace.  Create a real “road map” for the solution’s improvement.  Once you have that road map in place, start communicating that roadmap to your end user community; this too could be a trigger, as well as building support for the next release.

You will spend a great deal of time developing the right solution for your organization.  You need to spend just as much time making sure everyone uses it and that it adds value to your firm.

18 July 2012

Office and SharePoint 2013 Products Revealed

On 16 July 2012, Microsoft publicly announced the previews for latest versions of Office and SharePoint 2013.  For many of our clients, the announcement will be significant as these products may form the foundation of their information management and collaboration architectures for many years.
As a part of my continuing work with the Real Story Group, I just published a short blog post on our initial SharePoint 2013 advice for dealing with the avalanche of content that will be broadcast about the platform.

28 June 2012

SharePoint in Geographically Disperse Organizations

As SharePoint 2010 continues to grow in popularity among larger organizations, the collaboration platform is likewise being used by an increasing number of geographically dispersed companies that see it as a tool to keep far-flung employees on the same page. Because of SharePoint’s architecture, however, such implementations can add new administrative burdens whether you’re trying to keep workers across North America or around the world connected and communicating with one another.

SearchContentManagement just published an article I wrote on how to manage SharePoint is these distributed organizations.

21 May 2012

Improve Code Reuse with Search

In past, I have been critical of simply crawling content with a search engine and using the basic keyword query approach to find things.  However, there are some situations that do lend themselves to just this approach (though with a tad bit of “intelligence”).  One of these situations is code reuse. 

At Consejo, we use Subversion (coupled with VisualSVN Server) for source control.  Subversion (or SVN) is an open-source source control system. VisualSVN Server provides a terrific web interface to the repository.  Combined with the VisualSVN plugin for Visual Studio, we are able to very effectively manage our code production across clients with little or no cost.  Unfortunately, with our team dispersed, it’s sometimes difficult to make everyone aware of what’s already been built for one client or another.

SIDE NOTE: I have personally been critical of using open source solutions and even wrote an article arguing against the open source model.  However, it’s clear there are cases where open source makes sense (yup I was wrong).  Further, we’ve been a financial supporter of SVN (through donations) since we started using the tool regularly.

Much of what consulting companies do is based on past work.  It’s critical to how we work that every consultant is kept abreast of what the firm is doing, across industries, disciplines and clients.  For example, we recently built two different applications, for two very different clients.  Both applications, however, used the same licensed interface controls.  In fact, many of the interactions each application’s user base had with their respective application were very similar.  As a result, techniques we used, problems we solved and utility code (code not specific to a client or application) we constructed could be leveraged across both projects with minor updates.  This saved both our consultants and our clients time and, more importantly, money.   Unfortunately, since both projects overlapped, there was no a good way, besides knowing team members on both projects, to capture and surface code reuse opportunities in an automated way.  Each team has to basically know what the other team was doing and ask specific questions (or discover reuse opportunities through happenstance).  Not a fabulous nor scalable model. 

While we solved this problem the “old fashioned” way, it’s not a good long-term solution.  As projects get more complicated, team members more geographically or temporally dispersed, the “old fashioned” way becomes very burdensome and super inefficient.   So what’s the solution?

Historically, we’d been looking for ways to effectively expose our SVN repository to our consultants, outside of Visual Studio and a web browser.  The thought was that if developers were able to search for specific code constructs or even development pattern names, there was a reasonable chance of finding reusable code snippets or whole libraries (if they existed).   And, while there are a few tools that help in this regard like FishEye and SvnQuery, neither was a perfect fit for our needs.  Since VisualSVN Server presents the repository as a web site, why couldn’t we just use a standard search engine like MS Search Express, SharePoint or GSA (Google Search Appliance) to crawl the repository and allow consultants to query it like a web site? 

The answer, as Kenneth Scott points out in his blog post on crawling VisualSVN with a search engine, is “not exactly.”  The problem stems from the way VisualSVN renders the repository web interface (you should read his post for the details).  However, Kenneth solved this problem through the use of an HTTP handler and gave us exactly what we needed.  Using his utility, we can indeed use a standard search engine (take your pick) and then allow our developers to search for an example of an excel-like editing experience using a Telerik GridControl or discover if we’ve built a custom authentication provider for SharePoint; both of which we’ve done, but only one I knew about until recently.

You may still be questioning why this is a good idea?  I’ve been critical of this kind of shot gun search approach in the past.  Why should this work now?  The reason is the very narrow information domain and the very specific terms developers use.  Both work together in a way that makes finding content, using straight keyword queries, more reasonable.  For example, if I want to find example of our use of the Telerik GridControl, I can simply search for the RadGrid class name.  If I want to figure out if we’d built a .NET membership provider, I can search for the inheritance statement.  In the first case, I may get an overwhelming number of results.  However, they’ll all be examples of use, since the only time that class would appear is when I’m using it in code (in other words, relevant).  The second example would produce far fewer results and likely give me exactly what I need immediately (and relevant and, probably, highly precise).

In the end, I’m only really disappointed that I didn’t discover Kenneth’s blog post sooner, but my past search queries were about SVN or Subversion, not VisualSVN (poor search strategy on my part).  However, as we develop this code search feature inside of our intranet, I’m excited by the prospect of finding internal examples of code we can reuse.

If you have a similar feature inside your firm, I’d love to hear how it works and if it’s yield higher code reuse.

04 April 2012

The Myth about SharePoint Browser Support

Microsoft posted a blog entry today that pointed readers to SharePoint’s browser support page on TechNet.  In this post, they detail what browsers SharePoint supports and any specific support limitations.  However, I want to raise an important point that seems to be missing from the conversation: browser support isn’t entirely about SharePoint.

Unfortunately, what most everyone fails to mention is that browser support is actually a combination of what Microsoft supplies and the solution that you’ve built.  In other words, Microsoft’s support, or lack thereof, for specific browsers is limited to Microsoft-supplied interfaces.  Depending on the type of solution you’ve developed, much more of your solution’s browser capability could be dependent on your development than on Microsoft’s.

Here’s a quote from TechNet:

“For publishing sites, the Web Content Management features built into SharePoint Server 2010 provide a deep level of control over the markup and styling of the reader experience. Page designers can use these features to help ensure that the pages they design are compatible with additional browsers, including Internet Explorer 6, for viewing content. However, page designers are responsible for creating pages that are compatible with the browsers that they want to support.

Obviously, this quote relates specifically to publishing sites; primarily those internet-facing sites that are primarily content serving sites as opposed to more collaborative/intranet/extranet kind of sites.  However, even in the case of sites built with other site definitions (like Team Sites), browser support can and will be affected by new master pages, custom web parts or other components supplied by you or 3rd parties.

The myth here is that SharePoint’s support for specific browsers is somehow exclusively Microsoft’s domain.  In fact, true browser compatibility is a combination of Microsoft supplied interfaces (that are used in your solution) and those solution-specific interfaces that you or a vendor create.

06 March 2012

[Good] Communication is Key

Every now and again, a really fantastic opportunity to illustrate a best practice just falls in your lap.  The opportunity, just as occasionally, presents itself through inspiration found in the most surprising places.  In my case, I found this communication example in the men’s room at a client: 

IMG_0590

This sign provides an excellent template to use when communicating with your audience: 

  • It starts by presenting the message at the time when the recipient is engaging in a related behavior
  • The messaging points out a very specific feature of the tool being used
  • A statement of community support for that feature is provided
  • An aspirational goal is included to (through implication) encourage a specific, future behavior
  • All of this is followed by a polite.. thank you!

Ignoring the specific subject matter involved in this message, this could easily serve as a model for feature-obsessed technologists and enthusiastic Intranet managers on how to encourage intranet or technology adoption.

What do you think?

[EDITED TO CORRECT SPELLING AND WORD CHOICE]