Archive for the 'Design' Category

Jan 04 2009

Opera, please hire a designer

Published by Niyaz PK under Design, Internet, Review

Opera is once again set to screw up its UI in the upcoming version 10 of the web browser.

Granted, that the new iteration of Opera is faster and bloasts loads of new features, but the UI is still such a mess to look at. See for yourself:

Opera 10 user interface

This is the default theme named Opera Standard. Couldn’t be uglier.

The last time I wrote about it, the interface was much better!

There is another themed named Windows Native which is bundled with the application. Even though it does offer a more native UI feel to Opera, it leaves a lot more to be desired too:

Opera 10 windows native skin

How can a major player like Opera ignore the usability point of its products? What makes them think that they can fool around with the UI in every new version? I cannot undersand.

It is time Opera starts analyzing the relation between user friendly user interface and market share. Opera is now a distant fifth behing IE, Firefox, Safari and Chrome in browser market share.

2 responses so far

Jul 25 2008

Message boxes are dead

Published by Niyaz PK under Design, Programming

Every one of us have experienced the bitter taste of a message box staring us at when we try to accomplish some task with our software. Message boxes are used to convey some information, usually thought as important information, to the user and ask him to act upon the information. For example, look at the screenshot:

Message box annoyance

What is the need of such a dialog box? The user wanted to add the information to the registry. That is exactly why he initiated the process, and now the application shocks the user with a message box accompanied by “ding” sound and blocks all other activities until he clicks OK button.

There are many versions of this UI irritants:

Message box asking question

(Update: My mistake. Getting a message box from registry editing was a wrong choice. I should have taken the screenshots from a simpler application. Many people in reddit are already bashing my idea. Registry editing is indeed very important process and alerting the user is necessary in very critical applications.)

Here are some reasons why I hate message boxes:

  1. They makes the user think and take a decision (users hate this).
  2. They block all other activities in the application or even the operating system until an action is taken.
  3. They are accompanied by weird sounds.
  4. They steal focus from what user is doing and this may lead to data loss in some situations.

So what are the alternatives?

First, Don’t make me think. Don’t ask questions. Just do whatever is appropriate at the moment. Don’t ask me if I want to save a file or not. Just save a version in my drafts folder. The next time I open the application, allow me to navigate and edit my drafts.

Second, don’t throw unwanted information at me in the form of message boxes. See how Gmail tells “Your message has been sent”:

Gmail status message

It gives the information without annoying me. Very good.

Wordpress does this too.

Wordpress status message

Many great applications are adopting this strategy.

The time is ripe for you to do away with those nasty message boxes in your application.

17 responses so far

Jul 23 2008

How to design software registration keys

Published by Niyaz PK under Design, Programming

Design keys which satisfy two conditions. You will be selling these keys with your software. In the software test for only one condition. Users will anyway reverse-engineer your code and generate fake keys for your software, but these keys will satisfy only one condition that you checked for.

In your web application test for the second condition too. This way you can find illegitimate keys and block illegal copies of your software from auto-updating. You can also try to disable those copies.

You will have to blacklist even original keys which are being used by many users at a time (this happens when someone shares/publishes his key).

2 responses so far

Jul 18 2008

Against the scroll lock and caps lock keys

Published by Niyaz PK under Design, General

The Scroll lock and Caps lock keys are not much used by anyone anymore. (I am not supposed to use these words, it seems). Anyway what I intend to tell is that they are not used by many people regularly.

Keyboard showing the CAPS Lock key

At least we all know what caps lock key is used for. What about the scroll lock key?

The scroll lock key is a remnant from the original IBM PC keyboard. In the original design, scroll lock was intended to modify the behavior of the arrow keys. When the scroll lock mode was on, the arrow keys would scroll the contents of a text window instead of moving the cursor. In this usage, scroll lock is a modifier key like Alt and Shift (which modify the function of other keys) and, more specifically, a toggling lock key like Num Lock or Caps Lock, which have a state that persists after the key is released. Today, this particular use of scroll lock is rare. Only a few modern programs still honor this behavior, such as Microsoft Excel (in the behavior of arrows — when scroll lock is on, the selection does not move), Lotus Notes and Forté Agent. In modern GUI environments, scrolling is usually accomplished using means such as scrollbars or scroll wheels. Therefore scroll lock can be regarded as a defunct feature in almost all modern programs and operating systems; some keyboards lack scroll lock altogether.

Here is the result of an online poll:

Poll result for: The most useless key on my keyboard

Many people are not using scroll lock key any way. Why not save some keyboard real estate by removing this key?

