Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Solving the ''IoT Is Hard'' Problem

DZone's Guide to

Solving the ''IoT Is Hard'' Problem

Before you jump into making an IoT solution, here is some advice about what to expect and how to prioritize the work ahead.

· IoT Zone
Free Resource

Address your IoT software testing needs – improve quality, security, safety, and compliance across the development lifecycle.

IoT strategyHave you ever tried something that looked easy but turned out to be hard (or damn near impossible)? An IoT developer platform comes to mind.

Assembling an IoT solution is one of those things that appears deceptively simple. Connect a device to the Wi-Fi and send data to an Internet software application. Recent evidence has suggested that IoT is a lot harder than it looks. CBInsights has reported a slowdown in IoT investments. While this could be a coincidence, it could also indicate that IoT is surprisingly difficult to pull off.

What Makes an IoT Solution hard?

Model airplane kits come to mind when thinking about that question. A model airplane kit comes in all different sizes and consists of a kit full of plastic pieces, glue, paint, stickers, and instructions for assembly. The task is to separate all the plastic parts from the piece holding them all together then assemble them with glue and paint.

model airplane kit IoT

Easy, right? Not so fast. The trouble is, you have to be multi-talented. You need to be able to decipher and follow confusing instructions. You need the eyesight and patience to see, handle, and keep track of small parts. You need the artistic skill to be able to paint, glue, and apply stickers. Lastly, you had to have a place to work (i.e., a table that would be undisturbed for days).

Compare that with Lego. A Lego kit is similar in concept to a model airplane kit, except the only skills required are an ability to read instructions. The pieces are easy to tell apart, and there’s no glue or paint required. No surprise that Lego is more popular than ever, while model airplane kits are nearly extinct.

IoT is harder than Lego

What Does This Have to Do with IoT?

The average person might think of building an IoT solution in simple, Lego-like terms. It’s just a bunch of connected devices, right? In reality, the complexity of IoT is comparable to a model airplane kit. Like model airplanes, IoT requires mastery of many cross-functional disciplines to pull off successfully. Let’s investigate this challenge further.

The IoT Solution Idea

You will need an idea that is marketable to consumers or provides a return on investment to an enterprise. To develop a marketable idea, you need the business know-how to determine whether or not an idea will pay off. You will need marketing skills to establish a target market and promote your new IoT solution effectively. If you are working in an enterprise, you will need to understand how the IoT solution will improve your operations.

The IoT Device

Once you have an idea, you will need a device. Not just any device, but a “Smart and Connected” device. To pull this off, you will need the technical skills to write a spec and then evaluate commercially available devices to find one that meets your spec. You might even custom assemble a device based on commercially available components and then mass produce on your own. Or, in a rare case, you might custom develop and produce a device from scratch. Depending on the route you take, you will need a thorough understanding of the following topics:

Function Discipline
  • Requirements
  • Design
  • Engineering/Development
  • Prototyping
  • Manufacturing
  • Quality Assurance
  • Packaging
  • IC Chip/Board
  • Firmware
  • Control Systems
  • Sensors
  • Wireless Communication
  • Wireless Certification

IoT Software

Creating your device is only the beginning of your IoT journey. IoT won’t fly with a device alone. As glue and paint are critical to completing that model airplane, software is needed to complete an IoT solution. Software that resides on the device (a.k.a firmware) and software that operates remotely and communicates with the device are critical components of the IoT solution.

As with the device, you can subscribe to consumer off-the-shelf software, you can assemble components from existing platforms, or you can develop your own.

IoT software generally consists of a web or mobile application with a user interface. When an IoT device sends information to the application, the application's event-driven logic will instruct the device on how to react and the UI on what to display. Since the application logic and UI are designed specifically to enable the IoT solution, the make or buy direction you take must be evaluated against your business requirements.

  • Must the UI differentiate the product from competitors?

  • Must the UI be intuitive with little to no training requirement?

But a UI and application logic are only a small set of software capabilities needed to pull off an IoT software solution.

You will need software that can communicate with your devices. Software that will ingest data and process (apply application logic) data in real time with no delay. You will need a data storage solution and, potentially, the ability to enrich your solution with external data services (map information, for example). Finally, you will need to process all of the above with no limits to the volume, velocity, or variety of data being retrieved from your IoT devices.

Depending on the direction you take, software development requires a whole new set of skills:

Software Development Operational Support
  • Requirements
  • UX/UI Design and Development
  • Data Visualization
  • Software Development
  • Device Communication Protocols
  • Big Data Capabilities:
    data ingestion, data processing,
    data analytics, database storage
  • API Services
  • DevOps
  • Database Administration
  • Security
  • Cloud Infrastructure
  • Network Support
  • Technical Support

How Do You Make IoT Easier?

After reading about everything that makes IoT hard, you might feel overwhelmed or intimidated. The good news is that with the right steps and help, IoT can be made a lot easier.

Establish Clear Priorities

The first step is to establish priorities. What are you trying to accomplish with your idea from a business standpoint? Which attributes are a priority?

Establishing clear priorities helps with planning and managing resources. Focus on the areas of the device that it must do well and don’t waste time on perfecting something that won’t matter in the long run.

For example, if GPS accuracy is not critical, don’t spend time or energy getting it down to +/- 1 foot. If a simple UI that is branded to align to your company and idea is critical, then find an IoT software solution that will provide a custom, build-to-spec UI.

Figure Out the Details

Going in blind leads to surprises, and usually not the good kind. You need to determine your target time to market, development budget, and total cost of ownership over time. You also need to determine the initial quality expected, and whether or not trial and error is acceptable.

An old machine shop owner once told me, “I can deliver on time, at a low price, and with precision quality – pick two.”

IoT Project Triangle By Cosmocatalano – Own work, CC0

Clearly, you must prioritize fast, good, and cheap. You must also think about how you will protect your return on investment in an industrial use case or differentiate in a consumer use case.

You need to differentiate. How is your product different from those already on the market? What unique attributes set you apart?

Is ease of use important?  What if your solution is too complex and no one uses it?

Delegate

Even when you set priorities and know all the details, your business might simply not have the ability and expertise to do everything in-house. If your business is not equipped to perform certain tasks, there’s nothing wrong with asking for help. There are companies out there that specialize in helping you develop your device or the software behind your device. Often it is far more efficient to partner with an experienced external team than to struggle through everything internally and exhaust your budget in R&D.

Anything Is Possible

Simplify IoT. Creating your IoT device and supporting IoT software doesn’t have to be an overwhelming task. Just like any other project, anything is possible with the right strategy, management, partners, and tools.

Now make your IoT idea real. If you’ve already started, find the help that you need to reorganize and simplify. Despite the difficulty level, IoT is the future and projected to be well worth the investment.

Do you have any ideas on how to simplify IoT? We’d love to hear your opinions and ideas.

Accelerate the delivery of high-quality software in the connected IoT era through an integrated analysis, testing, security, and analytics platform. Parasoft's comprehensive portfolio of testing toolsautomates time-consuming testing tasks and provides management with intelligent analytics and reporting so they can focus on what matters.

Topics:
iot ,iot solutions ,iot development ,industrial internet

Published at DZone with permission of Ron Pascuzzi, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}