Knowing those 5 tech principles will make you a better UX designer

For designers, it was always relevant to know about the technical part they design for as well. For digital designers, knowing about software is often a hard topic to deal with. It does not come in handy. I wrote down a bunch of principles of computer science, that I find quite helpful to know. They are all about tech and still all about UX.

Johannes Holl
Boana Stories
3 min readAug 2, 2017

--

Photo by Headway on Unsplash

#1 | The difference of compiled and interpreted code

Have you ever attended a software project where the scope shifted from a native app to a web-app in the middle of the design phase? That was fun, no?
Technology is clearly affecting user experience. So when changing from a native app to a web app the design has to adapt. In this case a native app stands for a compiled and the web-app for an interpreted program, and there is a huge difference.

A compiled language is a program that — once compiled — has been “translated” into the instructions of the target device. That’s why we call those native apps — it speaks its mother tongue. The software to compile such a language (called compiler) does not have to be installed on the device that runs the app. But most of the time you have to install the compiled app itself on your device. Any app from the Apple Appstore, for example, is a native app.
A interpreted language works different. It gets translated when executed — “on the fly”, so to speak. To do so it needs interpretation software installed on the device. An example being a website that gets read out by a internet browser.

In most cases the compiled programs result in better performance while interpreted programs are easier to implement. It is good to know the difference in order to understand the limitations and possibilities of the software you are about to design.

#2 | Forward and backwards compatibility

At the beginning of a design project, information is gathered that will guide the process and drive the decisions. Technical constraints are a big part of that. Questions will be asked. Is there anything we need to adapt from the older versions of this software? Should it be supported by older operating systems, browsers or devices? How does a system react to errors produced by the machine itself?
You will have a much better understanding of the answers given once you understand the strategy of compatibility the software is using.

A forward compatible program is designed to run on future systems. Conversely, future systems should be designed to still support the program even if it aged along the way.

A backwards compatible program has the ability to work with known input and ignore unknown input. HTML and CSS works like this. A website from the 90s can still be opened in a modern web browser. It might not look crisp and will not support animations or border-radius, but you will — most likely — be able to read the text and see the images.
Good web design is respecting this matter at it’s conception. In the end it is also about error handling. Two highly discussed strategies that solve backwards compatible software in the web are progressive enhancement and graceful degradation. Give it a read!

Illustration for backwards and forwards compatibility. »Stuff« could be a device, a program or even a file.

--

--