Monday Dec 17, 2007

Design and the Installer

Nalini Kotamraju is a user researcher in xDesign, and holds a Ph.D. in Sociology. She has a penchant for research methods and telling it exactly like it is.

Anant Kartik Mithal, Ph.D. is the Director of xDesign (Software User Experience Design Group) at Sun Microsystems.

I recently spoke with Kartik Mithal, Director of xDesign about the reasons behind the success of the New Solaris Installer.

Nalini: The redesign of the Solaris installer has received wildly positive reviews, both from within Sun and, most important, from our customers. Can you tell me what made the redesign such a success?

Kartik: What was so important in this instance was looking at the complexity of the existing Solaris installation and:

1) Figuring out how to get the team to understand that the designers understand the complexity; and

2) Breaking up the design process into pieces that the engineering team could handle and get on board with.

In other words, you need to earn credibility with the team. The team needs to understand that you know where they’re coming from and the challenges in what they’re currently working with. And you need to figure out the path of least resistance. At the same time, you need to make it something that fits together. The user doesn’t and shouldn’t see the challenge in installation. There’s a lot of planning to make it that way for the user, to plan around the "gotchas."

Nalini: Can you say more about how designers, such as Frank, can get teams to believe that they understand the complexity?

Kartik: So if you sit down and design an installer, often the engineering team looks at the proposal and says "Yeah, we can’t do that. You’re so completely unfamiliar with what we’re grappling with that it’s not useful for us to talk to you." What designers like Frank do is go into the installation process and understand — it does this, it does that, you can do this at this point. You basically build a flowchart and say this is what’s happening now and this is what it’s doing. For example, suppose you want to have a GUI-based install, but you need to have a window manager running in order to get the GUI install to work. The designer needs to know as the installer is chugging along that this is the capacity of an installer at any given point. My understanding is that Frank put together a flowchart that helped him understand the process, and the installation team could look at it and say "He really understands what we’re doing." And that’s the really important part — gaining credibility with the team.

Nalini: You also mentioned the importance of creating a design that can be broken down into pieces that the engineering team can get behind.

Kartik: Yes, for me, the other big thing that Frank did is chunk the project in a meaningful way, working with the team to break it down for implementation and in meaningful chunks.

Nalini: You’ve talked about the importance of the designer’s credibility with the engineering team. What about the engineering team’s role in making this redesign such a success?

Kartik: The biggest thing the team needs is to want to make the usability improvement, and, in this case, the team really wanted to fix it. They could see similar installers – Linux, Windows, Mac – that were much smoother than ours. Frank did a lot of comparative analysis of what’s out there, and he presented it to the team. The team’s role was in accepting the design early on, giving Frank feedback and working with his prototype like bats out of hell and basically implementing in a really short amount of time.

Shortly after Frank had done the prototype, he could point and say this is running code. The team also split things up so that the GUI part was built separately from the infrastructure part. There was a point that Frank would run the GUI, it would say something like "install on this disk," and it would pretend to install. It freed up both pieces so that the people focusing on the GUI could move as fast as they needed and the people working on infrastructure could move as fast as they needed. And they came together when they needed to connect.

Nalini: So xDesign does redesigns quite often. What makes this instance exceptional?

Kartik: What's unique about this situation is the Solaris installer itself; getting Solaris to have a nice graphic bootable boot-up. There are systems that haven't been reviewed for a long time. You make some decisions about what the software can do, and then you layer on more decisions, and then you end up with this gnarly piece of code that is doing a whole bunch of things you want it to and some you don’t, but fixing it means fixing a whole bunch of code. And people don’t want to do that.

We put designers like Frank on this so that they can go and work with the team to pull the whole thing apart and redesign it in a way that solves both the code/architectural problems, as well as the user experience/design problem.

In this instance, the correct answer for the user is really obvious: should I install or not? But we ended up before with an installer that asked lots of questions. It’s easy to conceptualize the answer, but it’s hard to figure out how to get to the answer, figuring out how get from here to there.

That's the thing that I value most in this design. Not the actual design – it’s excellent, of course – but it's getting to the pieces that then fit together that is the rocket science.

Nalini: What would need to be in place to replicate this kind of design success?

