The Secret of Success: Suck Less

When I started working on Bugzilla in 2004, it was a difficult time for the whole project. There were tremendous problems with the code, we hadn’t gotten a major release out in two years, and a lot of the main developers had left to go do paid work.

But eventually, thanks to a bunch of new members in the Bugzilla community, we released Bugzilla 2.18. Hooray! Bells rang, birds sang, and there was much rejoicing.

However, in the space between Bugzilla 2.16 (which was before my time) and Bugzilla 2.18 (which was the first release that I helped get out), something very strange happened–we developed serious competition. All of the sudden there were a bunch of new bug-tracking systems, some of them open-source and some of them not, that people were actually using.

At first it wasn’t too worrisome. Bugzilla was pretty dominant in its field, and it’s hard to lose that kind of position. But as time went on, there was more and more competition, and some people were predicting doom and gloom for Bugzilla. We were a tiny group of completely unpaid volunteers, and some of these competing products were being made by companies whose marketing and development resources absolutely dwarfed us.

And yet, with every release, our download numbers kept going up. And always significantly–30-50% more than the previous release, every time.

And then we hit Bugzilla 3.0, and our download numbers nearly doubled. And they’ve kept going up with every release from there. Nowadays we get over 10 times the number of downloads per release that we did in 2004.

So how did we pull this off? Well, as far as I can tell:

All you have to do to succeed in software is to consistently suck less with every release.

Nobody would say that Bugzilla 2.18 was awesome, but everybody would say that it sucked less than Bugzilla 2.16 did. Bugzilla 2.20 wasn’t perfect, but without a doubt, it sucked less than Bugzilla 2.18. And then Bugzilla 3.0 fixed a whole lot of sucking in Bugzilla, and it got a whole lot more downloads.

Why is it that this worked?

Well, when people are deciding at first what software to use, they have varying criteria. Sometimes they just use what’s presented to them by default on the computer. Sometimes they have a whole list of requirements and they do lots of research and pick the software that has all the features they need. But once they’ve picked a program, they will stick with it unless there is some compelling reason to leave. It’s not like people constantly are looking for new software to replace yours–they only start looking when your software just won’t stop sucking.

As long as you consistently suck less with every release, you will retain most of your users. You’re fixing the things that bother them, so there’s no reason for them to switch away. Even if you didn’t fix everything in this release, if you sucked less, your users will have faith that eventually, the things that bother them will be fixed. New users will find your software, and they’ll stick with it too. And in this way, your user count will increase steadily over time.

You have to get out releases frequently enough that people believe that you really will suck less, of course. If your new release never comes out, then effectively, your current release never stops sucking.

But what happens if you do release frequently, but instead of fixing the things in your software that suck, you just add new features that don’t fix the sucking? Well, eventually the patience of the individual user is going to run out. They’re not going to wait forever for your software to stop sucking.

I remember a particular piece of software that I used every day for years. It had a lot of great features and a nice user interface, but it it would crash two or three times a week. I really liked the software in general, but man, the crashing sucked. I reported a bug about it, and the bug was ignored. I kept using it through 10 new releases, and it still crashed. The upgrades brought lots of new features, but I didn’t care about them. Remember, the feature set only mattered to me when I first picked the software. Now I just needed it to suck less.

But it never did.

So eventually, I went and looked for another piece of software that did the same thing, switched over, and I was happy with that one for a while. But guess what? It had a bug that really sucked. It didn’t happen very often, but when it did, boy was it a problem. But it sucked less than my old software, so I kept using it. Until one day, my patience ran out (after maybe 7 upgrades of the software), and I switched again.

Now I’m using a program that has half the feature set of either of the previous two programs. But, as a user, I’m the happiest I’ve ever been with this type of software. Because you know what? My new program sucks hardly at all. I mean, there are little things about it that suck, but supposedly a new release is coming out soon that will fix some of that sucking, and so I’m okay with it for now.

Would I have guessed this secret of success before I started working on Bugzilla? No. I would have told you the traditional wisdom–that a product succeeds or fails based on its feature set and user interface. But after 5 years on this project, managing our releases and watching our download count, I can tell you from my factual experience this strange thing: all you have to do to succeed as a software project is to suck less with every release. It doesn’t matter how much competition you have, or how many buzzword-friendly features you can cram into your interface. Just suck less, and you’ll succeed.

