appeal for usability

Dear EAPers,

We are planning to put dedicated efforts to greatly improve the user
experience in IDEA 7. So, as always, we ask for feedback from our
beloved EAP users.

At first, please answer the following questions:

1. Do you find something hard/annoying to do in IDEA?
2. Do you find something hard to find/understand in the IDEA interface?
3. Do you find something inconsistent in different places, which has
different look and interaction scenarios?
4. (Optional) Do you find something what you can say about: "it's not
modern, no good program does it this way". This is kind of emotional
experience from IDEA, but we want IDEA to be emotionally attractive as well.

All you responses are valuable, as always.

--

Kirill Kalishev
JetBrains, Inc.
http://jetbrains.com
"Develop with pleasure!"

168 comments
Comment actions Permalink

A new UI for browsing changes (with a toolwindow) is
already implemented
in Selena. I'm looking forward to hearing feedback on
it once the first EAP
of Selena is released.


So am I! This is one of the things that's really lacking in 6.x, specially for someone used to how TMate used to handle that fantastically.

0
Comment actions Permalink

I agree. I always open the project in a new frame and close the other project if necessary. I know that this may cause problems with memory, but you can always choose to close the active project before opening the new one.

0
Comment actions Permalink

Why is the close/hide button for Tool windows a small bar? Is someone very
concerned
with the fact that the tool window doesn't actually close, it only hides?

Just make it a standard close button.

/Mikael


0
Comment actions Permalink

I find the "Errors" settings very confusing. It is not obvious which profile applies where and how. Not to mention that have TWO defaults (default IDE and default Project) is very confusing as well. I just had a co-worker, an intelligent fellow, complain that he couldn't figure out how to enable my in-house plugin's inspections because the Errors settings page was too confusing.

I think part of the problem may be the organization of the UI in the settings page. The contents of the Project Profiles item is very important, possibly the most important, since it determines which of the profiles are actually being used and thus which ones should be edited to affect your project. It shouldn't be "hidden" like it is currently, where you have to select what appears to be a category header to see it. I would argue that it would make more sense to ditch the tree view, make the Project Profiles Settings the main view of the Errors page and have two separate lists side-by-side below the Project Inspection Profile Assignments which list the IDE and Project profiles separately. Then an Edit button next to each list would display a popup of the contents of the selected profile for editing.

Some naming could change to make things clearer. For example: Default Project Profile could be changed to Default Inspection Profile or maybe just Default Profile. It's already clear that you're editing project settings.

Basically, make the UI more project-centric. The IDE profiles are almost incidental; they're just another list you can select from when assigning profiles for your project. But currently they're given equal UI priority and that's just confusing.

0
Comment actions Permalink

Sorry, dupe post due to website barfage :P

0
Comment actions Permalink

Firstly, I think you're going to get much better feedback from usability tests than from us. When I teach kids how to program Java using IDEA, they have trouble with things I wouldn't have considered to be usability problems. You could conduct some tests with current Eclipse users, some with college freshmen in CS programs (this could be the most useful group), some with die-hard emacs users, and of course some with IDEA users (I'm constantly surprised at what long-time IDEA users at my company don't know about IDEA).

I think IDEA's usability is not lacking in one particular area, it is lacking as a general theme. I could go on and on listing the things that annoy me about the current interface, including how different text fields offer different levels of keyboard navigation, the monstrosity that is File->Settings, that the "choose destination directory" dialog is too narrow and the module nodes are collapsed by default, that the titlebar is so long it's unreadable as well as being truncated on every operating system.

Instead of poring over lists of complaints from us EAP users, I think the entire team needs to sit down and watch users (both new and existing), and realize that improving usability in a few token areas like the UI designer is not going to make IDEA itself more usable. As Daniel Quinn said, "If the world is saved, it will be saved not by old minds with new programs, but by new minds with no programs at all."

0
Comment actions Permalink

Kirill,
People have already chimed in about some of the roughest edges in IDEA. My general sense is that besides the big usability problems already mentioned, IDEA has a host of lesser usability problems & annoyances that in totality detract significantly from the develop-with-pleasure experience. For example, I've been begging and even bribing for this to get fixed!
http://www.jetbrains.net/jira/browse/IDEA-10566
However you decide to accomplish it, IDEA needs more attention to usability not only in the large scale flows but at least as much in the small details.

Thanks,
Jon

0
Comment actions Permalink

Keith Lea wrote:

Firstly, I think you're going to get much better feedback from usability tests than from us. When I teach kids how to program Java using IDEA, they have trouble with things I wouldn't have considered to be usability problems. You could conduct some tests with current Eclipse users, some with college freshmen in CS programs (this could be the most useful group), some with die-hard emacs users, and of course some with IDEA users (I'm constantly surprised at what long-time IDEA users at my company don't know about IDEA).