Kartik: First, you need a problem with the original amount of gnarliness. We know we have the same problem in some of our software. We were in a situation that we had a bunch of gnarly code, and it would scare people. Everyone knew what the right answer was, but how do we get there? Everyone needs to agree that the problem needs to be solved.

When designers go into work with teams that are not familiar with them, they have to establish credibility at two levels. First, that the designers can design. Frank established this through his prototype. Second, that the designer can understand the problem. In this instance, understanding how the installer worked, documenting, doing competitive analysis and being able to say that other products handle something a different way. Designers go into teams that have been doing that job for many years, and designers need to establish, as quickly as possible, that you have the design chops and the credibility as people who can understand their problem space. Frank was able to do that.

Tuesday Nov 27, 2007

The New Solaris Installer team wins an award

In September we posted an interview with Frank Ludolph describing his work on the New Solaris Installer (NSI). Well, since its release, feedback on the NSI has been phenomenal both inside and outside of Sun. In the past, Solaris had been described as a headache to install. With the NSI, "Solaris can now be installed by mere mortals". In fact, the NSI team won a "People's Choice Award for Collaboration" -- a prestigious award given once a quarter to a deserving team in Sun Software.

Congratulations to the NSI team!

Tuesday Oct 30, 2007

openInstaller User Interface Design

Jen McGinn is an interaction designer in xDesign who is working to improve the user experience with the Java Enterprise System installers. She has an MS in Human Factors in Information Design and works out of Sun's campus in Massachusetts.

Last year, one thing I did was to work with a team of Sun engineers and UI designers to create a set of branded interaction guidelines for desktop applications.

[aside] Two weeks ago, I posted an interview with the folks behind the web application guidelines — those are different, because they focus on UI components used in a browser, not a desktop application. [/aside]

The interaction guidelines that I worked on were not component-oriented, but task oriented. Another colleague led the effort on branded system startup, and I led the branded installation guidelines. We may see those guidelines go public at some point, but until then, you can see them in action in the New Solaris Installer (NSI) and the openInstaller framework — even the OpenDS Installer took on some of the guideline design, even though it's a web application.

The openInstaller project team describes the effort this way: openInstaller is an open source community project building a free and comprehensive next generation installer framework. Initial development of openInstaller was done by Sun Microsystems, but is now available under the open source Common Development and Distribution License (CDDL). What's really cool that's not in that statement is that the framework is all Java + XML. I've looked at their code, and if you know a little Java and XML, you can create an installation program quickly and easily. 

From an interaction standpoint, there are a few things that I'm particularly happy with. One is how software licenses are presented to the user. Another thing that you may notice is the placement of buttons. The most frequent interaction is placed bottom right, and then other buttons are organized by projected frequency of use from right-to-left. This organization supports the visual scan patterns of readers of most languages better than button placements that we often see, which are grouped in the bottom right-hand corner, but require the user to read all of the button labels from left to right, to find the most frequent interaction.

openInstaller screen

From a geeky coolness factor, the openInstaller is written in Java and XML that even I find understandable, and the output of that code is two-fold: not only does it render a GUI, but it renders a command-line CUI, that is comparable to what the user would see in GUI mode. As a result, installers written using the openInstaller framework are easier to develop, maintain, and use.

Thursday Sep 27, 2007

Improving the Java User Experience

Jeff Hoffman has been designing developer and consumer software at Sun since before the boom.

Pop Quiz: What is the application, delivered by Sun, that is most used by people around the globe?


There are about 1 million successful installations of Java every day using the Java installer (the installer is just needed for the Windows platform, because Java is already included with Solaris and many Linux distributions, and Apple provides their own Java installer). With all those eyes on it, the installer design receives a lot of attention. The Java installation process may be the first experience that a customer has with Sun and we do our best to make this experience simple, fast, and aesthetically pleasing.

From the user's perspective, the installation process usually starts at a third-party website, which needs the latest Java version to run an applet. The applet could be a game (, a map locator (, or the virtual view of a cruise ship cabin ( The Java installation experience presents a unique challenge for Sun -- we wanted to make this experience positive for the end user, while providing brand recognition for both Sun and the applet's provider.

