Although Agile is now widely used for many types of software development, many IoT projects continue to be created in traditional, and now, increasingly out of date ways. Therefore, many IoT projects are taking far longer than anticipated, or even failing altogether.
This is a situation that doesn't need to exist, said Steve Todd, a software engineer and fellow at Dell Technologies, who noted that there are two main drawbacks to conventional IoT development. "One of them," he explained, "is the lack of a robust, vendor-neutral continuous integration/continuous delivery pipeline that makes it easy to deploy applications close to the IoT data sources." Cloud developers, on the other hand, can take advantage of open frameworks, such as Cloud Foundry, that help them regularly deploy new apps and quickly update existing ones.
The second drawback is that IoT developers must struggle with identity management across multiple, perhaps thousands, of IoT devices. "The traditional cloud model would depend on a centralized directory like LDAP or Active Directory, but this centralized model does not scale for IoT use cases," Todd said.
Another challenge facing IoT project development teams is the need to tap into a wide range of multidisciplinary skills in areas such as device hardware, networking, security, cloud platforms, analytics, artificial intelligence and application user interfaces. "These skills have traditionally been very siloed in most organizations," observed Heena Purohit, senior product manager, Industry 4.0 solutions, for IBM Watson IoT. Yet due to the cooperative requirements of most IoT projects, development teams need to move together toward a common goal as they advance their project toward completion. "This is one of the biggest reasons traditional IoT development, such as waterfall, falls short for effective implementation," she said.
A fresh approach
Traditional development methodologies, like waterfall, generally don't require a working solution to be produced until the very end of the development cycle. This usually isn't the case with IoT. "An IoT project lasts from 18 to 24 months on average," noted Boris Shiklo, CTO of ScienceSoft, a software development company with IoT as one of its focus areas. "Following a traditional methodology ... is not cost-effective, as an IoT solution can start to produce value as early as in the initial stages of implementation, while more advanced functionality is still under development," he said.
Agile IoT development also provides other meaningful dividends. "Agile techniques involve rapid prototyping and iterations, which are a great fit for IoT projects," Purohit said. "They allow the teams to be flexible for situations such as times when complexity in design increases and the original hardware considerations can no longer support the software requirements, or vice versa."
Demolishing silos is a widely recognized Agile attribute. "Cross-functional teams make any rapid change cycles go more smoothly because both product and software teams are in sync," said Altaz Valani, director of research at Security Compass, a security technology services provider.
Agile development puts individuals and interactions ahead of processes and tools. "We believe that people should take ownership of their role and do whatever is needed," said Outi Väättänen, an IoT Agile coach at Ericsson. "Our development teams work together with our user experience teams to do user interface design and test the design with usability studies to get feedback from our customers before the implementation is started." Teams also collaborate with customers throughout the development phase to get fast and accurate feedback.
Agile methods can also lead to improved research and reference practices. "Previously, a huge amount of process documentation was needed for IoT development," Väättänen noted. "Now we have lightweight, easy to modify, 'wikified' documentation."
Continuous flow, continuous change, continuous improvement and continuous learning are the cornerstones of the Agile world, enabling developers to respond to change rapidly and effectively. "At Ericsson, we are currently changing our ways of working to be more flow optimized," Väättänen said. An important step is placing defined limits on the work, which saves time and cost. "It also requires that we learn to say no."
Without an Agile development approach, organizations will find themselves unable to extract value from IoT data quickly enough, Todd warned. "If a company has built an open framework that supports fast deployment of microservices, they will have a competitive edge," he said. "They will be able to push their new/updated microservices more frequently so that their business logic is living closer to their customers."
Agile's benefits continue to mount even after a project's formal completion. "Post-deployment product changes can be very expensive, so addressing the requirements sooner in an iterative manner helps ensure the right features are being deployed across software and system lifecycles," Valani said.
Projects implemented with Agile show a 64% success rate as compared to 49% for the projects implemented with traditional methodologies, Shiklo said. "Choosing Agile as a methodology for long-term complex IoT development means reduced time to market, lower cost of change, and faster ROI."
For more on IoT check out these InformationWeek articles.
Also, take a look at this Interop 19 session, scheduled for May 23.