Edited notes from a section of my talk at Oredev. I plan on expanding this topic into it’s own talk for 2015.
My talk “Distractedly Intimate” evolved out of a blog post I wrote over two years ago now, called “Building things for Humans”. I wrote it after I hit this crossroad, career-wise. Do I move to Zurich and work on data? Or do I move to Sydney and keep working on mobile.
I moved to Sydney, Australia. Kept working on mobile. Got to run my own little team, ship something I could be proud of.
When I thought about building things for humans, I started to think about what was different about working on mobile. What I loved about working on mobile. What makes it appealing to me – people love their phones! – is also a responsibility. As developers we screwed up with the experience of the computer. We created things that people fear, and that stress them out.
We have, I think, a social obligation to not screw up on mobile. So far we’re doing okay, but I don’t think that’s always intentional.
So I put this talk together, and submitted it, and it just kept being accepted, and also invited places. I wanted to start a conversation about love, give people some things to think about. And now I’ve given it to a lot of people, and I’m starting to feel guilty that I just send them away with a bunch more things to worry about, we all have enough to worry about, right? And maybe a newfound appreciation for hedgehogs (I don’t feel guilty about that. Hedgehogs are awesome).
Now, I want to take a few minutes to talk about where do we go from here. Because finally, I have something closer to an answer.
Mobile is a systems problem.
And this is the insight really, this is what I want you to walk out of here thinking about.
Mobile is a systems problem.
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.
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.
But mostly I think wearables are cool. But that’s not what I’m talking about here.
When you see mobile as a systems problem, you see the user as part of this system. They’re being Distractedly Intimate with their device. They’re effectively drunk. They’re obsessed with the Kardashians. They’re contemplating their future internet stardom as a pro hedgehog photographer.
OK, that’s pretty much me. Maybe your users are less weird. Probably not though.
The user is not alone with your app, the world is happening around them. There’s this great video from CapitalOne, which shows someone doing their online banking whilst being chased by a bull.
So when you want to find out what is going on, you might turn to your logs right? You can log the hell out of your app, please do that, but what you can’t do is log what is going on in the world around them.
Your logs are the best chance you have for figuring out what is going on. Just, y’know, don’t be creepy.
A Multi-Device World
Mobile is just part of a multi-device world. People move between devices as they go about their day.
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. Switching between is important.
And I still go to websites on twitter on my desktop, and click on links others have shared to 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.
How many of you sometimes feel so wrung out, that you just cannot make another decision? On the small screen, you have to work harder to be sure that you’ve seen the information that you need to.
But we really want to feel like we have all the options. Filtering becomes really hard – how do you simultaneously convince your user that they have seen all the information they need to, whilst preventing them from feeling overwhelmed? And how do you do that on a screen the size of your palm.
There’s a bunch of design and information organisation problems there that we got away with on desktop. We can’t get away with them on mobile.
We have to do better. Part of this comes back to logging, again, and really learning what is going on, and what is useful.
I worked on this thing, and they were logging four different front ends to four different backends. Which is… I have no words for this, right? Or not that I can use whilst being recorded. Not like a 1-1 mapping either. And it turns out, when your logging is that much of a mess, it’s not exactly abundant either. It gets that way because no-one cares about it, no-one prioritises it.
Anyway we had what I term a “dangerous amount of data”. Which is worse, in some ways, than no data. Because whilst there isn’t enough there to draw conclsion from, there is enough there for people to use to prop up their pet theories, and “yeah not sure we can actually conclude that, we don’t have enough data” sounds a lot less compelling than something a number of people would like to believe.
There’s a great quote from Douglas Crockford in Coders at work, and 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 Systems Themselves
Let’s talk about the systems themselves, because part of what this means is that 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 scale our infrastructure and processes with them.
For a long time on iOS, people barely wrote unit tests. And Android was pretty untestable too.
And I still find things. Like, I was using the G+ app a couple of months ago (I know, yet more 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 on the way here, 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?
Mobile is a Systems Problem
It’s bigger, and more interesting than ever. The future of mobile is the future of technology, which is especially interesting, because we see the developing world leading in mobile innovation and I wonder what will come of that.
You all, I’m sure, know the quote from Spiderman. “With great power, comes great responsibility.”
As mobile developers, this is ours. Let’s not screw it up this time.