Úterý III 07, 2006

Czech Special Interest Group on Computer-Human Interaction

Czech Sun estabilishes together with Czech technical university and dobryweb.cz an official branch of ACM SIGCHI. You can find more information on http://www.sigchi.cz.

The meetings are informal, include talks and the access is free. The first meeting will be held on 23th March 2006 in the building of Czech technical university. More information about the event can be found on the Czech Sigchi website.

Pátek XII 16, 2005

A Speech About Usability

As you may know, November 3rd was set to be the world usability day. Sun Microsystems together with Czech technical university organized an event for this occasion in Prague. I just watched the presentation from Rhodes Klement and I recommend you to see it if you are interested in usability. The introduction by Jiri Mzourek is in Czech, so if you don't understand you can skip it, the rest from Rhodes is in English and it's really worth watching.

Čtvrtek IX 22, 2005

Why Software Sucks - And What to Do About It

Interesting essay from Scott Berkun. Not very short, but with lots of good thoughts.

Sobota VIII 27, 2005

How We Do Usability Studies of NetBeans

Yesterday I went to see one of our usability studies. NetBeans UI group has arranged two days of usability testing of the development version of NetBeans with emphasis on it's editor. It was an exciting experience so I'd like to share some of my insights.

At first, how does it look like. There are two rooms - one with many LCDs, panels and audio-video technics. This is the operator room. The second room is almost empty, there is only a table with a computer, a chair and two cameras. This is for the person I'll call for lack of more appropriate terms as a victim of the study, who is observed and recorded. I'll definitely take a camera next time to make photos of the rooms, they're on Czech technical university (Sun opened the lab there last year - see bottom of the article).

The operator speaks with the victim using by a microphone, he cannot hear us unless we press a button. We see and hear everything the user is doing and saying and see his screen which is recorded, too. We'll have a lot of material to study once we make videos out of this. The victims had 8 tasks to finish, they didn't have to do all of them. Some were rather of type "write a hello world!" and some included more advanced programming - e.g. rewriting of existing code.

We had a bunch of different people with different backgrounds, all experienced Java developers, some of them using Eclipse, some tried 3.x versions of NetBeans before and some used IDEs. How to recognize an Eclipse user? When he gets an error in the code he immediately clicks on the red "x" button in gutter and is irritated that he doesn't get assistance. The interesting part is that they do not learn from this experience and even they get a lightbulb as a hint elsewhere, they still click on the red sign. The only thing you can do when they click on the red "x" for 10th time is to laugh - I know this should be taken seriously, but I just could not help it (hopefully the victim cannot hear us). It's incredible to experience how much are people connected with their tools - they do lots of the tasks unconciously.

At the end each victim was thanked (it takes an hour or so) and interviewed. They also got a free t-shirt and a reasonable amount of money. One of the victims was really cool - he was happy about the t-shirt but was refusing to take any money. We were trying to persuade him - he did a good job... but he resisted so we had to keep it (we didn't spend it in the pub, honestly). The guy was so helpful that he has sent us an additional e-mail with what he forgot to tell us in the interview. What an amazing participation!

The results of the study will be published on netbeans.org, like the older ones (see usability reports on ui.netbeans.org) once processed. I made some conclusions for myself about the editor:
  • Developers rely on the IDE when writing and editing code in a large way - any extra assistence we can add is good.
  • Probably the most crucial part is what I call the "write - get error - fix" cycle. That's typical for Java, you get errors like uncaught exception, missing import, missing cast, etc. all the time. The developers are becoming used to this assistence so features like editor hints are very important.
  • Developers do not remember and do not want to remember details of Java APIs. They're too complex, so they rely a lot on code completion and built in javadoc. If they need to recover manually from an error the compiler is writing, some of them can hardly do so without the IDE. For example, there needs to be a functionality to add an additional exception into the try-catch block, which is added according to the error - developers don't remember which exceptions need to be caught and it's time consuming to look it up. Some of them almost cannot do this manually today!
  • Number of exchanges of keyboard and mouse needs to be minimalized. Especially for fixing inline errors - we should not force users to use mouse to find out which error is there. We need to provide a facility to go over errors and fix them one by one from a selection of fixes using keyboard.
  • Discoverability matters, especially if we want other users to use NetBeans. I've seen it too many times - the developer is searching for a feature, he is hovering above it, you want to shout at him: "just click there!"... but he doesn't find it, gives up and does it manually. This is not an issue if people are used to the IDE but if we want users of other IDEs to take advantage of NetBeans, we need to work on discoverability.
  • We need to remove anything that obstructs developers, because such things are really frustrating. All automatic features (adding of brackets, quotes, etc.) are very useful but need to be non-obtrusive.
  • Developers want to use their own way of formatting.
  • Majority of developers are most productive if they don't have to think about the language. They just want to add their features and the IDE needs to do the language-related things automatically (handling exceptions, adding imports, templates - even for if() and while(), adding casts, ...). These features need to be offered instantly.
  • Refactoring matters. Developers are becoming used to it and start to use it for even basic tasks like renaming a variable in a for cycle.
The participants who know NetBeans from 3.x versions were very much surprised how much NetBeans has improved and became more intuitive and good looking. They find work with the IDE as quite a pleasant experience - nobody was frustrated. But they would really welcome improvements in how the IDE helps write java code to make them more productive.

The results of the usability study will be filed into Issuezilla as concrete suggestions how to improve the editor. Bigger features/changes will be planned for next releases. I think this study was very useful and shows how important the productivity-related editor features are.

[Side remark] I was half a day out of the office and when I came back I found out that they've published my CVS flash demo on netbeans.org... things happen so fast lately it's really hard to be the first one to blog about the hottest news :-)

