Category: Architecture

SharePoint or Application Architecture related posts

Leveraging Search Web Parts and Display Templates

One of my main focuses the past 4-5 years has been leveraging the Search Infrastructure to help deliver dynamic content to portals and Intranets.  In previous versions of SharePoint I leaned heavily on the underlying APIs to deliver custom solutions.  This was both because the underlying APIs allowed more precise querying and because it gave me full control on what was rendered to the user.

With SharePoint 2013 the Search related web parts went through a pretty major renovation, especially for on-premises customers that have Enterprise CALs.  A series of web parts were created, with a full featured query builder that allows you to create and test your queries through a web interface.  Where the results were previously rendered in XSLT, the new method utilizes regular html and javascript to create the output markup which is then injected into the page.  The overall rendering of the pages is much more dynamic, with support to display each item differently based on the type of content it is.  The potential is limitless. 

I intend for this post to be a bit of a primer on the high level topics.  I’ll be coming out with some specific task-driven follow up posts over the next few weeks that expand on these concepts and get into some examples of things that can be done through these new features. 

Dynamic Content using Search Web Parts

For those that haven’t caught my session Dynamic Content using SharePoint Search here is a brief overview.

The web parts themselves are broken into the following categories:

  • Content Rollup (Enterprise Feature)
  • Search-Driven Content (Enterprise Feature)
  • Search

 

Within the Content Rollup category resides the Content Search web part.  This is a great replacement for the Content Query Web Part (CQWP) available in past versions of SharePoint.  Unlike the CQWP, this utilizes the search service so it can pull matching results from anywhere in your farm, which means you are not limited to the current site collection. 

The web part also supports new, previously unavailable display options including the ability to show the item as a slideshow. 

The Search-Driven Content category contains a series of web parts that are all based on the Content Search web part, with a pre-set query to help you get started.  This includes results that display specific types of content like the Videos, Web Pages, Wiki Pages, Pictures, Pages, and then also results that rely on the analytics features to deliver results pertaining to Popular Items, Recently Changed Items, and Recommended Items.  The pre-configured queries are a great start, and using the query builder form you can dial in the specific results you are looking to display. 

Search Display Templates

All of the search web parts, including the standard Search Results web part that is available in all versions of SharePoint Server as well as the SharePoint Online service within Office 365, then offer the ability to change how your results are rendered using the Search Display Templates.  This is where the real power of the new changes come into play since we can now change how items are rendered by editing the html and javascript in the display templates. 

The display templates are stored in the Master Page Gallery for each site collection.  You can find them by browsing to Site Settings, and clicking the Master pages and page layouts link under the Web Designer Galleries group.  From within the gallery, browse into the display templates directory, and then into the Search directory for search specific display templates. 

A good reference for the included display templates is available here on the TechNet/MSDN website:  http://technet.microsoft.com/en-us/library/jj944947(v=office.15).aspx

Here is a good overview of how to work with the display templates:  http://msdn.microsoft.com/en-us/library/office/jj945138(v=office.15).aspx

Commentary on Purpose Based Licensing

Dan Holme recently had an interesting piece of commentary in the SharePoint Pro magazine titled It’s Time to Break Up the SharePoint Brand in which he advocated breaking the product into purpose based bundles instead of the behemoth platform it is now.  I agree with much of what Dan wrote, including his two main points that it is not a single purpose platform and operates more like a modern OS. 

As I consider the points though, and my own experience evangelizing the platform with customers large and small, I would say that there is already serious confusion about the licensing.  As Microsoft attempts to transform itself to a services based company, I would actually recommend a different sort of licensing move that is even more radical.  When buying server based applications like SharePoint, there should be no need to also individually license the pre-requisite dependency technologies; specifically Windows Server and SQL Server.  These are needed to run the system, so if a customer has a six server farm and busy six licenses of SharePoint Server, then they also require six licenses for Windows Server as well as at least one SQL Server license.  As the number of SharePoint licenses increase, so would the associated Windows and SQL licenses. 