Even though some people with specific applications use caps lock key, usually people use the shift key for the occasional capitalization of letters. Many people are pressing for removing the CAPS Lock Key from the keyboard. There is even a google group for this.
What is the optimum solution? In my opinion, remove the scroll lock key, and move the caps lock key there.

5 responses so far

Jun 12 2008

When not to use a framework

Published by Niyaz PK under Design, Programming

Recently I came across a web application that had just two JSP pages.

What does it do? It takes a value from the user and displays his points based on the value.

And can you guess the number of back-end files used to help this process?

There were 23 packages, more than 250 java files, 13 properties files and a lot of XML files, in addition to the standard class/jar library files used in the project. Believe me, I am talking about a complete application that does not expect any dramatic enhancement in the future.

Don’t tell me that it is all about the Framework. That is what you call bad design. Especially when you can write world-class applications in 579 lines of code.

Use Struts or MVC or Spring or Ruby on Rails or anything you like in your application. Before that try using a little common sense.

4 responses so far

Jun 10 2008

More Features Vs Clean UI

Published by Niyaz PK under Design, Programming

After a whole lot of reading from the web about how you can improve the efficiency of your products, you have come to the conclusion that you need to rework on your plans to build the product. You should remove clutter from the software. You have decided it.

But the problem is that you don’t know which features to retain and which features to axe.

The simple thing to do is: Add the standard features to your product. Make it more usable and clean the UI of the product. For every single feature you add to your product, the UI should be less cluttered and very usable. Usability matters a lot. People will talk about it for sure.

No product will ever sell for its features if does not have good usability.

iPod Nano 1GB

Minimalism should be in the design of your product. It should be there in the UI of your new software. But under the hood, all the features for your power users can be there. In the feature side, minimalism is not an option at all. All the standard features must be there in your software. The only catch is that you should plan your UI such that even a user who uses a small subset of the features must not be offended with UI controls that he does not use.

Think of the iPod. It has most of the features a music player needs, but it is inside a simple and elegant UI that you would love using it every time.

Joel Spolsky, in his article Choices = Headaches talks about the need to reduce the number of options for a user to power off his computer:

Inevitably, you are going to think of a long list of intelligent, defensible reasons why each of these options is absolutely, positively essential. Don’t bother. I know. Each additional choice makes complete sense until you find yourself explaining to your uncle that he has to choose between 15 different ways to turn off a laptop.

This highlights a style of software design shared by Microsoft and the open source movement, in both cases driven by a desire for consensus and for “Making Everybody Happy,” but it’s based on the misconceived notion that lots of choices make people happy, which we really need to rethink.

37 signals says in their very popular book Getting Real:

“Why don’t you allow bold or italic or colored formatting in the chats?” Answer: It just doesn’t matter. If you need to emphasize something use the trusty caps lock key or toss a few *’s around the word or phrase. Those solutions don’t require additional software, tech support, processing power, or have a learning curve. Besides, heavy formatting in a simple text-based chat just doesn’t matter.

“Why don’t you show the total number of people in the room at a given time?” Answer: It just doesn’t matter. Everyone’s name is listed so you know who’s there, but what difference does it make if there’s 12 or 16 people? If it doesn’t change your behavior, then it just doesn’t matter.

Would these things be nice to have? Sure. But are they essential? Do they really matter? Nope. And that’s why we left them out. The best designers and the best programmers aren’t the ones with the best skills, or the nimblest fingers, or the ones who can rock and roll with Photoshop or their environment of choice, they are the ones that can determine what just doesn’t matter. That’s where the real gains are made.

Some features just don’t matter. Don’t overload your user with a lot of options, statistics and dialog boxes. Give the user all the standard features to do his work, and get out of the way.

2 responses so far

May 16 2008

The Copy/Paste Standard

Published by Niyaz PK under Design, Programming

Copying data and pasting it wherever necessary is a huge advantage that the field of computers has brought us. It was not possible in earlier communication or data manipulation technologies. Copy/Pasting data saves a lot of time thereby directly affecting our productivity. Copy/Pasting facility is a basic necessity in any computing device. It is very easy to implement and incredibly useful.

That is why every device that can be used to manipulate data must have Copy/Pasting mechanism in it. It is not an advanced feature I am asking for. It is a basic necessity.

But many computing devices fail miserably in providing this functionality. Mobile phones are the major culprits found in this area. Most of the mobile phones don’t have Copy/Pasting ability built into them. By Copy/Pasting ability I mean copying from any conceivable user screen and pasting in any input field. That is what we are used to in our personal computers. Exactly that functionality is needed in each and every device that can be used to manipulate data.

Giving this small tweak to your devices is a trivial task, but the user experience is enhanced manifold. Providing Copy/Pasting functionality in your applications or devices must be a priority in your usability design.

6 responses so far

Next »