Blog


The Rise of Contextual Applications

We are in the inflection point of a major transformation that started several decades ago. For several decades, the focus was on computers – and for all this time, we, the users, have had to comply with technology: We have had to remember our passwords. Read the manuals. Learn how to use software. Upgrade, deal with conflicts, provide maintenance and much more.

But now, the focus is shifting: to us and the world around us. Computers are cheap enough and small enough that we can afford to optimize for people, not for computers. This leads to a very different world: diversity instead of standardization. We are all constantly reconfiguring the technology that surrounds us to mold it to our needs and wants – be it by adding a smart object, downloading a new app or configuring another. This leads to unique, individual environments, and is why we hate one-size-fits-all applications, while we love things optimized for specific needs instead.

The result is that we have dozens of apps and hardware devices that serve our many wants and needs – which is great, but means that we are getting swamped by technology. I invite you to check out how many apps you have on your phone… I counted mine this morning, and I have 173!

The same thing is happening in hardware: I continue to accumulate dozens of digital tchotchkes as time goes by. And each of these devices is claiming for a User Interface – your refrigerator, your alarm system, your sprinkler system, they all want an app. As all devices become connected devices, the answer cannot be having us manually connect and configure each app and each device. Amongst other things, because we’re not very good at that. Many of us have trouble configuring the software in our cars, our coffee makers and our answering machines already.

So – let’s rethink this, starting with a simple lamp as an example. Think of a traditional, “dumb” lamp. All of us know how to use it:

  1. To install it, you plug it in.
  2. To turn it on, you press the switch.
  3. To turn it off, you press the switch again.

Contrast this with what we call today a “smart” lamp. To use one of these:

  1. You plug it in
  2. You have to decide which mobile is going to control it and download the app.
  3. (Make sure the phone supports Bluetooth 4.0, otherwise go back to #2)
  4. Open the app – figure out the controls to pair the phone with the lamp.
  5. Tap the correct button to turn it on.
  6. To turn it off, pull out your phone, open the app.
  7. Tap the correct button to turn it off.

If you buy another lamp that happens to be from a different vendor, you have to start all over again… and we haven’t even begun thinking about connecting it to other things.

Clearly, this is not the future we want.

What would be a smarter lamp? In my mind, it would be something like this:

  1. You install it by simply plugging it in.
  2. A message appears on your phone saying it installed successfully and letting you know that it joined the other lamps in the family room.
  3. That’s it.

That evening, since it’s dark, the lamp turns on to greet you as you arrive – along with other devices from other vendors. After dinner, you sit down in front of the TV, and the lamp adjusts its own brightness for better viewing. When you turn off the TV, the lamp brightens up a bit again – not so much since it’s late. And then, as you leave the room to go to bed, the lamp turns itself off.

This would be nice, don’t you think?

Of course, there are a few technology implications:

  • Zero-touch discovery: the lamp needs to discover and be discovered by other devices automatically.
  • Zero-touch authentication: the lamp needs to recognize who to pair and connect with.
  • Multivendor integration: so things from multiple vendors work seamlessly together.

All of these are problems are being actively worked on, and things like HomeKit and many other emerging standards are will help. These, however, are not the most interesting problems. The most interesting problem, from my perspective, is the higher level, contextual thinking involved: The App in the Lamp.

  • How can it know that it’s my lamp, and not the neighbor’s?
  • How can it know that it is in the family room, and not the bedroom?
  • How can multiple lights in the family room band together as a group automatically?
  • How the lamp behave not just as an individual device, but as part of the broader concepts like ‘lighting’ and ‘safety’?
  • How can we really make it smarter so it adapts to my home and my lifestyle?

The problem is that smart is not easy.

We all have “smart” products that go awry. For example, up until a few months ago, Netflix didn’t allow the creation of different profiles, so the recommendations in my house were a very strange combination created by amalgamating the viewing tastes of me, my wife, my two teenage daughters and my 11-year old son!

Now, this becomes particularly annoying as apps jump into the physical world and control devices.

Look at this link (https://nest.com/blog/2012/03/08/a-thermostat-for-your-family/) to see the hoops and workarounds you have to go through to have your thermostat ‘learn correctly’ your habits.

The issue is that today, products jump to conclusions too easily: they go from sensing to acting in one step. In the rush to get products out to market, many vendors trivialize the complexities of the real world and create products that use this kind of very basic reasoning and most of the time, they don’t even let users participate actively in the decisions being made!

The answer is to decouple this sensing – acting loop, and insert a thinking component in the process. Just like in nature: we become smarter when our stimuli are not processed immediately by our reflexes, but evaluated by our pre-frontal cortex first.

This thinking component needs to ensure the app really understands the context it is in, as well as the appropriateness of taking an action, before taking it. We call apps that contain this thinking component “contextual applications”.

In my next post, I will describe the characteristics of contextual applications and present examples that illustrate these features.