Everybody hates Firefox updates Original at: http://evilbrainjono.net/blog?showcomments=true&permalink=1094 It pains me to write this article, but I've got to get this off my chest at some point. On Saturday I was waiting around a classroom at 上海外国语大学 (Shanghai International Language University) with a bunch of other prospective students, waiting for our numbers to be called for oral placement exams. I was chatting with a random Canadian woman. She found out I worked for Mozilla and I got that sinking feeling, like "here we go again" because I knew exactly what was coming up. She proceeded to tell me the story of how she switched to Chrome because Firefox kept breaking her extensions and asking her to restart. I've heard this story a lot in the last year. I used to be proud to say I worked (or had worked) for Mozilla, but a careful listener might detect a certain sheepish quality that has crept into my voice lately when I name-check my former employer. And this is why. Even on the opposite side of the world, it's always the same story: "I used to love Firefox", but "I switched to Chrome because my extensions stopped working" or "I switched to chrome because Firefox kept asking me to restart". I've had this conversation with dozens of people across three continents. Not one person has had anything good to say about the rapid release process. Nearly 100% of my highly unscientific survey volunteered the information -- unasked, unprompted -- that the rapid release process had ruined Firefox for them. Of course nobody says "rapid release process" because people don't know that's what it was called. They might start out complaining about version numbers, or some plugin that doesn't work right, but when I ask enough questions to get to the root of the problem, it's always the rapid release process. It's not like we weren't warned. Lots of people in the community tried to tell us that this was a bad idea. But somehow, despite being an ostensibly community-driven organization, somewhere along the line we learned to tune out naysayers from the community. The decision to go rapid-release came from the top down. The official party line was that rapid releases were going to be awesome, because new features and bug fixes would always be delivered to end users within a few weeks. (As opposed to the 14-month wait between Firefox 3.6 and Firefox 4.) Users who pointed out flaws in this plan were dismissed as being just a loud minority, or just irrationally afraid of change, or just focused on some marginal edge-cases which would be easy to fix once we got the hang of the new release cycle. (I wish I could say that I spoke out against the groupthink, but to be completely honest, my thoughts at the time were "Release every 6 weeks? There's no way that's ever going to happen." I thought the problem would be implementing the strategy, not that the strategy itself was flawed.) I've been thinking a lot about the fundamental disconnect between the developers and the users. I think it comes down to: Software developers have a perverse habit of thinking of updates/new releases as a good thing. It's hard to convince a software developer otherwise: their salary depends on outputting a constant stream of updates, so of course they think updates are good.I used to believe it. Only after I heard from dozens of different users that the rapid release process had ruined Firefox did I finally get it through my thick skull: releasing an update is practically an act of aggression against your users. The developer perspective is "You guys are going to love this new update we've been working on!" The user perspective is "Oh god here comes another update, is there any way I can postpone the agony for a few more days?" Updates suck for three reasons: 1. The download/restart takes forever and interrupts your work with a bunch of intrusive dialog boxes. 2. The update may break stuff that you counted on, either by removing features you were using, or by breaking compatibility with other software you use. Maybe the developers never tested your use case, or worse - they tested for it but decdided it didn't matter because only 2% of users used it. Tough luck to you if you're one of those 2%. 3. If they changed the interface, your productivity will be lower than usual until you've spent a bunch of time learning a new interface. Even if the new interface is "better", in some theoretical way, to some hypothetical average user, re-training yourself to use it is nothing but a time sink. This doesn't mean "never release an update". Sometimes you have to fix a critical bug or add a critical feature. What it means is that you should make sure the benefit to the users outweighs the pain -- either by making the benefit greater, or by making the pain smaller. Of course this is a very hard thing to get right. There's no hard rule for telling how big an improvement something has to be in order to be worth the pain of an update. Every software company gets this wrong sometimes. So many companies release updates which radically change the interface for no significant gain -- they seem to be moving sideways rather than forward, changing things around for the sake of change. Maybe their UI designers are bored and need to do something to justify their jobs, I don't know. After years of aspiring to improve software usability, I've come to the extremely humbling realization athat the single best thing most companies could do to improve usability is to stop changing the UI so often! Let it remain stable long enough for us to learn it and get good at it. There's no UI better than one you already know, and no UI worse than one you thought you knew but now have to relearn. I have another theory, too: When software companies get to a certain size, they start taking their users for granted. They start treating their users as pawns in a battle against some other company. Faceless millions. Gotta copy everything the other company does, or risk falling behind. So they end up doing everything the other company does whether the users want it or not, and probably doing a crappy job to boot. In our case, we started thinking of everything in terms of the battle against Google Chrome. Oh no, Chrome is doing such-and-such; we'd better do something equivalent or we'll fall behind! We thought we needed a rapid update process like Chrome. We were jealous of their rapid update capability, which let them deploy improvements to users continuously. We had to "catch up" with Chrome's updating capability. Credit where it's due: the way Google handled Chrome updates was very, very smart. They recognized that updates are one of the hardest things to get right, so they solved that problem first, before releasing version 1. The first release of Chrome was little more than an empty box of a browser, but it was wrapped around an excellent updating system. This let them gradually transform that empty box into a full-featured browser, without the users ever realizing they were getting updates. Firefox did not do such a good job with rapid releases. I've written before about the specific mistakes we made, so I won't go into detail again. To summarize: we did the updates in a very intrusive way, requiring lots of user attention, which made people annoyed because it happened so often. When people restarted after an update to find no visible difference, they wondered what was so important about that update. (Remember the rule that the benefit of the update needs to outweigh the pain? We broke that rule.) Worse yet, we didn't do enough to preserve add-on compatibility, making the updates extremely disruptive to people who depended on certain add-ons; and we kept going with our old version-numbering scheme even though the meaning of the numbers had changed completely, leading to mass confusion. We had plenty of time after Firefox 4; we should have used that time to perfect an unintrusive, add-on-preserving update system, and then unrolled it along with a brand-new version numbering system to clearly convey a break from the past. (Easy for me to say now; hindsight is 20-20.) Ironically, by doing rapid releases poorly, we just made Firefox look like an inferior version of Chrome. And by pushing a never-ending stream of updates on people who didn't want them, we drove a lot of those people to Chrome; exactly what we were trying to prevent. We assumed our users loved Firefox enough that they would put up with the irritation of updates in order to have a better product. Software companies would do well to learn this lesson: anything with the phrase "users love our product" in it isn't a strategy, it's wishful thinking. Your users do not "love" your software. Your users are temporarily tolerating your software because it's the least horrible option they have -- for now -- to meet some need. Developers have an emotional connection to the project; users don't. All software sucks. Users would be a lot happier if they had to use a lot less of it. They may be putting up with yours for now, but assume they will ditch you the moment something 1% better comes along -- or the moment you make your product 1% worse. Marketers always say that "a brand is a promise to customers". What did the Firefox brand used to stand for? What does it stand for now? I've sat through a lot of internal discussions about what sets Firefox apart and what qualities we wanted people to associate with it. Our favorite was something like "Firefox answers to nobody but you". We wanted people to think of Firefox as the browser that puts them in full control -- whether by having the best customizability, the best selection of add-ons, the best privacy controls, or just generally giving the user complete control of their data (i.e. not locking it up in a proprietary database or using it to sell advertising.) A lovely promise! But then we did the opposite of putting users in control: we pushed out a seemingly endless series of updats that nobody was asking for, and provided no way to opt-out: there was no "I'm happy with Firefox 4" button, no "Switch to the long-term support version" button, no "I need my add-ons to keep working" button. The best you could do was ignore the update until later. Eventually you'd have to restart your computer, and the update would sneak in. This isn't "Firefox answers to nobody but you", it's "Firefox answers to nothing but Mozilla's arbitrary six-week update schedule". Whatever we wanted the brand to mean, Firefox is now firmly associated in people's minds with "that browser that kept breaking all my add-ons with unwanted upates". It's gotten much better now -- the updates require much less manual intervention and add-ons break much less frequently -- but it's too late. People who got fed up and ditched Firefox are going to be hard to win back. Rapid releases killed Firefox's reputation.