As Internet of Things technology becomes more and more mainstream, the expectation for a product to be “connected” is as pressing as ever. Businesses that used to just be experts in building and selling of coffee machines / air fans / industrial boilers are now getting intimately familiar with the concepts of cloud access, data storage, software maintenance, and all of the corresponding costs associated with them. The lucky business owners who have already jumped through the hurdles of building a new connected device suddenly realize that the trickiest part is just starting.
Blynk works with hundreds of companies across many industries (from HVAC to Smart Home to Asset Tracking) helping them build connected products and services. 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 into 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.
Note that 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 truly hidden costs of integrating IoT into the business operations - eg. 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.
IoT 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 - a software that is uploaded and then runs on hardware. It provides a low-level control for the device's specific logic.
Expertise required: embedded development: C, C++
Networks and connectivity – it’s a part of firmware development, but I would move it into a separate domain, crucial for any IoT implementation.
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).
Applications - 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 types of 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.
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 electric circuit of the device and code that manages the connectivity and data transfer to/from the cloud.
An average annual salary of a firmware engineer (C++) in the US ranges from $90,000 to $145,000 per year according to Glassdoor. Ideally, you want an electrical engineer who is capable of writing firmware.
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.
In a long-term perspective, as with any other software development, 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.
Salary of Data Scientist:
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.
Backend Engineer salary:
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 range of initial investment will vary. However, running a cloud server will always involve recurring costs and will only increase once your business scales up.
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 during the recent years a really high bar has been set for great user experience, design, and friendly apps.
Salaries of UX, visual designer, iOS, Android, front end developers according to Glassdoor:
Front End Developer:
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.
No matter how you feel about it, there are recurring costs associated with any IoT integration. Period.
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, would love to hear your thoughts in the comments.
Below is a high-level budget estimate for a minimum team composition, but this will, of course, vary depending on the stage, geography and scale of your operations. Numbers below are specifically for US-based development.
Minimum Team Composition:
You can see the main development salaries cost below (accordingly to Glassdoor)
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.