The Install is the Experience

Sonic1Well, I got an XBOX One for XMAS and the first thing I was presented with when I went to turn it on was a screen asking me for updates.  Now this isn’t meant to be a blistering narrative against the hackers, XBOXLive or Microsoft – it’s a bummer it, it happened, everything is great now, I have all my updates and I can merrily play away.  However, when your first experience with a product is that you literally cannot do anything with it (no updates = no playing), you start to question it’s value, buyer’s remorse slowly starts to ebb it’s way into your brain and you are left wondering.  I for instance wondered all the way back to Christmas Past where I once received a new Sega Genesis with Sonic the Hedgehog 2 and the hardest part of my day was trying to get the TV cables to line up so I could rip through that jungle.

The installation isn’t the sexiest part of your software, but it is the first thing your customer experiences, it’s the first peek they have at seeing what kind of a company you really are and how you handle the bad and the imperfect – system requirements not being there, critical patches being required upon first-time use or RSS related update feeds explaining what the exact problem is, etc, etc

Two models exist for application software delivery today;

  1. Application Ecosystems – AppStore, Windows Store, Google Play
  2. On-Premise Installations – download, follow guide, setup requirements, install
  3. Cloud – SaaS with no developer extensions, just provision my apps please.

The reason Application Ecosystems are so successful is because they force the developer to conform to the user installation experience of the ecosystem – you want to play with us, fine, set it up and deploy it this way, after that do as you wish and ask permissions if you want to do more.  There is no other way.  The ecosystem ensures the user gets the same experience every time and when they don’t, the user blames the platform not the developer.

Now compare to an Enterprise On-Premise Application install, download prerequisites, follow guide, setup software, kiss the girl, you get the idea.  Between different vendors and services everyone has different hooks and UI between getting their application installed where you don’t have the benefit of an ecosystem.  At best you might have a similar OS, and by similar I mean they have the word “Windows” in the OS name because once you get into x86 (who uses that?), x64, different versions of frameworks, leveraging OS components that were once patches and are now roles – your world of hurt gets much, much bigger.  And that is where you need to kill it, because if you can nail the install to be slick, smooth and up and have your customer up and running out of the gate – you’re miles ahead of the other guy and you haven’t let that little buyer’s remorse voice enter their head telling them to download the trial of the other guy whilst trying to install your app for the xth time.

Cloud, on an Enterprise level, at that point it’s more about provisioning services and less about actual installation.  But I’ll give it up for those of us building configuration apps that do the heavy lifting of any install.  Build me the multiple tenants I need, setup my users, get me setup and running.  Same scenario, you’ve got to be on your game, so the experience is a work of art, when the user loses connection, you recover, when something goes wrong on the server, you recover.  Just as the guy who is fumbling through your install and downloading a trial at the same time, the guy in the Cloud is fumbling through your configuration while signing up for 3 more services to see if they’re any better.

Kill it with the installation and configuration of your software and you will be far ahead of your nearest competitor, leave it to the next to last feature to be developed and you’ve just given them a huge window.

Build the Team not the Process

No one has ever, ever shipped a piece of software and thanked the process.  Apologies to everyone that work with methodologies and ALM, but it’s true.

Why?

Because, processes don’t ship software, people do.  Do a mental back-check of the last few releases to see what really got them out the door?  Was it the check-in process, how bugs were logged or what happened at the last triage meeting?  Probably not.  No one ever ships a release and goes – “Thank the heavens we have this process because otherwise we would never have been able to go out the door”.  No, it always goes something like this – “Thanks everyone for all your hard work and dedication that enabled us to ship this release out to our customers”… or something to that ilk.

This isn’t to say that it has to be the wild west; requirements, design, development, deployment – all huge important steps of a release – but the people are what make it happen.  So if the people are what make it happen, don’t constrain them in what they do, empower them, really, really empower them – “show me what you’ve got, here’s the ball run”.  I’ve always been a huge proponent of finding the best people – you get the best people in a room and they can AND will build and ship anything – you have a mediocre team and you’re going to be making excuses based on your chosen process or methodology – you’ll see the excuses start to rise – “well we were supposed to log it this way” or “well we didn’t clear this gate when test 5 of 2000 failed” and those types of comments are red flags.

And if you don’t believe me, at the end of the day when the chips are down, tell me who you’re going to call?   The process and say – “Hey, servers just went offline” – (although could be quite humorous) – no what you’re going to do is “Hey, Dave servers are…” – “Yeah man I see what’s going on, I’m already looking into it”.

And you can’t build a process for that – that is having a great team and that is what ships software.

Respect thy Calendar

I live in Microsoft Outlook, not something that I originally had as a boyhood dream between being All-Star Cleveland Indians Catcher and Doctor, but hey such is life and I roll through a ton of email on a daily basis so it works.  With work and kids et al, I use my calendar for everything (primarily because it makes sure that I am where I need to be, when I need to be).  Over the years, I’ve noticed a disturbing trend where appointments become stacked on appointments which are already stacked on appointments.  There must be something that can be done…

It’s called an Assistant

I find that people get really excited when setting up a meeting – “YES I WILL UNLEASH MY AMAZING IDEAS ON THE MASSES… at 2:00pm on Tuesday in the big boardroom” – and sometimes they don’t check if people are actually available.  How do you solve the problem?  With the incredible Scheduling Assistant.  Why is this feature incredible?  Because you can tell, at a glance, what the success rate of someone accepting your invitation is (read low).

