The Design of the Mac OS X Shutdown Feature
Joel Spolsky posted a blog entry about how offering choices to end users is not always a good thing and illustrate his point with the redesigned Start menu in Vista. Moishe Lettvin, who worked on that feature while at Microsoft (he now works at Google) gives some insights into the process that led to this result.
I happen to strongly stand in Joel's corner on the issue of options. Some will argue in fact that I sometimes go too far in my quest to simplify. I frequently argue that it is the job of the software designer to make choices on behalf of the user. That's what designing is all about. I'll also note that there's no one in the opposing corner arguing that all those options (or even more of them!) would make for a better product: Moishe essentially elucidates the process that led to this result, without arguing that the result is good :-)
Interestingly, the process to design this same feature in Mac OS X was very different, which probably accounts for the different result as well.
First, I sympathize with the release engineering issues for a system as complex as an operating system. A lot of the difficulties that Apple ran into with Copland were due to an inability to manage this complexity. The scope of the project was just more than the organization and processes we had could deal with. The success of Mac OS X has been due in part to an ability for Apple to succesfuly manage a project this complex to the point where full builds of the OS could be done reliably every week. To that extent, considering the issues described by Moishe, shipping Vista at all is quite a feat, indeed.
But the biggest difference probably was that only a few people were involved in the whole decision making process: a UI designer, a kernel engineer, a UI engineer, a Senior VP with very strong views about this feature (no, not Steve, but the "strong views" trait tends to be acquired by osmosis amongst by the senior management at Apple) and maybe a couple other people. There were no lengthy weekly meetings about this. The whole thing got designed and implemented over the course of a few months (not full time by any of the people involved). There were a few spirited discussions and email threads about what the "right thing" was. The Senior VP had the final call on it (and everyone involved was clear on who the decision maker was on this).
I actually think that the result could have been even better than what we ended up with. I argued against including Restart, Shut Down and Sleep in the Apple menu. How often do you restart your computer, really, especially as a regular end user? On the very rare time when you need to do so, why not just Shut Down, then power up again? And how about Shut Down? Shouldn't the power button that you used to turn the computer on be the same key you press to turn it off? Also, since pressing the power button brings up a confirmation dialog, providing the options to restart or shutdown there should be sufficient. We even had "one key" keyboard shortcuts, so that to restart the computer all you had to do was press the power key, then R when the dialog was displayed and the Restart option was selected. And finally, how often do you need to manually set your computer to Sleep? I just close the lid of my MacBook and it goes to sleep: a simple mechanical, physical interaction: no need for a software command. On desktop systems, Sleep can be triggered automatically after enough idle time has elapsed.
I still regret I was not able to prevail in those arguments.
One of the most endearing features of the iPod for me is that it has no on/off switch. I suspect the result would have been different if this Sr. VP was in charge: there probably would be Shutdown, Restart and Sleep available in a menu somewhere :-)
Then there's the case of the Log Out command. A useful, if rarely used command. I did not argue that this one should be done with, however our dear Senior VP insisted that it should have a keyboard shortcut, and that shortcut should be Command + Q, the same keyboard shortcut you use to quit applications. I mean, how often do you logout that you need a keyboard shorctut for it? But if you're going to pick a shortcut, Command + Q is a terrible shortcut, because it's way too easy to get the context wrong, not realize that the Finder is the frontmost app, instead of, say, Safari and logout when you meant to Quit. For a while, we had some internal builds implemented that way. I tried to argue we should not have a keyboard shortcut for Logout, but since NextStep had one, it was a very difficult argument to win. So instead, I convinced our dear Sr VP that it would be even better if we picked a keyboard shortcut so that from any app, without having to switch to the Finder first, you could log out (since that was such a frequent operation in his mind). That's why we ended up with Command + Shift + Q to Log Out. Not that this command deserved a keyboard shorctut in the first place, but since not having one was not an option, this was the best outcome I could think of to avoid having it be triggered by accident.
This also goes to show that the design process at Apple is not exactly perfect either :-)
I happen to strongly stand in Joel's corner on the issue of options. Some will argue in fact that I sometimes go too far in my quest to simplify. I frequently argue that it is the job of the software designer to make choices on behalf of the user. That's what designing is all about. I'll also note that there's no one in the opposing corner arguing that all those options (or even more of them!) would make for a better product: Moishe essentially elucidates the process that led to this result, without arguing that the result is good :-)
Interestingly, the process to design this same feature in Mac OS X was very different, which probably accounts for the different result as well.
First, I sympathize with the release engineering issues for a system as complex as an operating system. A lot of the difficulties that Apple ran into with Copland were due to an inability to manage this complexity. The scope of the project was just more than the organization and processes we had could deal with. The success of Mac OS X has been due in part to an ability for Apple to succesfuly manage a project this complex to the point where full builds of the OS could be done reliably every week. To that extent, considering the issues described by Moishe, shipping Vista at all is quite a feat, indeed.
But the biggest difference probably was that only a few people were involved in the whole decision making process: a UI designer, a kernel engineer, a UI engineer, a Senior VP with very strong views about this feature (no, not Steve, but the "strong views" trait tends to be acquired by osmosis amongst by the senior management at Apple) and maybe a couple other people. There were no lengthy weekly meetings about this. The whole thing got designed and implemented over the course of a few months (not full time by any of the people involved). There were a few spirited discussions and email threads about what the "right thing" was. The Senior VP had the final call on it (and everyone involved was clear on who the decision maker was on this).
I actually think that the result could have been even better than what we ended up with. I argued against including Restart, Shut Down and Sleep in the Apple menu. How often do you restart your computer, really, especially as a regular end user? On the very rare time when you need to do so, why not just Shut Down, then power up again? And how about Shut Down? Shouldn't the power button that you used to turn the computer on be the same key you press to turn it off? Also, since pressing the power button brings up a confirmation dialog, providing the options to restart or shutdown there should be sufficient. We even had "one key" keyboard shortcuts, so that to restart the computer all you had to do was press the power key, then R when the dialog was displayed and the Restart option was selected. And finally, how often do you need to manually set your computer to Sleep? I just close the lid of my MacBook and it goes to sleep: a simple mechanical, physical interaction: no need for a software command. On desktop systems, Sleep can be triggered automatically after enough idle time has elapsed.
I still regret I was not able to prevail in those arguments.
One of the most endearing features of the iPod for me is that it has no on/off switch. I suspect the result would have been different if this Sr. VP was in charge: there probably would be Shutdown, Restart and Sleep available in a menu somewhere :-)
Then there's the case of the Log Out command. A useful, if rarely used command. I did not argue that this one should be done with, however our dear Senior VP insisted that it should have a keyboard shortcut, and that shortcut should be Command + Q, the same keyboard shortcut you use to quit applications. I mean, how often do you logout that you need a keyboard shorctut for it? But if you're going to pick a shortcut, Command + Q is a terrible shortcut, because it's way too easy to get the context wrong, not realize that the Finder is the frontmost app, instead of, say, Safari and logout when you meant to Quit. For a while, we had some internal builds implemented that way. I tried to argue we should not have a keyboard shortcut for Logout, but since NextStep had one, it was a very difficult argument to win. So instead, I convinced our dear Sr VP that it would be even better if we picked a keyboard shortcut so that from any app, without having to switch to the Finder first, you could log out (since that was such a frequent operation in his mind). That's why we ended up with Command + Shift + Q to Log Out. Not that this command deserved a keyboard shorctut in the first place, but since not having one was not an option, this was the best outcome I could think of to avoid having it be triggered by accident.
This also goes to show that the design process at Apple is not exactly perfect either :-)
