As programmers, we tend to neglect the side of the business where there are people involved. You see great programmers that won't dare touch frontend code even with a yard stick. I worked as a frontend developer and I am still afraid of the user interface.
I created some pages that made sense to me but confused others. Creating something that is hard to navigate is counter intuitive to problem solving, and that's what programmers are. The more problems you solve the better you get at it.
Lately, I've been thinking about this user interfaces in general. We can't deny it, UI and UX are a popular trend these days. The littlest tool you create and publish on the web comes back with harsh critics.
I've been looking at your website for 5 minutes and I still don't know what it does.
Actually, I was saying just that when I checked io.js.
The rule becomes, to create good software, website, plugin, device, or anything for that matter, you need to have both functional skills and user experience skills.
How important is it to excel in both? Can software fail because of bad UI?
I don't think so. I never think so. The purpose of your software is what matters in the end. How easy or how hard it is to learn software does not necessarily determine its success. Let's take a moment to study some tools.
Have you ever played the guitar? The violin? Or the piano? They are very hard to learn. Most people start when they are very young because when we grow up we become less tolerant to making mistakes.
I got my first guitar when I was 19. I had a friend that was an amazing guitarist. I taught him how to record his songs on his laptop and he bought me a guitar as a thank you.
It quickly arrived to my home in a big Amazon box. I opened up the box all excited. But when I first looked at the guitar, none of the strings were "attached". All this time I had never thought that one would need too put in the strings first then tune the guitar. After a week of online research and blisters on my fingers, I politely placed the guitar back in its box and slid it under my bed.
In web standards, the guitar has one of the worst UX. If the guitar was a website, it will pop an alert box as it loads than redirects you to a page that forces you to download a java applet with no progress bar. You have to send in an email in a specific format in order to register. And when you manage to register, you would have to download a bunch of
.wav files randomly named. To top it all, you can only connect to it with dial up other wise you get an alert box when you are done downloading and it cancels everything.
That's the guitar, if it was a website. Not so user friendly. But ask any guitarist, they will tell you their love story with this magical musical instrument. Their struggle to learn despite all the difficulties. She's a beauty.
Don't even get me started with the piano. But when someone knows how to play the piano, it is a delight. You don't, not for a second, imagine her as a child badly practicing an out of tune twinkle twinkle little star.
If we applied the same standards we are imposing on the web to a piano, you would press a single black key and a great solo performance will follow.
It is hard to learn musical instruments. It takes a few years to learn how to play. It takes even more years to create beautiful music.
After I learned all the ABC in English, I still didn't know how to read. Everything I read was wrong. How do you pronounce this word: Enough? E-no-u-ja-ha? To make it worst, even if I managed to pronounce the word, I didn't know what it meant.
In 2 days, I learned all the Cyrillic alphabet. I even knew how to write my name. Today, all I remember is the "e kratko" which is a u with an accent on top. No one expects me to be fluent after this short amount of time. Learning any language requires time and patience. And to really master it, you also have to learn the culture it comes with.
Is the English language bad because you cannot learn it in a day? Is French bad because it assigns a gender to a cup of tea? Is Arabic bad because it has singular, duolar (I made that one up), and plural form of words?
If they were websites, in today's standards, then yes, they are awful.
I started with Office 95. There is a big difference with someone learning Office 360 and Office 95. Today, you are familiar with what a save icon looks like. A 5 year old never saw a floppy disk but he knows for sure what the save icon looks like. All software use the same metaphors. So if you used computers for more than a decade, you know how to navigate in most applications.
But not so much if you were learning Word 95 in said year. You are seeing those icons and metaphors for the very first time. Applications where not so consistent. Everyone was trying to do their own things. You learned it the hard way.
If we applied the same mentality we have today to how we dealt with those applications, if those applications were websites in today's standards, we would hit that close buttons before the last bitmap would finish loading.
Even programming languages will fall in the bad UX category if they were to be treated to the web standards. Nothing works out of the box. They require tweaking, headaches, time and patience to get right. Simple things may seem more complex then they need to be. Even in environments that have drag and drop, nothing works simply by dragging and dropping.
When you are designing a feature, don't make it too complicated. However, don't think also that everything should be too easy. Sometimes, making things too simple means dumbing the experience down. A good satirical example is Progress Wars. A game where all the complexity and fun have been removed, in favor of simply making you win.
If you don't see how Progress War related to a real world game, here is Clicker Heroes for you.
Creating good user interface and user experience should not be synonym to dumbing down the application. Keep this in mind when designing your applications.