While I think this move makes great sense for customers I am not holding my breadth that Microsoft will make this move any time soon.  I think the biggest reason is the confusion of how to then map revenue back to the other divisions such as the core server OS group, and the database group, but really there should be a set percentage that they can agree on.  I believe that this service or purpose based approach would simplify things quite a bit and should also apply to the other server applications like Exchange, Systems Center, etc.  Of course there will still be a need for stand alone Windows Servers for traditional server things like AD, DNS, Web Sites.

As the move to the cloud continues to evolve this may become more of a moot point for many, but it is unlikely that even half of customers will be running all of their applications primarily in the cloud in the next five years.

Shared Link: SharePoint 2010 Social Networking Diagram

I do not often link to another blog post as part of one on my site, but this one was too good to pass up.  For those of you interested in SharePoint 2010’s Social Features, here is  great diagram of of how all of the components and services fit together.  It is extremely valuable to understand this information when you embark on an implementation or need to troubleshoot why something is not behaving as expected.

SharePoint Solutions Team Blog

SharePoint 2010 Social Networking Diagram

SharePoint Governance and Continuous Improvement

There are a number of reasons why I have seen SharePoint Governance stall in many environments, but one of the most common reasons and the one I would like to address today, is the problem of trying to take or address too much scope at once.  There are a lot of topics that roll into SharePoint Governance; the SharePoint Governance Framework we use at my company identifies over 50 distinct topics.  In most cases it is not practical to take the full list of topics and work through a governance plan in one pass.  Instead, I advocate for an iterative approach starting with a selection of core topics and finding a pace that matches your organizations cadence to continue solidifying the process.

Continuous Improvement

Continuous Improvement (CI) is a concept that relates to Lean, Kaizen or TQM practices and is intended to use small, incremental changes to bring big results instead of trying change everything at once.  There are many advantages to this approach but the one that resonate most with me is that the incremental investments could be very small, but you start to see gains quickly.  I believe this relates very well to the process and concepts of SharePoint governance.  As you start to gain momentum you are much more likely to get stakeholder involvement which is critical to any governance effort.

Selecting Topics

The selection of topics is important.  There are some topics that lay the foundation for everything else.  I typically start with the core topics that are needed to define the service and system to be implemented (or that has been implemented).  I then move to the most critical items that are needed for managing the system such as touching on the core Information Architecture, Site Topologies, Site Creation Process (who/how/where) and Permission Management.  Over time, and definitely in more mature organizations, you can start to tackle some of the more subtle topics.

Depth for Topics

When reviewing a topical area, it is important to iterate there as well.  For example, when starting an implementation stakeholders may have a decent idea what the service definitions and SLAs might look like, but this will certainly change after it is in use for a while and perhaps became mission critical for core business processes.  As these requirements and needs evolve, additional iterations are required.  This fits very well with the CI concepts mentioned above.  These iterations continue to deliver more value to the stakeholders in small increments.

Finding a Pace

Finding the pace for the governance work can be difficult.  I think the pace for change in any organization is heavily tied to the organization’s maturity.  Anyone that has been IS/IT or IS/IT management for while should be familiar with the Capability Maturity Model.  In Level 1 organizations things are completely chaotic, with ad-hoc efforts which means you are constantly chasing a moving target.  As you progress up the maturity model though, there should be more discipline and an ability to stay focused.  In these organizations it is possible to iterate more frequently and potentially to tackle more topics in parallel.  There is no doubt that more mature organizations work more efficiently.

Other Considerations

Governance should be an ongoing process and the document should be a living document that continues to see change over time as the organization and it’s needs evolve.

It is also important to note that groups should not take a shortcut and try to minimize the stakeholder involvement to simplify the process or to quicken the pace.  Stakeholder involvement, specifically non-IT, is critical to these efforts and it could be argued that you really do not have any governance without this involvement.

Summary

Governance is a key aspect to success with SharePoint and by taking the right approach, and one that is in sync with your organization’s capabilities will greatly increase the likelihood that your governance effort will be successful.

Keys to Long Term SharePoint Stability and Success

Recently I have been called into a few environments where the customers were having some serious performance problems or had features that were no longer working.  It really nailed home the point that Capacity Planning should really be Capacity Management as Microsoft now refers to it in their Capacity Management and Sizing Overview guidance for SharePoint 2010.  These environments also tend to have some other issues with patching and large un-used content databases.

