Tuesday, 22nd Nov 2011

Article By Marcin Ignac for design_pl

Interaction Design (IxD) is a relatively new discipline focusing on the intersection between people and technology. While traditionally limited to designing behaviours of products, IxD is now also applied to spaces, services and even whole organisations. Prototyping is an intrinsic part of the interaction design process and programming can be used as a tool to make this process quicker, more realistic and therefore, more successful.

There are many analogue prototyping techniques – such as paper mock-ups or the production of video scenarios – that simulate possible uses of digital technologies in order to get user input and discover possible obstacles but often this is not enough. Waiting for the final implementation phase before introducing a working prototype can lead to fatal design errors based on untested assumptions and costly last-minute changes as a consequence. An interaction designer needs to immerse themselves in to technology in order to design with it.

People who have never programmed are usually scared of it. They perceive it to be difficult, time consuming and costly. This might be true in the case in long-term projects, but when applied in-line with the philosophy of ‘just enough prototyping’, it can lead to amazing results in a surprisingly short time-frame.

It is not necessary to build the whole system, program or a device before testing an idea. It is possible to try small elements of it at first. By doing small prototypes in code – sometimes known as ‘sketches’ [see: 1, 2], it is possible to gain faster feedback from a user. Doing this as part of an iterative process makes it easier to rethink and develop the concept in a more appropriate way. In some cases, advanced prototypes might simply evolve into the final product or even open new tracks and spin-off projects never considered before.

So, when should we consider leaving the pencil on the desk and putting our fingertips on the keyboard?

The most obvious use of programming as a prototyping tool is for the implementation of behaviour and interactivity. By bringing prototypes to life, and testing them on real devices, we can capture and understand how people play with them in a far richer way. This allows us to see their natural responses which is crucial for the evaluation of the idea and teasing out any unexpressed latent needs.

A good example for this could be touch interfaces. Programming a working prototype can expose many real shortcomings such as touch screen responsiveness, animation performance or insufficient affordances. Being able to ‘touch and play’ captures the imagination much more that a drawing on a piece of paper.

In some cases it is necessary to go beyond the computer screen and interface with external hardware or other devices. Borrowing from the Do It Yourself culture and open source projects such as Arduino [3], bits and electrons can be brought together to make things move, blink and communicate wirelessly. An electronics board, three cables and a few lines of code can be enough to develop an initial concept for a future mobile phone.

Programming can be used to automate tasks or to create many possible test cases automatically. A perfect example would be data visualisation where large data sets can make a manual process tedious and inefficient. We live in an omnipresent world of data where numbers are constantly generated – calories burned, kilometers run, money spent, electricity used in the home. All that data that can be measured, captured and used as a basis for future products and services.

At this moment, many of you are probably asking : “So you want every designer to learn programming?”. I would say – yes, and to quote Douglas Rushkoff, the author of “Program or be programmed” – “In the digital age (…), whoever holds the keys to programming ends up building the reality in which the rest of us live” [4].

Of course, it might not always be possible for many reasons. This is why interdisciplinary teams are so important. Putting together people with backgrounds in computer science, industrial design, graphic design and ethnography makes new ideas flourish.

In a world where design, art and technology blend together [5] the relevance of an interdisciplinary education becomes all the more apparent. Coding is not for everyone, but being exposed to it and knowing the basic principles is of a great value. It creates a common language and brings awareness of the limitations and opportunities that technology can bring. Such equipped designers can even play a role as facilitating the process between different parts of a client’s organisation.

Are you a technologist? Learn how to design.
Are you a designer? Don’t be afraid of technology.


Marcin Ignac is a Technology and Interaction Designer at Copenhagen Institute of Interaction Design where he helps clients solve complex problems with elegant solutions. He focuses on innovative interfaces, data visualisation and creative uses of technology.

View Marcin’s personal work at




About design_pl


The current issue of the magazine was devoted to the cooperation of designers, scientists and entrepreneurs. Together with them, we analyze the extent to which the areas they deal with are mutually dependent, interpenetrate each other and have an impact on each other; in other words, what the relationship between design and science is. We show how the combination of traditional and innovative technologies, scientific research and experiments lead the creation of high quality products which are not only aesthetic, but above all, useful.