I think IDEA's usability is not lacking in one particular area, it is lacking as a general theme. I could go on and on listing the things that annoy me about the current interface, including how different text fields offer different levels of keyboard navigation, the monstrosity that is File->Settings, that the "choose destination directory" dialog is too narrow and the module nodes are collapsed by default, that the titlebar is so long it's unreadable as well as being truncated on every operating system.

Instead of poring over lists of complaints from us EAP users, I think the entire team needs to sit down and watch users (both new and existing), and realize that improving usability in a few token areas like the UI designer is not going to make IDEA itself more usable. As Daniel Quinn said, "If the world is saved, it will be saved not by old minds with new programs, but by new minds with no programs at all."


Thank you for your suggestions. We're actually trying to have many
voices on this subject. Our EAPers is one of the most respectable
sources we always listen to.

If you can list more specific things that, in your opinion, make IDEA
lack as "a general theme", it would the the best help you can do to fix
things.

--

Kirill Kalishev
JetBrains, Inc.
http://jetbrains.com
"Develop with pleasure!"

0
Comment actions Permalink

When IDEA is busy inspecting code, the lightbulb usually pops up before
all inspections have finished executing (possibly because there are also
intention actions available?).

If I want to fix multiple warnings, I apply a quickfix, causing IDEA to
start inspecting code again. The old warnings are still there in other
warning locations, as they should be. I go to the next one using F2,
see the lightbulb pop up, press alt-enter, and the expected quickfix is
not there. I have to press escape, wait a while, press alt-enter again,
and see if it's there now. If it's not, I finally remember that I have
to look at a completely different place -- the box in the upper right
corner -- to be able to see whether the inspections have finished so I
can finally press alt-enter.

This can be quite annoying, especially because IDEA had already
generated warnings at the second location and made quickfixes available
-- but when I tried to fix the first problem, the quickfixes for the
second problem was removed (which I assume is because problem 2 might be
a secondary problem and might have disappeared when I made the first
change).

Potential approaches to solving this problem:

1) When you've pressed alt-enter, don't show anything until all
inspections are finished -- but this means you always have to wait
even if the fix you wanted was available in the initial menu...

2) When you've pressed alt-enter, show the menu immediately, but keep
adding new quickfixes dynamically as inspections are triggered -- but
menus that change while open are probably quite confusing, especially if
new quickfixes might appear at the top rather than at the end.

3) Some kind of indication "within" the lightbulb that shows that
inspections are not yet done and some fixes may not yet be available.
This way, at least you get all the information in one place.

4) Don't remove "old" warnings until the new analysis is complete; allow
the user to apply "old" quickfixes immediately. Might not be possible
if quickfixes contain information about edit locations and so on which
might be invalid after the first fix is applied.

5) Every time a complete inspection phase has been executed, remember
what inspections were triggered and where. Make sure that inspections
can be run on these very specific locations. When the user makes
changes, run a partial inspection where all current warnings are
re-tested. It should be possible (at least theoretically) to do this in
a fraction of the time required by a full inspection phase, since those
inspections that didn't trigger "last time" are not executed at all and
those that did trigger are only executed for a limited set of locations.
Warnings that are still valid remain present, and their quickfixes are
active; warnings that are no longer valid are removed. After this
initial phase, all other inspections are executed just like they are in
the current version. (I have no idea how doable this is or whether
there are in fact similar optimizations in place in this version of IDEA...)

5) Something else?

0
Comment actions Permalink

One more thing about usability: Inspections are an incredibly useful
tool; too bad that I'm forced to stare at IDEA while they run. I can't
switch to another program for a minute while waiting for them to finish,
or IDEA stops executing them.

This is supposedly done because IDEA shouldn't steal CPU time from other
programs while not active. If this is the reason, then it is completely
incomprehensible to me why "find usages", "find in path", or a project
rebuild continues to execute when I switch to another program. It is
even harder to understand why a complete code analysis continues to
execute in the background. This is at least as CPU-bound as a
single-file project inspection, and there's not even a "pause" button!

The operating system has a process/thread scheduler; please let it do
its job.

0
Comment actions Permalink

I couldn't agree more - number 5 sounds great, but otherwise 4 would be a nice alternative.

0
Comment actions Permalink

Another thing, which may seem minor but is quite annoying at times...
The inspection settings panel (and possibly other places) has some kind
of numeric text fields where you can't erase the entire value. I'm sure
this is good from the point of view of being guaranteed never to have an
empty text field, which can't be parsed as a number. But if I see the
value 4 and want to change it to 3, my natural reaction is to click in
the text field (often takes less time than using the keyboard to
traverse the tab order), which places the caret after the "4", and then
to press backspace followed by "3". Since I wasn't allowed to delete
the "4", the result was the value 43. Sometimes I don't realize this
until much later, because I know that backspace+3 will work.

