Building the Internet of Things with Agile and DevOps
DevOps practices and agility will help smart organizations address the software challenges of IoT.
The Internet of Things means smart devices connecting every aspect of our lives, which creates a lot of challenges. And there’s more to IoT than hardware and connectivity. To run and connect all these machines, we need software. Lots of software. And we must be able to develop and update it quickly while making sure it’s performing securely and efficiently.
Many software development and IT operations teams already have access to at least some of the tools they will need in order to address these challenges. But let’s not get ahead of ourselves here. Before discussing how the software challenges of IoT can be addressed, we need to understand just how serious these challenges are.
Plumbing the Depths of IoT
When you read “Internet of Things” what do you think of? Smartphones, watches, fridges and cars are obvious. Maybe robots too. What about digital assistants? How about embedded microprocessors in your thermostat, sprinkler systems, front doorbell or garage door? Do you think of wearable computing and augmented reality?
It gets even stranger and more complex than that. What about smart concrete in the walls and foundations of your house? Smart concrete that monitors for stress fractures, weathering and weakening in the structure of the building. It exists. How about smart dust? Tiny little motes that float around, sensing and communicating. They exist.
So here’s the problem: how do you deploy code to millions of devices in people’s homes, offices, cars and beyond? How do you monitor these devices? What are the security implications? How do we design, develop and test all this stuff? Fortunately, the tech industry has been addressing these challenges, albeit at a comparatively small scale, for over a decade.
DevOps to the Rescue
The growth of DevOps is crucial here because it has led organizations to create the kind of automated systems that will be required for IoT software. Continuous delivery and continuous deployment at scale is only feasible through automation. Scripting or―better still―containerizing these processes with appropriate automated tests is the answer.
Mixing agile practices into DevOps accelerates things even further. Incremental builds with frequent releases of small batches of code makes for faster, safer development. Close customer contact to solicit feedback and usage analysis coupled with continuous improvement helps agile organizations respond quickly to emerging requirements.
Securing IoT the Agile Way
We have barely touched upon the most significant of the major concerns that organizations have about IoT: security. With all those connected devices out there in the wild, the attack surface is almost inconceivably huge. More than ever, the common development error of treating security as an afterthought just won’t cut it.
Luckily, DevOps and agile practitioners don’t think this way. Security is not siloed—it’s part of the development cycle, in the same way that product, quality and performance are. With this most significant of concerns addressed, it should be clear that organizations which use modern development practices are well set up to cope with the challenges of IoT.