The Challenges of Developing Connected Devices
Whether you're with a software company, a hardware company, or a bit of both, these tips will help you ship a successful connected device.
Join the DZone community and get the full member experience.Join For Free
Developing a connected device can be difficult. While the individual parts may be simple, like making circuit boards or developing a web application, the act of combining them into a single product has been a major challenge to many companies looking to enter this space. One of the biggest hurdles for creating a connected device is getting the development cycle correct. There are primarily three types of companies that are entering this space, each of which has their own special set of challenges.
The Software Company
This type of company comes in with the knowledge and team that it takes to build and maintain large software systems with ever-changing requirements. Not knowing everything up front does not scare this company, and they are often already using an agile development cycle. The main challenge for these companies will be working with the timelines required for hardware products. Hardware inherently takes time; a full design needs to be done, sent out for production, and assembled in order to test a single iteration. This process often takes weeks, so careful up-front planning is very valuable and can cut down the number of iterations that it takes to get things right.
Another problem this company often encountered is changing to meet the high cost of hardware deploys. With a web application, you ship by deploying a digital product to servers that are owned by your company. With hardware, you have to coordinate a ton of vendors in order to manufacture the product, build a team to handle the logistics and inventory of your device, and figure out how you are going to distribute your product. There are certifications that your product must go through (FCC, RoHS) and a lot of ancillary designs that need to be made, such as your product’s packaging. When updating anything you have to send your software out to thousands of devices that are in the field and owned by your customers, always cautious that a bad update can break the devices. While waterfall development can be a drag on fast software development, there are parts of it that must be used in order to ship a successful connected device.
The Hardware Company
This type of company comes in with the knowledge and team that it takes to ship a hardware product, which is no small feat. There are likely electrical and mechanical engineers on staff that are used to building devices where you ship it once and it is done. Their code bases are typically pretty small, and few people work on a single piece of software. The main challenge for these companies will be managing a larger, more complex code base. The typical waterfall-based approach does not work as well with large software systems where product requirements shift frequently. Instead of shipping code once, it will have to be maintained for a long time and require an infrastructure for pushing updates.
Another problem is that the culture of these companies can often hold them back. Restrictive IT policies like locking down company computers or restricting what technologies a team can use make it difficult for developers to do their jobs. Hardware companies are usually hyper-focused on where they can cut costs, whereas focusing on reducing development time is often more advantageous for software teams.
The Hybrid Startup
This company had an idea for a connected device and started their company from the ground up to build this product. Unlike the larger hardware and software companies listed above, this company can tailor their process from the beginning to work for a hybrid waterfall-agile approach that fits the entire product. The biggest challenge that this company will have is getting all of the necessary experience on a tight budget. Many startups can afford to be scrappy at the start and only have a few employees while gaining momentum; when your product is a connected device it is more difficult to build a small team with the range of skills needed to launch a successful product. Luckily, there are plenty of external resources available to these companies that can help. If a founding team is strong with hardware, they can use an agency in order to get their first software suite built. There are also services that they can leverage to help with the build and distribution chain. Any place where work can be offloaded in order to focus on value increases their chances of success. They can then start hiring out a team to save money once they have traction.
To summarize, a successful connected device development effort requires a healthy mix of waterfall and agile practices to succeed. Companies will have unique challenges based on what their team’s expertise and culture are like. Once development is smooth, there are many other challenges in creating connected devices; stay tuned for future posts that go over managing complexity and user experience in connected devices.
Published at DZone with permission of , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.