Mobile is a Systems Problem

Notes from a talk I gave at @NSConf and @iOSDevUK.

Whistler Spring Skiing
Credit: Flickr / kcxd

I used to be a ski instructor. Back when I was in grad school. Weekdays I would write code, academic papers, and teach first year programming. And at the weekend I would be out in the fresh air, teaching people, mostly kids, to ski.

One of the interesting things as an instructor, of anything really, is the process people go through as they learn. I didn’t actually learn to ski myself until I was 22, so I remembered the learning curve, and how hard and scary it had been. That empathy served me as an instructor.

As we gain expertise, we go deeper. I’m sure you can think of an example in whatever technology or part of the API you’ve been learning recently. So the beginner skier, their goal is something like “how to get down this hill without hurting myself”, and the expert skier is working on a specific part of a specific turn.

The other thing that changes, is perspective. The beginner skier is very focused on the front of their skis, and almost nothing else. They are scared to look further, but it’s not much of a view.

The expert skier, they consider the whole hill. You have to, right, if you have 10 kids following you in a line. Or if you’re going 30k down a standard hill, not having that perspective is a quick way to ski into a tree and die. Olympians hit up to 95 miles per hour.

We’ve got to do the same thing when we think about mobile. We can take a broader perspective and take in the whole view. We’ll build better apps if we consider the fuller context of the user experience.

The User

The User and Your App

If you don’t ski, or don’t ski much, you might think there’s plenty going on for the skier. You’ve got poles, and gloves, and a helmet, and goggles, and don’t forget the skis. it’s super-cold, windy and sun gets in your eyes. That would seem like plenty to juggle, yet skiers are pulling out their mobile phones like everyone else. I personally like to take videos.

And that should not seem too ridiculous to us. Take a look at this…

I love this video. Often when we bring an existing product to mobile, we ask, “how do we get this to fit”, and sometimes, “what can we leave out”. Capital One have approached their banking app from the perspective of – how does someone do their banking on the go? How do we enable them?

One of the most interesting changes is the login. Logging in on any online banking system tends to be pretty unpleasant, right? It’s for “security”, where security seems to be defined as “the most unpleasant user experience your user will tolerate”. Capital One, instead of taking the standard unpleasant banking login and shoving it onto a smaller screen, took the login we are familiar with on mobile – the swipe – and built it into their app. Now that might even work on a ski slope.

The way we evaluate usability on mobile is so contrived, at a table, in a room, focused on nothing else. How often do you actually see people use their phones like that? Being chased by bulls is a little extreme, a little gimmicky, but the question, “how usable is it one handed with the whole world going on around you?” is a question worth asking.

The User Making Decisions

When I lived in Sydney, a friend and I had a routine. On Thursday evenings we would hit the gym and eat at the mall – mall food in Australia is amazing. We had a conversation at some point, about whether we should be doing more exciting things of a Thursday evening and her response stays with me. She said, “By Thursday evening, I have made so many decisions that if I don’t have an evening off, there will be no decisions left for tomorrow.”

Decision making is exhausting, right? I don’t think I could count the number of decisions I make in a day. The thought of trying to do so makes me want to take a nap. I’m seeing more and more advocates of removing decisions, how you’ll be happier and more effective if you focus on habits.

Part of the problem, when we make decisions, is that we want to have all the information – we believe in choice. The more choice, the better. But more choice overwhelms us. If you’ve ever got to a big mountain and skiied the same run over and over again, you know what I’m talking about.

The original example of this is the Jam Study conducted by Sheena Iyengar (she has two great TED talks). The experiment went so: customers in a grocery store were offered a choice of jams to sample, and given a discount coupon should they wish to buy. When there was a bigger selection of jam to sample, more people tried the jam. But more people bought jam when there was a smaller number of jams to sample.

What metric really matters to the store owner here? The buying of jam.

So we build systems to make user decision making more efficient. In the UK, the insurance industry is completely commoditized, and customers have no brand loyalty, so insurance sales mostly take place through “aggregators”. You put in your information into one system, and you get quotes back from many different insurers, and then you choose the best.

Right? Wrong. Now instead of putting their information into multiple insurance sites, users put their information into multiple aggregator sites, each of which generates a multitude of quotes. And then they compare between them.

Are they saving money? Yep. Insurance margins in the UK are amongst the lowest in the world. It is better business to be an aggregator than an insurer, especially in car insurance – the UK motor insurance industry last made an underwriting profit in 1993.

But do aggregators make the decision less overwhelming? Or now, instead of picking between a couple of options for a couple of insurers, the users picks between tens of options on a couple of aggregators instead.