They chose Purple and Blue for a reason.

The beauty of the scheduling assistant, is that you don’t even need to read a line of text to know someone is available.  It shows you in blue or purple whether A) they are busy or B) whether they are physically in the office.  Another great feature, that if you ask me is up there with Bejewled Blitz, is that I don’t even need to think about what I’m doing, all I need to do is move the slider to a slot that does not have these colours in it to know that people and rooms are available.  I’m not even reading at this point.

Point made?  Perhaps, but here’s the deal – we’re all busy, we all have places to be and we’re all trying to push our cart of wares to the store every day.  Whenever I receive an invite for a time that I’m already booked for, the following goes through my head;

  1. Did you not see the colour coated view of my calendar?
  2. Are you saying your meeting is more important than this here other person who actually looked for a spot where everyone could meet?

Seriously, that’s it.  If someone attaches a quick note – “hey I see you’re busy, if possible to move some things around that would be great” – I will give you some etiquette points and read further, otherwise, I’m going to politely decline… all the time.  Sometimes it might take me 5 minutes to schedule a meeting because I’m trying to find a time where everyone can attend… but I think it’s worth it if everyone can make it and not worry about it where they were previously scheduled to be.

I’ve always thought of writing an app that automatically declines over-stacked appointments and always hoped that I won’t need to…

Overtake them on the Hill

Runner_mainMany years ago (too many in fact), I undertook the task of running a half-marathon (21km) and training for it in 7 short weeks.  At the time I had a friend who had run many marathons, New York and Boston to name a few, and she outlined a complete training regimen for me to get me in shape.  I still remember my time of 1:58:05 (primarily because I wanted to be under 2 hours).

To this day, I always remember the one piece of advice which I applied to that race and now apply to so many other things in life – “Overtake them on the Hill”.  When these words of wisdom were first imparted to me I didn’t understand it – “sure, let me get there first, whatever happens, happens” – but I remember very clearly whilst running starting to notice that as we approached a hill, people changed their stance, shook out their arms, caught their breath – they slowed down.  If you haven’t run before, when you approach a hill, after having already run a great deal, you immediately start to notice new sensations throughout your legs as different parts of your muscles start to be used – sometimes this can be invigorating, sometimes it can be painful – irregardless, it’s a different feeling and some people’s natural tendency is to slow down.  So, while people are slowing down, you overtake them on the hill, then when you get to the top you slip back into your previous pace whilst they now try to play to catch up and have a light break.

So what does it mean?  People will naturally slow down when the going gets tough – “I don’t know what to do, how do I make this work, what should I do, arrrrrgggg process paralysis” – the best thing for you to do at this point is plow through and keep pushing because eventually you will overtake the problem you are facing.  You have to be smart about it – you can’t plow into people to get there, sometimes you have to dodge them and try new things – because who wants to plow through people!  Projects, of any kind, are made up of peaks and valleys – the hard parts and the known parts – the known parts are easy, the hard parts are hill where you can’t let up and I would argue you have to push even harder at.

There is a lot in the media about whether you need to work crazy hours to make your startup a success (i.e., overtake them when everyone else is sleeping) only work what you can in your 8 hour day and pace yourself.  I can’t advocate one over the other because I’ve never been able to do it and would be scared to lock myself into one mode of thinking.  Sometimes to get a project done and really make it a success; evenings, weekends, very late nights are required and sometimes pushing all my meetings out so I can work non-stop during the day and and relax in the evening will have the exact same affect.

Whatever the case, whatever works for you, ask yourself if what you are currently working on is a hill or a valley and overtake them on the hill.

Get out of their way

I have two girls that play ringette – fast game, great game – the older they get, the more intense it gets to the extent that after all these years of not being able to skate I’ve been lacing up my skates once a week to get on the ice with them (although let’s be honest… we are miles apart).  I’m one of those guys that cheers loud for his kids and sometimes I have the odd suggestion for the referees (to be clear: I never boo the other team, scream obscenities and/or when our team has a significant lead I dial it down – but yes I can be quite loud).

This past weekend, the girls were in a tournament, the older one was playing a particularly tough game where we were all cheering pretty hard.  But there was a moment in the game, where she took the ring and I became silent – I knew what was going to happen next.  The same thing happened the day before when the younger one was playing and we walked into the Arena 5 minutes late, she stole the ring from the opposing team in their end and I stood still because I could tell what was going to happen.

In both cases, you could see it in their actions, their weight shifted to one side, they leaned on their edges a little more, the stick came back, they dropped lower, shifted their balance, they ducked and dived and fired a rocket into the net, past the goalie.  I didn’t need to cheer for them to skate harder or to go and get it – they had it, they were taking it all the way to the end and nothing was going to stop them.

If the three of us were in an office together – the best thing, the only thing I should be concerned about is stepping back and letting them get it done.  You know when someone is so invested in a problem that they are blocking everything out – they come in a little earlier, edge into their lunch break, perhaps their shoulders drop a bit for maximum typing capability, maybe their face is smushed against the screen or maybe the headphones go on.  The signs are all there for you to see and in everyone they are different.

The best thing you can do at this point when you see it happening – is to get out of their way.  If you trust them to do what’s right, they will get it done and get it done way better than you could have ever thought possible.  You stopping by every hour to see how it’s going and pinging them with questions is only going to break their momentum.

Step back and watch the magic happen – you’ll be amazed at what can happen.