the importance of being earnest … with your sitecore ia

22 January, 2014

The information architecture (IA) of a website is very important when it comes to surfacing content in an an effective and appropriate manner for your users.  Once you have a website’s IA, wireframes, comps, annotations and [hopefully] copy samples from creative it’s very important that you can translate the IA into its Sitecore representation.

From a high-level perspective the top-level navigational elements of the IA usually translate directly into the nodes in the Sitecore content tree, e.g. /home, /news, /about, /products, et al. with the appropriate child nodes representing further navigational subdivision or actual content.  But what of items such as layout, data templates, configuration and others that underpin the IA implementation?  It is just as important that these invisible elements are treated as equally important as the visible elements of the IA.

At NorthPoint (Digital) I encourage my teams to follow some key best practices when implementing an IA.  These few listed below may be Sitecore-specific but can also translate to other content management systems as well as to non-CMS implementations.

Work Early and Often with Creative and Actual Users

As much as possible be involved with creative and actual users early on as part of the process.  This helps to ensure that there is as complete a picture of the IA, UX goals and content vision as is possible and that there is a [reasonably] sane plan for implementation.  When possible the UX and overall IA should be proofed by real end-users and not just by creative, business and development teams.  Real end-users include representatives of the target audience, content curators and administrators (admins are end-users too.)

Doing this work early certainly helps to mitigate risk and sometimes may even be serendipitous.

Use Production Content as Soon as Possible

This may not be possible in the early stages of a project but becomes increasingly important as a project moves forward.  Lorem ipsum, stub images and grey box placeholders are not content – they’re filler and not truly representative of what the site experience will be.  Using production content as soon as possible helps to proof out the IA, its Sitecore representation, the UX and any content presentation issues that may arise.  Finding and fixing these issues early on is preferable to reworking them later.

Use Dynamic Configuration

Rather than relying on configuration driven by static files such as the web.config, define runtime dynamic configuration in a well-known place in the Sitecore content tree.  This configuration node should have logically defined sub-nodes for specific configuration scope, e.g. “constants”, feature-flags, pick-lists etc.  Use helper classes to access configuration rather than repeating boilerplate code.  For multi-site deployments global configuration can be defined as well as per-site overrides or customizations.  Again, configuration should always be defined in a consistent, well-known place.  And don’t forget to clearly document your dynamic configuration!

Use Data Template Composition / Inheritance

One of the most powerful features of Sitecore is its ability to construct data templates by inheriting from other data templates.  Think of this as analogous to class inheritance in object-oriented programming.  Data templates define the structure for content items.  They also define default data as well as presentation (display parameters).  This is powerful stuff and when leveraged properly can yield a highly robust and extensible infrastructure to support the IA.  When composing data templates always set defaults in the “standard values” for the template.  This insures that any derived data templates or content properly inherit the template’s defined behavior, especially if you need to change that behavior.  Making one change is preferable then having to replicate that change many times.  Remember you can always override behavior for edge cases.

The Display of Content is not Content

When crafting how content from the IA is represented in Sitecore as data templates remember that for the most part you assign presentation behavior to the data template (on the standard values!) not as part of the structure itself.  This ensures a clean separation between the content itself versus the display of that content and from that a robust UX can grow.

And Never Forget People

Finally, through all the work we do in technology it helps to keep in mind that People are the Heart of the System.