is one of three bureaus in the engineering unit. There is also the Bureau of Hardware and a Bureau of Software. For us at IXDS it's very important to iterate quickly during a project. We need tools that allow us to not only develop prototypes in a short amount of time, but in a maintainable fashion. Prototyping doesn't just mean to provide quick proof of rough ideas, but rather to prove and improve a complete concept. The Bureau of Web mostly uses tools which support early usability testing, quick iterations, and somethimes even a holistic experience of a product over multiple touchpoints. But sometimes our prototypes are very refined and parts of them even end up in the end product.
Since we embarked on our way to prototype with web technologies we learned that they are a good choice for developing in an agile way. Short feedback loops when developing (e.g., no need to do large compilation), the breadth of tools (like web inspectors), frameworks, and libraries available is astonishing. The openess of the medium and the huge community behind it just add to that.
Many of our prototypes are embedded interfaces and need to interface with some kind of hardware. NodeJS via websockets is what glues our web prototypes and the hardware together. We often use OSC/TUIO to communicate with touch interfaces or camera tracking, or to communicate with our self-built animation tools. Or we just directly interface with the hardware like on a Raspberry Pi.
There are, of course, problems that we face that we feel are not completely solved yet. For example, we think that there is still a deep gap between the design phase and the development phase of a prototype.
In the last years, a number of tools have come out that enable designers to build more-or-less advanced UI prototypes, like Invision, Framer, Proto.io or Noodl. However, given our needs to develop advanced and refined prototypes, we don't always find ourselves comfortable with the code that these tools produce, so there's still the need to rewrite the whole prototype from scratch when the project enters the so-called development phase.
We have been applying some patches to our workflows to minimize that gap. For example, we developers sometimes introduce interactive elements that allow designers to tweak parts of the prototype on the fly. Also, luckily, some of our designers are familiar with code and can directly contribute some minor changes by themselves during development. Recently we also started including SVG into our prototypes, in some cases using whole SVG screens exported from Sketch or Illustrator in an AngularJS application. But is this enough? At IXDS we feel there is still a way to go.
Could a prototyping tool that really enables designers and developers to collaborate seamlessly be the next leap forward in prototyping? One thing is sure, we need to keep exploring...