Could Agile IoT Development Gain Favor?
Agile methodologies are increasingly disrupting traditional software development in the enterprise IT and cloud environments. These methodologies can speed up testing and updating of Internet of Things (IoT) systems. But they also challenge the traditionally linear process of creating hardware devices for field deployment in large numbers.
Historically, software development followed a “waterfall” methodology involving multiple steps, each of which depends on the previous, so that errors or changes can prompt a reversion to a previous step or a restart. This approach often creates project delays, adds costs and leads to development backlogs.
Agile methodologies make it possible to distribute the work into chunks and assign them among collaborative, cross-functional teams. Each team can write and modify code in iterative cycles so that features can be added and modified without stalling the work of other teams. Because they’re generally developing for standardized hardware, these teams can focus on software-only tasks.
The inherently device-centric IoT environment typically relies on a sequential approach similar to waterfall development that has little tolerance for the “fail fast, fail often” mentality of Agile software methodologies. While “failed” software modules can be rewritten on the fly using Agile methodologies, hardware failures can stall progress and add cost, as entire devices or components have to be replaced or reengineered.
“The development of new IoT products does not lend easily for the iterative and incremental approach,” wrote Gartner research analysts Aapo Markkanen and Nick Jones in a report on applying Agile methods to build IoT products. “For their full functionality, the developed products depend on not only embedded software, but also highly application-specific hardware that cannot always be separated into viable increments.” The result, they asserted, is that “most of the product risk is concentrated on the end of the project” as prototypes seldom adequately demonstrate how products will perform in the field.
If Agile IoT development can be combined with a more modular and adaptive hardware development process, there’s potential to speed up and improve product deployment. Agile IoT development could enable product features to be added more easily during the development stage to reflect changing market realities. Additionally, the Agile approach can make it easier to implement software updates throughout the post-deployment life cycle.
Agile methodologies have been broadly adopted. KPMG indicated that all but 12% of respondents use Agile in some manner, and that number will decline to just 4% within three years. But many respondents reported they were still at early stages of adoption. Another survey found that few organizations have a high level of competency with Agile, and 52% indicated that their organizational culture was at odds with Agile values.
Ben Wald, co-founder and vice president of solutions implementation with the IoT development firm Very, acknowledged that implementing Agile for IoT hardware projects is more difficult than in software-only projects, but the methodologies and continuous delivery are well suited for the demands of connected devices. According to Wald, Agile eliminates silos, speeds up testing and makes it easier for development groups to adapt to change.