Neděle VII 10, 2005

Lessons in Out Of Box Experience

Out of box experience (or as I like to call it OOBE) is an important parameter of any software. It basicly says how easy or hard it is for new users to work with your software. It's one of the important categories of software usability. So when I saw this cute flamewar on JavaLobby, I thought that a lot of responders misunderstood what the author of the post wanted to say. He didn't want to write a review or comparison of the IDEs but he just compared their OOBE from his experience. I agree, IDEA has great OOBE and both NetBeans and Eclipse have what to learn from IDEA. On the other hand, IDEA should learn from NetBeans and Eclipse about the price, shouldn't it?

Pátek VII 08, 2005

Learning About UI Design from MIT

I've discovered that Massachusetts Institute of Technology (MIT) publishes most of their courseware online for everyone here. Wow. The computer science lectures are a lot theoretical, but these are very interesting:

User Interface Design and Implementation

Especially the first chapter about usability is absolutely worth reading.

Pátek IV 29, 2005

Usability @ Microsoft

I've discovered this URL on Microsoft corporate website:


Before you will start throwing stones on me, I would like to remind you that we have a contract with Microsoft :-)

Some interesting facts found on this site: Still anyone thinking that software usability is not important?

Středa IV 06, 2005

Recent Usability Improvements in NetBeans

At first, let me introduce the NetBeans Usability team. The lead is Trung - read [Tshung] with u as in German "Werbung". Welcome him kindly to the blogging world! Then we have 6 guys alltogether from development, UI and QE - I think we got it right by choosing staff from different departments because usability spans the whole engineering gang. We try to influence the NetBeans IDE in our areas in a positive way with an ultimate goal to make it really usable. Or at least more usable then the IDE from our friends from IBM.

We've started with the "low hanging fruit" as we are near to 4.1 release. So what were we busy with recently?
  • Increased default font size - now this may sound funny for a change but actually I find it quite important, we had a small font, now we are at 12 pixels which is OK. Well my grandma still won't be able to read it but she's probably not a typical user anyway.
  • More space for explorers - we got tired of always looking at people who use the tiny window with both scrollbars trying to browse the file trees on the left. I did it, too... never realizing I could actually make the window bigger and then I could get to my files easily.
  • Line with cursor highlighted by default - this option was there for years, it's popular, why not to make it on by default? Improves reading of the code (except for some people who actually thought the yellow line is a bug).
  • How to change file templates? - we've added info how to change these into comments on top of java files. So that even users who do not know Tools->Options by heart can find them.
  • Improved some of the texts in wizards - cleaned up some of the historical mess.
  • Added back and forward buttons into editor - so that users without photographical memory on shortcuts can use navigation.
We are working on redesign of the Tools->Options dialog which is currently a usability nightmare. Many other things are in the pipeline, we've submitted lots of proposals which will hopefully get realized in next releases. I'll blog about them later on if they get closer to reality.

Are you aware of an important usability issue of NetBeans? Write me! I don't promis we will implement the improvement, but we'll certainly think about it :-)

Update: Improved menu layout if there are no icons - check it out in build 200504062223 or newer. Another hard nut cracked.

Středa III 30, 2005

What is this Software Usability, anyway?

Don't be scared, I'm not going to give you yet another software usability definition (TM). Actually even if I wanted to, I could not. I've read recently many papers on software usability. And everybody seems to have his own a bit different definition (and the right one, of course ;-). There are things which are common, but still this topic is somehow not exact.

I'll make my life simplier by focusing on usability of an IDE (Integrated Development Enviroment). My target group is a java developer using this IDE and I want to make it as usable for him as possible. So here's how I imagine good usability of an IDE, written with developer's words:

"Give me an IDE which doesn't annoy me [stable, responsive, error prone, fast]. Remove all those weird things [features he doesn't understand or are useless]. Give me all those cool features [those which enhance productivity]. Make me feel that I have full control over the IDE [understandable, manageble, memorable features]. And btw make it look slick [good UI design]."

So this is what I focus on when working on usability of our IDE. Agree or disagree? Looking forward to your comments!

P.S. I recommend to read this piece: Usability and Open Source Software. I agree that usability of many opensource projects sucks - not those sponsored by Sun, of course :-)

Roman Strobl


« duben 2014