October 2004 Archives

Those UI design dilemmas

Working on mevenide (integration of Maven and popular IDEs) for Netbeans is full of UI decisions that have major influence on the usability of the product. (well, just like in any app :)

1. complexity vs. simplicity
How to let the users customize the project? Maven pros have different workflow from the newcomers. The UI support should scale. Exposing all the plugins' properties at once (and there's a *lot* of them) to a user who just wants to build his/her first hello world application is a no-no. So a real simple basic setup is a must, with some basic project templates that work out of the box. At the other end of the scale, allowing to edit the the pom file and all the properties files with appropriate help like completion etc satisfies the demanding users. However what about the average? Coding and designing UI for the average seems to be the hardest task. I haven't really figured that one yet.

2. general vs. specific
The current default Netbeans 4.0 project types are all based on ant. However there's a whole bunch and every one of them is a bit different from the rest. So one has a project type for J2SE apps, web application project type, so called free-form which lets one map existing custom ant scripts into the IDE. With these specific project types one can have targeted UI and workflow for the tasks at hand.
Given the nature of Maven and the limited resources at mevenide, it was decided (by me :) to go ahead with "one project type to bind them all". How will that work? I'm not really sure. The user can basically use *any* maven plugin to build their artifact. And what about deployment, debugging etc. Webapps are debugged differently from a Swing app. And the IDE offers different tools for it as well.

3. Maven vs. Netbeans
This dilemma is best described with an example. Maven doesn't allow to build single file. I can understand why. But then again, Netbeans has this nice action in the popup menu - Compile File. For maven projects it's disabled because it's not implemented. From the user's perspective it looks unfinished or even broken. There's more cases like that: compilation executes tests, which is perfectly ok from maven point of view, but doesn't really match the user experience from other Netbeans project types. What to do here? I tend to be a maven purist "what maven does, is correct for the project type in the IDE as well", but I might just be blindfolded.

About this Archive

This page is an archive of entries from October 2004 listed from newest to oldest.

March 2005 is the next archive.

Find recent content on the main index or look in the archives to find all content.