blog

"Designing Connected Products" Book Cover

Designing Connected Products

by

A Book Review & Call to Arms

We’re pretty clearly on the cusp of an era where much of what we know about building software systems is wrong. As devices become smarter and networked (or dumber and networked, which may end up being equally important or more important in the long run), as people who design and develop the software systems that monitor, control, or otherwise interact with these new kinds of devices, we all need to acquire different sets of skills that are currently rare, and apply our old habits and knowledge in different ways than we’re used to.
The blurb for this book says:

Networked thermostats, fitness monitors, and door locks show that IoT devices can (and will) provide abundant ways for people to interact with the world around them. But designing connected products for consumers is a challenge that involves issues beyond UI and interaction design.
This book provides experienced UX designers and technologists with a clear and practical roadmap for approaching consumer product strategy and design in this novel market. By drawing on the best of current design practice and academic research, Designing Connected Products delivers sound advice for working with cross-device interactions and complex ecosystems inherent in IoT technology.

I was just starting my career as a developer as the release of Windows 3.0 was making the shift from the era of keyboards and green character-mode terminals into the era of bitmapped displays and mice go from a fringe idea to the inevitable mainstream, and I see the potential for similar mis-steps and confusion that I saw then. (I’m having flashbacks to conversations in my very early career where grizzled old engineers explained to me that there were no reasons for there to ever have more than one color in a user interface, and also that wanting to use a compiled high-level language like C was a sign of mental weakness, because it’s important for a developer to be able to account for every single clock cycle with meticulously optimized assembly code. You’re probably laughing at the idea of someone considering C to be a high-level language that’s only of interest to enthusiastic amateurs.)
It’s fair to say that any developer who isn’t content to be stuck working on legacy projects is going to need to acquire the knowledge and skills outlined in this book as a starting place to be able to contribute to successful projects.
Some of these skills will include learning or re-learning to work under extreme constraints, whether in memory, CPU speeds, or power. A project that I’m working on now here at Art & Logic involves networked ultrasonic sensors that are installed on pipes (think oil and gas pipelines) to measure corrosion inside the pipes. We’re needing to focus heavily on power consumption — once installed in remote or otherwise difficult to access locations, they need to operate without any human intervention for 5 years or more on a single AA battery. Every CPU cycle we can avoid expending and byte we can not transmit adds to the lifespan of the device. When I did my first embedded software project in the 90s, it was on an Intel 8051 chip that had 256 bytes of RAM.
“You mean 256K, right?” I asked my boss. Nope. 256 bytes. In the years since then, much of what’s been considered to be ’embedded development’ has transitioned over to meaning ‘a full Linux system with multiple gigs of storage and a multi-core CPU’. Returning to sharply constrained environments feels good, but it also feels a little like trying to fit into the jeans I wore back then — it’s been easy to be lazy and sloppy and get a little flabby as a result.We’ll also all need to gain a deeper understanding of the unique user interaction patterns that will be useful when interacting with devices that have little or no interface of their own (like my SONOS wireless speakers that have an onboard UI that consists of nothing but a single LED that indicates that it’s powered up and connected to the network or not, and a play/pause button. All other interaction with that device happen through an app on my phone.

Finally, Talk About The Book

This book is a comprehensive overview of what designers and developers need to know to create effective and successful connected products, including case studies and analyses of existing products and the reasons for their success or failure.
Take a look at the book’s Table of Contents to get an idea of its scope.

…And a Call to Arms

If you’ve gotten this far without clicking away, you should have a copy of this book on your shelf or tablet.
Someday, you’ll be sitting at your desk, minding your own business.
Your boss, or a client, will come in and start explaining the next project you’ll be working on. As you listen, the timeline splits:
In the Darkest Timeline, no one on your team knows about what’s discussed in this book. Your boss/client starts specifying requirements that sound cool to them, but are really bad ideas in ways that aren’t immediately evident. Your team builds the project as it was specified, and it fails in the marketplace because of mistakes that could have been avoided.
In the Prime Timeline, you’ve read this book, and can diplomatically push back on the more misguided ideas and guide the design of the system to use approaches and patterns that are simpler and more appropriate, putting as little resistance between the user’s goals and your device.
In a few years, we’ll be further along at internalizing all of the things that will become idiomatic as more successful devices and systems are released and can act as models for the rest of us to use as guides. When that happens, we’ll perhaps look back at this book and chuckle at how old-fashioned it seems then (like a book from 1994 that I only recently recycled that gave sneak peeks at the amazing user interface advances coming in the next major release of Windows, which was at the time still only known by its code name, “Chicago”).
Until then, as practitioners, we should be building our personal knowledge-base of how designing systems build around a network of connected devices is different from the systems that we’re accustomed to building. This book provides a huge jump-start.
There’s a downloadable free sample PDF to give a taste of the book. Check it out.

+ more

Accurate Timing

Accurate Timing

In many tasks we need to do something at given intervals of time. The most obvious ways may not give you the best results. Time? Meh. The most basic tasks that don't have what you might call CPU-scale time requirements can be handled with the usual language and...

read more