35

This is the inverse to "Why don't developers make installation wizards on linux?", which is interesting, but made me think "Automatic installation is the natural way. Why do they use wizards?".
So here is the inverse question:

I'm sure it's not about laziness, or anything like that, but I fail to understand why developers, of even mainly consumer facing apps, don't make a fully automatic sort of installation where you are not bothered at all. The same apps usually have automatic installation on Linux, so why not Windows and Mac OS?

Is there any technical reason for this trend, or is it just convention?

  • 6
    MacOs is also automatic (almost) - you normally only drag the icon to "Applications" folder. I guess in windows it doesn't work because of some weird registry things – Lovis Sep 21 '14 at 18:10
  • 3
    "asked the wrong way around" is really an opinion. I don't think that it's fair to fragment the answers to that question with this inverse because you don't like how it was asked (and a bit pedantic imo). Any answer that ends up here will simply be the inverse of a valid answer to the other. I feel the appropriate response if you feel the question is backwards is to add your own answer that explains why you feel that way, and then answer the question from that viewpoint. – Selali Adobor Sep 21 '14 at 18:13
  • 2
    The windows 8 app store is an attempt to establish a centralized software repository just like most Linux distributions have. – Philipp Sep 21 '14 at 23:09
  • 10
    If they make it automatic, how can they bundle malicious adwares without avoiding court? – Raestloz Sep 22 '14 at 6:33
  • 3
    I think the premise of this question is wrong - many Windows applications can install via a streamlined 'use standard settings' option in an installer. Providing additional options, such as where to install the program, is simply the polite thing to do. I really dislike programs that don't let me decide where on a drive they will be installed. – GrandmasterB Sep 22 '14 at 17:18
49

Informed Consent

Users should be able to decide, first of all, whether they even want the program to be installed on their computer or not. It may seem self-evident to you that people are obviously choosing to install a program, but the prime characteristic of a malicious program is that it can be installed without the computer user knowing about it.

Informed consent is made even more explicit through UAC.

License Agreement

Most modern software follows a "click-through" model for licensing; that is, the user agrees to the terms of the license during the installation process as a condition of installing the program. That users seldom read these agreements doesn't mean they're not bound by them, especially if they have clicked the checkbox labeled "I agree to these terms."

Configuring Options

Many software packages have options that allow you to change the way the software is installed in certain ways. The most trivial of these lets you decide whether or not you want an icon on the desktop, but in larger applications you can decide which features you want installed.

Installation Progress

While programs in the Windows ecosystem are getting better at being less intrusive during the installation process (e.g. registry-free installation), installation is still often a non-trivial operation. Progress bars and other visual aids give an indication that something is actually happening. The final page in the wizard tells you whether or not the installation succeeded.

Getting Started

Finally, the best software packages tell you what to do next. What are the first steps, how to get started, how to get help. Most software, when installed, leaves you with a startup icon, and that's it. Never overestimate the level of expertise of your users; as incredible as it may seem to you, there are still folks that don't know how to find and start software programs they just installed.

  • 5
    The illusion that the installation process was quick and painless. – Rotem Sep 21 '14 at 18:38
  • 6
    At the cost that the software itself is not quick and painless. An annoying installer is easier to forgive than an annoying application. – nwp Sep 21 '14 at 19:02
  • 18
    Asking somebody to agree to terms after installation seems to me to be a problematic way of going about things. – Eric King Sep 21 '14 at 21:42
  • 6
    Your first reason "Informed Consent" is bogus. Automated installation doesn't mean silent installation without the user's even knowing they're installing it. Automated installation means that you start the installer and it takes care of the rest from there. The mere fact of starting the installer itself is already consent, if the user want to figure out what a program does before installation, then they have already long figured that out from the website where they downloaded the installer from or the package description in the package manager. – Lie Ryan Sep 22 '14 at 1:25
  • 8
    @LieRyan: Many Windows Installer programs include a "silent" switch. If a person is smart enough to know about that and use it, then yes, it is informed consent. – Robert Harvey Sep 22 '14 at 1:29
21

From what I've seen, it really boils down to the whole "Windows experience". That is, making any action or option as visible to the user as possible.

The reason I say this is that a GUI is not necessary for installation. MSI-based installers can be silently installed in a similar fashion to Linux-based packages. The GUI is completely optional, but again is there to give the user a visual representation of what is going on in the background.

In Linux, this is easily accomplished by use of a package manager. If I want to install a package, I have to specifically request that package. For the less technically include, usually a GUI-based package manager is available for the user to install desired software.

In Windows, no such thing exists. If a user wants to install Windows-based software, they have to find and download the software separately. There is no standardized tool to assist the user in configuring and installing the software. Therefore the install GUI that comes bundled with each software is very much alike the package manager GUI in Linux. It simply exists to allow the user to configure the installation and track its progress.

There are plenty of cases where an install GUI is not necessary due to the presence of a management GUI. For example, the popular Steam platform will install any games or software available through the steam store automatically with the assistance of install scripts.