The Keys below will help establish long term success for your SharePoint environment.

Initial Design and Planning

The planning and design work that typically goes on prior to an implementation is based heavily on assumptions and the understanding of current requirements.  In any environment where an application like SharePoint takes off, those assumptions change quickly, the needs of the business evolves, and therefore all of those requirements change.  In many cases though, the SharePoint farm topology is not changed and can no longer meet the needs.  With the current state of IT many resources are stretched and do not have time to make major changes to the system, but in many cases a few proactive changes would remove some of the ongoing system support and troubleshooting efforts.

Continued Monitoring

Every system needs regular monitoring.  The frequency and depth of the reviews depends on how complicated the implementation is, but below I have listed out some generic topics that can be reviewed.

Quarterly Review

  • Memory and CPU Utilization
  • Patches – Review new patches and install if appropriate

Semi-Annual Review

  • Review Content Databases – Number of Site Collections per Content DB and the size of each Content Database
  • Search Index Health – Number of items in the index, length of the crawls
  • Average and Peak Usage Stats – Review the average and peak user stats and add hardware if needed.

In addition, in some cases new features are enabled or leveraged months after the initial implementation.  If for example you are going to use SharePoint to host your BI solutions additional capacity may be needed.  If the system was initially designed for a pretty basic Intranet and the BI capabilities are added then the system may not be able to keep up.

Patching

Patch management also contributes to keeping your SharePoint installation stable and high performing over time.  Installing Service Packs or the bi-monthly Cumulative Updates can be difficult in some environments where maintenance windows are tight, but these patches will also help keep services running smoothly and bugs at bay.  I worked in one environment where at least three major issues were all resolved with previously released patches.  Unfortunately a lot of time was spent troubleshooting needlessly.

Prune the Hedges

Most information stores get bloated over time, SharePoint is not immune to this.  IT groups have been fighting this for years with shared drives and mail servers.  It is important to have some good retention policies in place to make sure you are keeping the right content, but also getting rid of the stale content.  At the very least you can implement an archiving solution that can move the content to cheaper storage, while keeping it accessible.

Summary

Following these recommendations will greatly increase your chances for maintaining a highly capable, well performing environment.

White Paper – MS Office Compatibility with SharePoint

For those that have been involved with SharePoint for awhile the document title “Good, Better, Best” should ring some bells.  There was a document with that title published with the last few SharePoint versions that compared the various MS Office suites going back to Office 2000 and detailed how they interacted with SharePoint features.  An updated version has been published in the form of a 37 page white paper called Business Productivity at Its Best

This document is important because the hardware and software refresh cycles at most companies are much different than it is for servers.  I have worked with a few clients in the past few months that still have a significant number of users on Office 2003 for example.  When providing them SharePoint 2010 guidance the information needs to match what they can expect in their environment with the products they have.  This document will provide excellent information that may help justify accelerating the upgrade to Office 2010 or if not will help illustrate what features will not be available (ex. co-authoring).  The white paper also includes information on the mobile and offline capabilities which are also becoming much more important in deployment projects.

I highly recommend this document to anyone planning or engaged in a deployment or upgrade to SharePoint 2010. 

Keys to Planning For SharePoint Search

Of the core planning areas in SharePoint, Search seems to get very little attention.  I find this surprising since one of the most common complaints from SharePoint implementations (or any Enterprise Information System) is that users cannot find “anything” in the system.  Most of the environments I go into have Search configured in only a very basic sense; a search site was created and crawling is scheduled.  To really get value out of the search features, and to greatly enhance the end user experience, additional planning and configuration is required.  Like many of the high level planning topics, the goals and plan should be reviewed at least once a year to ensure that the current goals and expectations are aligned.

Evaluate the Content

Not all content is equal.  The format of the content (File Type, Lists, Web Sites), the freshness of the content, and the purpose of the content can vary dramatically and may need to be handled differently.  Evaluate the types of content in the system currently along with any new types of content expected to be added in the short term.

Three examples of the different types of content could include:  Enterprise Content Management, Help Desk, and Project content.

