3. 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 absence of a crystal ball (and if you have one, please send it my way). That’s why frequent testing is necessary to understand how different environments will affect your product’s performance.
4. Assumptions Weren’t Validated Up-Front
The last reason we see for failure is a lack of upfront validation work. This is an area that we take seriously when we are starting a project with a client at Very. We work to identify the riskiest assumptions up-front — the pieces that, if they were to be invalidated, would mean that this project shouldn't happen at all. In our experience, 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 the pros and cons of each.
Anatomy of an IoT Project Using Waterfall
From the Waterfall perspective, this is typically how an IoT project goes:
- You start with a huge requirements gathering and documentation phase.
- You start designing the final solution.
- You start developing the designs you created.
- Once development is finished, you start QA testing.
- You deploy the solution to a pilot group.
- Maintenance begins.
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 of our key observations about the Waterfall method is that during the design, development, and testing phases, very little learning occurs. The process dictates that these stages involve a lot of “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.
- The 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.
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 best orchestrate 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 be able to trust their development team to deliver the best product overall.
Making Agile Work for Your IoT Project
At Very, we believe that agile is the right choice for IoT projects. In part two of this blog, we’ll go over the 10 steps to a successful agile IoT project that we’ve developed through our years of experience. In the meantime, if you’d like to speak with us about what you’re working on, drop us a line today.