I am writing while angry. One of my current classes is in Flash. As a result, I’m installing Flash CS3 at home so that I can experiment with it outside of the school’s labs and so that I can work on Flash assignments at my own pace.
Flash’s installer is terrible.
Among the first things that it does is to boldly fall face-first into the pavement of prerequisites. It tells me that it’s installing some browser widgets and that I must quit Firefox. This is shoddy design. I accept, happily, that in the course of installing Flash, I must install some Flash-viewing software for my browser. However, you don’t get to restart my browser. Firefox already has a mildly elegant mechanism for installing extensions to its functionality. It installs them and then tells me “okay, restart the browser when you want to use this.” It does things on my schedule. Not using that mechanism, when it exists, is poor workmanship. As it happened, I was at a low ebb of Firefox usage at the time. Normally I have 50 tabs open spread across multiple windows, making restarting the browser a bit time-consuming.
I put my attention elsewhere and kept working with the installer running in the background. Then I rebooted. Excuse me, that was the wrong pronoun. It rebooted. This splits into two problems. One is that Windows programs very often demand a system reboot unjustifiably. I have to suppose that that’s related to problems with Windows itself. The other is that Flash CS3 in particular rebooted without giving me a choice in the matter. Either the installer stole focus and it heard the right keystrokes for “go ahead and reboot” in the middle of the command I was typing, or it just rebooted without giving me a confirmation dialogue box. The first is extremely bad, and the second is demonstrate-the-power-of-this-fully-armed-and-operational-battlestation bad. I’m not going to bother spending time on why the second one is bad - if you don’t get that it’s bad to do that and why, I forbid you to become involved in any way in creating software. If you meet the person responsible for this feature of the Flash installer in an alcohol-serving setting, throw a drink in their face.
Stealing focus is one of the classic user experience sins. It is pure hubris. It says “this application exists for our needs, not for our users’ needs.” That is pride, and that is a great reason for your users to take their business somewhere else. If your product doesn’t exist for your customers’ needs, why should they (we) care about it? Back on stealing focus: even though Mac OS X’s bouncing Dock icons can get obnoxious, they’re at least an intuitive way of communicating “hey, this application needs your attention!” Windows has flashing taskbar entries and system-tray notifications (which are usually used badly, but that’s no reason not to use them). Your application shouldn’t steal focus from what the user is actually doing for anything short of “your computer will physically explode unless you click a button in the next 30 seconds.”
I learned this from Vincent Flanders, myself. It is a pole star of design. You design for your users, not for yourself or for your organization. Even if you are a rock star like The Steve, you design for users. Even if your application is (like Adobe’s Flash creation tools) targeted at developers, those are your users, and you design for them. The targeting of developers actually makes Flash’s terrible installer even more problematic. If the profit center for Flash were content consumers, it’d be at least vaguely justifiable for the content creation software to have problems. But instead, Flash makes money by selling content creation software. It is free to content consumers. You’d suppose that Adobe would like to make the content creators happy, then, since they’re the ones that are actually giving Adobe money.
This is all moderately predictable, too. Despite the existence of Silverlight (too little, too late), Flash was essentially a monopoly for a while. Predicting that monopolies will deliver shitty products is pretty easy. It’s what monopolies do, and it’s part of why HTML5 is a better solution than Silverlight. Silverlight would have made things into a competition between Adobe and Microsoft, which is better than a monopoly, but not as good as the HTML5 solution, which doesn’t require installing additional software and lets people concentrate on more interesting problems than embedding video. Silverlight is just more of Flash’s problems: not searchable, poor accessibility, security issues. HTML5 has its own problems, but they’re vendor-independent.
I will take this class, I will attain baseline competency in Flash, and I will keep Flash the hell out of any web site I author. It is a product whose time is up.