Enterprise Content Management – Large ECM data stores primarily include structured data used throughout the organization.  Examples could include things like Sales Orders, Purchase Orders, or anything that is used by multiple departments throughout the organization.  Search tends to be very important to large data stores like this since the content is not easy to browse.

Help Desk Content – In most medium to large organizations there is content used to support the Help Desk functions spread through multiple sites, and perhaps multiple systems.  Some content might be document based, some might be in SharePoint lists for things like FAQs, or other formats.  While a regular keyword search may bring back relevant content, this is a great example of a case where a custom Search Scope could be created to narrow down the content locations or types that are queried against.

Project Data – For organizations that manage a large number of projects through SharePoint, it is possible to identify a unique type of content that is stored throughout all of the sites, and create Search Scopes that can return that specific type of project content.

Determine Search Goals

The next step is to interview the stakeholders including a number of the end users to determine what their expectations are as well as how they think they would approach search with the system.

Identify the Content They Search For – Try to determine the content they most frequently work with as well as the types of content they most frequently have to search for.  Typically users know where their frequently accessed content is located.  Unless there are thousands are items they may not need search for that content.  For other content, in other areas they are likely less familiar with the structure and rely on search.

Identify Search Types – Try to identify the types of searches they do (standard, or advanced with keywords), and how likely they would be to match a search against a specific search scope.

Identify Level of Patience – While it would be great if you only ever received a single search item in the result set, and it was the perfect match, that is not realistic.  Try to have the users express what their expectations are and what their true level of patience is.  While they ever look at the second page of results?  Will they quickly just do a different search?  Will they use any of the search refinements?

Identify Location of the Search – In addition, try to have them identify WHERE they initiate a search from.  To they navigate to the general area of the sites, do they try and search directly from the front page, do they navigate to different search centers depending on what they are looking for?  Depending on the results, the end users may be even be able to take advantage of the advanced configuration without training.

Develop a Search Design Plan

The next step is to develop your Search Design Plan.  It is important to review all of the different types of content along with the stakeholder’s goals and expectations to ensure that they are addressed.

Define Content Sources – Start the design by identifying all of the content sources you want to include in the index.

Identify Search Scopes – Next, try and identify Search Scopes that represent the logical boundaries for your content.  This more than anything can lead to highest level of relevancy because you are limiting the areas of the index that are being searched against.

Keywords and Best Bets – For the common search terms or critical company specific terms, it is important to try and identify the Keywords, Best Bets and Synonyms to help surface the content.

Custom Search or Result Pages – Try to identify any areas where a custom search or results page would be beneficial.  Both the search and results pages can be fully customized.  There are a number situations where simple modifications can provide a big payback.

Enterprise Search

With proper planning these features can be extended to provide a powerful Enterprise Search experience.  To make that transition the planning needs to extend beyond just your SharePoint content, but to content also stored in other systems, file shares, web sites, and email systems.  As the scope of search increases, so does the number of items in the index and therefore the amount of planning and configuration that needs to happen to deliver relevant results.

This is also where typically the topic of Federated Search comes up, since it is often valuable to provide results from other search systems, but in a separate result set instead of adding it to the local index and return it as part of the main results.

Review Search Metrics and Reports

Both MOSS and Server 2010 come equipped with Search metrics and reports that make it possible to analyze the current usage and effectiveness of search.  If you have not reviewed these before, there are bound to be some surprises both with the number of searches executed as well as what people are searching for.  The information can help you understand what people frequently search for as well as which results they are clicking through versus executing another search.  This information can be used to tune the search results for those keywords, and Best Bets can be configured for key content.  I have always relied on this information when reviewing end user needs for an existing environment.

Summary

The keys to planning for SharePoint Search include Evaluating the Content, Determining the organization’s Search Goals, Developing a Plan, and Reviewing Search Reports.  Following through on these steps will greatly increase the likelihood that the system will deliver reliable and relevant content back to the end users.  Enhancing the search experience will have tremendous payback for any organization with mission critical content in the system and can be the critical point that makes the difference between a successful and an unsuccessful enterprise information system.

%d bloggers like this: