Vision & Guiding Principles
As we learned in UX 101, all products should start with an idea, a vision or statement that captured its essence. Here was mine of building a UX prototyping platform: Be able to build physical (IoT) prototypes, combining hardware and software user interface elements, fast and easy.
Even though this is quite a broad statement, ease of use and being fast were key aspects of the concept. To better capture the concept I wrote down some guiding principles. These were meant to help me make design decisions when building the solution.
- Use an existing software prototyping tool. I didn’t want to overcomplicate existing tools or break the tools workflow when adding hardware.
- Use off-the-shelf hardware to be able to use open source libraries and drivers, and harvest the knowledge of the internet.
- Limit the amount of programming. Make it easy to make changes by non-programmers (read UXers) and reduce the complexity as much as possible.
- Make it self-reliant and robust. The platform should work out of the box. It shouldn‘t rely on an internet connection. You will never know where your prototype will be used. Plus, it should run without any hiccups for an extended period of time.
- Make it modular and flexible. Make it easy to swap or exchange parts of the solution. Make it easy to add parts.
- Allow for a division of labour. Try to separate the software and the hardware prototyping part as much as possible, since often different people with different backgrounds will work on this (e.g. UX designer, creative technologists and developers).
All of these statements explain what makes the solution easy to work with and allows for fast results.
When thinking about prototypes that integrate hardware and software prototypes I came up the following needs:
- We want a stand-alone box to be our server. It should boot up and be ready. And it should be accessible remotely since we don’t know how and where we will use it.
- We want a prototyping tool that produces HTML and the HTML needs to be accessible to us. HTML we can extend and tinker with. We can add and enhance it. Tools like InVision are of no use.
- The HTML code must we stored on a web server then we can update and change it on the fly. Plus, we can view it on different devices.
- We need a way to update the HTML prototype based on the data we receive or send from the hardware.
- Thus, we need protocols to transfer and store information between the the hardware components and the HTML prototype.
- We want wireless connectivity between the hardware components and the server. This removes the need to solder or connect wires. The components can then also be located further away from the server box.
- The behavior of the hardware components must be easy to update and to change. So we can still make changes to the prototype without taking everything apart.
These requirements did not only help me make design decisions but also will provide some structure for the notes to come...