Intention Programming

Intention Programming

Internet of Things is out there. Smart homes exist around us. Connected devices become annoying.

Simple things like lights, doors or heaters have started behaving like an old and worthy valet which wants to help you in every aspect of your life, but is a little deaf and additionally doesn’t speak your mother tongue. When you want to go to a cinema, he buys tickets to a museum, when you want to surprise your family, he loudly proclaims that you are already at home. The same thing is with “smart” devices.

Let’s take a smart garage door. It opens every time you’re approaching home in your car. It’s very nice as long as you want to park in the garage. But what if you want to stop on your drive only? Or you have just returned for a sec to pick up forgotten breakfast? The garage gate will be patiently opening every time you come.

Okay, maybe it’s so clever that it will close itself after a while. But this doesn’t change the fact that gate was unnecessary opened for a period of time while someone could steal your precious, still dumb, hammers. You didn’t want to park in the garage so it shouldn’t open at all! It’s not a smart behavior. Such devices aren’t truly smart, they only react to events, but what we need is to make them really smart. We need something I call an “Intention Programming”.

The Intention Programming goes beyond regular “on event” programming. It adds a mystique layer responsible for guessing user’s intention. It makes “smart” devices smart.

Instead of logic like this:

IF (adam's car approaches)
THAN
Open the gate 

We can do something like this:

IF (adam's car approaches AND Adam wants to park in the garage)
THAN
Open the gate

Instead of this:

On(UserEnteredRoom)
{
  If (IsDarkOutside())
  {
    turnLightsOn();
  }
}

Write this:

On(UserEnteredRoom)
{
  If (IsDarkOutside())
  {
    If (DoesUserReallyNeedsALight())
    {
      turnLightsOn();
    }
  }
}

Whoever implements The Intention Programming first, will win the race of connected devices. Ready, Steady, Go!