Here I propose an alternate user experience that takes advantage of the advances introduced in Windows 8, and an extension that Windows should implement in the near future. The proposed workflow won't be ideal for everyone or every scenario, and Windows should provide an option to disable it if they choose to implement my recommendation. But for the 90% case, this will be a huge win.
ContextFor the million or so Windows tablets owners, there are many annoyances that we have to deal with on a daily basis. Much print has been dedicated to chronicling the sub-par experience of owning a Windows tablet, so let me not repeat what you already know. I have patiently adapted my usage patterns to suit the vagaries and idiosyncrasies of Windows 8. Windows 8.1 improved many things, but it left untouched what I reckon is the single, worst user experience in Windows today - Windows Update.
The Usability Black HoleThe Windows Update user experience has stayed almost unchanged, user experience wise, since when I worked on Vista at Microsoft. The default setting is for updates to be downloaded in the background. Once they are downloaded, Windows picks an inopportune time to throw up a dialog to install updates and restart Windows. Once dismissed, it chooses to harangue you until you cave in. The experience on Windows 8 is particularly insidious:
1. The dialog is *always* modal
2. If I choose to restart, my system's current state is not restored. In other words, open application windows are not restored.
An alternate approachWindows 8's new model for Metro-based applications mirrors that of modern mobile operating systems. Applications are "hibernated" when they are in the background to make way for foreground applications and background services. Let's take advantage of this application model, available telemetry data in Windows, and a proposed extension to the application model for desktop applications, shall we? Let's get started.
1. Prepare for UpdatesFrom the first day the system is used, use telemetry to record times when the computer is idle. Once a requisite number of data points have been collected, the system can deduce the best time to update itself.
2. Download updatesDownload updates in the background.
3. Opportunistically install updatesDuring the next update install window, deduced from telemetry data in step 1, perform the following:
1. Save the state of all running Metro applications - background and foreground
2. Save the state of all running desktop applications, like the OS does today when hibernating (more on this later)
3. Save the order of applications, Metro and Desktop, for restoration when the user logs in (more on this in the next section)
4. Start installing updates
5. Reboot, if necessary
6. Finish installing updates
7. Present the login screen to the user
4. The Clincher: Updated post-login experienceWhen the user logs in to the system after updates have been installed, the operating system restores the last used foreground application in both Metro and desktop. In other words, the user is brought back to the application he/she was using instead of being taken to the Start screen with tiles or to the vanilla desktop (8.1 onwards). Ergo, the fact that the system was updated is transparent to the user.
The Upside1. Users are always using the most secure version of Windows there can be
2. Updates are installed seamlessly, with minimal user intervention and interruption to their workflow
3. Windows Update becomes a *true* background service, like it should always have been
4. No more Windows Update! (3) covers this already, but typing this was cathartic.
5. Windows catches up to what Mac OSX, iOS and Android (I believe) are already doing today