Shifting Requirements

As a follow-up to my last post, I want to share a familiar story about stories (aka software development requirements), specifically for "dynamic" Web content types.

As soon as you create the rules to automatically display certain content for a given page, the business may want changes. So instead of just displaying all press releases in reverse order by date, the requirement may evolve to eventually include some to all of the following.
  • but make the sort order controllable by the user (and save the setting until the next user session)
  • and "lock" certain 2, no 3, actually 5 articles at the top as curated or selected by authors
  • also show related articles on the side (but not on the mobile site, show them at the end in a one-column format for mobile devices)
  • oh wait, don't forget to remove duplicates and include promoted content while you're at it
  • and show disclaimers in the footer...
  • based on certain phrases in the content*
  • oh and let users save favorite items
  • ...and manage them in their profile
  • ...and share them to their favorite social media sites
  • now let's do the same for products, but with more (taxonomy) sorting options than just release date
I've personally seen these in SDL Tridion implementations and general Web development scenarios, but I suspect the same story is familiar in other contexts. If this sounds (painfully) familiar, consider making some of these options configurable with Tridion (components can be more than just content).

Also evaluate your investment in this much Web application logic. Basically, does your Web analytics and user research support the cost and maintenance for adding these features and/or can you standardize an approach? Do users find your content through the "related articles" links, via navigation, or through search? If it's search, maybe search experience optimization or inbound marketing is the most important thing.
Though features may make your site look like you spent a lot of effort on it, not all features are benefits.
Otherwise, consider a personalization engine instead of just metadata and (custom) queries.

*By the way, I haven't seen an out-of-the-box solution for the "automatically add disclaimers" requirement, but it is easier with modular content. Approaches for such dynamic disclosures include:
  • The content management system lets authors add disclaimer definitions inline and custom client-side script manipulates the markup (DOM) to place numbered disclaimers at the end while removing duplicates
  • The same approach and logic is done, but during publish or rendering on the content manager side
  • Optionally the disclaimer text can be re-used if contained in separate components
I suspect True Automation is around the corner. Combine the fact that recommendation engines can promote successful content with stories of robots writing stories, and I think we'll see very interesting content management implementations well before the Singularity changes everything.

CXM Requirement: Don't Be Creepy

The video pitch for SDL Innovate 2013, noted "Customer Experience Management is as old as people are." The familiar neighborhood store is charming, but scale it to an enterprise level and what corporations know about us can be creepy.

I was enchanted by the conference, which showcased our solutions, partners, and expertise in helping businesses navigate some fairly sophisticated content management and customer experience requirements. I've also previously explained that Customer Experience Management doesn't necessarily change your Tridion BluePrint requirements, but post-Innovate I'm suggesting that creating and managing the customer experience across your enterprise and digital channels requires two very important requirements.
  • External: your customers or users need tools to manage their preferences, profiles, and privacy.
  • Internal: your enterprise needs the ability to manage such experiences.
Transparency. Control. Got it?
Don't settle for simply copying the competition. If you're developing incrementally, assume your users want control over preferences, profiles, and privacy in the very first release. Include being trustworthy when figuring out your business, functional, and technical requirements and make transparency and control a part of your content strategy.
Need convincing? Target knowing when you're pregnant is old news, so I made a new creepy slide to sell the idea for transparency in your personalized customer experiences. Imagine you're at SDL Innovate, and you see slides telling you not about the presenter, but about you!

Customer Experience Management: Transparency and Control Requirements from Alvin

But what does this mean to content management teams and specifically Tridion implementations?

External Requirements: Data Sources and Rendered Output

We can design SDL Tridion functional designs (FDs) top-down, starting from the expected rendered output. The focus is currently on page types and content types, though I suspect we'll need better terminology to fit the reality of today's service-oriented, multi/omni-channel Web.

When creating your content inventory or matrix, be sure to include the sources for where content and data comes from. All of my recent SDL Tridion FDs include content and data from non-Tridion systems such as product information, social media plugins, script libraries, analytics tags, and even tags to manage tags.
Tridion is flexible at helping your teams manage non-Tridion content in Tridion without that data being in Tridion (by letting you extend the GUI to show other data). By recognizing that not all Web-visible Content is necessarily in the Web Content Management system, Tridion is the "ultimate corporate team player" and doesn't assume it will take over your website.
By tracking especially end-user data in requirements to implementation, you'll better address the external requirement to be transparent on how and why you present certain content to a given user.

Tridion implementation tip: consider translate-able label schema(s) over key-value configuration pairs if you're considering a multi-lingual site (nearly assumed if you're using SDL-Be-Global. You may need to translate phrases such as, "recommended because of," "profile," or "also viewed."

Note that some of this transparency is already law (e.g. refer to the EU "Cookie law").

Internal Requirements: Preview as User, Metadata, and Personalization

You will need a way to test your user's experience in a "preview" environment. This is easy with a a basic Tridion architecture that includes two target types:
  • Live
  • Preview (or Staging)
In addition, use SDL Tridion features, test different user profiles, and understand the trade-offs to "automation."
  • Use SDL Tridion 2013's CXM-friendly features. If you're testing variations of content for different devices, especially with SDL Tridion 2013, consider using Device Preview and Footprint sets. If needed, create and test with different user profiles, however you manage them. As you create content and pages, consider using 2013's Bundle feature to publish or release new "experiences" together.
  • Don't assume one user, one browser, or one "channel." One of the biggest mistakes I've seen (and unfortunately have committed) in Content Management and Web development is assuming all users are the same, across all browsers. Offer the ability to Preview as a given User (or Profile) to the appropriate support staff. Just be careful with personal information requirements such as HIPAA.
  • Automation isn't automatic. I frequently get requests in projects that end with: "and we'd like to automate this going forward." This usually means authors want to simplify their lives and not have to create a page per user profile or attribute. Authors can reduce the amount of work they do by creating an "indirect association" once, in each content component's metadata, so that Tridion or website code can deliver the right content based on context. But this isn't complete automation, it's just a consolidation of authoring steps from a "choice per page" to "a metadata selection in modular content" (i.e. check box in a component). The trade-off is losing the ability to easily sort or curate the displayed results. I'll have to follow up on other automation trade-offs in a future creepy post.
In addition to Tridion features, I've seen organizations find or create solutions to manage browser sessions, spoof user agents (to test as other devices), automate front-end testing, and present user-or profile-specific information. A quick online search gives you plenty of options, the hardest part will be finding the best fitting options for your team and teaching each other how to use them. One of my customers aptly refers to the "socialization" part of business analysis and requirements gathering--this applies just as much to the ad hoc tools in your development ecosystem.

In your journey to personalize your content and experience for your customers, first don't be creepy. Be transparent and give users control. Secondly, make it easier on your content management team by getting the most out of SDL Tridion and related solutions.