This post is from the CollabNet VersionOne blog and has not been updated since the original publish date.
The Internet of Things (IoT) is Getting Agile
Why engineers and organizations are turning to agile methodologies to build the connected device
Every day, every hour, every minute, devices are becoming connected. The Internet of Things (or Iot) has gone from a buzzword floating through the echoes of Silicon Valley to a tangible and quickly advancing movement in the world of hardware. But, like a stone tossed into a pond, the effects of the Internet of Things are quickly rippling outward, causing immense changes to the environment surrounding it. And, as it turns out, the IoT is a rather big stone and it’s making a large splash. The IoT revolution is necessitating enormous changes to companies who want to play in this brave new world – and those companies are not few in number.
In fact, organizations across the globe are looking to leverage the power of the IoT revolution for their products. Indeed, companies are looking at their products both new and old, and how they add value in this new environment. The IoT is finding a comfortable spot in product roadmaps worldwide.
“software now accounts for over 50% of embedded system value and development costs.”
While there are many benefits to the IoT and the way it is changing the world of embedded systems, it is also shifting the focus of product development. In a recent survey of over 500 embedded system engineers, responders said that software now accounts for over 50% of embedded system value (as well as over 50% of development cost).
One of the most significant impacts of the IoT is that organizations are seeing a noted change in consumer behavior and expectations. For nearly all consumers, their first experience with a “connected device” started with their iPhone, Android or other smartphone. With this as their first experience with the connected world, users are demanding their other smart and/or connected devices deliver experiences and services similar to those of a smart phone. This means updates, upgrades and a slick and sleek user experience.
Not only do consumers expect “more,” but they are coming to expect “more, faster.” Rate of change or upgrade is increasing rapidly. Consumers have an expectation of frequent product releases and feature upgrades – and this expectation puts a pressure on both the fundamental product design and the support system behind it.
A complication of this change in consumer expectations is the unintentional increase in product and security flaws as the complexity in designs increase. This can happen due to many manual steps that are often skipped during the development process and low-priority items fall off the radar.
“Now with IoT, you can’t just ship it and forget it.”
In the past, the development process stopped with deployment. Meaning that once a product was released into the wild, that product was finished from a development standpoint. But now with IoT, you can’t just ship it and forget it. The growing expectation for post deployment content and updates mean that organizations need enhanced change and management solutions – and – they need to think about testing over a greater development cycle. All the traditional mindsets of bringing a product to market are changing, blending and extending.
At this point, you might be thinking “this sounds like a lot of problems, but no answers.” Fortunately, there are solutions to the challenges presented by the Internet of Things. One of the main ways organizations are trying to navigate the IoT is through the implementation of agile development methodologies. While serial and waterfall methods have been widely used for decades, those methodologies are crumbling under the enormous weight of the Internet of Things.
Agile methodologies – on the other hand – including continuous development and continuous delivery, are particularly well equipped for dealing with the demands of the connected device. With Agile, frequent updates are essentially a requirement – which satisfies both the end users’ desire for a constantly updated device as well as the developers need for a manageable development schedule.
Agile methods also support the use of application release automation. This is useful in the world of connected devices for several reasons. First off, it means that many tests that are required for security purposes in IoT can be automated, which leads to a reduced risk of security flaws in the end product. Furthermore, by automating updates, it frees up developers to create new features and functions for their products.
“Agile methods give Developers freedom to create new features and functions.”
Another issue engineers are seeing is that, in traditional development, development tends to happens in silos, which each team focusing of their specific function necessary to carry the project to completion. However, in the IoT world, consumer expectations are fueling the need for more and more cross-collaboration between project teams. The agile methodology truly focuses on collaboration between teams. By harnessing the power of newly available tools – mainly the idea of manipulating and debugging system virtually – teams are able to collaborate on products in never-before-seen ways. This leads to shorter lead times, faster overall development, and more product updates and releases.
This ability to simulate tests is critical to the performance of agile within the Internet of Things. That is because it is difficult to test a connected device within the context of the full system. But with the power of simulations, organizations are able to automate any function within the simulator and then test fully. They can scale and reconfigure as needed and then send the context of test failures to developers so they can solve the issues at hand.
As the demands of the Internet of Things continues to increase and consumers expectation follow suit, it is becoming more and more imperative for organizations to operate as efficiently as possible. Agile methodologies – and continuous delivery and development – are ideally positioned solutions to address these increasing challenges and difficulties. With the tools and best practices of agile, developers and embedded engineers alike are fully-equipped to jump headfirst into the dynamic world of the Internet of Things.