Thursday, October 17, 2013

The clueless bin

As a nearly-40 ex-teenager (I swear that's how it feels sometimes) I spend some time wondering if "this is what it means to have experience". The little details of how you start seeing parallels on every meaning.

Like you realize how the knowledge worker in his decision factory is actually not that different from the blue-collar worker in the real factory (salaries aside). How everything is a cog in the great gears that power our individual worlds, and when boiled down to their essence everything starts looking like... well... the same thing.

In that line of thought, I started trying to pay attention to the little signs that indicate someone's been around for a while and knows what he's talking about. I think that I come across as an experienced person - because I am, see line above about being nearly-40 - but what exactly is it that gives it away?

I can read about all the psycho-freudian-jung-ish stuff about authoritative sound and positioning, but as far as I can remember I always sounded as if I knew what I was talking about, even when I had no real clue (very important skill when you're a consultant by trade), so I guess the real difference is that now I know that I do know what I'm talking about most of the time, instead of knowing that I was pulling rabbits out of my hat.

How does that transpire to others though?

In my professional life I have met and worked with thousands of IT professionals, and all of them left an impression, as is inevitable. My binary brain will default to sort these people by "has clue" and "clueless", and while sometimes you get the privilege to work with someone long enough to do a proper evaluation, most of the times you get 1-2 days at most. And yet, that clue/clueless binary decision is taken anyway.

Be aware, I am not trying to determine whether someone has or hasn't a clue - I'm trying to understand what is it about those people that makes me think they (don't) have a clue.

Some things throw me completely off:
  • Bragging - I did this, solved that - immediately makes me think of daddy issues and insecurity, a sign that this person needs others to think they have a clue. Goes into clueless bin almost immediately.
  • Asks the same thing twice. If someone asks me how to do something twice - even if it's 6 months or 3 years apart - person goes into clueless bin. Not applicable to real technical terms, as in "which property of object X gives me its width", or "do you have a sample of how to get the current device context" - these get a degree of forgiveness - but definitely applicable to conceptual descriptions, as "what is the Ambient Data Framework" or "why would I use Java for that". Perhaps I should rephrase to "asks same thing twice without realizing I already explained it before"
  • Dismissing any technical challenge as "trivial" - especially if it has to do with CSS. I have the utmost respect for good CSS hackers. Great CSS hackers are like gods to me.
  • Blaming others for their failures. When ministers resign from their governments is typically because someone way down the chain did something they were not supposed to do. Is it the minister's fault? Most likely the minister didn't even know that there was one person in their ministry that was supposed to empty thrash bins in the first place, let alone that this person could have contacts with the press and was really good at reconstructing shredded paper.
 OK, so what else can influence me on this binary decision?

  • Honesty. Being able to admit that they tried something and it failed miserably. You only truly learn with your own failures.
  • Accepting guilt, not too eagerly, but understanding that perhaps it failed because the person did not understand or listen correctly to advice given, or assumed that doing it alone was faster
  • Understanding that sometimes you are way out of your depths and asking for help.
OK, so my goal was to have a more objective list, but I guess it truly is subjective and I should go read some more Jung before I can understand it. Or, I should show the wisdom that will soon be visible in my hair and just accept that people are how they are and embrace the beautiful diversity of people I have the pleasure to work with.

Tuesday, October 01, 2013

Introducing Responsible Web Design

How do we do Mobile with SDL Tridion?

If I had a dollar for each time that I've been asked that in the past few years, well, I'd have a few dollars. As a seasoned Tridion implementer I know that the best answer to this question is "how do you want to do Mobile with SDL Tridion?" or better yet "What do you intend to achieve with the mobile channel?".

Unfortunately, most of the time the person asking this question is not someone that can answer my question - they are looking for the magic "go mobile" button that will transform anything they currently have to "mobile-ready". And - as you probably know - Tridion is just not that type of system that can transform your content without you being quite explicit about what you're trying to achieve. It will do anything - as long as you can tell it what you want to do.

This question has been particularly more frequent ever since we acquired Bemoko, a UK-based mobile-delivery focused company, and there's been some confusion in the market about what exactly we set out to do with this acquisition. Let me state right here right now that we did not have a plan to give you that "go mobile" button with it (not immediately anyway). 

Instead, our plan from the beginning has been to provide you the tools you need to create a proper mobile strategy and presentation for your content. In other words, with the features we are adding to Tridion you will be able to create that "go mobile" button, and it will do exactly what you want it to do.

So we started following that path - what do our implementers need to provide cross-channel experiences for the sites they create - and released version 1.0 of the Tridion Context Engine (officially named Context Engine Cartridge) about 2 months ago, and are now getting ready to release an update with some interesting new features. The goal of this context engine is really to start providing developers with the tools they need to create "context-aware" experiences, and therefore the focus of the first release was with providing you knowledge about the device your visitors are using to access your site, on first click, on the server side.

There are already quite a few posts from the Tridion community about how to use this cartridge, I'd recommend reading this one by Rob Stevenson Leggett and this one by our very own Eric Huiza. In a nutshell, this context engine - at time of writing - gives you properties about 3 aspects of the current device:
  • Device
  • Browser
  • OS
Examples include "IsTablet" or "IsMobile", etc. Since most of this data is "buried" inside the Ambient Data Framework, I joined up with a few community members and created an open source project dubbed "SDL Tridion Context Engine Wrapper" to expose some of this information in a more web-developer friendly way and you will now find .NET server controls, html helpers for MVC.NET and even a Personalization & Profiling extension to expose these properties as part of the visitor's profile. 

What can we do with the Tridion Context Engine?

During the recent SDL Tridion MVP Retreat in Óbidos I sat down with Rob, Mónica and Julian and we decided that we would build a set of methods to enable Responsible Web Design, a framework to provide implementers ways to use Responsive Web Design while making sure they keep their bandwidth (and load speed) as low as possible. These are some of the things that the framework can be used for:
  • Remove navigation elements that would not display on a given device
  • Remove page elements (calls to action, sidebars) that would not display on a given device
  • Resize images to match the device characteristics
  • Resize images to account for Retina capable devices (not as simple as it would immediately seem)
  • Group devices into device families, simplifying the "targeting" of these solutions

We expect to have some really cool functionality added to the Context Engine soon (like expression evaluation for audience segmentation) and will continue enhance its sister open source project as we go - and as we gain field experience with it - and will continue keeping in mind that mobile is a channel that will continue evolving at a really fast pace (cars? glasses? road signs?) and adapting as quick as we can to support what the field really needs to do a successful implementation of "the right content at the right time for the right device".

You can find the Tridion Context Engine Wrapper project on github.