Buy and Build: Using a Decision Matrix to Craft a Great IoT Product
By Brian Tol, CTO
Buy vs. Build. It’s one of the first decisions every software team runs into: Do we buy an off-the-shelf solution or build from scratch?
If you’ve participated in a few software projects, you know the question is a false dichotomy. In practice, every project of substance is a mix of buying and building.
The real question, then, is how much do we buy and how much do we build?
In this post, we’ll tackle that question and give a practical approach to coming to a thoughtful decision for IoT products.
Buy vs. Build: The Web
Before we get to IoT, it might be helpful to look at a technology most people are more familiar with: the web.
On the “buy” end of the spectrum are web building tools like Wix, Squarespace, and Shopify. These tools include prebuilt themes and features. Using their configuration tools, you customize the design for your site, add your content, and away you go. In these cases, you’re “buying” 95% of the solution, and “building” the last 5%.
On the other end of the spectrum, “building” on the web would entail creating a site from scratch using HTML, CSS and Javascript. You might even run it on your own web server. This was a common practice during the early days of the web, but few commercial sites take this approach today.
Between these two poles are a variety of tools:
- Content Management Systems, such as WordPress, are similar to Wix and Squarespace, but can be more deeply customized through plugins.
- Frameworks like Ruby on Rails, Django, and Spring Boot enable even more customization. These tools enable organizations to build web-based applications much more quickly than doing it from scratch, and enable organizations to focus on their unique value propositions. Most web software of substance uses frameworks.
The Spectrum of IoT Buy vs. Build Options
The world of IoT is less mature, but the spectrum looks similar:
- Build from Scratch – These days, it is extremely rare to see someone build their entire IoT product from scratch. We saw that 10 years ago, but it is essentially non existent today.
- On the other end of the spectrum we have “complete” platforms such as Tuya and Ayla for consumer products, and Cumulocity and MindSphere for industrial IoT solutions. These are the equivalents of Wix and Squarespace.
Between these options, there are a few emerging few trends:
- More purpose built IoT platforms, such as Blues Wireless, or Golioth. AWS is another vendor in this space, although with a very different offering.
- And finally, there are frameworks such as SpinDance’s CallBox.
SpinDance built CallBox because there we couldn’t find what we wanted: an end-to-end framework that spans firmware, cloud, and mobile, and included all the common, non-unique features you need from a production-grade IoT product. When building a production-grade IoT product, you’ll likely find yourself using some of the above tools.
Decision Matrices for Buy vs. Build Decisions
But how do you start making a decision about what to buy and what to build?
At SpinDance, our go-to tool for making complex choices are decision matrices. They’re a useful tool to systematically select criteria and choices.
In a nutshell, a decision matrix is a table to capture your criteria and choices:
- The rows of the matrix represent your decision making criteria. These items can be optionally weighted to ensure important criteria factor more heavily into your decision.
- The columns represent each choice you’re considering.
The key to using a decision matrix for a “buy and build” decision is clearly outlining the criteria for your common features and unique features.
- Common features are things you need to deliver your product, but aren’t unique to you. These offer little-to-no competitive advantage, but are more likely “table stakes” – you need them to be viable in the marketplace. Examples in the world of IoT include device provisioning and over-the-air updates. Ideally, these tend towards the “buy” side of the spectrum, with little-to-no “build” time.
- Unique features are the things you’ll need to build that are specific to your product, or that will give you a unique entry in the market. These things provide a competitive advantage, and where you need to invest more time and energy.
To build your matrix for an IoT buy/build, follow this recipe:
- Begin by identifying all the common features in your solution. This is typically the easier task, as you can pull ideas from sales literature and existing products.
- Next, identify and define the unique features of your solution. The definition is critical! You want to make sure your entire team understands the proposed scope.
- Assign a weight to each criteria. This is helpful because you’ll likely have a long list of features, and some are going to be more important than others. Encourage healthy debate among your team at this point.
- Identify your choices. This will include the possible vendors and frameworks you’ll use to build out your solution. Remember to define the combinations too: you might select multiple vendors, and/or frameworks, to create your product. For example, you might use an IoT platform like Golioth, a cellular provider like Hologram, and a payment gateway like Stripe. And you might mix in a framework like CallBox, too.
- For the common features, you might keep it simple, assigning yes or no to each choice. Or you might rank them as A, B, and C.
- For unique features, quantify how difficult it would be to build those features using each choice. You might use a simple low/medium/high scale, or break it down by a range of hours. These will likely be guesses, but hopefully educated guesses.
- Finally, multiply each criteria by your given weights, and add up the sums for each choice. This will give you a final ranking for each item.
At this point, you’ll have a solid first pass at your decision matrix. You might be able to rule out a few choices at this point and get yourself to a short-list of options.
From there, you’ll want to do some further due diligence, working to confirm the data you used for your unique features is validated. This is a great time to do a few proof of concepts.
The best decision matrices are living documents: keep them up to date as you learn more, and remember to keep a copy of each version, so you can review the history as needed.
Conclusion
Creating a great IoT experience will take time. Taking the time to think through what makes your product unique and identifying the options is critical to success. Building a decision matrix can bring clarity to the process, and get your team on the same page.