The 4 Unique Design Challenges of IoT
It’s IoT Week at SitePoint! All week we’re publishing articles focused on the intersection of the internet and the physical world, so keep checking the IoT tag for the latest updates.
The Internet of Things offers significant potential for societies to improve the way they live and interact with each other.
Businesses can gather essential information to streamline their operations, predict major changes, and ensure they’re meeting customer expectations in real-time. Consumers benefit from being able to live intelligently rather than continuously focusing on mundane tasks.
Although the technology has numerous positive benefits, there are a few unique challenges developers need to tackle when they’re building out IoT systems.
Challenge 1: Battery Life is a Limitation
If you’ve been following the smartphone space, you’ve probably seen how each year it seems like there’s no limit when it comes to screen size. Take the rise of ‘phablets’ for example which are phones almost as large as tablets. Although helpful, the larger screens aren’t necessarily just for convenience, rather, instead, screen sizes are increasing to accommodate larger batteries. Computers keep getting slimmer, but battery power remains the same.
While it might seem like most battery life issues are in the realm of hardware engineers, there’re a few ways UX and software development professionals can improve device battery life:
-
Use dark colors: On AMOLED screens (which lack a backlight in the interest of slimness), black pixels often are turned off to maximize battery life. In general, with these displays, brighter colors require more power to display than darker shades.
-
Use JPEGs when possible: Although PNGs have gained popularity due to sizing flexibility and transparency support, JPEGs still remain the number one format for compression. According to a Stanford University study the JPEG standard is much more efficient than PNG when it comes to battery life.
-
Eliminate network requests: Although there are times when real-time polling and data connectivity is required, use these techniques sparingly, especially out of respect for limited data plans.
-
Reduce JavaScript: Although there are plenty of other bandwidth/power hogs within apps, one of the biggest pitfalls of JavaScript is that when the browser encounters a <script> tag, the additional assets stop downloading until the script code executes.
Challenge 2: Managing Data: ‘Catch Everything’ isn’t the Answer
In order to really make the most of your IoT systems, you need to ensure you’re able to deliver on providing insights while keeping everything secure. When it comes to big data, as Forbes said, the motto “if you can’t measure it, you can’t manage it,” rings very true within this space.
One of the most common software developer mistakes today is thinking that they should be collecting as much data as possible without any regard for the actual purpose. Harking back to the point about battery life, you’ll want to keep the data processing and gathering limited to the essentials.
In terms of data security, ultimately you’re dealing with open ecosystems and this is a new frontier which is continuously being developed. As such, you’ll need to keep abreast of industry trends and see where they’re headed. As with other mobile development projects, however, keeping user permissions on an as-needed basis is a great way to lay the groundwork for securing your devices.
Of course, digital threats aren’t the only ones to worry about. If you’re managing personal data on behalf of users, you’ll want to ensure you’re protected from social engineering attacks.
Challenge 3: Emerging Standards
Despite the internet of things being depicted as a connected ecosystem where devices work in harmony, the actual reality is a bit different. As with any untested frontier, you have plenty of companies racing to become the dominant players in the emerging space.
While some product lines are completely walled off and are designed to work exclusively with trusted providers, other systems are completely open. The biggest challenge for developers is coping with the potential interference between equipment.
To help overcome these challenges, the Open Connectivity Foundation is currently developing an open standard with the goal of overcoming the previously mentioned issues of devices being developed independently of each other.
The biggest takeaway from the draft specs is that full operability needs to be engineered at all layers of the development stack – vertical services, platform, and connectivity – in order to ensure a successful user experience. The bulk of the OCF standard leverages abstraction to streamline development workflows while ensuring the data protocols are dynamic and layer agnostic. The five methods of the standard are:
- create,
- retrieve,
- update,
- delete, and
- notify.
There’s also the IEEE which has an extensive line of standards for the internet of things.
Challenge 4: Designing for Everyone
Perhaps the biggest challenge for any IoT development is being able to accommodate the needs of all the users.
To be truly successful, connected devices can’t only be targeted a tech-savvy audience. Smart homes, for example, involve leveraging an entire ecosystem of devices. Locks, thermostats, lighting, alarms, and more – these are the foundation of living at home.
There are also machine-to-machine (M2M) projects such as smart power grids, general building automation, vehicle-to-vehicle communication, and wearable communication devices. Seems overwhelming, right? It doesn’t have to be.
Just take a look at the iPhone or the Amazon Echo – both notable examples of UX designs which are engineered to accommodate a variety of users. Kids, grandmothers and tech-Luddites can generally use these devices without
In the past, visuals were the cornerstone of proper successful user experience platforms, however, the future is now all about conversational UIs. This opens an entirely new can of worms as user experience professionals now need to have a handle on both linguistics and general visual design.
Don’t Be Too Overwhelmed
As with many other development challenges in the world today, these complex challenges can all be made manageable by following lean and agile principles within your development workflow.
By focusing on building out small sections of your product and testing along the way, you should be able to ensure you’re shipping quality code even in the crowded marketplace.