0
Comment actions Permalink

Martin Fuhrer wrote:

While we're at the point: I never ever choose 'No' here. I always open
the project in a new frame. And if I don't want to keep the previous
project I close it before opening another one.


+1

0
Comment actions Permalink

Dave Griffith wrote:

The biggest remaining inconsistency is in the handling of action scope. "Find", "Find Usages", "Inspect code", and "Run Tests" all have completely different answers to the "define a bunch of files to act upon" sub-problem, and there are probably still others that I can't even remember now. These should be unified, and a bunch more common scopes ("Open Files", "Current Changelist") should be available.


I agree completely. This can be quite annoying, especially when it is
impossible to specify the set of files you want even though you know
that you can do it in other parts of the software. Unifying the
definition of action scopes also means that new users have fewer
different interfaces to learn.

0
Comment actions Permalink

-option to hide Tool Window buttons. some tools i never use and I even want to see the button for it. Even for tools I do use, I still want to hide the buttons to save screen real estate.


I think that the option you describe is already there; see Settings | Appearance | Show tool window bars

0
Comment actions Permalink

The dependencies tab of the project configuration settings tends to
confuse me.

1) The checkboxes look like something you should use to determine
whether these libraries should be dependencies or not. This is probably
because they are on the left hand side of the library names. Moving
them to the right hand side would make it more difficult to see what
libraries they are associated with, so I don't know what to do here.

2) When you want to add a dependency, you have to know whether it is a
project library or a global library, or an application server library,
or whatever. If you make a mistake, you have to back out and try again.
Also, you end up in different-but-similar dialogs where you can select
libraries, but sometimes also edit them. Double-clicking a module in
the module dialog adds that module as a dependency. Double-clicking a
project library in the project library dialog expands that node in the
tree.

Perhaps the "Add" button should bring up a tabbed dialog, or a tree,
where you can only choose from existing libraries? Or perhaps a tree
where double-clicking a node adds that as a dependency (and you can
multi-select dependencies), but where there is also an "edit library"
button and an "add library" button? I'm not sure what would be best,
but the current situation is a bit confusing at times.


Another thing about the project configuration panel: I don't like the
"+" button. Three suggestions here:

1) Don't use submenus. They don't even work like menus should; you have
to click an item to get its associated submenu to pop up. Use a single
menu, with line separators or boldface titles separating the groups, so
that you can "add => project library" instead of "add => library =>
project library".

2) Explain "IntelliJ IDEA SDK". I still have no idea what this means,
and beginners are sure to be confused ("well, I'm going to use it with
IDEA, right?"). Does this have something to do with plugin development?

3) Perhaps one should add an "add module" button to the "Modules" page,
an "add project library" button to the "Project libraries" page, and so on.


Oh, and I just noticed that when you select a library in the main
project tree, the library configuration panel has an inactive button
titled "Remove". When you select something that can be removed, the
button is activated and the title changes to "Detach".

0
Comment actions Permalink

1. Do you find something hard/annoying to do in IDEA?

a) There seems to be a problem with multi monitor support. sometimes, my floating tabs lose and grab focus several times a second and don't stop until i reattach them to idea.
b) when debugging nested calls, i often want to check every parameter value. currently, there is only one fast way: jump into the constructor/method, and then drop the stackframe. this requires lots of F7, shift & F8 for the nested methods or placing a break point in the main method body. it would be nice to see the return values of methods (and the nested ones) before the vm is executing them by placing the cursor on the call for a second.
also, it there should be an option weither the debugger should stop at break points during the evaluation of a method while debugging another.

2. Do you find something hard to find/understand in the IDEA interface?

the project settings were a bit weird at first, but now i like them. may be a (more complete) project setup wizard would be nice, because once you see how the settings look like when they are finished, u get the idea.

3. Do you find something inconsistent in different places, which has
different look and interaction scenarios?

when debugging, i can look into objects by alt & f8, right click -> inspect object and by using the debugger view (alt+5).
there is no popup menue in the inspect object view, but i can't see any reason for this.

4. (Optional) Do you find something what you can say about: "it's not
modern, no good program does it this way". This is kind of emotional
experience from IDEA, but we want IDEA to be emotionally attractive as well.

i want all borders to shine and reflect the mouse cursor and desktop background. also, letters should start to move after some hours to indicate that i should take a break.

0
Comment actions Permalink

There is one issue that is more a desired feature than a usability problem. The folks on our project who spend their time in user interface code (JSPs, XHTML, CSS, HTML, etc.) could benefit from this feature request:
http://www.jetbrains.net/jira/browse/IDEADEV-12310
I know this is already listed for Selena Final but wanted to highlight it because the pure UI folks on my project aren't the type who are inclined to get involved in IDEA's EAP (is that typical?). Heck, maybe if it gets done early in Selena they'll get excited and we can get them on as active participants in the EAP.

