The Faster The Better: Why Speed Matters in Building Smart Devices?

9188
Smart appliances in network. Concept for Internet of Things showing many different connection between device

The faster your time to market is, the faster you can serve your customers and bring in better revenues.

Curated by Vinay Prabhakar Minj 

Pic Credits – Max Pixel

Wikipedia defines a smart device as “an electronic device, generally connected to other devices or networks via different wireless protocols such as Bluetooth, Zigbee, NFC, Wi-Fi, LiFi, 3G, etc., that can operate to some extent interactively and autonomously.”

There is a perception that any connected device is a smart device. This is correct to an extent, but what really makes a device smart is when it gives feedback to whatever data the device has collected. For Example consider a Speedometer giving you  warning of over speeding based on the road one is driving (warn when driving in a city roads and not on an empty highway).

A traditional system consists of a simple controller, without connectivity and limited hardware. But these days most of the products are driven on software, where more than 50-60 percent of the product development happens on the software.

Smart devices are used in every walk of our life. These devices are entering several domains such as transportation (tracking and management of fleet using GPS solutions, sensors for roadway safety), healthcare (wearables that monitor human health, remote monitoring of patients), retail (inventory tracking and security), etc.

To have an advantage over our competitors, we need a proper strategy or principles to build smarter products faster

Faster for Smarter

Suppose you came up with the idea of a new product and started developing it. However, by the time the product is launched in the market, say after one-two years, there are already competitors all around. To avoid this situation, we have to build your smart products faster.

In a global marketplace, speed to market is a key factor in the success of a new product launch. The faster your time to market is, the faster you can serve your customers and bring in better revenues.

On the other side, the users expect an upgrade in the amenities he/she enjoys while experiencing new product features.

Moreover, the number of low-cost development centres around the world is rising. So, to have an advantage over our competitors, we need a proper strategy or principles to build smarter products faster.

Principles for building faster smarter devices

  1. Involving the technical team from the start: Before starting a new project, it is important to understand the scope of the technical activity by involving the technical team. The technical team then must identify the components and their dependencies.

Again, for identification of third-party libraries (TPLs), the technical team would be the right person. And any requirement of providing technical training can also be handled by the technical team.

  1. Be ready with the required infrastructure: This refers to the basic things like power supplies, servers, hardware calibration tools, test and measuring equipment, etc.

Having them from the start is very important for starting work on a connected product.

  1. Define work packages: One should ensure that the right product is being built. For this, it is necessary to interact with customers and note down their requirements. At the same time, the different modules such as software and hardware should be identified to understand their inter-dependencies so that development happens in parallel.

For timely delivery of products, it is a must that the additional changes be discussed and cautiously considered in the development stage. Whenever a customer comes up with a lot of change requests, then it is essential to start from the present requirement and not focus on the future. Then only a customer can gain a complete overview of the product functions.

When beginning a project, it is more important to focus more on the dynamism of the product rather than its features for better performance of the system

Design principles

When beginning a project, it is more important to focus more on the dynamism of the product rather than its features for better performance of the system.This system has to be documented through ways such as state machine based design or combinational diagrams at the start of the project.

Identifying the dynamism enhances product performance by knowing about the critical functional areas.

In addition, studying parallel use cases is an important aspect of system design. This can give an understanding of the system performance and the required processor load to make the development faster.

The thought process involved while programming must be changed. The focus should be less towards doing batch-level programming.

To avoid any problems that occur at the post-production level of product development, a mechanism should be present in the early design phase itself so that the failures can be recorded. And at the time of resolving those issues, solutions for them can be found quickly. The faster the issues are addressed, the better are the chances to strengthen your position in the market.

A connected device doesn’t simply refer to being connected with only one set of devices. There are multiple devices to be connected with. Therefore, it is necessary to have a certain level of interoperability built in the system as well.

Layered architecture 

The major concern for the smart device development would be in the area of wireless communication sequence or wireless modules. The layered architecture is divided into three parts; the first part consists of the hardware, the platform and the middleware application (where the task of developing smart devices come into for user interface).

The second part consists of the controller (such as ATmega processors) and the wireless modules. Whenever there is a disruption in communication, then the root of the problem lies in it. This requires a complete understanding of that problem and debugging it. For example, when you say that communication packets have been sent from the controller to the wireless module, but they haven’t reached their destination. Then the debugging process begins from here.

Next debugging would occur to determine whether the packets have reached the other end of the product (it could be the gateway or the mobile). And if it has reached that point, then you need to see if the receiving device has communicated back.

Connections and communication failures will be common problems when you have a connected smart device. So, it is important to have debugging in place while developing a smart device.

Basic network errors

  • Garbled, or corrupted packets because of which it has not reached the other end and hence no communication is performed.
  • Pairing timeout.

When you do debugging for a system, it is important to understand these basic errors, because every other mechanisms like your floor mechanism, pairing, authentication, authorization boils down to these basic errors in the network.

Validation of non-functional requirements

Functional requirements mostly include the features of the product and the non-functional requirements include the performance of the system, software size and certification. There should be a plan that has to be created well-ahead to work on these non-functional requirements from the beginning.

Connections and communication failures will be common problems when you have a connected smart device. So, it is important to have debugging in place while developing a smart device

Decision points

Timely decision plays a major role in building smart devices faster. Any pending decisions or dependencies can hinder the development process. So, having decisions made across teams saves a lot of effort and rework.

Team sync across location

When working on large projects, a problem of proper team synchronisation generally occurs. There are many synchronisation issues but it can be categorised into two major issues, which are: –

  • Test reporting: Whenever an issue is reported from a field, then the common response to that issue is that it is difficult to be reproduced in a separate environment. So, one must have the right set of tools/mechanisms to recreate that problem, even in a different setting and rectify that problem.
  • Software/Hardware-based: When you have multiple variants working across geographies, it should be ensured that there is a correct synchronisation between the various software. Otherwise you may end up losing a lot of time with multiple teams working on the same issue with multiple people following the same issue.

Make sure to have a proper project closure because at every end, there is the beginning of something great. Many a time, people don’t focus on this closure, but having it will enable you to make some resources free out of it. This will give more space and scope of improvement for the upcoming project.

About the author

This article is an extract from a speech presented by Somashekar S – Senior Architect, Robert Bosch and Shanmugha Sunder T, Project Manager, Robert Bosch – at the IOTSHOW.IN 2019.