One of the first decisions that you and your team will need to make on the way to building your IoT platform is which technology to use as your starting point. There are many factors to evaluate and the best solution will vary depending on a range of factors, including: your budget, the size and skill level of your team, your available time frame and of course the type of business model that your IoT platform needs to support.
There is a wide range of options available, but they can all generally be grouped into four categories, all of which will lead to very different development roadmaps. Deciding which of these pathways will be the best fit for you is a great way to fast track the initial stages of your project. The four options are as follows:
- Open source
- Licensed software
- Build it yourself
Open source software can kickstart your project and greatly reduce costs and time to market by providing a working software package out of the box, but it also has some disadvantages. It is important that you look closely at whether or not this approach will work for you in the longer term.
Just like every other software package, good open source projects are regularly updated to maintain security and to add or improve features. This usually requires adding, removing or replacing various parts of code. If your project requires any significant customization then updates can become very time consuming and you can even hit dead ends where your modifications are not compatible with the new version.
Open source projects are often very well documented, but you should keep in mind that there are no requirements to meet standards like there is with commercial software. As time moves on you might find that older documentation is not updated or that new features are released without adequate documentation.
A good project will have an active community which will usually have enthusiastic contributors that are happy to help you solve problems, effectively giving you a free support channel. However, because they are free, they can also be unreliable and slow. You are also relying heavily on the community. Sometimes open source projects lose popularity and the communities fade.
A common scenario in an open source community is for there to be a difference in opinion about the direction the project should take. This often leads to a project breaking off into one or more new forks. If this happens then you will be forced to choose which fork you follow. This decision may not be clear cut and force you to compromise on how you deliver and manage your IoT platform.
Open source is generally a good fit for a developer focused team, because it relies on a deep understanding and close relationship with both the code and the community.
Software as a Service
Software as a Service offers a ready to go solution that will greatly reduce development time and may provide a viable low cost option in the shorter term.
The first thing to consider is the integration required to connect your devices to the SaaS system. It may be that the software has been built for a use case that fits your business perfectly, or you may find that there are gaps. How easy the integration phase of the set up will be will depend to a large degree on the quality and versatility of their API. You should also fully understand how the device software works and whether it will require hardware upgrades or modifications.
One of the biggest advantages of using a SaaS solution is that software updates are generally pretty seamless. Usually in the worst case you might need to make a few minor adjustments to your own code. The disadvantage of this is that the development roadmap is usually completely out of your control and focused on optimizing the SaaS providers business rather than yours.
Generally speaking SaaS companies provide great support for their software, but they do vary in response time. You should find out whether you will be waiting 24 hours for every ticket response or if you will have live chat. Another factor is whether or not this support extends to helping you with your integration.
At face value, SaaS looks very cheap. A large portion of the development costs are removed, as are the software maintenance and update costs and hosting is generally included. However the pricing models need to be investigated thoroughly to fully understand the costs as your business grows and the number of devices, users and API calls increases.
The low investment in the setup stage of a SaaS solution makes it perfect for a high risk or experimental project that might be discontinued. But for a larger, long term endeavour, the lack of flexibility and control makes it a dangerous option.
In many ways buying a software package to deliver your IoT platform sits somewhere between the open source and SaaS. An important difference between commercial software and open source is usually that the commercial software is likely to have a narrower focus which means fewer unwanted features and less code bloat. Generally speaking you will be more likely to find a perfect fit in a commercial software package.
A licensed software package will be regularly and reliably maintained. The update process will be similar to open source but more likely to come with documentation that is more specific to your needs.
Documentation and support
Commercial software is developed in a competitive environment, and as such there is much more pressure to meet standards and make things as easy as possible for your team to integrate and maintain your platform. As such, documentation should be very good, and this obviously needs to be checked before you make a decision.
You will usually find an efficient support ticketing system. In many cases there will also be a range of level agreements to choose from which may allow you to buy expert assistance and advice which can be a huge benefit as you build and maintain your platform.
One huge advantage of buying a commercial product is the predictability. Usually the sales process will allow you to gain a full understanding of the software including all the features and all the costs, before you buy. Like open source, it will greatly reduce your initial development costs, but unlike open source you will usually have a sales team and an on-boarding team to make sure that you get exactly what you need, and to help you plan out exactly where the commercial software sits in your technology stack.
Build it yourself
The final option available is to build the entire platform in house. This option is really only viable for very large companies that are developing a system that will scale to a level to warrant a completely proprietary solution. The investment would be significant and would likely require integrating a number of systems to achieve a complete solution.
|Development costs build||High||Low||Medium||Very High|
|Time to market||Medium to High||Low||Medium||Very High|
|Maintenance costs ongoing||High||Low||Low||High|
|Ability to add new Features||Good||Poor||Good||Good|
|Security||Unpredictable||Good (tested)||Good (tested)||Untested|
|Scalability||Good||Can be limited||Good||Good|
|Long term costs (total)||High||Medium||Medium||High|
A final word
The technology you select for your IoT platform will have a long term impact on the success of your business. It is not a decision to take lightly. macchina.io has recently published an ebook to give you an overview of what is involved in building an IoT platform. Get a head start on your platform build here: A Guide to Building an IoT Platform.