<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="DESCRIPTION" content="Interview with Jiri Mzourek and the NetBeans User eXperience Design Team">
<meta name="AUTHOR" content="Ruth Kusterer">
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
<title>The NetBeans xDesign team</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body>

<a name="Jiri_Mzourek_and_the_XDesign_Team"> </a>
<h1>Jiri Mzourek and the NetBeans User eXperience Design Team</h1>

<p>User interfaces do not just <em>happen</em>. 
We had a little chat with the guys whose work is dedicated to the NetBeans GUI
and the many small but important things in the life of a developer
that we are often not aware of.</p>

<p></p>
<h2><a name="Jirka_please_introduce_yourself_"> </a> Jirka, please introduce yourself and your xDesign team!  </h2>
<p></p>

<p><img src="../../../images_www/articles/interviews/jirka.png" align="right" width="134" height="120">
<strong>Jirka Mzourek</strong>:<br />
Our team, located in Prague, is responsible for the user experience design of Sun development products (NetBeans, Java Studio Enterprise, Java Studio Creator and Sun Studio). I manage this team for 2 years, but I work on NetBeans or NetBeans related stuff for more than 6 years.</p>

<p></p>
<h2><a name="What_is_user_experience_design_"> </a> What is user experience design? </h2>
<p></p>

<p><strong>Jirka</strong>:<br />
I'll try to explain it by naming roles we have in the team:</p>
<ul>
<li><p>Users Research &mdash; In our case, user research mainly means usability studies, surveys and interviews. The main goal is to gather data as base for our interaction design.</p></li>
<li><p>Interaction design &mdash; This means describing behavior and visual appearance of new features or changes. In NetBeans, each new feature or change is covered by a document called UI Spec. You can find most of them at <a href="http://ui.netbeans.org/" target="_top">http://ui.netbeans.org/</a>. On netbeans.org, go to the community section, and click Teams, and then User Interface.</p></li>
<li><p> Visual design &mdash; Most of the icons in the IDE are by Leos Tronicek, our visual designer, who does the cool splash screens as well as all other visual aspects of the IDE.</p></li>
</ul>

<p></p>
<h2><a name="Which_parts_of_the_IDE_is_your_te"> </a> So which parts of the IDE exactly is your team involved in?  </h2>
<p></p>

<p><strong>Jirka</strong>:<br />
Which parts? The xDesign team is involved in <em>all</em> parts of the IDE! :-)
<img src="../../../images_www/articles/interviews/chmulo.png" width="134" height="120" align="right">
</p>

<p><strong>Jano Rojcek</strong>:<br />
The first involvement of our team, and also our first &quot;success story&quot;, was the native look and feel in NetBeans IDE 3.6. Well, actually we were already involved in the consistency redesign of all dialogs for 3.5, but that kind of change is less noticable for users. Our changes in 3.6 however were noticed. This was a really good example of cooperation between designers and  developers.</p>
<p>Then in 4.0, there was a major change how you used the IDE, not only the new sliding windows, but the whole project system was updated. The idea for the new project system was driven by engineers, Jesse Glick, and Peter Hrebejk. It was their brainchild, and they came up with the whole improved workflow. Then they came to us and we worked together on the wizards, the project tree, the menus, the project properties dialog... Again, it really shows how close cooperation with engineering is a crucial part of success.</p>

<p><strong>Dusan Pavlica</strong>:<br/>
<p>We have been involved in the <a href="https://netbeans.org/projects/guibuilder/roadmap.html">Matisse project</a>  too. We discussed the right approach for the new GUI builder in NetBeans IDE 5.0 with engineering, because  the old form editor was a bit obsolete. Then two possible approaches were on the table. There were intensive discussions about them, we evaluated those two concepts carefully in the Matisse team (by use cases, sketches, animations, prototypes) and chose the right one at the end, I think :-).  
I worked on  features of Matisse from the user's point of view, and defined behavior and appearance in close cooperation with the form editor team and others in the xDesign team.</p>
<p>Apart from what was already mentioned, we can say our team has participated on the most visible parts of the IDE, even if some of them  are small (e.g. redesign of menus, toolbars, Welcome screen, windows such as Navigator, Palette, Property Sheet, Output window, etc.).</p>

