Windows application installers – the “sanitation engineers” of Windows

For most of my career at Microsoft, I worked as a Program Manager on Windows Setup. No, not the Windows installer. Windows Setup – the tools and technologies that took a computer either from an earlier version of Windows or a bare PC, to an installation of Windows. But in this role, I still had to deal with the ramifications of how Windows applications were installed, and often would see the work of other teams incorporated into Windows setup – often teams that you wouldn’t assume would need to be there during setup (and sometimes, you’d be right).

In our weekly Monday meeting at work today, we got to talking about the Windows 8 App Store, and how the rigid rules for Metro Apps in it will mean certain things we’ve all become used to with Windows applications will be no more. For example, application product keys, duct-taped custom product activation/licensing experiences, customizable installs (install feature “a”, but not feature “b”), installation directories, MSI’s, etc – all will be gone.

Personally, I think that’s great.

Through my travels throughout Microsoft - in particular when I went to other teams and talked with them (as well as when I talked with corporations and ISV partners), there were two common traits about how “setup” (the thing that put a team’s binaries down on the system) was built.

  1. It was an afterthought – rarely did a team take two steps back and rethink how their application was installed. Why would you? It’s a cost sink that doesn’t show return (unless frustrated users come into your value equation).
  2. It was the thing you put on the “new guy” – rarely was setup held in any high esteem.
  3. It was the La Brea Tar Pits of any “to-do” items that the app might ever need – hence, the “sanitation engineers” of Windows.

Windows Setup itself was an extreme example. But even if you take Office into account, it’s painful to look back at how complex setup applications are/were. Recently in most applications, I believe there has been a general tendency to minimize the setup screens, minimize the configuration during or just after setup, etc.

During the exercise to overhaul Windows Longhorn setup (I don’t call what I worked on Vista, FWIW), we caught unbelievable grief from within the Windows organization because we were hard-locking the locations for Program Files and the Windows directory This had, for several versions, been configurable – handy if you’re the kind of masochist who wants to install two versions of Windows in the SAME partition. I should see if I still have some of the flame emails I received. Nothing showed me we were doing the right thing quite like cheesed-off geeks. How much time and effort we had put into supporting this, version after version, as a complete edge case. Nerd porn. It had some utility, but really… how many consumers and enterprises (the people who pay for Windows) ever used that?

Windows itself lost the whole “Add/Remove Windows Components” during setup as well when Vista shipped. Again – killing a feature that very few users used, but that added weight to setup, to the setup experience, and to user complexity.

For me, when I see that Windows 8 Metro-style apps won’t include the custom “glue” they’ve had for many years (including the incredibly complex MSI infrastructure), it makes me excited for the future. Fewer moving parts to cut fingers, less duct-tape code that doesn’t really need to be there. Less garbage to worry about.