Designing, for Engineers
The tension between engineering and design is felt in software development in one place more than any other: user experience and user interface design. The fact that the discipline is called ‘design’ shows the bias clearly. UIs are voodoo art, they say. Users are entirely unlike computer hardware — fuzzy, irrational, and wet — and no compiler will validate your design for you.
That much is true. But like much of software engineering, experimentation, validation, and testing is the name of the game. And even the best design firms in the world do not resort to one genius-level artist, alone in a tower, handing tablets from on high. They mock-up designs and test them out internally and with impartial human testers, which I’ll argue is far more science than art.
Which is exactly why engineers can be great interface designers too — if they learn the language. Freehand drawing skills and a photographic eye may be largely constitutional. Design skills, on the other hand, can be learned both directly and through experience, except we often don’t.