<p></p>
<h2><a name="Can_you_let_us_have_a_peek_at_ho"> </a> Can you let us have a peek at how you work? </h2>
<p></p>

<p><strong>Jirka</strong>: <br/>
Sure! Most of the NetBeans UI specifications, usability study reports, and all visual elements (including icons) are public.</p>
<p>To give you an example of our work: Last year, a user study showed that more than half of our users are using two monitors. So the user should be able to undock individual windows and palettes from the IDE and put them on the second monitor. So Jindra analyzed this <a href="http://ui.netbeans.org/docs/ui/floating_windows/usecases.html">use case</a>, and then came up with this cool <a href="http://ui.netbeans.org/docs/ui/floating_windows/floating_windows.html">Floating Windows UI Specification</a>. </p>

<p></p>

<p><strong>Jano</strong>:<br />
When we get a requisition to design the user interface (UI) for a feature, we first want to understand the motivation. Why we are doing that, what problem it tries to solve, we try to extract the usecase. We talk to each of the engineers about these examples, and try to fully understand all usecases. The primary usecase should be as easy as possible right out of the box. Then we come up with the UI to help the user to accomplish what they want. Writing UI specifications is an iterative process, the final 'spec' contains a detailed description of the usecases and of the UI. During this phase, we rely on IssueZilla a lot, and feedback is very valueable. We got lots of positive feedback for Matisse, the windowing system, and the project system.</p>
<p><img src="../../../images_www/articles/interviews/dusan.png" width="134" height="120" align="right"></p>

<p><strong>Dusan</strong>:<br />
The Evaluation of  suggested designs is the most important part of our work. We need to get confirmation from engineering that each part of the UI specification is implementable and then we need to verify it with real users too. We use Flash prototypes often because they are great for the evaluation of concepts, for testing different approaches, and for usability testing in general. They can be put on a web site, so they are accessible to more users. Then we can collect feedback in a database and process evaluation results easily (a <a href="http://ui.netbeans.org/docs/ui/propertysheet/ps-customizer.html">small example</a>). I enjoy working on Flash prototypes that better  demonstrate dynamic behavior, discussing them with the engineering team, and then seeing how they are going to be realized later.</p>
<p>An example of Matisse's main behavior and design is described in the <a href="http://ui.netbeans.org/docs/ui/guibuilder/">GUI Builder design specification</a>. There were two usability studies done in Prague (and one in Menlo Park). The first usability study was focused on an early Java prototype and a <a href="http://ui.netbeans.org/docs/newform/prototype1.html">Flash prototype</a> too. We tested some basic concepts such as drag&amp;drop, resizing, moving, and the ability of components to snap to guiding lines. That prove of concept was very inspiring for us even it was the first version without many features.</p>

<p></p>
<h2><a name="What_innovations_for_example_are"> </a> What innovations, for example, are you planning for the next version of Matisse? </h2>
<p></p>

<p><strong>Dusan</strong>:<br />
<p>I'm no longer in the Matisse team because I am now assigned to work with the Java Studio Creator team, but I can describe what is currently happening in the project. There is an <a href="https://netbeans.org/projects/guibuilder/roadmap.html">official Matisse road map</a> and features mentioned there look more than interesting. There will be improvements in layout design, grouping of components,  better support of Swing components, importing from Java code, better categorization of components, context sensitive Help Assistant and others.</p>
<p>Data binding is the most valuable feature in my opinion, it will come with NetBeans IDE 6.0.  It will allow users to connect UI components with data easily by drag&amp;drop. Something similar exists in <a href="http://sun.com/jscreator">Java Studio Creator</a>, a tool for visual web application creation, and when this easy-to-use  concept is applied to Matisse, it will definitely be successful, this could again increase the amount of Netbeans users significantly.</p>

<p></p>
<h2><a name="Do_you_think_MyEclipse_will_be_a"> </a> Do you think MyEclipse will be able to keep up with Matisse?  </h2>
<p></p>

