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 / younameit 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 we will not be touching the hardware piece here and instead focus on what we know best, which is software.
CEO at Blynk.io
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 2 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 inevitable and it is very beneficial to have your own engineering team working on it.
In a long-term perspective, as with any other software development, except fixing bugs, releasing new versions, dealing with memory leaks, technical support, etc. The major ongoing expenses you would face are salaries.
An average annual salary of the firmware engineer (C++) in the US ranges from $90,000 to $145,000 per year according to Glassdoor
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.
You can develop your own server side, or use services like AWS 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 subject and a support team to maintain the system once deployed. Backend engineer salary, DevOps.
Recurring costs, apart from salaries are:
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.
Applications development ideally starts early as it defines 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 and visual design, application development, delivery, support.
Note that during the last years a really high bar was set for a great user experience, design, and friendly apps.
Salaries of UX, visual designer, iOS, Android
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.”
IoT systems elaborate with hardware, software, cloud, sensors, devices, and the list goes on, so at first, you should bear in mind that all of your data and components should be maintained. You have got the initial cost estimates of an IoT project, but there is a recurring and essential hidden cost - maintenance. The cost of maintenance depends on your business requirements and the size of the IoT system.
The cost of maintenance depends on your business requirements and the size of the IoT system. Reliable IoT backup management, security, firmware updates, bugs handling, new features, and so on. The list of requirements is unique, and you have to identify the hidden costs of running and maintaining your IoT project beforehand.
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.
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.