Let's have a look at the old installation experience:

The user starts at a third-party website by clicking the "Get Java" graphic which leads to the download and enables them to install the latest version of the Java runtime environment. This download page is simple and straight forward, containing a single button to begin downloading the Java software. The default "automatic" installation process from Internet Explorer involves downloading a small application, which launches the Java installer UI and then continues to download the files that contain the Java runtime environment.

This installer design attempted to reduce the number of panels by putting more "decision points" on a panel -- for example, the initial panel had three purposes:

  1. confirm that Java was to be installed
  2. Display the license agreement and get the user to agree
  3. Provide typical and custom option radio buttons

The design placed too much information on a single installer panel making it appear complicated to the typical consumer. Other installer panels were not visually attractive due to spacing and alignment issues.

We had a couple goals for our redesign of the Java 5.0 installer. The first goal was to keep the number of steps to a minimum, making sure that each step had only one necessary decision point. While creating the current design, the challenge of incorporating the variability (when the user will see a third party offer, does the user have to restart their browser) meant that we had to spec out the various paths and ensure that they made sense. Also de-emphasizing the "custom" install options was necessary.

The second goal was to manage the changing nature of the steps. Our installer has the capability of offering third-party bundled software, such as the Google toolbar. This offer is only shown if the user does not currently have the offered software, or if they have an outdated version. The design of these optional panels needed to be modular so that they would not disrupt the flow of the installation process.

So now lets look at the new Java installer design:

The first panel of the Java installer UI confirms that the user is installing Java, and gives them pointers to important information like our privacy policy and license agreement.

It's still possible for a more advanced user to customize parameters of the install, but since this level of control is not necessary for most users, this feature is not checked by default and placed out of the main control flow. A single click on the first installer panel both accepts the license agreement and continues the installation of Java.

A second panel may appear, offering the user a bundled installation (for example, the Google toolbar).

The next panel (not shown here) shows the progress of the installation process and a message to reinforce the Java brand. When the installation completes, the user is shown the last panel of the installer, which confirms that the Java software was installed without incident. On this last panel, the user may see a checkbox to restart their web browser.

These improvements are already available in the latest release of Java 6. If you want to know about other improvements that have been made in the Java installation and deployment arena, keep a look out for a future blog entry.

Monday Sep 24, 2007

The New Solaris Installer (NSI):
Installation Made Easy

Jen McGinn is an interaction designer in xDesign who enjoys creating new things, and then writing about them.

Frank Ludolph is an interaction designer in xDesign with more than 30 years of experience in user interface design and development.

At the end of August, I spoke with Frank Ludolph, the Senior Interaction Designer responsible for greatly simplifying the user experience of installing and upgrading the Solaris operating system.

Jen: Frank, what was the impetus behind the new Solaris installer (NSI)?

Frank: A lot of people find Solaris hard to install. The installer asks a lot of questions that many users don't know how to answer. The first time I tried to install Solaris on my laptop, it took me four tries to successfully install. And the installer had the old 1990's Motif look. The underlying architecture of the software showed through too much as well. For example, system configuration was separate from the installer, so before the installer ran, it asked the user a large number of configuration questions and then threw away the answers when the user was upgrading rather than installing. With the release of Solaris on x86, which broadened the target audience to developers in addition to system administrators, installation needed to be better and easier.

We decided to replace the old installer. The UI team reviewed a number of current operating system installers, both proprietary (Mac OS X and Windows) and open source (SUSE, Fedora, Ubuntu). We decided the goal of the installer should be to do minimal configuration during install; just enough to get you up and running following reboot. During installation, you'd only be asked to choose the installation target, set the clock, assign a root password, set up a user account (so you don't have to log in as root), and specify the language support to be installed. Any specialized configurations, which relatively few users needed, could be done by after the reboot. A new Solaris feature, Network Auto-Magic (NWAM), allowed us to drop network configuration questions because it automatically configures the wired and wireless network connections when the newly installed system is booted.

We then created an interactive UI mock-up that targeted both desktop and enterprise users. This mock-up was used during early engineering discussions when the functionality and architecture were being developed. But we estimated that it would take at least a year to fully implement the new installer. Too long.

