Chapter 10. Software Above the Level of a Single Device: The Implications
The following document is adapted from the keynote address by Tim OâReilly, Software Above the Level of a Single Device: The Implications, given at the Solid 2014 conference. Follow along to learn how you can best take advantage of new technology known as the Internet of Things.
There is some pretty amazing stuff we are seeing here at the Solid 2014 Conference. I want to give you a little bit of perspective, though.
One of my favorite quotes is this one from Edwin Schlossberg. If youâve heard me talk, youâve heard it before: âThe skill of writing is to create a context in which other people can think.â
And that means that the way we talk about things is a kind of map. And like any map, it can either take us to the right place, or it can lead us astray. I want to talk a little bit about some of the words that we use in the current context and start thinking about what we might be missing.
I did a word cloud of the Internet of Things article on Wikipedia and as you can see, things is a really big word in the cloud, and not only that but devices and objects also appear a lot. And sure enough, there are some pretty amazing smart things. That word, smart, also shows up in the word cloud.
Multiple Smart Things
Out front in the demo hall of the building, you probably saw the Taktia smart router. Iâm a home craftsman, and I want one of these. Iâm not as good as Iâd like to be, and this thing would make me better. Itâs a human augmentation, and it is super awesome.
The Onewheel:Â I tried it yesterday, not very well, but it is also pretty awesome.
And of course the Makani airborne wind turbines use incredible smart control to generate power. This is an invention originally made by my son-in-law, Saul Griffith, so Iâm very proud of that.
Importance of Human Input
There is something missing in this word cloud, because we shouldnât just be talking about smart things. People and time are also concepts in there. But they are way, way too small. I think one of the things Iâd like to have as an outcome of this talk is that the people in this room go read that Wikipedia entry and make it better, because I really donât think it actually captures so many of the concepts that we need to be thinking about today.
I want to talk a little bit about these aspects of people and time that are too small in that graph.
When we think of the Internet of Smart Things, we tend to imagine that these thingsâthe Nest thermostat or the Google self-driving carâtheyâre sensor and data driven, they are autonomous, not really needing human input, and they are operating in real time. That is really our first blush imagination.
But in fact, one of the super interesting things about the Google self-driving car is its connection to the human-driven Google street view vehicle that did all of the initial mapping. What you see here is actually humans and machines operating together in a complex pattern in which data is captured through human activity, stored in the cloud, pre-processed, and then used by a robot.
And I think that pattern is a really, really important one to pay attention to as you design applications. Think about how data, generated by humans, is captured over time and is stored and acted upon later by a device. It is not all real time.
Implicit Versus Explicit Input
The human input is critical, and it may also be implicit rather than explicit. So, when you see the web page for the Nest learning thermostat, the whole pitch is that it learns implicitly from you, but it also learns explicitly:Â you set the temperature. (By the way, Nest, you really need to use energy-friendly temperatures in your advertisements!)
The Nest auto-detects when youâve been away for awhile and turns off the heat or air conditioning. Okay, thatâs sort of our image of the smart thing, but we have to remember that we are still giving that input, itâs just through a different kind of interface. We are so used to talking about how we give input through a keyboard. Then we are giving input through a mouse and now we are giving it through a touch screen. And now, we say âWow! When we donât show up in the room, that is user input to this device.â It is still user input!
Think of this as a user experience problem and not an autonomous device problem. And of course you have multiple input modalities, since you have a Nest app. And one of the things Iâve noticed is that once I set the schedule using this app, the device doesnât seem to learn any more. The interaction between the explicit, the implicit, and what modes of implicit really matter.
Types of Sensors
Think a little bit more broadly about the kinds of sensors that you have. When sensors first appear, we donât use them that often, and as a result they still seem magical. And then we take them for granted, until someone figures out a new way to make them more powerful. Some of the most important sensors that we have that are now entering this rediscovery phase are the camera and the microphone in our phones. Both Siri and Google Now are using the microphone as the key to very, very powerful new interfaces, and ones that are going to get better very rapidly. They are going to be a big part of the user interface mix for this Internet of Things.
The point is that sensors allow us to create new kinds of user interfaces. But you still need to remember that it is a user interface.
The System as a User Interface
I do have an example of a bad user interface. And that is this wonderful smart key for my Tesla. And it does wonderful things. I walk up to my car and the car automatically opens. I donât have to stick it in a tiny slot or turn it, or any of those things we were so used to in the mechanical age.
But itâs got one really bad flaw, which is all over the forums, which is you canât hang it on a key ring. Thatâs actually a stupid device, because it didnât think about how I might want to use it. And any time I leave my car in valet at the airport it comes back in a little plastic bag because they canât hang it on the hook. Sometimes they lose it. The entire system in which we operate is the user interface.
Thereâs this great sticker that was given to me by Liam Maxwell, who is the CTO of the British government.
Theyâve really focused hard on this idea:Â what is the user need? And, they made that the first of their design principles, to start with needs.
As we design this new world we need to think about user needs first.
A Network of Devices
Coming back to this Internet of Things word cloud, I want to move on and pick out one of the big words that we use, and that is Internet. And the Internet really matters. When you look at that smart device, itâs not a standalone device. Yes, itâs controlled by its smartphone, and yes, Nest now offers other devices connected to the network with the thermostat as its hub, and they talk to each other. In fact, all of these things are connected to satellites and data centers, and potentially to other similar devices or other smart devices.
And, by the way, even in that data center, you actually have smart networks of things. The cooling is actually controlled semi-autonomously. So there is this big network all over. Thereâs a network of data centers all over the world, so the Internet is clearly very involved. But letâs remember the original ground rules of the Internet.
The Robustness Principle
We used to call the Internet âThe Network of Networks,â because it was this magical thing that connected all of these incompatible networks. And interoperability was the focus. One of the things I worry about as we move into this new world is that we may have forgotten that interoperability. We have vendors who are trying to own it all, building systems that talk to their devices, but not to everyone elseâs. We have to think a lot about interoperability.
And we have to think about this wonderful principle that was put out by one of the saints of the early Internet, Jon Postel. (I wonder sometimes what would have happened if he hadnât died too young of a heart attack.) He wrote in the TCP RFC, âBe conservative in what you send, be liberal in what you accept from others.â Itâs become known as the Robustness Principle.Â
That is such an important principle, and I want those of you who are designing devices or systems to think about interoperability and to remember if we really want it to be an Internet, as opposed to a set of Intranets, you have to think about interoperability.
Software Above the Level of a Single Device
The next thing I want to cover briefly is the notion of software above the level of a single device. This is a phrase that I got from Dave Stutz, who wrote a fabulous letter when he left Microsoft back in 2003. It was his parting advice. And it ended with the line, âUseful software written above the level of the single device will command high margins for a long time to come."Â
This was very, very prescient, because a lot of focus was still on the PC and even on the network;Â it was very small thinking. And his notion of software above the level of a single device stuck in my head. Iâve used it for years. It was part of my core Web 2.0 principles. But I want to bring it out in the example of the Uber app.
System of Interaction
Letâs not get too taken up with new wearables. Uber is a smart things app. We forget that the phone is our most widely used smart thing. This thing that we carry in our pockets is filled with sensors, and itâs filled with capabilities.
But whatâs really interesting about Uber is, of course, that it doesnât work in isolation. Thereâs an app for the passenger, but thereâs also an app for the driver. And those two things are coordinating in real time using a kind of Internet operating system. There are various types of functions for communication, and for GPS to locate everybody, and to track progress. There is a payment and a rating system. All of these things are part of a âsystem of interaction.â Thatâs a wonderful phrase that was coined by someone at IBM.
What I want you to think about here is that once you have new UI capabilities and new augmentations of humans via sensors, you can actually start to think about things differently.
Thereâs a wonderful quote from Aaron Levie at Box that I saw on Twitter. He said, âUber is the lesson in building for how the world should work, instead of optimizing for how the world does work.â Thatâs our opportunity with this new technology that weâve been given.
How the World âShouldâ Work
We can start thinking about how the world should work, instead of optimizing how the world does work. So, back to the Makani wind turbine out there. The idea is that, instead of having a turbine sitting on the ground like weâve had since the Dutch windmills, you could actually put one in the sky using this incredible control technology. Now, they are still working on it, but the notion that this thing has to be able to fly autonomously for thousands of hours, and has to be able to take off and land by itself, and itâs generating power up high where there is always wind. Thatâs thinking about how the world should work, rather than how the world does work.
This notion is critical and the sensors let us do new things. A company that we are invested in at OâReilly Alpha Tech Ventures is Cover.Â
Because you are registered with the cloud, and because the application is able to tell where you are, you can walk into a restaurant and sit down. You are identified, fed, and when you are done with the meal you walk out and your credit card is charged. Itâs kind of magic. Because of sensors, we can rethink the way things work.
Another great example is Makespace: your closet in the cloud. This is an example of how sensors donât have to be complicated. These guys have realized that if you can actually take pictures of what you put in the boxes when you put stuff in storage, and you can identify whatâs in that box, you can put this stuff away in a warehouse where space is cheap. They can then bring you just the box you want. You donât have to go rooting through your storage closet, because you can effectively go into a robotic warehouse. Once again, they are rethinking a familiar process, because we now have new capabilities.
Think About Things That Seem Hard
Where I want to go with this is a final piece of advice, which is donât just try to re-create the experiences and the technologies that we have today. Try to think about new things, and in particular, think about things that seem hardâthings that might have seemed impossible before you had these new capabilities.
One of the things Iâm most excited about in this technology revolution is how it is giving us amazing new capabilities to affect the physical world. And the physical world, in the end, is where we all live, and where the biggest problems that we face as a society are to be found.
We have to feed the world. We have to generate energy. We have to deal with climate change. We have to deal with the problems of our society. And there are amazing new capabilities, and I want you to not just make cute, cool, and amazing consumer devices. I want you to think about hard problems that you can solve. Take this technology and make the world a better place.
Thank you.
Get Designing for the Internet of Things now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.