If you’ve been following our IoT Basics series, you know exactly what IoT devices are. You understand how to manage those devices. You even know how to design, build, and deploy an IoT product. All that’s left is putting it all together—and that starts with a strategic framework for IoT development. In other words, you need to know what to do, and in what order, to take your IoT project from the drawing board to the market. Here’s how the Agile method works as a framework for product development.
Most software development strategies derive from two main methodologies: Waterfall and Agile. The Waterfall model organizes the development process into sequential steps with distinct phases and dependencies. First, you gather requirements. Then you make a plan. You design, develop, test, and finally deploy a product, one after the other, without deviation.
This tidy system works well for developing hardware, which is static. You can’t change plastic once it’s out of the extruder, after all.
But Waterfall development doesn’t support the sort of iterative growth that leads to great IoT products. For that, you need to turn to the Agile method, which provides a proven framework for building IoT systems.
Understanding the Agile Method for IoT Products
Reacting against the rigidity of Waterfall Development, a group of innovative software developers published the Agile Manifesto in 2001.
This formative document doesn’t give a lot of details. Instead, it provides a list of preferences for some elements of software development practices over others. Here’s the Agile Manifesto in its entirety (reprinted by permission from the Agile Alliance):
|The Agile Manifesto|
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
– Individuals and interactions over processes and tools
– Working software over comprehensive documentation
– Customer collaboration over contract negotiation
– Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
So how does this simple list of priorities translate into a highly effective IoT product development process?
- The preference for individuals and interactions leads to a collaborative process, in which cross-functional teams and decision-makers work together, not in silos.
- The preference for working software divides development into iterative loops, not just one rigid step-by-step process. Each development cycle ends with a minimum viable product or MVP. Iterating on these MVPs leads to progressively better products with every cycle—up to and after you scale production.
- The preference for customer collaboration describes the ideal relationship between you and your IoT development partner. If your IoT developer follows the Agile model, they’ll prioritize strategic problem-solving, radical honesty, and effective teamwork.
- The preference for responding to change requires developers to constantly evaluate and improve your product. They accomplish this through rigorous de-risking, prototyping, and testing—including regular customer feedback post-launch.
There’s a fair amount of variety in how organizations implement the Agile method, but typically each stage of the Agile IoT development process lasts between one and four weeks. During this time, team members complete a clear set of tasks and communicate during daily stand-up meetings—as well as an in-depth planning session at the start of each period. These stages are called sprints.
Most IoT development sprints consist of nine key steps:
- Pre-planning: Validate assumptions and identify constraints (such as budgets, staffing levels, and time limits).
- Planning: Create a product development roadmap (see details below).
- Hardware de-risking: Make sure your hardware can perform all mission-critical tasks.
- Imitative prototyping: Using development boards and basic software, create rough prototypes that can imitate the performance you expect out of the completed product.
- Full prototyping: Create a prototype that can send and receive data in real-world scenarios.
- In-house production: Use custom-printed circuit boards and 3D-printed components to create a near-complete version of your product for initial testing.
- Beta-testing manufacturing run: For your first manufacturing run, produce around 100 devices. Distribute these to beta-testers and fix problems as they arise.
- Early-adoption manufacturing run: When you’re happy with your first 100 devices, scale up to producing around 1,000 products for early adopters. Continue to collect feedback and make improvements.
- Full production: At this point, you’re ready to take your product to market with your first full manufacturing run.
At the end of each of the production steps, you develop an MVP that proves the value of the project. As you begin to add features, however, the product evolves out of MVP territory to reach maturity. Then you proceed to increasingly larger manufacturing runs, continuing to iterate and improve between each of them.
However, these development sprints are only effective if you’ve defined clear goals for your project from the very start. That’s why we recommend beginning your partnership with IoT developers through a technical design sprint.
Technical Design Sprints: Beginning the IoT Development Process
Technical Design Sprints help IoT developers understand your project deeply. They develop clarity about your business needs, end-user behavior, and the proposed value of your IoT product. With these factors clearly defined, IoT developers can create an overall plan for the development sprints that will follow.
The end result of a Technical Design Sprint is a phased product roadmap, a sort of guide to the progressive MVPs that start delivering value as quickly as possible. After this phase of the development process, you’ll have several concrete sets of plans. These include:
1. The Product Development Roadmap
Your roadmap describes the solution you’re trying to build, with an eye toward proving your business case. Elements of an IoT product roadmap include:
- The customer pain points your product will solve
- The identity and projected behavior of users, including both standard end users and system admins
- The ideal customer journey for product users
- The features you’d like to offer, prioritized by importance
- A clear, honest description of project risks, constraints, and potential bottlenecks
A completed roadmap will provide very specific, technical, and organized goals for each of the tasks you’d like your product to support. It defines the progressive releases you’ll create in each development sprint. In other words, it provides a clear plan for your entire development process—but to create the most successful roadmap, you also need to define the rest of the items on this list.
2. Technical Engineering Details
Here, your IoT development partner will define the system architecture, integrations, and technology stacks for the system you’ll build together. They’ll help you define key technical requirements including security, scalability, and connectivity needs, too.
3. Workflow Maps
End users may interact with your product through a few interfaces, from cloud platforms to device screens. Workflow maps visually project how these interfaces will work. They show options, outcomes, errors, and error-resolution pathways in easy-to-follow workflow charts.
These workflow maps will guide software developers as they build these interfaces—and improve on them with each development cycle.
4. Use Case Examples
The better you understand how users will interact with your solution, the more value you can bring to your project. Developers can help you define likely use cases, including the user’s motivation, how features help them reach the goal, and the desired outcome for each example. These use cases are called job stories.
Once you and your partners define as many job stories as possible, you can prioritize them by the value they deliver. This prioritized list tells you which features to build first—and can help estimate the risk and cost associated with building each product feature.
The Role of Development Partners in IoT Products
A Technical Design Sprint will produce all of these organizational items, guiding each iterative development sprint toward quick, successful market releases. However, as this four-part series on IoT Basics might suggest, it’s not always easy to develop an IoT product on your own.
Luckily, IoT development firms can help. (Just make sure you choose an IoT developer that follows the Agile method described above.)
Sure, we’ve just spent four articles and thousands of words discussing the basics of IoT development. But if you’re ready to build the next great IoT product, our advice is simple: Don’t go it alone. Partner with IoT development experts right from the start.