<p><strong>Dusan</strong>:<br />
You know, they are able to achieve nearly the same behavior and look  in the Editor area, but the success isn't only about that.
  It's often about small details and mainly how the GUI editor will be  incorporated inside the whole IDE.
  Then how easy the user will be able to create  UI, and how  quickly he will connect the UI of an application to his data sources.
  Our engineers (Tomas Pavek, Jan Stola) cooperate really closely with the Swing team (Scott Violet) and the xDesign team in the US
  (Ann Sunhachawee, Coleen Baik, Michael Albers), thus I think Matisse will always be one step ahead. And it's free. </p>
    
<p></p>
<h2><a name="How_do_you_tell_whether_a_user_i"> </a> How do you tell whether a user interface is user-friendly?  </h2>
<p></p>

<p><strong>Jano</strong>: <br />
We do lots of usability studies for testing new designs. Observing real users working with the IDE is really eye-opening and helpful -- this cannot be replaced by UI reviews or heuristic evaluation. If you don't do it, you lose information. It costs time, but it's worth it. We use other evaluation techniques first, and later in the user studies, we still find new problems where users get stuck. Engineers observe user studies too, so they see and understand how users work. We get lots of input about our UI and  the overall quality of the product concerning these kinds of small blockers, so we can fix them in time.</p>

<p><img src="../../../images_www/articles/interviews/kuba.png" width="134" height="120" align="right">
<strong>Jakub Franc</strong>:<br />
I've got a background in psychology and its methodology. Interviewing users is only one part of my job. I use interviews in the early phases of research, other methods are usability studies, surveys, and customer visits. I ususally work together with an xDesigner who's an expert in the area I want to study.</p>
<p>Customer visits are very valuable, because you see real use cases in real environments with real people and real needs.  I do surveys during the final steps of research, for example at JavaOne, either online or on paper. For usability studies, we now have a whole new lab in Prague, and we already did plenty of studies for NetBeans in the old one.</p>

<p>Basically, I conduct semi-structured interviews, this means certain topics have to be covered, but the participant can speak freely -- it's more like a conversation really, where I ask open-ended questions. I have skills in interviewing and studied and trained that.</p>
<p>For example for Subversion support in NetBeans, I recruited users, some users of NetBeans and some of other IDEs, who knew Subversion or other versioning systems. We asked them, how big is your team? What version control do you use? How do you use it? For what reasons would you switch to another version control system? Engineers where present too and it was very interesting for them. They found that people use the lock function a lot, while they had assumed that was low priority. It broadens the view of how people see the product. They saw and experienced real users with real problems, instead of just reading about it in a <a href="http://ui.netbeans.org/usability.html">usability report</a>.</p>

<p></p>
<h2><a name="Which_UI_features_do_you_like_be"> </a> Which UI features do you like best? </h2>
<p></p>

<p><strong>Dusan</strong>:<br />
The GUI Builder Matisse (NB 5.0) is definitely the most interesting in my opinion. Then the new look and behavior of the windowing system (NB 3.6) and features such as <a href="http://ui.netbeans.org/docs/ui/sliding/">Sliding Windows</a> (NB 4.0), the nice drag&amp;drop manipulation with windows, too.</p>

<p><strong>Jakub</strong>:<br />
The Profiler UI, for example, that was my first assignment. I got tons of feedback in a survey where users had to answer 10 questions, like, do you use a profiler? If yes, how often? In which development stage? etc. Very interesting.</p>

<p></p>
<h2><a name="Which_parts_of_the_UI_are_you_wo"> </a> Which parts of the UI are you working on, can you give some individual examples for your work? </h2>
<p></p>

<p><img src="../../../images_www/articles/interviews/leosek.png" width="134" height="120" align="right">
<strong>Leos Tronicek</strong>: <br />
I'm in charge of the <a href="https://netbeans.org/community/teams/evangelism/collateral.html#wallpapers">splashscreens and wallpapers</a>, and all the icons in the IDE -- there's a couple of thousand of them. We just went through rebranding the icons to the new Sun icon style that we will use in the next release. Besides icons, I designed two visual editors in the Mobility Pack, the screen designer and the flow editor. For the Enterprise Pack, I designed the visual part of the XML Schema Design View (ABE), enhanced the BPEL Editor, and gave a facelift to the BPEL Mapper.</p>

