Internet of Things (IoT) offers huge potential economic impact across sectors (especially in a post-COVID world). However, Gartner estimates that 75% of IoT projects today take twice as long as planned. The industry requires agile development and processes — but that’s easier said than done. How can organizations make it happen?
Read on to learn the high-level keys to Agile IoT, and register now for the upcoming webinar that will give you the deep dive.
Top Reasons That IoT Projects Fail
To understand how to make an IoT development project successful, we first have to understand the reasons that they often fail.
People and Workstreams Exist in Silos
IoT projects are multidisciplinary by necessity, involving software, firmware, and hardware design and development. All of those pieces must fit together seamlessly for a project to be successful. In many cases, however, the people working on those projects are siloed from one another. Without communication and coordination, development doesn’t happen in tandem, leading to a lot of undoing and redoing important work.
The Development Team Never Leaves the Sandbox
In this situation, an organization might have a deep domain experience in an area essential to an IoT project, like developing hardware components, but realize down the line that they don’t have the expertise to complete another critical piece, like connecting to the cloud. When it’s time to bring in a consulting team, it’s difficult for that team to stay agile because the work that was already done has dependencies that change the project’s shape later on.
The Real World is Messy
The real problems with IoT start to spring up when the rubber meets the road. An IoT product might encounter any number of scenarios in the real world that would be difficult to plan for in the absence of a crystal ball. That’s why frequent testing is necessary to understand how different environments will affect your product’s performance.
Assumptions Weren’t Validated Up-Front
The last reason we see for failure is a lack of upfront validation work. Work to identify the riskiest assumptions up-front — the pieces that would mean that this project shouldn’t happen at all if they were to be invalidated. It’s well worth doing a few experiments on these assumptions at the beginning before you start investing real dollars into the project.
Waterfall vs. Agile for IoT
All of the problems listed above can be traced back to one thing and, frankly, can be fixed by one thing: the development approach. Let’s explore the two primary project management strategies for IoT — Agile and Waterfall — and define each’s pros and cons.
Anatomy of an IoT Project Using Waterfall
From the Waterfall perspective, this is typically how an IoT project goes:
- Start with a huge requirements gathering and documentation phase
- Start designing the final solution
- Develop the designs created
- Once development is finished, start QA testing
- Deploy the solution to a pilot group
- Begin Maintenance
Pros of Waterfall for IoT Development:
Though you probably guessed from the blog title which approach we’re going to advocate for here, Waterfall isn’t all bad, and there are good takeaways from this approach:
- The end goal is defined early.
- The process is easy to understand.
- There is a predictable, reliable transfer of knowledge between steps.
Cons of Waterfall for IoT Development
However, the easy, logical layout of the Waterfall model hides a few critical weaknesses, including:
- Major changes require going back to the beginning.
- Working software is not produced until late in the IoT development process.
- Risk and uncertainty increase the longer you’re not able to get real devices in your users’ hands.
- Adjusting scope mid-stream is difficult and may require restarting.
One key observation about the Waterfall method is that very little learning occurs during the design, development, and testing phases. The process dictates that these stages involve many “heads-down” work with little communication, so you don’t experience learning and feedback on what you’ve created until you start deploying the solution. By that time, you’re treading water, fighting to survive, and hoping that you can fix bugs as they arise before the whole product tips over.
Anatomy of an Agile IoT Project
The agile IoT development process consists of multiple tight cycles where you design, build, test, and review your product continuously, focusing on getting products into the hands of testers and user groups early to understand what can be changed or improved.
Pros of Agile IoT Development
The main reasons that agile development is a great fit for IoT projects include:
- The agile process is built to adapt to change
- Working software/hardware gets produced early
- High emphasis on user testing means that you’re more likely to end up with a product that helps users reach the goals they need to accomplish
- Agile necessitates constant communication, breaking down silos between disciplines and between the product team and the client
- Scope adjustments can be made easily
Cons of Agile IoT Development
The cons of the agile methodology for IoT development include:
- Agile IoT development is incredibly difficult to do well.
- The process requires excellent communication skills.
- The end deliverable is less certain at first.
Making Agile Work for Your IoT Project
Using Agile for IoT development is not something that every organization is equipped to do well — we know from experience that it takes a while to understand how all of the disciplines within IoT work together and how to orchestrate best every element of a multidisciplinary project to create net-positive outcomes. Additionally, in leaving room for the unexpected, you have to relinquish a bit of your certainty about what the end product will look like. Organizations that go down the agile path for IoT need to trust their development team to deliver the best product overall.