Speaker notes from a talk I gave earlier this year at Try!Swift, and 360iDev.
There was an article I read last September that profoundly affected my thinking. It was by Sarah Tavel, and is called “Times have changed — going after dollars vs minutes”. She breaks products down into minutes – which I think of as attention as a metric, and dollars – which are things people pay for, and compares two periods, noting that the earlier one (2008-2012) had mostly minutes raising Series A funding, and in the later one (2012-2015) it was a balance between minutes and dollars.
She writes from a VC perspective, but from an engineer, from a design perspective, these things are also entirely different problems. It reminded me of a conversation I had with a friend a long time ago – she was contemplating a job at Zynga (remember Zynga? I told you it was a long time ago) and our conversation was around how we would feel, whether we could actually do a job… where what we were building was a form of digital crack.
Addictive games. Digital crack. But what this article did was expand my view of what digital crack is. How many jobs in tech involve building it. Not just games, which have never appealed to me, but any kind of social media. A long time ago I worked on G+ and perhaps the problem there was that instead of digital crack it was more like a digital multivitamin.
Digital crack is about the thrill of unpredictable reward. It’s creating a place where hours pass – with user attention spans on mobile being short we’ve cut it to minutes pass. It’s about pulling people back in with notifications. It’s about a careful balance between sucking people in, but not being too annoying, because we’ll drive them away.
Digital crack is a pejorative phrase, but digital crack is not inherently bad. I love Twitter as much as the next person, and my current digital crack is actually Duolingo. I spent a lot of time this year in South America and I’m working on hablando más español.
And I realised I don’t want to build digital crack. And I’ve always known this, if I look at the things I’ve worked on – I built most of the first Google presentations experience on iOS, I ran a team that built a location based B2B app. Most recently I was working at Ride where we built something to help people car pool. My passion project for a long time has been an image processing app – note processing not sharing. I look at my career choices, and that brief lapse in judgement when it comes to G+ aside, I have chosen to build things that help humans achieve things. Tools rather than experiences.
But I think it’s hard because in this industry we laud the digital crack. Attention is the foundation of the business model. This analysis aside, we have the impression that it’s what the VCs are funding. It’s what we’re talking about. Like right now, when everyone has been talking about Pokemon Go. Yes, that second list was balanced, but I’d heard of more of the “minutes” apps.
But if we’re not building digital crack, if our metric is not minutes spent, if it’s actual human effectiveness, what matters? What are we even doing?
Make Complex Processes Simple
Show and Hide
This is my passion project, it’s called Show & Hide. So like I said, it’s an image processing app but what does that mean vs something like Instagram, which is an app that filters images and a platform for sharing them? A process means that we analyse the image and change it based on that analysis. So what Show & Hide does, is it analyses the dominant color of an image and then makes two partially coloured images based on that. The first one showing the dominant color, the second hiding it. The idea is, that it creates those postcard images – you know like the ones of London, the bus is red and the background is black and white, but you don’t need, you know, actual artistic talent.
Anyway, an image is just an array of colours, which we might think of as a grid of numbers. And a filter is just another grid of numbers, so to apply a filter all we need is a little Matrix multiplication. Not only is this a solved problem, it’s one that is done for us by the platform.
But processing an image is not a solved problem, and it’s vastly different based on what we are processing that image for. So my first functional go at this on iOS scaled down the image a lot and took ~10 seconds to run. But the version that shipped, you move the slider and the image changes in real time, and on iOS at least, that’s pretty much the full-sized image.
On a practical level, what did I do? I optimised the hell out of it and wrote it all in C.
On a user-experience level, what did I do? I made the distinction between a process and a filter invisible. It’s a process, but it feels like a filter, which is what users are used to – and what they expect.
When I think about location, I think about Harry Potter and the Marauder’s Map map. Harry is invisible, but he still shows up on the map. This is often when he is being most effective. He – or pretty often Hermione (we all know she does most of the work) – are doing stuff that they can only do when they are invisible.
It’s often clear as developers how location will help us, but if we’re not careful we are too visible. Either by draining the battery, or just being annoying.
I worked on this B2B app called Coordinate. It was an app for tracking your mobile workforce, like they would have jobs and you could route them to nearby jobs.
We needed to do continual background location updates with varying levels of accuracy. For high location accuracy we needed 8 hours and like, ~15m 5minute data.
We came in to do this on iOS when it had already been done on Android, and so people didn’t really understand how different it was. But the iOS location API wasn’t designed to work that way. When we just turned it on with that level of accuracy, the battery burnt down in an hour, especially if you were say, riding a motorbike on the highway.
We weren’t exactly invisible there.
So we figured out thresholds for turning the GPS on and off, tried to be smart about when we would send a location and when we wouldn’t, cached locations, and eventually when caching wasn’t enough – if say, you were on an island with poor cell service, taking pictures of adorable koalas – implemented offline.
Eventually we got to ~12 hours of battery life on high, and for low accuracy our battery usage was barely noticeable. We were actually doing better than the Android app.
We had become invisible.
This is my friend Dan. He’s taking selfies with an owl in Tokyo.
Dan made this game called Robot Turtles with his kids, it was the most backed boardgame on Kickstarter. As part of doing this, he acquired a 10,000 USD laser CNC machine that had to be delivered on a forklift truck.
Here’s the CNC machine, with some children for scale. And on the right are the custom pieces, and a key. Pretty cool, right?
Anyway, Dan’s now CEO of this startup called Glowforge. They make a desktop laser cutter – they call it a 3D laser printer. It’s pretty amazing. Pre-sale right now and shipping later this year. Full disclosure: I’m an advisor, and one of the many benefits of that is that when I go to Seattle they let me play with it.
Here’s some stuff I made on it. It’s really cool, you see the bed, and you move your design over it, and then you press go. So first – because I’m such a programmer – I made a hello world. I printed out a logo for my then-boss. More ambitiously, these are the pieces for a Technically Speaking keychain, and the necklace is the Show & Hide logo, engraved and cut away.
I also made this thing. So this is a picture of my shadow, which I took in Venice. Then Tony and I turned it into a cut, and printed it on clear acrylic. Now when I hold it up to the light, and shine a light on it, I can project my shadow all over again.
I’m not really a physically creative person, so this whole experience was pretty revelatory for me. I was so intimidated at first, but then I discovered that it’s super easy! And super fun!
So you might think the achievement here is getting it on a desktop – no more need for a forklift truck on delivery. And that’s true.
Or maybe that it’s now less than half as expensive. That’s pretty cool too.
But from a software – user experience – perspective – here’s something I think is really, really awesome. Because that old laser printer? Not only is it large, and expensive, and terrifying, to make it cut in the right place requires the user to position the material very exactly.
But Glowforge users won’t need to do that. Probably many of them will never know that’s how it used to be. The challenges of positioning have disappeared. It’s all done using image recognition.
Show Decisions not Data
What Should I Wear?
Weather is the canonical example of this, because how many of us have ever even seen a meteorological report? Well now we have. But with weather we care about the the conclusion – what are we going to wear? What is a good day for that hike?
And so we look at something like this which gives us the conclusion, not the data it’s based on.
When Should I Leave?
Another example is traffic. I have a smart watch, and it tells me when I need to leave. It’s not super accurate, and often it tells me when I’m already on my way, but it’s getting there.
The interim step to getting there was this traffic view – notice the subtle color coding on the map about the severity of the traffic. A really subtle visualization of a lot of data.
What Should I Do?
The first two of these are kinda boring, and predictable – stuff that we’ve all known was coming for a while. But what should I do is an interesting one. This is the problem with FourSquare. They are evaluated like they are building Digital Crack because it’s considered to be a social network, but they are actually trying to drive behavior – dollars in the real world. If I use FourSquare, and I take 5 friends with me, that’s not tracked on the app but it’s a change of behavior way beyond the metrics we see in usage. I found my favourite tea place in Medellin on Foursquare, and now I go there several times a week. That’s a significant behavior change.
FourSquare tries to help me make decisions. It tells me where people go after the art gallery. It tells me where people go who like the things I like. It’s the app that I use that comes closest to making decisions for me. My usage doesn’t demonstrate addiction – it’s not digital crack – it does drives dollars in the real world.
The UI has always been a compromise. Programmers thought the terminal was fine. Humans wanted other humans. The UI was this thing in the middle. It was a hack that pleased no-one because humans found it so foreign and programmers have generally despised building it. So now we see the rise of Slack as a platform, the increasing popularity of chat based interaction – the idea that no UI is the new UI.
Go Where People Are
This is why I find bots and integration interesting, because they come to where you are and don’t ask you to add another (digital) place that you “visit”. The interaction comes to you. the behavior change seems minimal.
I think this relates to bots being so effective at causing significant behavior change. Who uses Slack? Who has the bot that corrects you when you say “guys”? We had that at Ride, and I saw it changing people’s behavior. They don’t have to seek out this awareness of language, and how it matters, it comes to them. Now most of us have left, we have a new Slack, and we haven’t set up the bot – but I don’t see anyone using “guys”.
This is about meeting the user where they are. And when we think about language here we think about error messages. The worst culprit of inflicting tech speak on humans, we give people this terrifying experience – something has gone wrong! Did they do something to cause it? And we communicate this with an incomprehensible message. More subtly we fall down on this when we focus on what the user does, rather than what they achieve. Kathy Sierra talks about this. She talks about making users badass and isn’t that… well that’s what I want to be doing.
But really what it means is you don’t ask them to learn anything, because you are communicating with them in a way that they already know. This is not just human language, but conceptual language – it’s dragging an image over your material and pressing “print”, rather than trying to figure out an opaque calibration system.
Human communication is only around 7% vocal content. Some of it is vocal elements, but 55% is non-verbal. Body language, tone, these are all clues to our real meaning.
Digitally we have the interaction, but we also, especially on mobile, have things that we might know, like location, calendar, social media. These are all signals of what is going on with a user, and when we can use them it’s transformative of the UX. When a product appears to learn and get better based on this data, then it requires less and less interaction because the conclusions from that data have got better and better.
Here’s the thing…
User experience has been the bridge we built between the way that machines operate and how humans do. It is how we have allowed humans to create and manipulate data digitally.
But really it’s been a hack. This is why movies had talking, humanoid, robots. Because that was the dream – a computer wasn’t a computer, it was a cool sidekick with a super-power – machine intelligence and computational power.
We’re not there yet. Anything that begins to look like the dream has typically been so much of a disappointment that it just makes it seem that we are further away. But putting together this talk encouraged me that we are making progress on this – it’s just different, and so gradual, that until I took the time to think about it, I didn’t fully realize.
Because the experiences we’ve seen in the movies have always been so ostentatious and shiney.
But real progress, it turns out, sometimes looks like nothing at all.