Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Surviving the Internet of Things Revolution

10 Dec 2015 1  
Below are some key tips to consider when looking at the Internet of Things.

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

Download the paper to get a guide to assessing and deploying quality, productive, and robust software version management

We’re living in an increasingly connected world. Connected devices have been a hot topic within the technology industry for a number of years now and 2015 saw a surge in the development of the Internet of Things from the advancement of connected cars and buildings to wearable technologies and connected retail outlets.

But it doesn’t stop at consumer focused Internet of Things. You can see examples of the Internet of Things everywhere. The oil and gas industry is innovating with everything from connected drills to intelligent gas pumps. The automotive industry is using smart infrastructure for high-traffic throughput and improved safety. Electronics manufacturers are creating home appliances with sophisticated sensors and smart response algorithms.

No matter what industry you look at, it’s safe to say that the Internet of Things is a ‘game-changing’ technology, and is certainly not set to slow down as tech leaders race to stay ahead of the trend. Gartner released its annual Hype Cycle for Emerging Technologies[i], a chart that shows where technologies are in terms of "maturity and adoption."

Along with self-driving cars, the Internet of Things (IoT) is the top of the cycle. According to Gartner, we're at the "peak of inflated expectations" when it comes to the Internet of Things. That may well mean that there is more promise than reality at present and there’s the prospect of the dreaded “trough of disillusionment” but the “plateau of productivity” isn’t that far in the future. What does this mean for businesses? In our view it means that companies need to start embracing the opportunities of IoT across their business. This will involve integrating their hardware and software products across teams, vendors, geographies and industries in a much better way. They must re-architect their infrastructure, code and product development practices to accommodate the unprecedented connectivity and rapid time-to-market consumers have come to expect.

Below are some key tips to consider when looking at the Internet of Things.

Take a holistic software approach for IoT success

Manufacturers will need to look across the entire stack of hardware, firmware, communications and applications as a holistic set. Frequent decisions will need to be made on whether a feature, for example, should be built in silicon, in software running on the device or as a centralised, shared service (often hosted in the cloud) depending on performance, upgradability, security and other considerations. Those requirements apply to the entire lifecycle of connecting these otherwise disparate objects to each other: from software design, to development, testing and management.

Don’t forget about evolving your software development API

IoT devices won’t work in isolation; they are expected to interact with each other or a cloud-based service, so a lot of software will be required to address machine-to-machine connectivity and wireless interoperability. Over the expected lifetime of a device connectivity and APIs will almost certainly evolve, not least as security improves. Careful consideration has to be made to design interfaces that can handle change gracefully. Keep in mind, with IoT we are talking about tens of billions of connected devices, so it is critical that software is developed with API evolution in mind. Often these devices have little or no user interface (for example, the “smart light bulb”) so careful consideration for update processes needs to be part of the design phase.

Version management tools help to enable teams to work iteratively without conflicts, keep track of each change and potential impacts while enabling simultaneous deployment across multiple projects.

Enable high levels of cross team collaboration

Bringing the hardware and software teams together early in the lifecycle of product development will be critical to success for manufacturers. Software engineers, technical writers, artists, hardware designers and operations teams all must work together. They should put their assets in a repository that can handle any kind of file. Having a ‘single source of truth’ across the development environment, across all versions of all artifacts, past and current, ensures widespread visibility, better collaboration and therefore, the ability to react more effectively and rapidly.

Also, if assets are distributed in multiple locations and multiple stores, there is a risk of introducing new errors and failing to meet delivery deadlines due to lack of visibility. This means that having a unified repository which can hold all assets and support virtually unlimited scaling is key.

Employ Continuous Delivery techniques

Consumers are continually expecting new features and functionality in their devices and this is readily spilling into industry with the expectations across all business sectors for daily updated software versions becoming the norm. Manufacturers will be expected to produce software updates much more rapidly without sacrificing high standards of quality. it is unlikely that hardware components in IoT will be updated quite as frequently however many of the practices of Continuous Delivery are still relevant through to prototyping and simulation/verification processes so that updates are ‘releasable’ even if not always released.

A Continuous Delivery approach gives the ability to release better products to market faster by creating a process for ensuring that a product pipeline is in a constant state of readiness. From a development standpoint, continuous principles translate into these best practices:

  • Version everything – including requirements, designs, models, code, artwork, video, audio, configurations and binaries (in the case of digital products)
  • Automate processes for build, test and deploy via version control
  • Enable proactive collaboration – peer reviews, design reviews, and content reviews at each stage
  • Meticulously track history of every change to create accountability
  • Creation of a single source of truth for global visibility to all stakeholders

Remember security and regulatory implications

The IoT will bring regulatory issues into new areas, from personal fitness trackers to manufacturing systems. As a result, the traceability of any piece of hardware or software back to original requirements, including who implemented which change, where and why in an immutable history is critical. IoT introduces new challenges for security and compliance, which is an issue for everything from implantable medical devices to residential doors and windows. Efficient versioning and documentation will provide audit trails to satisfy regulatory requirements.

It’s all about agility

By giving development and operations teams the power to manage their environments in the same way as their applications, they can achieve ultimate flexibility, scalability and velocity. When you consider that all enterprises are moving in this direction, and that industries are increasingly connecting hardware and software to realise new value propositions, all enterprises must become hyper agile if they are to compete. Even companies not traditionally involved with device manufacture have to be open to the opportunities that IoT could bring (for example, insurance companies now frequently offer in-car systems to assess the driver’s style and, in turn, premiums).

IoT may currently be at the “peak of inflated expectations” and about to slip into a downturn while serious issues around security and business models are resolved but agile organisations, with the correct approaches, can be ready to exploit the opportunities ahead of their competition.

[i] Gartner's 2015 Hype Cycle for Emerging Technologies Identifies the Computing Innovations That Organizations Should Monitor: http://www.gartner.com/newsroom/id/3114217

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here