Installation wizards have their place. For example, when you are installing and configuring an operating system a wizard is your best friend. The design of the wizard is paramount as it is often the very first thing your user sees. First impressions are crucial, and if your install procedure sucks, then it puts your whole application in a bad light. That said, sometimes wizards – no matter how pretty, and helpful are just unnecessary overhead.
For example, let’s compare the way a Windows user and an Ubuntu user perform a typical installation. The windows user will start by downloading the package form the internet or popping in the CD into the drive. From there he will have to typically go through following steps:
- Look at some generic “This installer will guide you through the process…” screen
- Agree to an EULA
- Pick program components to be installed
- Confirm he wants to install the application in C:\Program Files\The Application
- Decide if he wants shortcuts to be added to Start Menu and Quick Launch
- Review the summary of chosen settings
- Stare at the progress bar
- Confirm that he wants to run the application and/or read the README file
- Start using the application
Note that I omitted the common steps of entering the product key and online activation to keep things fair. Let’s assume the windows user was installing a multi-platform open source application – something like Firefox or something similarly popular and ubiquitous. To install the same application a typical Ubuntu user would just open Synaptic and find it on the package list (equivalent of finding and downloading the package from the web) and then:
- Click on the Install button
- Stare at the progress bar/scrolling text
- Run and start using the application
What is the difference here? I mean other than one system uses a repository and other downloadable packages – that bit is actually inessential here. The major difference is that in Ubuntu the application is silently installed in the background without asking the user any stupid questions. And believe it or not, this is much more user friendly way of handling installation than a pretty looking wizard.
The average user wants the default components to be installed in the default directory with the default set of options and shortcuts. Think back on recent windows applications which you have installed – how often do you change the default installer options to something else? I typically just leave the default settings unless the app ships with annoying add-ons like toolbars or other adware and let’s you opt out of them by un-checking a box or two in the installer. Other than that, I typically just click next.
Tons of applications these days provide a silent install option that can be invoked by passing a special command line parameter to the installer binary (typically something like /S, /Q or –silent). This performs the whole installation in the background choosing all the default settings in a way simillar to that used by apt and Synaptic on Ubuntu. But the default installer makes us jump through multiple hoops instead. Why is that? Why can’t the silent install be the default option and the detailed wizard be invoked by some command line switch?
Usually people who would want to take advantage of the customization options in the installer are power users who could easily figure out how to trigger this hidden mode. The rest of us would simply hit a button, wait few seconds and then simply enjoy the application.
It seems that folks in Linux and Apple camps always knew this. Ubuntu for example only uses wizards for configuring complex pieces of software – like the OS itself. In the windows world however, the installation wizard is the king for apps big and small. It is sometimes quite ridiculous – for example, it is not uncommon to see a 2-3 MB application composed of a single executable requiring 6 or 7 step installation process. I know because I created such installers myself. Most of us are so used to them we hardly even notice them, but if you sit a complete novice in front of the computer and tell him/her to install some software every extra step they have to take is another occasion for doubt and panic.
And no – I’m not making this up. I’ve been actually asked by coworkers to stand there and watch them install this or that application. They would click the installer, hit the first question and look back at me. I would nod and they would proceed to the next one. Most of them would then apologize for taking my time and explain they were simply afraid they would mess something up if they answered one of the questions wrong. They just didn’t realize all they had to do was to click next repeatedly.
Adobe already figured this out. When you go to install their PDF Reader app these days all you need to do is to clikc on the Install button on their page. Then an ActiveX or XUL window pops up and displays a progress bar. There are no questions asked, no configuration options to be chosen. The reader is just installed and then the progress bar disappears letting the user know his application is ready for use. It’s clear to me that these guys got it. They did the usability research and they noticed that most people just click next all the time. And if overwhelming majority picks the default settings, then why even ask? Just install the app with most common configuration and provide mechanism for power users to circumvent it.
[tags]installation, installing, apt, synaptic, windows, usability[/tags]
At the least, a “yes, I agree to whatever, and want the default options” button on the opening page would be good.
Even better would be if everything was more along the lines of a portable application – you run the “installer” (really just an unpacker) and get a self contained folder containing an executable, whatever data the program needs and a Settings folder.
Uninstallation = delete said folder.
Simple :mrgreen:
And this develops some really bad habits. Many/most Windows users have learned to click next without reading the prompts and, on alerts/notifications that just have one button, they just click whatever that button is. It’s a good thing computers don’t have feelings…
A large part of this can be solved by the operating system having a structure that is logical and easy to follow. Programs go here, user settings go there, etc. The initial screen could give a super brief explanation of the program and have a “default install” and a “custom install” button. The other option is to add parentheses to the Program Files directory so most apps fail their installation (See WinXP 64)…
I like the Linux way of doing things, but the one change would be to have a specific folder in my user directory that settings go into rather than having them in the user directory itself.
To me the most annoying thing in windows installers is the progress bar. In almost all cases the progress bar is useless, because it can be very fast in some points and really slow in other points of the installation process, so you don’t have a clue about what will it takes to finish. I’m tired of progress bars that reach, say, 21 percent in 2 seconds and need 5 minutes to do the rest.
Sometimes the progress bar says something like “5 seconds to finish…” but you know you’ll have to wait for an unpredictable amount of time.
I know it depends on the system settings and hardware, but it’s so tedious. I think it would be better to not have prog bars at all.
But the worst thing is when the stupid progress bar has finished and… guess what? You get another bar, and another one, and so on.
BTW Luke, the Ubuntu installation progress you describe it’s the same for almost all other distros all around (or at least for Debian and its derivatives), why just Ubuntu? If I was you I used the word Linux, not Ubuntu. :-)
[quote post=”2291″]Even better would be if everything was more along the lines of a portable application – you run the “installer” (really just an unpacker) and get a self contained folder containing an executable, whatever data the program needs and a Settings folder.
Uninstallation = delete said folder.[/quote]
Unfortunately, this is never really this simple. Even on Linux or Mac you end up with shared dependencies, various system hooks and etc. Some apps need to run as a service/daemon, some may need special configuration, some may need to intercept some system calls to work.
Having a single click install/uninstall procedure is just as intuitive. :)
[quote post=”2291″]I like the Linux way of doing things, but the one change would be to have a specific folder in my user directory that settings go into rather than having them in the user directory itself.[/quote]
Meh.. I’m used to it. The dot files are invisible anyway so you don’t really need to worry about them until you need them.
[quote post=”2291″]BTW Luke, the Ubuntu installation progress you describe it’s the same for almost all other distros all around (or at least for Debian and its derivatives), why just Ubuntu? If I was you I used the word Linux, not Ubuntu. [/quote]
I guess Ubuntu just felt more specific. The word Linux encompasses all the distros some of which do not use package management systems like apt. So I figured it’s better to be specific. :)
The lists are a little linux-skewed, but managed package installs are easier, I’ll agree. No EULAs, no asking ‘where do you want this file’, though if the package isn’t managed, you’re likely to run into both (vmware installer, anyone?)
Some of the steps on the windows list aren’t ubiquitous (quickbar) and others are commonly desired tasks (desktop shortcut).
The one that I really noticed, though, was choosing program components, which you definitely do need to do in synaptic, sometimes you don’t even know you need those extras: “Hrm… I need to mark foo. Oh, and foo-console. And better get foo-fortunes, just for laughs. Hrm, -bar- is recommended, might have to do an additional search for that”.
I do rate package management better than windows installers, but they experience different problems.
[quote post=”2291″]“Hrm… I need to mark foo. Oh, and foo-console. And better get foo-fortunes, just for laughs. Hrm, -bar- is recommended, might have to do an additional search for that”.[/quote]
This is why I use apt-get or aptitude actually. Much quicker than messing around with the GUI.
That said, I kinda like the automatic updates manager thing that pops up in my new Gutsy install from time to time.
silent installation is one thing I always look for, but it needs to also allow *configuring* the application. I am so annoyed that my favourite tools FF and TB (and lots others) are not remotely or CLI-based configurable, i.e. set the proxy, configure add-ons etc. This effectively makes them company-unusable (think domain policies).
For MSI packages silent installation can even be augmented by deploying additional patch files (MSP, MST), or directly manipulating the MSI.
[quote post=”2291″]I am so annoyed that my favourite tools FF and TB (and lots others) are not remotely or CLI-based configurable, i.e. set the proxy, configure add-ons etc. This effectively makes them company-unusable (think domain policies).[/quote]
Funny you say that because I talked to a sysadmin recently who actually raved at length how easy it was to deploy and manage Firefox profiles via Active Directory.
I didn’t think to ask at the time what was his methodology but apparently there are few dozen tools to do this nowadays.
One thing that really irks me during installation is that if you’re not paying attention to the questions in each step, you might find that your homepage will be changed, and some funny toolbar will be installed with it, place a shortcut in your “startup” folder, etc.
Some even condescends you when you specifically choose NOT to install these optional components:
[x] YES! Install this toolbar and take advantage of this SPECIAL LIMITED EDITION ONE TIME offer! (checked by default)
[ ] No, I am not willing to be part of this fantastic bargain. (in small font size -4)
Some installers makes it hard for you to deselect such atrocities. Yahoo messenger installer comes to mind here. Took me a while to find that damn “Custom Install” link.
But usually, this only happens for freeware.
Yeah, I love these bundling deals some of these companies have.
Hey, I’m gonna install this Fabulous Super Search Toolbar for you!
No? Ok, then how about Google Toolbar?
Don’t want that either? Btw, did you know that Fabulous Super Search Toolbar offers following list of benefits that we just made up on the spot?
No? Ok, then your loss. But hold on for a second! We extend to you the special ONCE IN A LIFETIME OFFER to install Fabulous Super Search Pro++ Toolbar for absolutely no cost to you!
Oh come on! It’s Free!
Freeeeeee!
Ok then. I promise not to install the toolbar if you scroll all the way down and click the tiny checkbox labeled “I do not accept”
Ok, now just check this box labeled “Don’t install no toolbars”
HA! That was a double negative! So it means you WANT me to install the toolbar! I’m installing it! HAHAHAHAHA!
[quote comment=”8107″]Ok, now just check this box labeled “Don’t install no toolbars”
HA! That was a double negative! So it means you WANT me to install the toolbar! I’m installing it! HAHAHAHAHA![/quote]
You just know it will boil down to this some day… :P
Luke, I did have a look at some of those tools, years ago, and I try to keep updates on news there. Thanks for the links, though; nicely collected. The latest news about FFdeploy is dated somewhere 2005.
All of those tools more or less offer to deploy the software, but neither extensions nor configuration, apart from copying over something like user.js to a given directory. I can do that without any tools.
The nearest I’ve encountered is the CCK toolkit, written by a colleague at IBM.
I consider copying a preconfigured user.js not to be the best way; it tends to become incompatible over times in unpredictable ways.
My professional work is doing system management architecture (monitoring, inventory, software distribution), and I expect clear and concise CLIs or APIs to configure applications. It’s ok if it only means a CLI for setting a given configuration option, but it should save me directly manipulating a more-or-less undocumented config file. Copying over a file means I always have a potential conflict with changes done by the application internally.
Ah, ok… If I see that guy again, I’ll ask him how is he managing his Mozilla profiles via Active Directory. Maybe he found something better than these things. :)