IoT is all about low-tech and simple APIs, because you don’t build software for IoT the same way you do for web apps, and here is why.
Last week, a smart lock company updated firmware that made hundreds of their own locks inoperable (more about it in the articles below). These are the kind of locks that you can open or not with an app, or via a text message. They are very useful, especially if you rent your apartment on Airbnb. You can give access to 3rd party with limited time and completely manage it remotely.
See also: How APIs could make your next car free
Until everything goes wrong because of bad software versioning. It reminds me of a talk about a seasoned software engineer that attended one of our conferences, explaining to millennial developers the way they do software is wrong in the sense that it is not made to last.
Thanks to the web, developers can push code anytime, and this fact makes us think in the short term. “Move fast and break things” as Mark Zuckerberg used to say at Facebook. We make a release Friday afternoon, and no problem, we will fix it Monday if something does not work. The web made things “not a big deal” about errors.
But it changed with more critical services like payments, and in the context of IoT, it will be even more important when you will have millions of devices dependant on your software. Will you have connectivity one a week or once a month?
You need old tech
This space engineer told us the story of embedded mission-critical software for Hubble that was designed to work for 30 years minimum without human interaction. That’s complete madness for today’s software development lifecycle.
But to have this kind of long-term reliability, you need to use old tech — old programming languages that have proven sustainability — and you need to use low tech — Low energy consumption, shorter treatment time, lower functionalities, fewer lines of code. You will not be able to fix things unless you deploy programmers in space.
So this story reminds us that yes, developing software and APIs for things is different in approach. We will need to think differently, for the longer terms and maybe spend more time thinking about how to do it, instead of trying and failing. This is counter-intuitive compared to the lean startup approach of “F*** it, ship it” but in a world where “software is eating the world,” we are talking about safety.
When the connected things are safety systems such as smoke detectors, or 2-ton vehicles like cars and pickup trucks, or medical systems, we need to be sure that they are always working, and that the software that is making them better and cheaper is not transforming them into a technical liability. With IoT, we are going back to the roots.
PS: You may be interested in our next conference in Zurich about Microservices, September 26th-27, 2017. You can check it out here.