-Max

66 Comments

  1. This is an awesome hypothesis, and makes it clear why it is always a good idea to ensure that low-hanging fruit is never neglected in favour of bigger gains – because people won’t notice the new features so much if they’re still annoyed by the old bits that suck. This is one reason I’m thrilled that, for instance, there’s a current drive in Ubuntu to fix “100 paper cuts” in time for the next release, where a “paper cut” is basically a small thing that sucks.

    – Chris

    • Thanks, Chris! 🙂 Yeah, I think that’s definitely true–the low-hanging fruit is so easy to miss sometimes when you’re looking at the huge features, but it’s amazing how important it can be. 🙂

      -Max

  2. You’re absolutely right. As an example I’m using chromium for some time now and those guys are really hard working and it sucks less with every release. Some time ago they had a bug that prevented tabs with opened js or flash from closing and I’ve almost quit, but they fixed it in two days.

    and btw. I’ve made me interested in bugzilla 😉

    • Hahaha, thanks! 🙂

      Yeah, I think Google is generally pretty good at the whole “sucking less” thing. They usually don’t go in for crazy feature sets once a product is released. It’s pretty much just all about fixing the sucking, after that point. (And maybe adding a few extra optional things in that don’t interfere with people’s general workflow at all if they don’t enable them.)

      Cool that it made you interested in Bugzilla, too! 😀

      -Max

  3. Like Valve’s Steam app. Sucked big time in the beginning, but they released less suck before I crapped it, and then even less suck with the next release &c.

    • Nice example. 🙂 Yeah, when Steam first came out, nobody used it. It was like, “What is this random crapware that’s coming with my Half-Life?” 🙂

      -Max

  4. Adobe GoLive had as many or more features than Macromedia Dreamweaver. It crashed so much I learned to obsessively hit save. I was far happier after switching.

    Android apps were a little buggy at first, but consistently get better with every iteration.

  5. Not to put down the author or anything but this is the main idea for every software product out there which comes in the market – To suck less than the previous one and the numbered version increments. Some software companies don’t improve much in every version but I think the author is rather stating the obvious fact in the software world.There are lot other factors, you got to sometimes revolutionize the product like firefox which just totally changed overnight the browser feel and apps.

    • I’m the author, so you’re welcome to just say “you”, if you’d like. 🙂

      Perhaps it is obvious to you and to me, but sometimes it’s actually the emphasis of importance that matters in data, not just the existence of the data itself.

      As far as Firefox goes, I’d say that also really just took the Mozilla Suite and took a lot of the sucking out of it, and all of the sudden it was enormously popular. I’d say that “making the browser suck less” may have even been one of the main design goals of Firefox (though of course stated differently, or not stated at all), as somebody who, while not actually involved in Firefox development, was generally around the Mozilla community during the time of its development.

      -Max

      • A good article and I have to agree with your main point, it applies I think to most of the successful applications out there…sorta. Take firefox for example. When it first was envisioned as Phoenix it was designed as a lightweight, unbloated, standard supporting forward thinking browser. For quite a while it WAS a bloated, slow, no real advancements browser but it was becoming ever more popular. Even now, I’d still say its pretty bloated (and still seems to memleak like crazy compared to other options) for what it does. Yet, its crazy popular.

        Or, to an extreme take Windows Vista. It was a necessary rework, far more forward thinking than previous Windows OSs yet because of a very rough release (but when has any major, massive new os release been “smooth?”) it was brutalized by many of the “knowledgeable” IT people even though its massively improved with each patch and SP. Now, Win7 (which is Vista SP2.5 really) is getting great press and reviews. So, is it always fixing bugs and making it suck “less” that wins users or good press?

        Both work I think. Sorry if this rambles a bit, been a long day 😉

        • Well, I think Firefox 1.0 sucked WAY less than the browsers that came before it.

          From the user’s perspective, Vista sucked because Microsoft took so long to release it that there were serious compatibility issues. When you release a new OS every two years, ISVs keep up. When you release one every seven years, people get complacent and think that they can use NT 4.0 and Windows 2000 APIs forever. 🙂 I agree that in a lot of ways, Vista was better. But Windows 7 clearly sucks a lot less than Vista, from reports (in fact, this is pretty much the main thing that I hear about it), and it’s getting much better press. So in this case, sucking less and getting good press could be intimately connected. 🙂

          -Max

    • Actually, Firefox is an example of software that has increased it’s suckitude over time.

      They changed their SOAP model between 2 and 3. https://developer.mozilla.org/en/SOAP_in_Gecko-based_Browsers

      This has a major impact on software I would be using with Firefox, and why I’ve nearly completely switched over to Chrome at work.

      Firefox 3.5 has a major load time issue that seems unlikely to be resolved in the short term: http://mozillalinks.org/wp/2009/07/workaround-for-firefox-3-5-slow-startups-on-windows/

      And those students of history would realize that the real browser that has been innovative, and sucks less with each release — Opera. That is if you read their press releases and news articles and such.

  6. From what little I’ve studied of the auto industry this is the very same tactic that japanese car manufacturers used to completely dominate the auto industry.

  7. I’m not sure I buy it. All software sucks, and therefore, there are very few programs I use for which I’m not looking for better alternatives. The ones I stick with tend to be big complex ones for which the problem space is pretty well explored, so I can be fairly confident that there’s nothing out there that actually does suck less, like text editors and web browsers.

  8. There’s a possible message problem in this article.

    You mention “…with every release, our download numbers kept going up. And always significantly–30-50% more…”. In the for-profit world those would be called customer wins, or something similar.

    Later on though, you say “As long as you consistently suck less with every release, you will retain most of your users…”. That’s customer retention.

    Your thesis about sucking less seems to me primarily relevant to customer retention, and not particularly relevant to customer wins.

    How do you explain your growth rates with a relatively modest, incrementalist strategy like sucking less? Were you winning converts from other products? There was no attempt in your article to support this idea. Perhaps the market overall was growing rapidly and you merely shared in that.

    I’m not suggesting that you are wrong, but I’m not sure your thesis is strong enough to stand on it’s own either. From a personal perspective I like the idea of sucking less. However lots of personal and corporate buying decisions are features driven.

    • Oops, “buying decisions” isn’t applicable here. Perhaps I should say “product installations” in this context.

    • Hey Brian. Yeah, of course buying decisions (and product installation decisions) are features based. That’s what I pointed out about first-time users. That’s how you get new users. 🙂 But if you just keep failing to suck less, you start shedding users faster than you can pick up new users, provided that there’s any available alternative to your product. (Witness MySpace, for example.) And if you retain users, then your installation count increases. I mean, that’s the basics. There are probably more subtle effects from sucking less, too, that might generate good word-of-mouth, good press, etc.

      -Max

  9. For me, stability and security are paramount. I do enjoy flashy stuff now and then, but my workstation _must_ _not_ _crash_, _ever_, and it must be secure– so I use OpenBSD. And for bug-tracking, I use Bugzilla. I didn’t know there was anything else ;] Thanks for all the progressively better releases. It’s definitely appreciated.

    • Thank you so much. 🙂 Yeah, security and stability are paramount to us, too. I’m always really surprised when there are products that just have endless security holes, because it’s really not that hard to catch and patch them, if you’re diligent and follow certain basic practices.

      -Max

  10. This just reminds me of the sucking in windows vista…
    I hope windows 7 sucks less…
    But still i have a question….
    How do u establish a sucking issue…seeing that people are different…someone may think it sucks while another thinks otherwise except in very obvious cases like crashes and stuff…??

    • I hear better things about Windows 7 than Vista. I guess we’ll see! 🙂 I’m a Linux user, myself, though. 🙂

      Well, one thing that really helped us with Bugzilla was that I did a survey: https://wiki.mozilla.org/Bugzilla:Survey

      Also, some students from Carnegie-Mellon University did a usability study on Bugzilla and came up with a lot of really great results.

      -Max

  11. Hi Max-
    A decade ago, I worked with a product (that shall remain nameless, for obvious reasons) from a software development team who was said to have this as their mission statement (“To Suck Less”) on the grounds that it incorporated:
    a. great competitive thinking: “suck less than the other guys suck,” and
    b. principles of continuous improvement: “suck less than we sucked yesterday.”

    Your vector of thought appears slightly different (i.e. you only measured your suckitude against your own prior releases), but the advice is timeless. Thanks.

    • That’s cool! 🙂 Interesting to think about it in terms of other products, too. 🙂

      -Max

  12. Haha, too true. New releases of software have a near monopoly on crushed hopes and dreams. I often marvel about how big companies can come out with upgrades that are consistently less user-friendly than the older versions. It’s amazing they don’t go bankrupt. Thanks for the great article.

    • It is amazing, isn’t it? 🙂

      You’re welcome. Thanks for the great comment. 🙂

      -Max

  13. Cool 🙂

    I also think that around that time people were getting wiser about software engineering, and seeking out tracking systems. There was beginning to be more focus on team engineering methodologies (don’t get me started) and there was an in creased demand for tracking products. So when the commercial solutions came out to fill this need … the demand for open source systems like Bugzilla went up.

  14. Thanks Max for this sharing. You explained it, and it looks so obvious now…

    Actually I guess that people at Apple went to the same conclusion when they decided to announce the next version of their OS with 0 new feature. The only moto is “more robust, faster, easier”. But, as advertised, Snow Leopard contains the same feature as the previous Leopard version.

    And Microsoft is more or less going in the same direction, presenting Windows 7 as a “Vista without bugs”, isn’t it?

    “Suck less”, I am now crossing my fingers, hoping this can be heard by more software companies.

    • What an interesting observation! (About Windows 7 and Snow Leopard that is.) I hope that it gets heard by more software companies too! 🙂

      -Max

  15. Patterson Communications went Through similar ups and downs through its inital startup 10 years ago. Great article.

  16. Can I try guessing, was the crashing software mentioned in the last paragraph amaroK? 🙂

    It still does. Maybe once per two months (1.4.10).

    • Hahaha, it wasn’t. 🙂 I actually didn’t know Amarok had that problem too…. 🙂

      Anyhow, I don’t want to single out any particular piece of software or its developers and insult them, I think–that’s why I didn’t just name the software.

      -Max

  17. […] Before I get the streaming widget from my blog ready, I thought I’ll manually post some of the most interesting links I have found around the web and during the day when I read. Here they are. After 5 years on this project, managing our releases and watching our download count, I can tell you from my factual experience this strange thing: all you have to do to succeed as a software project is to suck less with every release. It doesn’t matter how much competition you have, or how many buzzword-friendly features you can cram into your interface. Just suck less, and you’ll succeed. – The secret of success, suck less. […]

  18. What “sucks” for one user may be a lack of certain features that he or she requires. For example, a lack of a formatting toolbar for the text area in a Wiki editor may be the one thing that he or she needs due to unfamiliarity with the Wiki formatting syntax. However, for another user, the formatting toolbar does not matter at all because he or she is more familiar with the Wiki syntax and finds it faster to type in the formatting rather than having to use the mouse to perform the formatting operation.

    Crashing is definitely one of those things that is a big sucky thing that users need fixed. A crash is more sucky than a lack of a feature, although if it does not occur too often, it doesn’t really bother users all that much.

    • Yeah, it’s true that sometimes users consider a lack of a feature to “suck”. But *usually*, they only really feel that a missing feature sucks if it’s actually just an incomplete existing feature. For example, I’d say that a formatting toolbar is, to some degree, an integral part of any Wiki text editor, and that thus the Wiki text editor is simply *incomplete* if it doesn’t have that feature.

      Usually, users don’t get very angry about entirely missing features, only about features that break or are incomplete.

      -Max

  19. […] When it comes to software development, the same attitude must apply. The emphasis on quality must be relentless. But quality is often about the details, and when a development team is under pressure to deliver a product, a constant focus on the details can be tiring. But software quality often comes from one small detail after another — and all those small quality improvements add up to a great product. […]

  20. […] When it comes to software development, the same attitude must apply. The emphasis on quality must be relentless. But quality is often about the details, and when a development team is under pressure to deliver a product, a constant focus on the details can be tiring. But software quality often comes from one small detail after another — and all those small quality improvements add up to a great product. […]

Leave a Reply