Distraction, decision fatigue… I think they relate to this current trend we see for curation. Newsletters are more and more prevalent – (a friend and I have one, check out, Maria Popova has turned Brainpickings into a business. And last year Product Hunt raised $6.1 million. It’s a curated list. Remember when Yahoo was a curated list? But algorithms won out. Now curation is coming around again. At the end of the day, users want people they trust to create trails for them, the whole mountain is just too overwhelming.

The User in Love

For me, and this comes back to a talk I gave last year (Distractedly Intimate), the biggest difference on mobile is how users feel about their phones. Most people love their phones, and many people hate, or fear their computers. I don’t know if any of you have been on an online dating site recently, but pretty much everyone seems to say they can’t live without their phone, the computer mostly doesn’t get a mention.

As developers, I feel that we failed humans with the computer. We created things, that stress them out, confuse them. The joy of developing on mobile is freedom from that history. Not quite the same freedom as a deserted mountain early in the morning, but pretty close.

But this freedom comes, I think, with an obligation, not to mess it up again. And also imposes it’s own limitations – the phone is for fun, and for pleasure, and personal, so the top paid apps are games and lately health apps.

That personal nature exacerbates some problems, and how users feel about certain things, including privacy. When apps demand too many permissions it feels much more intrusive, almost a violation. I know people who won’t put Facebook apps on their phones because of it, remember the person describing Uber for Android as “literally malware” which went viral but was apparently inaccurate. People uninstalled Twitter because they started checking to see what apps are installed on your phone to improve advertising.

I think what we see here is the result of three things. Firstly, ad click through rates are lower on mobile so companies need better data for better targeting. Secondly, poor communication around permissioning on the OS, like many things, worse on Android. And thirdly people being more protective of the device they love.

The World

The World Around You

We want to log everything that is going on in our app, right? But how often do we see someone just on a mobile device? It’s what we use as we go about in the world. In effect, we are logging the position of the tips of the user’s skis, without the context of the slope they are on. Logging is only part of the story of what’s happening. We log what users do, not is what is going on in the world around them.

Maybe we log that they triggered shake to send feedback and cancelled it – this happens for me with Google Maps every time I get in and out of my car.

Maybe we log that send failed because of lack of internet connection – maybe because the user got in an elevator, or is on a train travelling in and out of service. We don’t know.

Maybe we log that a timeout happened on the form they were filling in – perhaps Covert Affairs got particularly dramatic.

We don’t really know what is happening. On the computer we could be reasonably confident that they were sitting still, and either had, or didn’t have, internet. And now our user could be anywhere, doing anything. They could be being chased by a bull. They could be on the chair lift. It’s pretty likely that they are watching TV. And the world around them – the quality of service, the lighting, the movement, affects the experience they have with our product.

The World is Exciting

This leads us to distraction. By this point, I bet most of you have checked your phone, maybe email? Maybe Twitter? Maybe you’ve responded to something important. Maybe you’ve been clearing out your inbox.

Mobile just overtook TV in time spent consuming digital media. In the UK it’s about 3 hours 40 minutes on mobile, 3 hours 15 minutes on TV.

I was mostly shocked by how long this took. Let me tell you how I work out. I get my cardio on the elliptical. With me I take my iPad, and at least one cellphone, normally both (I carry an iPhone and an Android phone).

So I would have estimated mobile to be way above TV, based on an assumption that TV means also being on mobile, but being on mobile does not also mean watching TV.

Did you know that texting whilst driving is more dangerous than driving drunk? That’s the cognitive overhead of multitasking.

On mobile, your users are multitasking. This means: your users are effectively drunk. There’s a reason why you’re not supposed to drive (or ski!) drunk – it reduces reaction time.

The World and Other Humans

I’ve got used to skiing alone, basically because I would sooner ski solo than ski slowly. But there are few things better than a great ski companion – someone who can keep up with you, push you to go a that bit faster, brave that scary run, pick up your poles when you wipe out.

There’s a great quote from Douglas Crockford in Coders at Work; he talks about how computers used to be social because a group of people shared a computer and an email address. There was a community around it. And then we moved to the personal computer, and computers became anti-social. Now we move back to them being social, because we’re humans! Social is normal. And nowhere is that more true than the phone.

What does this mean? It means your app is going to get interrupted by the ding ding ding of text messages, and twitter notifications, and email.

It also means that social is a normal part of mobile interaction, and sharing what you’re doing is standard. We’ve bastardised the meaning of the word social in this industry, and it’s come to mean “one person broadcasting channel” but that is not what I mean. If I’m booking a holiday with a friend, I want to show them what I’m looking at. If someone is being annoying I’ll be discussing it privately. Pulling out a phone and showing things to people we are with is normal.

The System

The System is Broken

One of the things about being a ski instructor, is you ski like a pro and like a beginner. When the day is over, you can carve it up down the hill. When you’re teaching, you ski at the level you want the student to aim for. It sounds simple to do a snow plough, right? You just make a pizza. But it’s actually much more work. You’re working against the mountain, against the snow. When you work with the physics of the skis, the shape of the mountain, it’s much less exhausting.

We know, that someone learning is working way harder than we are. That thing that took us 2 minutes, they had to look 6 things up and now it’s only nearly done. But also we do this to ourselves – when we do that “easy” hack, we pay for it later. When we focus on a sensible structure, on documentation, onboarding and subsequent changes become easier. We work with our system, instead of against it.

Skis used to be straight, but then in 1988 we got the side cut, the parabolic ski. As a result, people could ski even faster than before, because the new ski allowed you to accelerate through the turn. But a whole new way of skiing had to evolve as a result – a wider stance, and a lower centre of gravity.

Now, our mobile apps have become bigger and more complicated. This is really a whole other rant, but as our mobile apps become more complicated we have to evolve our infrastructure and processes with them.

For a long time on iOS, people barely wrote unit tests. And Android appeared to be untestable by design.

And I still find things. Like, I was using the G+ app recently (I know, strange behaviour), and I tried to open the locations tab, and it just… crashed. Which to me is a sign that there’s not a UI automation test just like, checking every single view controller loads. That should be a bare minimum.

Or the Twitter for Android app. I tried to take a picture of my passport and a cup of tea at the airport, and I carefully cropped it and added a filter to make it less generic.

And it discarded my edits. I had a couple of goes and had to just post an image that in no way reflected my limited talent with aesthetics.

And I just asked the world, futilely, how do you not have a unit test for that? Why?

The System is Tired

I went to Bali in 2013. Not to ski, obviously, but to do yoga! And earlier this year I went to Easter Island. Both these places are incredibly beautiful. But the internet was terrible. And all the apps on my phone, that are written with this expectation that I have high speed network all the time… they just stopped working. Twitter, especially with inline images, became basically unusable. G+ with even more images wouldn’t even load. Living with a poor data connection is like a ski resort without a snow-making machine. That used to be possible, but isn’t any more (thanks, global warming!)

When I travel within Europe, I used to use my Android phone and “restrict background data” to get by on the meagre data allowance O2 gave me. But last year in Scandinavia, I discovered that doesn’t work anymore – most of the apps don’t work without background data. For a while I was collecting nano SIM cards everywhere I went, now I finally have a SIM card that works in 17 countries.

I’m sure the majority of the time it has incrementally improved the experience. But it’s really not improved the experience when I travel, which is an important use case for me.

And let’s talk about battery life. I’ve started carrying around two cellphones and an external battery. That has become a new normal for me.

It’s easy to pass this off as an Operating System problem. And it is. But if someone’s battery is dead, they won’t be using your app. If they notice your app is draining the battery, they’ll delete it.

The System Has Many Pieces

Mobile is a systems problem. To get down this mountain, we’ve got to look at the whole mountain, not just the tips of our skis.

We talk about it though, like it’s form factor. And when we talk about “beyond mobile” we talk, mostly, about wearables. About smart watches and Google Glass. We wouldn’t talk about “beyond skiing” and fixate on goggles and helmets.

I wear two, sometimes 3 activity trackers, but no smart watch, and now that I no longer work for Google I can admit that there are few things I want less than a notifications bar attached to my face. Distraction is a far bigger problem for me than turn around response time on Twitter or whatever.

Mostly I think wearables are cool. But that’s not what I’m talking about here.

Mobile is just part of a multi-device world. People move between devices as they go about their day.

I still go to websites via twitter on my laptop, and click on links others have shared that open mobile sites, which aren’t great on my laptop. Or worse on my phone, I open links others have shared from desktop, which don’t or barely load on mobile. We’re not doing great supporting these transitions, yet. The skier doesn’t live on the slope. The user doesn’t, usually, live on one and only one device.

We see this especially with shopping, conversion rates on phones are lower and if you’ve tried to pay for something on a mobile lately maybe you think you know why, because it’s often terrible. But actually when we drill into patterns of behaviour in shopping we see people browsing on mobile during the day, earlier on their phones, and then later converting on their tablets, or on desktop.

So people say “mobile isn’t important, people don’t convert” but that depends what you mean by “convert”. Do they mean people don’t enter their credit card information at the same rate? Sure. But if they mean people don’t see things on their phone and decide to buy them – no.


I do think it’s possible for us to get a more complete picture of a mobile system and let it guide us down the mountain – a much better path than just following the skis. In fact, while beginner skiers look at the tips of their skis, the pros watch the back of your skis to see what’s really going on.

So here are some things you pros can be looking for when you’re trying to take a systems view of your mobile user:

  1. More extreme UX evaluation: Can people use your app with one hand whilst moving?
  2. Remove decisions: Consider the experience of decision making, not just information presentation. Every time you ask the user for information, they have to decide whether they want to give it to you.
  3. Design for affection: Users love their phones, and that relationship is stronger than their relationship with your app.
  4. Log early, log often: It’s your best bet for knowing what is going on, but recognize that it is only a partial story.
  5. Design for distraction: Allow users to resume easily, expect partial, intermittent, attention.
  6. To be human is to be social: Social doesn’t mean broadcasting, it means communicating with other humans.
  7. More complex systems require more complex testing: The later you leave it, the harder this gets.
  8. Don’t hurt The Precious: Consider the experience in extreme conditions.
  9. Embrace a multi-device world: Make transitions smooth.

One reply on “Mobile is a Systems Problem”

Comments are closed.