<p><strong>Jano</strong>:<br />
I have a list of mostly small items with suggestions for usability improvements I'm working on. The list has four parts, productivity, good <a href="http://en.wikipedia.org/wiki/Out-Of-Box_Experience">out-of-box experience</a>, consistency, and look and feel.</p>
<p><img src="../../../images_www/articles/interviews/jindrisek.png" width="134" height="120" align="right"></p>

<p><strong>Jindrich Dinga</strong>: <br />
Right now I am designing Floating Window support for NetBeans 6.0, that you will be able to test from milestone 2 on. We were getting IssueZilla reports where users complained about the multiple monitor support. We determined the most significant use cases and we will test them in user studies. If you are interested in participating, and can come to Prague, <a href="mailto:nbui@netbeans.org">get in touch</a>! I also work on the <a href="http://ui.netbeans.org/docs/ui/fullscreen/fullscreen.html">fullscreen mode</a> for milestone 2 of NetBeans 6.0, and we will improve the maximize mode based on user feedback, so you will be able to access the palette more easily. Another example is the redesign of the auto-update center for 6.0: The module manager and the update center will be merged together into one window.</p>

<p></p>
<h2><a name="Are_there_plans_for_a_homepage_r"> </a> Are there plans for a homepage redesign for netbeans.org?</h2>
<p></p>

<p><strong>Jano</strong>:<br />
Yes, this is done in several stages over time. We want the homepage to be very easy to use &mdash; easy download, clear product description. We want to make sure that the NetBeans core values are visible on first sight. Many users also asked for more guidance to find the right tutorial in the support section, so we are improving that, too.</p>

<p><strong>Leos</strong>: <br />
Yeah, I just finished the new designs for netbeans.org homepage, download page, and support page. Next we'll talk with the webmasters about how to implement the designs, and decide on a new basic set of illustrations. </p>

<p></p>
<h2><a name="Where_can_I_learn_more_about_Int"> </a> Where can I learn more about Interaction Design? </h2>
<p></p>

<p><strong>Jirka</strong>: <br />
The best start would be Jakob Nielsen's homepage <a href="http://www.useit.com">http://www.useit.com</a>.</p>
<p>Then there will be a worldwide conference, World Usability Day, on November 14: Check their webpage <a href="http://www.worldusabilityday.org">http://www.worldusabilityday.org</a> later on, to see whether there will be one in your city. Last year, we co-organized a local <a href="http://www.wud.cz/">World Usability Day in Prague</a>.</p>
<p>There are also a lot of <a href="http://www.sigchi.org/connect/local-sigs">special interest groups on Computer-Human Interaction</a> under the <a href="http://www.acm.org/">ACM</a>. In the Czech Republic, we run public meetings of SIGCHI with the local Czech Technical University and the Dobry Web project, see <a href="http://www.sigchi.cz/">http://www.sigchi.cz</a> for details.</p>

<p></p>
<h2><a name="How_else_can_the_NetBeans_commun"> </a> How else can the NetBeans community get involved in the UI design of the IDE? </h2>
<p></p>

<p><img src="../../../images_www/articles/interviews/jirka.png" width="134" height="120" align="right">
<strong>Jirka</strong>:<br />
Of course we read Issuezilla reports and follow UI-related threads on the nbusers mailing list, etc. But if you want to get involved even more:</p>

<ul>
<li><p>If you are located in Europe or in the California Bay Area, we would like to <a href="mailto:Jakub.Franc@Sun.COM">talk to you</a>! In the ideal case even to your co-workers. We can discuss your overall experience with NetBeans as well as get input from you for our future designs. If you are located somewhere else, we can talk to you on the phone.</p></li>
<li><p>If you are located in Prague (or willing to come to Prague), we quite frequently conduct usability studies and we are always looking for new participants. You even will receive from us some money and a small gift. </p></li>
<li><p>You can also take part in our <a href="http://qa.netbeans.org/processes/cat/55/index.html">NetCAT program</a>.</p></li>
</ul>

<p></p>
<h2><a name="xDesign_team_thank_you_for_the_i"> </a> xDesign team, thank you for the interview! </h2>
<p></p>

</body>
</html>
