The more software design I do, the more I realize that people need to be able to see and touch something to truly understand an idea. Trying to convey ideas by words alone is difficult for many reasons, but is especially hard because ideas are not real.
Materializing a software idea isn’t as easy as grabbing a pen and “printing” it out from your head onto paper. An idea is just a jumble of foggy concepts, shapes, or colors in your head. The idea doesn’t have actual dimensions or have to compete for limited space. Our minds can be prone to error and confusion, so we may not even be able to see its shortcomings until we can actually see it. That is why an idea must be constructed and discovered.
Trying to construct the idea in reality reveals all sorts of flaws and misconceptions we couldn’t see when the idea wasn’t in front of our eyes. Perhaps all those features don’t actually go together on the same screen. Maybe you realize that there really needs to be a component that you originally didn’t even think of. The idea you originally had might not match what you end up creating, but that’s because design is a process of continual evolution.
Design is about taking an idea, which is not real, and making it real — something that can be seen and touched. While some ideas are flat and unmoving like a painting or a document, others like software have a ticking heartbeat underneath. A static mockup or image goes a long way for making an idea seen. Prototyping an idea, even in the most rudimentary fashion, can give it life.
A prototype allows people to see and touch the design in action.
The real mistake made here is that the issues of how the software actually works and interacts is an after-thought. It doesn’t matter whether engineering, product managers, designers, or anyone else builds the prototype. There are plenty of tools available that make it easy to do. If you wait to try exploring these issues until the final product is actually being built, you’ve waited too long.
Even though software is virtual, it is still tactile and must be able to be touched to be understood.
The best way to imbue life into an interface is through animation and movement. Even slight variations in the timing, angle, or transformation of something can have a surprisingly large impact and it is really easy to get these wrong. Without prototyping you would not discover these kinds of problems, no matter how well thought-out, until the final product is in front of you.
Sometimes these problems are an easy fix, like moving something a few pixels this way or that. Other times you may discover that an entire view or component is wrong and needs to be re-thought. If the product is already being built, or has been built, redoing something like this takes both design and engineering time which can be very expensive.
Some believe prototyping is unnecessary in software. The temptation in software, perhaps, is to believe that because software is virtual, that it is not real. Nothing has to be welded or cured. No materials have to be used up or applied. The space a piece of software takes up is so small it is practically nothing. Software is not simply an expression of an idea on a computer.
By building a prototype, you are able to test, discover, and iterate significantly faster and cheaper than jumping straight from static mockup to production. In the next part in this series, I will explain in more detail just how costly it can be not to prototype. In the final part of the series, I will explain just how accessible prototyping can be to designers and how it can be done with little to no coding.
Software is real. Ideas are not. Software can be touched and seen. Software is beholden to the laws of physics and reality. It has boundaries and limits. Ideas do have value, but an idea is really just the starting point. Until you start trying to put the idea together in the real world, all it will ever be is an idea.