Then Solaris Express Developer Edition (SXDE), a fast-moving project targeted at developers, appeared. This project had fewer functional requirements than on the full installer and allowed for a phased implementation of the installer.

In the first phase, guided by our earlier studies, we just cut a lot of questions and screens out of the old installer by choosing defaults appropriate for our target users. The SXDE installer would install developer tools, Sun Studio and NetBeans, and add them to the Launch menu. When the system started up, it automatically configured network connections and greeted users with a web page with developer-specific help. The installer wasn't pretty -- the flow wasn't as smooth as it might be and the visuals were dated, but it was much easier for developers, the target audience of the product, to get a developer desktop up and running.

The second phase of the new Solaris installer, Dwarf, has a modern, branded graphical appearance and a user experience that is the equal to any of today's installers. It still has plumbing from the old installer underneath, but the team worked very hard so that the graphical user interface masks the old architectural underpinnings. The architecture itself will be addressed in the third phase of implementation, named Slim. Future phases will add the support needed by enterprises. When that is complete the old installer can be retired.

Jen: So a little over a year ago, you were working on writing the branded interaction guidelines for system startup, and I was leading the team to write the branded guidelines for install -- I love how I'm seeing convergence between the Solaris installer and the OpenDS installer and the OpenInstaller, as a result.

Frank: Also with respect to consistency in the user experience, the GNOME desktop is themed, and because the Sun theme, Nimbus, is the default on Solaris, the installer picks it up. As a result, the look and feel are consistent from installation through to the desktop experience.

Jen: So what's the coolest thing about the new Solaris installer?

Frank: It has a modern look-and-feel, new users are successful, and the short, six-month SXDE release cycle gives us the opportunity to get feedback quickly from our target audience and make it even better.

Monday Aug 06, 2007

Open DS Installer Breaks New Ground

Jen McGinn is an interaction designer in xDesign who is working to improve the user experience with the Java Enterprise System installers. She has an MS in Human Factors in Information Design and works out of Sun's campus in Massachusetts.

Brian Ehret is an interaction designer working on Sun's identity management products. He has a Ph.D. in cognitive psychology and works out of Sun's campus in Colorado.

Recently, I had a talk with Brian Ehret, the UI designer behind the web-based installer for our open source directory server, OpenDS. The really compelling thing about this installer (and it's hard to really make an installer compelling) is that it's launched right from the browser, so the user can configure the directory server properties without manually downloading a local installer application; everything is handled by Java Web Start. I know -- that was the promise of Java all along, and now, here we are :)

Jen: Brian, can you tell me what existed before the browser-based installer for OpenDS?

Brian: The open source project went live on late in June 2006. At that point, you'd download a zip file to install the directory server, and then run "setup", a command-line utility that prompts you for configuration information. We wanted to drive adoption, so that meant making the software easier to evaluate. But we still support the setup utility for people who don't have web connectivity on their install machine or who simply prefer to use command line.

Jen: So how did you get from the traditional installer paradigm, of running a local application, to running the installer from the browser?

Brian: In one of my early meetings with the team, one of the developers mentioned the idea of using Java Web Start for upgrade and it just seemed like a natural use of the technology for installation. Since the primary face of the project is the website, the idea of putting a link up there that would launch a GUI capable of downloading, installing, configuring, loading with data, and even starting the server in a few quick steps seemed really cool. I put it in the spec along with the panel designs and the developers put in the plumbing to make it work.

Jen: Boy, I wish I'd thought of that. What's the user feedback been like?

Brian: I wish I had good numbers on how many people are using the web setup versus the command-line tool, but we don't yet. We did get some feedback on the user experience and that person's feedback was great; we've already made improvements based on his suggestions.

Jen: So, what's next?

Brian: We're now working on adding upgrade capability to the installer so that users can click the web start link and upgrade their servers to the latest weekly build of OpenDS. The idea is to allow them to stay up to date without having to install a fresh server and then have to configure the server all over again. We are also adding some additional capabilities such as configuring data replication between servers. The design spec and an HTML mockup of the installer is up on our project wiki.


xDesign is a software user experience design group at Sun.
Follow us on Twitter : Flickr : Blog (see feeds below)


« July 2016