One of my primary projects this summer is to research embedded hardware design processes, toy design processes, and to develop a framework for creating embedded, interconnected toys that addresses both practical design and ethical considerations. This comes out of a need I’ve identified through co-designing and developing several projects in the field (Thotcon 0xA, Thotcon 0x9, Thotcon 0x8, Big Data Outbreak, for instance). Namely, we have processes for creating software and processes for creating hardware, but when you’re looking to do both, combined and at scale, there’s not a lot of literature out there on how to proceed.
That’s not to say the literature doesn’t exist. The body of knowledge on the topic of embedded systems design can be found, for instance, but is fairly sparse and mostly uses an adapted version of agile (typically XP). Additionally, most of the research looks at the design of objects from a human-centered perspective, which has its own limitations when we’re talking about designed objects (not necessarily humans) interacting with other objects.
Suffice to say, I find most of these approaches to be lacking. My experience developing for embedded systems has led me to the following conclusions:
1) Applying software development processes to hardware and firmware development is insufficient. The feedback loop with software is much tighter and easier to control than with embedded systems. With embedded systems, debugging contains both a physical and digital element. Additionally, the loop between writing code and testing code is dramatically different when, ultimately, that code must move to a separate platform for testing. I suspect there may be some connection points here between six sigma and agile processes.
2) Thinking about the design of ubiquitous systems from a human-centered perspective is totally flawed, and yet, most of the literature out there makes this mistake. It seems to me that in order to design objects at scale that work together, we need to move beyond the human, which is just one component. How do those objects work with each other? How do they work with the rest of the world? This line of thinking quickly veers into the realm of object-oriented ontology (OOO).
3) There are important ethical considerations to be addressed when we begin to put embedded, interconnected systems into the wild at scale. By their nature, these systems add a layer of hidden qualities to the physical world by embedding computer algorithms and data stores into the world. Of course, objects already have many hidden qualities, but embedded systems allow those qualities to (theoretically) be controlled by others invisibly. As my advisor at DePaul says, an embedded system represents a snapshot of a particular ontology at a particular point in time, with the value judgements of that snapshot being encoded into the world. This line of thinking connects to what David Rose calls enchanted objects.
As part of this summer project, I’ll be re-designing the Thotcon 0xA badge to make it more of a consumable product — this will be my case study. I’ve also been assembling current literature on embedded design, OOO as applied to design, and ethical considerations of developing toys and hardware systems. And so, to close this post out, here are a few whitepapers and books that I’ve found useful (The Limits of HCD, by the way, is a “shots fired” kind of piece and I love it):
- Enchanted Objects: Innovation, Design, and the Future Of Technology
David Rose – Scribner – 2015
- Object-oriented Ontology: a New Theory Of Everything
Graham Harman – Pelican, an Imprint Of Penguin Books – 2018
- Educating the New Makers: Cross-disciplinary Creativity
Mark Gross and Ellen Yi-Luen Do – Leonardo – 2009
- Piloting Lean-agile Hardware Development
Maarit Laanti – Proceedings Of the Scientific Workshop Proceedings Of Xp2016 on – Xp ’16 Workshops – 2016
- The Limits Of HCD
Vanessa Thomas-Christian Remy-Oliver Bates – Proceedings Of the 2017 Workshop on Computing Within Limits – Limits ’17 – 2017