Can you imagine waterfall practices in Internet of Things (IoT) development? We can’t. Not for IoT’s vast, rapidly expanding, heterogeneous, and highly interconnected universe.
Bringing modern software development to IoT is a lot like bringing mobile phones to countries that have no history of wired telephony. Many of these countries decide to simply forego the massive costs and delays of installing a wired telephony infrastructure and instead skip ahead to modern mobile phones. They would rather enjoy right away all the mobile features that wired telephones do not offer. They also realize they do not have to evolve naturally through a “wired phone period” just because other countries did.
Similar to a newly developing country, IoT is a newly emerging environment for software development. Just because established IT environments, such as data centers, PC desktops, and local area networks went through a waterfall period before adopting agile—that doesn’t mean IoT must also. IoT development can skip waterfall completely and immediately gain agile’s many benefits. And just like mobile phones have made the world much more connected—without the costs and delays of an earlier era in technology—agile IoT development will do the same.
Here are five big reasons that agile is right for IoT:
Demand for IoT apps is exploding. Agile is an iterative development process where big projects are broken up into smaller pieces, called sprints, where small teams produce deliverable software objects of demonstrable value to stakeholders every 2–4 weeks. The result is much faster production of working software with far less rework than is possible with waterfall. That speed advantage is critical to satisfying the flood of new IoT use cases that appear every day—everything from power grids, to supply chains, to predictive maintenance, to autonomous vehicles, to mass customization, and much much more.
IoT is highly heterogeneous. As its long list of use cases shows, IoT software serves lots of purposes and so requires lots of different skills to build. That’s why initiatives like Fast Digital 4 Discrete Industries exist. This SAP-Capgemini collaboration helps companies build end-to-end value chains comprised of the smart connected processes and products that discrete manufacturing entails. IoT leaders realize no single development team can possess all the skills required to succeed. That’s also why Agile is based on small teams, each populated with different skillsets, working semi-independently but collaboratively.
IoT apps have never been written before. Most software development is about building on legacy frameworks. But IoT developers need help, like Capgemini’s Proofecy, building something the first time. Proofecy is a real-time analytics solution for predictive maintenance, asset tracking and other IoT apps. Built on SAP HANA, Proofecy integrates SAP functions like finance, purchasing, and invoicing with embedded logic. It offers a foundation for rapid IoT innovation that is less about “let’s repave legacy cow paths” and more about “let’s see what works as we go,” which is how agile works too.
IoT architectures are highly granular. Trends like Services Oriented Architecture (SOA) and microservices will be big in IoT. These are better suited to agile more so than the monolithic architectures that are a trademark of waterfall. The reason that granular software works better in IoT is because the work done in IoT environments tends to be highly distributed. Different tasks are better suited for different hardware or are required to run on different hardware or in different locations. As in the Proofecy example, some objects might run on a smart sensor, some on a local server, and some in the cloud. Each of these objects lends itself to its own agile sprint and its own agile team, one likely with special skills and domain knowledge—rather that a “one-size-fits-all” development organization better suited to building a monolith.
Heavy reuse is required. One way IoT development can meet the challenge of high demand is by reusing digital assets rather than reinventing them. A good example is Capgemini’s IoT in a Box. This is a pre-integrated bundle that includes an IoT gateway, preconfigured dashboard, enterprise database, and modules with sensors and a GSM chip built-in. Setup takes less than an hour and then a user can begin to track temperature, humidity, geo-location, vibration and other parameters in applications like predictive maintenance and supply chain monitoring. Likewise, agile’s software objects also encourage reuse because they are smaller and more self-contained with fewer external dependencies than the monoliths favored in waterfall projects.
It is a good thing that IoT developers don’t have to experience the waterfall methodology for themselves before “growing” into agile (although many undoubtedly have experienced it). They can apply agile practices now. In fact, they will have to if they expect to meet the onslaught of new IoT use cases.
So, yes, agile will make our world more connected—by making IoT happen faster.