The two most common concerns for companies getting into IoT are the cost of initial software development (or “integration”) and ongoing expenses after devices have been deployed. As key stakeholders ponder over the ever-present build vs buy dilemma, the ones who lean towards building often tend to significantly underestimate both.
So what goes into IoT product development and maintenance? What kind of budgets and timelines should you as an entrepreneur plan for if you choose to invest in building your own software rather than choosing one of the available platform solutions? We’ll try to break it down for you in this quick overview.
This article is specifically focused on IoT software; we can talk about hardware in another post. We can also spend a whole new article talking about the true hidden costs of integrating IoT into business operations. E.g., preparing your organization, getting all of the right departments to use the new tech, customer support needs you never thought about, etc. If you would like to hear about that, put it in the comments section.
Software Components and Expertise Required
Let’s take a look at a minimum set of software products you would need today to run a connected product, business or service.
Firmware is software that is uploaded and then runs on the hardware. It provides a low-level control for the device’s specific logic. Networks and connectivity are a part of firmware development and crucial for any IoT implementation.
Expertise required: embedded development: C, C++
When you work with electronics, firmware development is the key piece of software, and it is very beneficial to have your own engineering team working on it. Firmware development can be split into two parts: writing code that runs the business logic and controls the device’s electric circuit and code that manages the connectivity and data transfer to/from the cloud.
You would also need resources to test the firmware. Count in another QA specialist or trust your engineers. An important element to consider is integrating firmware over-the-air updates (OTA or FOTA) from the very beginning. It can mitigate a lot of issues but can also create a lot of trouble when executed poorly.
FOTA technology allows manufacturers to remotely install new software, release patches and bug fixes, or update features and services after the device has been deployed to the jobsite, home, or office. FOTA involves recurring costs, mostly on the Cloud side. Often this functionality is covered by IoT platforms.
As with any other software development, in a long-term perspective, expect fixing bugs, releasing new versions, dealing with memory leaks, providing technical support, etc. The major ongoing expenses you would face are human resources to perform all of these tasks.
Once your company collects enough data for analysis, another piece could become important: optimized ML models that can run on the device. For such development, you would need a data scientist familiar with embedded tech experience.
Cloud is any service made available to users on-demand via the Internet from a cloud computing provider’s servers. The IoT servers have different purposes, like administration, monitoring, data gathering, and analysis.
Expertise required: Backend development based on a choice of technology, big data processing, DevOps (maintenance and support).
You can develop your own server application or use services like AWS, Azure and build on top of that. If you decide to build your own backend, you would need highly skilled engineers with a deep understanding of the solution chosen and a support team to maintain the system once deployed.
Count in at least one DevOps engineer to keep an eye on the system when in production.
Recurring costs, apart from salaries, are cloud hosting, domain names rent, SSL/tls certificates purchase and updates, storage, and backups.
Depending on whether you choose to develop your own backend or stick to a ready-to-use solution, the initial investment range will vary. However, running a cloud server will always involve recurring costs and will only increase once your business scales up.
Once the device is connected, in today’s reality, you would need a user interface to interact with the device or service, configure it, control and monitor remotely, visualize processes, etc. It can be a touch control, a mobile app, a web app, a voice app (e.g., Amazon Alexa skill), etc.
Working with deployed connected products usually requires two different apps: customer-facing applications and applications for internal company use (device management, analytics, device health tracking, data traffic).
Expertise required: design thinking, product ideation, UX, visual design, mobile, and front-end development.
Application development ideally starts early when a company defines a business case, common use-cases, user experience, and product lifecycle in general. It’s an iterative process similar to any software development. Generally, it can be split into phases: requirements, UX (user experience) + visual design, web and mobile application development, delivery, support.
Note that a really high bar has been set for great user experience, design, and friendly apps during recent years.
Any software development is an ongoing process. While your product is live, you will be facing bug fixing, optimization issues, support questions, redesign requests, new features development, etc.
Data Management and Maintenance costs
In this term, we have to separate the hosting and maintenance costs. The hosting cost is more affordable in the long run and helps to eliminate multiple risks compared to the cost of having a team maintain a cloud on their own.
Timeline and Budget
I’ve been working in software development for over 20 years, and I don’t believe that any high-quality software can be developed in less than 9 months. Add a time buffer for bug fixing, requirements, and documentation writing, and you get a 12 month period – a more realistic timeframe. If you disagree, I would love to hear your thoughts in the comments.
Building IoT Software
As you can see, building your own IoT software from scratch is not a cheap endeavor, especially with a team based in the USA. If you have all of the right people on board and have a bulletproof ROI model for your IoT investment – go for it, build in-house. But if you are an OEM whose main focus remains on their core products and you care about optimizing costs and your time to market – then you are probably better off leveraging a solid IoT platform. Those folks have already spent those years (and in most cases, millions) building out the software you need and testing it out with real clients, in real-world conditions, with all of the priceless learnings that come with that.