Another great example would be SCCM. System Center Configuration Manager (SCCM for short) is a software used to manage groups of computers on a network. It includes the ability to make software available for install through a GUI called Software Center. Any MSI-based installer can be made available to install at the click of a button. In the environment that I work in, we have software ranging from Adobe's Creative Suite to things such as WinZip available. All a user needs to do is search the catalog to find what's available, click install, and wait for confirmation. It is almost the exact same process as if I wanted to install something on my home computer running Linux Mint.

  • 5
    "That is, making any action or option as visible to the user as possible." -- Definitely. Just like Windows will happily detail what updates it installs in the background; who would be satisfied with a simple message "Reboot to finish installing 67 updates."? – Raphael Sep 22 '14 at 11:47
  • Long before OS X's App Store or Homebrew, the installation process was still automatic. Centralized package management isn't the main driver here. – james_womack Sep 22 '14 at 21:56
6

Window use msi files, which largely work the same way as other program packages. They can be installed silently by setting a flag, but the default behaviour is that Windows present a GUI with all the configuration options defined in the package. To a normal user msi files therefore behave just like exe installers.

As a user who will often choose to change the defaults, I find that using the GUI is the easiest way to learn what options I have when installing a program, and it is convenient for changing them at the same time.

Concerning the possibility of an installer that is by default completely silent. On Windows it is customary that the user is allowed to choose the installation directory, you'd get on the wrong side of a lot of users if you didn't allow that option in a GUI. Also, users are used to see at least a minimum of dialogue when installing a program, if you show nothing they might think that the installation failed.

5

Developers do make installation automatic on Windows, but not all software is offered in this format. Contrary to many other answers here, Windows does have a standard and widely used "package manager" (bear with me), but it is relatively little known even among developers because it targets enterprises, not end users.

It's called SCCM and is used by every large enterprise to manage their Windows installations. In addition to being able to manage packages (push software and dependencies to client machines), it also manages updates to Windows and other installed software.

SCCM is not used even by technical users for managing their own computers. It isn't really meant to offer much of a benefit for managing a single computer; in fact it may not even work without Active Directory / non-domain-joined machines. So I wouldn't really call it a Windows package manager, even if it does manage software & update deployment.

However, my point here is that there are automatic installations on Windows, and they are widely used – by system administrators in large enterprises. If you see a product offering an .msi download, it's probably because it wants to be automatically deployable to thousands of machines via SCCM.

Disclaimer: I myself have not used SCCM, and know little about it, so I could be wrong about some subtleties above.

0

On the technical side, Windows tends towards greater integration between programs (via the registry) than Linux. That requires an official 'installation' process rather than just copy the program to your hard drive (for example, to enable context menus). Some OSs (Mac OS for example) will do some of that behind the scenes or on first run, but Windows prefers to make it an explicit part of installation.

On the non-technical side, Windows prefers the model of set it and forget it. Linux, for example, tends not to have as much set up (installation options), but often you use flags when you run a program - because you're used to doing so; or you change options once you're in a program. Windows prefers the experience of set options during a designated time (installation), and not expect a user to use command line flags or otherwise set options each time a program is run. This decreases flexibility (as you can use different flags each time), although often this is exposed for power users (options in a shortcut for example); but provides a simpler interface for most users, and allows the developer to present to users a clean interface for setting the necessary options and defaults.

0

Disclaimer: This is largely speculation, however is based on my experiences packaging Windows applications for installation & deployment.

Its all down to what the de-facto standard for installation is on a platform. On linux the standard is to use package management tools such as apt (dpkg/Debian based) or yum (rpm/RedHat based) for installation. Once you have provided a package for deployment building a wizard is pretty much a waste of time as the vast majority of users will just use the package anyway (as its the standard).

Converely on Windows the standard is a GUI based installation. There are alternatives, however none of these alternatives are suitable as 100% replacements for an installer:

  • There are package management tools (such as Chocolatey, however none of them have reached critical mass yet - if you only provide package management based installation then many users are going to be annoyed that they need to install some other piece of software just to install your program (think of how annoying download managers are). Most package management tools are also targeted firmly at technical users, and so if your software isn't intended for that userbase then providing a package for Chocolatey is going to be a complete waste of time as nobody will use it.
  • Some software is suitable for XCopy deployment, however this only works for relatively simple software products. Its good for users who want to install to a flash drive (for example), however for everyone else its faff. As a result many projects that choose to release files for XCopy installation also provide an installer.
  • Chocolatey provides a command line snippet which downloads and runs the installation. Again, while its quick and works well for technical users, non-technical users will struggle and be put off by this installation method.

If your software is complex enough to require deployment its pretty much mandatory to provide a GUI installation as its what users expect. There are also a number of products which make building these wizards fairly easy, so a providing a GUI based installer is generally one of the lowest-effort options in terms of development time. Once you have a GUI based installer you need to evaluate the cost-benefit ratio for each of the above (remember that new featues start with minus 100 points), and for many products its simply not worth the effort to build and maintain these alternatives.

Note that installers with some sort of "silent" mode are pretty common on Windows, however this tends not to be the default mode - again as its not the standard. Most Windows users would find an installer that immediately installs itself as soon as you run it fairly disconcerting.

Not the answer you're looking for? Browse other questions tagged or ask your own question.