0
Comment actions Permalink

=> there's a Jira Issue "Unify scope handling" that still comes from the old tracker and has been rotting in IDEABKL for almost two years now:
http://www.jetbrains.net/jira/browse/IDEABKL-1841

0
Comment actions Permalink

Oh yeah, I just accidentally hit the wrong keyboard shortcut and saw one of the least usable parts of Idea appear: Structural Search (&Replace).
IMHO it is a very powerful tool that is almost not used at all, because you have to study it for quite a while to get any sensible result.

I propose to have a dummies mode that hides the template concept altogether.
It lets me specify what to search (e.g. a method declaration or a method call) then in the next step can select from predefined criteria (e.g. a specific return type or a thrown exception).
I should be able to switch to expert mode and find it prepopulated with the criteria (template and variables) from the dummy mode.

Currently it's often much easier to do a plain/regex search and then ignore false results.

0
Comment actions Permalink

There's indeed much room for improvement in the ctrl-n dialog:
http://www.jetbrains.net/jira/browse/IDEADEV-10986


Sascha

0
Comment actions Permalink

Wow, that was fast, Maxim!
Thx, Jon

0
Comment actions Permalink

Jon Steelman wrote:

Wow, that was fast, Maxim!
Thx, Jon


:) I'd consider this was a bug rather than feature anyway.

0
Comment actions Permalink

Sascha Weinreuter wrote:

There's indeed much room for improvement in the ctrl-n dialog:
http://www.jetbrains.net/jira/browse/IDEADEV-10986


Sascha


This one a bit harder and (most probably) requires OpenAPI breakage.

Meanwhile, don't you think accepting "util.List" or even "u.L" for
java.util.List would be easier to use than combinations like
"*.util.List" or even "j.u.List"?


Max

0
Comment actions Permalink

Maxim Shafirov wrote:

This one a bit harder and (most probably) requires OpenAPI breakage.


It looks like some APIs will break in Selena anyway ;)

Meanwhile, don't you think accepting "util.List" or even "u.L" for
java.util.List would be easier to use than combinations like
"*.util.List" or even "j.u.List"?


It probably depends on the use-case, but for the one I currently think of, it
should be possible to restrict the list to classes where I know the base package
("com.intellij") and a part of the class name ("*Manager"), which would end up
as something like "com.intellij..Manager" or "com.in* *Manager".

However, I don't really have an opinion about the syntax yet; for a first step,
this could also work by simply being able to sort the list by class name,
package name or library/module name.

Sascha

0
Comment actions Permalink

I just posted useability requests for launching background tasks
in IDEA.

IDEA Background Tasks (As of IDEA 6.0.3 build 6141)
http://www.intellij.net/forums/thread.jspa?threadID=265415&tstart=0

Here's my current pet peeve:

5734 - inline rename - hit ENTER accepts suggestion not what I typed
http://www.intellij.net/forums/thread.jspa?threadID=258519

0
Comment actions Permalink

1) Attaching sources to existing libraries. You need to go all the way till Project dependencies/libraries to do it.

2) Adding/finding libraries when a ClassNotFound exception occurs.

3) When defining scopes, a small change immediately triggers the searching and take a long time. I want to add all the packages/modules and then search that way I can add lot of modules/packages at one shot rather than waiting for each one.

Thanks,
--Venkat.

0
Comment actions Permalink

Hello Jonas,

First SELENA EAP will contain possiblity to inspect code in background. Could
you please have a try?

Thank you.

-


Anna Kozlova
JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

One more thing about usability: Inspections are an incredibly useful
tool; too bad that I'm forced to stare at IDEA while they run. I
can't switch to another program for a minute while waiting for them to
finish, or IDEA stops executing them.

This is supposedly done because IDEA shouldn't steal CPU time from
other programs while not active. If this is the reason, then it is
completely incomprehensible to me why "find usages", "find in path",
or a project rebuild continues to execute when I switch to another
program. It is even harder to understand why a complete code analysis
continues to execute in the background. This is at least as CPU-bound
as a single-file project inspection, and there's not even a "pause"
button!

The operating system has a process/thread scheduler; please let it do
its job.



0
Comment actions Permalink

Anna Kozlova wrote:

Hello Jonas,

First SELENA EAP will contain possiblity to inspect code in background.
Could you please have a try?


I'm not sure whether we're talking about the same thing here. To
clarify what I wrote: I'm thinking about the inspection highlighting
process in the editor, which already runs in the background and
annotates my code while I'm working -- as long as IDEA has the focus.
If I switch to Firefox to do something else because the background
inspections are taking such a long time to run, then the code analysis
is paused. I have to keep IDEA on top, and focused, waiting for a
minute or two without doing anything, until 500 inspections have finally
finished running and I can see what warnings are present in the current
source file.

0

Please sign in to leave a comment.