October 17, 2007
In the software industry, the release of newer, better versions is part of the natural order. It's a relentless march towards perfection that started with the first personal computers, and continues today. We expect software to get larger and more sophisticated over time, to track with the hardware improvements that Moore's law has provided us for so many years. Rapid evolution is a good thing, and it's one reason the computer industry is so exciting to work in. If you don't like the way things are today, just wait five years; everything will be different.
Letts' Law: All programs evolve until they can send email.
Zawinski's Law: Every program attempts to expand until it can read mail.
Furrygoat's Law: Every program attempts to expand until it can read RSS feeds.
I love the prospect of upgrading my favorite software. Done right, it's like watching a caterpillar shed its skin and become a beautiful butterfly. Or at least a decent-looking moth.
But for some software packages, something goes terribly, horribly wrong during the process of natural upgrade evolution. Instead of becoming better applications over time, they become worse. They end up more bloated, more slow, more complex, more painful to use.
I know this first hand because I'm a long-time Paint Shop Pro user. As a programmer who doesn't need the kitchen sink of graphics editor features, I found it an ideal match for my modest programmer needs. I didn't upgrade to every new version, but when I did, for every new feature I could actually use and benefit from, there were dozens of other features included that I didn't care about. These new features cluttered up the user interface and often interfered with what I wanted to do. My computers kept getting faster, and yet PSP kept taking longer and longer to start up with each new version.
If this spoilage goes on long enough, eventually you begin to loathe and fear the upgrade process. And that strikes me as profoundly sad, because it rips the heart out of the essential enjoyment of software engineering. We write software. If we inevitably end up making software worse, then why are we bothering? What are we doing wrong?
I'm not against progress by any means. But it sure seems to me that certain software packages have truly lost their way. In their never-ending quest to add feature bullets, they've somehow forgotten their users and their core values. In trying to be everything to everyone, they progressively destroy that tiny core of uniqueness that they started with. I'm singling out Paint Shop Pro here, but this same software spoilage principle applies to many other applications. PC World compiled an annotated list of 13 software applications they liked better before they were "improved":
- Windows Live Messenger
- Windows Media Player
- Paint Shop Pro
- Adobe Acrobat Reader
They helpfully provide links to oldversion.com, oldapps.com, and old-versions.net, where you can go back in time and obtain those classic, unspoiled versions.
My favorite version is Winamp 2.95. That's before they started bulking up the client and adding completely unnecessary things. I just want something that plays my MP3s. I don't need it to burn CDs for me or download new music or cook my breakfast or massage my feet.
There are also some emerging lightweight alternatives to choose from in each category. Instead of Adobe's 20 MB Acrobat Reader
, you could opt for the 2 MB Foxit PDF Reader
. Instead of suffering through another 300+ MB Paint Shop Pro upgrade, chock full of features I'll never use, I could opt for the open source Paint.NET
It's depressing to me that there are very few apps I can stick with for more than five years before they become an untenable, unbearable mess. I can think of so many that I've liked and since discarded: Nero Burning ROM, WinAmp, ACDSee, Microsoft Money, WinZip, and many others.
I suppose features sell software. For many companies, putting users on the version upgrade treadmill is their business model; it's how they generate revenue. But if this fiscally rewarding feature creep goes on long enough, spoilage inevitably sets in. So I wonder: Is all software destined to spoil over time? Is it possible for software packages with long histories to avoid the trap of becoming bloated and irrelevant? What are your favorite bits of software that haven't spoiled over the years-- and what is their secret?
Posted by Jeff Atwood
Firefox is starting to suffer from bloat, but the extension system really helps keep it to a minimum by externalizing it. :-)
I'm intrigued by that model of adding feature bullets.
I think this is why new web-based alternatives to traditional applications are becoming so popular. They just don't have the bloat that native apps do and they only have the features that users need. Things like Basecamp and Google Apps have only a small percentage of the features of Microsoft Project and Office, yet they are getting more and more users that are tired of the bloat and lack of collaborative abilities.
It feels like current native software applications, like many other things, follow the Pareto Principle where 80% of the users use 20% of the features. So all of these upstart web companies are just focusing on that 20% and doing it well. It makes me wonder why native applications aren't following the trend as well and cutting out the bloat.
A lot of this resonates with the book "Getting Real" by 37 signals [http://gettingreal.37signals.com/] who are the guys behind Basecamp. In chapter 2 they advise "underdoing your competition" and "building less" because it will differentiate you from your competitors. And I particularly like the "Build Opinionated Software" paradigm which basically states "You can't be everything to everyone so be be something for someone".
If you haven't read the book I can highly reccomend it. And it's free to read online too.
With Paint Shop Pro, I tried out version 7, but it started taking ages to load, so I simply didn't upgrade.
What really bugs me is when applications force you to upgrade, or it stops working. Instant messaging clients are the worst for this. I really liked the MSN Messenger 6.1 client, it was fairly small, didn't have any of the annoying animated emoticons, completely unnecessary "Personal Message' field that people just fill up with even more junk, no adverts shoved where-ever they could make room (Just one MSN logo on the contact list, if I recall right).
Anyway, the client was working fine, until one day it started giving a 'Upgrade to the latest version now!' message, which there seemed to be *no* way to disable, you could stop it appearing every 30minutes while the client was running by altering the registery, btu when you restarted it, it was back..
I had to reinstall for some reason (Tried the newer client, possibly), so I had to find the 6.1 installer - I looked everywhere, but couldn't find the installer for the working v6.1 (They all refused to start, claiming there was a newer version available)
Eventually, a Dutch friend sent the installer he had, which worked, but was in Dutch. I used that for quite a while.
If they changed the MSN protocol, and the old client wouldn't work - fine! It'd be silly to update the old clients, just for the few people that use it. But, the old clients worked fine, the only thing that 'broke' it was the upgrade-checking..
I use a laptop as a main client now, so I've taken to using irssi/Bitlbee on a friends shell-server. No forced upgrades, no random changes/'improvements' which exponetionally increasing file sizes...
I can think of few.
Total Commander - it's beendeveloped for over a decade, yet it's still full of usefull features, fast and compact. I can't think of any feature in it that's utterly useless.
7-zip - fast small and open source. And has better compression ratio than WinZip.
Sub-Edit Player - it's a matter of personal preference but I love this small movie player.
Fast Stone Image Viewer - I find it to be perfect replacement for ACDSee from it's golden age (v3.x). Unfortunatelly I'm afraid that it might take the wrong path, that mentioned program once took.
the same applies to programming frameworks as well,
add the .net framework to the list of bloated software
Winamp is an interesting case among those "bloated" applications:
Even though it now stands at version 5.5 with loads of extra features and things you and I won't usually need, you can always revert back to the fast and classic 2.95 version that you love simply by selecting the Winamp Classic skin from the Skins menu.
I think the Winamp folks did a fabulous job of keeping all those extra features not part of the base Winamp core by packing them into what they call "modern skins". This way, they kept old-time fans like me attached while still trying to match iTunes and other modern players feature-by-feature, and then some.
I'm still using PaintShop Pro 4.12 for everday usage.
For heavier tasks Photoshop is the way to go.
The only app not spoiling over the years is google - but just a few weeks before, the search-result-page is "enriched" with youtube-findings an sometimes some pictures - the start of the end?
That's exactly it. Features sell software. It's busywork to justify "new" versions, because the word "new" is one of the most powerful words in marketing. Every really successful package jumps the shark sooner or later. The lucky times are when you see it coming and you hold onto an earlier version. I did that with Photoshop.
I had a Mac, switched to PC, and switched back to Mac. On my Mac, I think I was running Photoshop 3 for about 5 years. Then I switched to PC around 2000, and had to get Photoshop 6 or 7 - the earliest version I could find. I stayed on that until I switched back to Mac, this year. I bought Photoshop Elements and I've honestly never been so insulted in my life.
I think the software as a service model will probably reduce the effects of this problem, since businesses will no longer be dependent on new releases to make money.
i like sumatra pdf for pdf files -- under 900kb, smaller than most PDFs themselves! As an added bonus it doesn't try to merge itself with your browser. I recall using FoxIt previously and having render issues -- I'm sure they've been since fixed, but I never gave it another chance.
Will never spoil:
Moral: concentrate on _one_thing, and do it well.
Sadly, productivity software isn't the only perpetrator of this. Case in point: drivers for my HP scanner. It also insist on installing some "share on the web" bullshit that you can't remove, and the installation process takes 5-10 minutes. All those megabytes are supposedly for "example material". If they only offered a no-frills option - I'll use the default Photoshop interface to scan, thank you.
In theory Firefox's extension system was supposed to keep out the bloat. Yet, with every version they keep adding "essential" features to the core codebase. If they were so important, wouldn't it be better to put that effort into building the features into extensions?
As far as bloated programming frameworks goes, that's a tough one. I personally use a huge number of the features in every version of .NET, things which I would rather not have to implement myself.
It would seem that "bloat" is all a matter of perspective.
I think the key for a successful long lived software project is a coherent vision, and a team that consistently push toward that vision.
the main problem is that in the software industry, people come and go very often, and software starts to be pulled into new directions as new inconsistent ideas are thrown into it.
evolution works well only if you don't play with the fitness function, but with projects that changes direction all the time, the fitness function keep changing.
As OpenOffice has become more bloated and slow to start (though, in all honestly, they *are* trying to optimize), I started looking for alternatives. KOffice didn't cut it for me (it's much less flexible than it seems). My sollution? Go back to OpenOffice 1.1.5. It runs even on Windows98 (with a 300MHz processor, hint, hint). The only feature I'm missing is ODF support, but there are freely available converters. They've even backported PDF export, which I consider a must-have. Pure bliss!
i guess the most popular bad example for bloating these days is facebook.
it seems to be using the mode firefox uses; expansion through applications... but innocent users still get tons of invitations daily. worst of all, most of the applications are designed in a way to trick users to sending invitations.
Some new candidates for laws :)
The time an application needs to load doubles every version.
The size of an application's minimal install doubles every version.
The number of unused features in a product doubles every version.
The number of clones of a product doubles every version.
not all software die with new features. Feature creep seem a synonym for bloat, but I've met two full-featured softwares that run slimmer, often better than other counterparts.
a) Opera. While I love firefox and its extensions, Opera still has tons of good features, and runs much smoother. Only problem are the pages that don't load correctly (whose fault is it though?).
b) MediaMonkey. So far, it's beat iTunes on (almost) every front, speed and control most importantly. Speed is essential to my 120Go mp3 collection, and control, it's more a matter of taste, but it doesn't do things without me asking the program to do them. It could use some help on cleaner, simpler menus... I guess the freedom from a big computer company behind it has left off the grip of propriatery corruption.
Also good: notepad++ (any structured edition), vim (console edition), and command line tools (the unix/linux ones.... never got a hold of those on windows cause the console access has been terribly neglected by microsoft.)
WinAmp is a weird one. I liked the simplistic nature of the early versions but I use about 80% of the features now in 5.5. I use it exclusively to manage my iPod (iTunes was just utter tripe), I rip and burn CD collections, I listen to radio stations and I have a mass of playlists etc, all of which winamp can handle while only using about 12K in memory.
I think, as others may have said, a company should over time release new versions but they should always keep the old ones around so those who wish to stay with what they've got can.
Still using Winamp 2.91 , PaintShopPro 5, etc ...because they do what I want and load fast
Tried PSP 10 and after it finally loaded found it unusable! What have they done to it?
(Paint.NET looks promising but the .NET puts me off, sledgehammer/nut springs to mind, shades of the old, look how small this VB program is, just install VBRunDLL to make it work.... and)
I use WinAmp 2.91 to play mp3 files and CD's and nothing else...
I use a dedicated ripper/burner to rip/burn
I use a dedicated format converter to convert
It seems to be the do one thing well applies here, Emacs is a special case, it was the first attempt to build a system that did everything well.. It succeeded in doing everything the same, so at least it has a consistent interface
7-zip is too minimalist to the point of being unusable, unless you use another file manager (like total commander or winrar) to view archives. The shell extension's great though.
But you see - that's the point (at least for me, and I believe that's what Jeff is talking about): 7-zip is compressor/decompressor, not a file manager, and it is focused on doing this one thing, and it does it very well. I don't use WinRar, and I do use Total Commander to peek into archives, but most of the time I use 7-zips submenu under RMB. And that's enough, I rarely even see it's main window for that matter, and that is main reason i favour it over all other (free or commercial) compressing software
I'll go along with FWHagen and steffenj and offer UltraEdit as a good example of a program that has certainly grown over time in terms of features, but the speed and size have stayed under control.
They've branched out with some other separate products like (suite, sentry, compare), but at the core the editor itself is still very solid.
Skype certainly seems to be heading down this path IMHO!
What a shame. Mind you, voip software is dime a dozen, very low barriers to entry. Seems a bit naive of Skype to think they can move beyond the product and into the 'brand' arena.
My favourite applications don't change much at all, they all reached a point where they had all the features they needed.
- GNU screen
- GNU nano
- Xterm(bash is a bit of a mess, but I don't really mind)
Firefox is bloated as hell, as netscape did spoil alot during the browser wars. At some point I hope to have a free web browser that isn't bloated, but that's currently difficult to come by.
Usually free software (GUN GPLed) are quite small, fast and just work.
I have always been disappointed with Foxit Reader. The rendering quality is terrible. SumatraPDF is a step in the right direction but needs more work to become fully usable. Thus, I ended up with Adobe Reader again, but cut down to remove as much bloat as possible.
Nero is the same. The core Burning ROM part is actually not bad and hasn't changed much since V6. You can opt not to install all the other crap, although CD-DVD Speed is a useful tool and Recode is one of the best quality H.264 encoders available.
I too am a WinAMP 5.5 user. It's finally getting reasonable Unicode support, and I use the Media Library a lot. With classic skins it still starts very fast and uses little memory, but supports audiophile stuff like kernel streaming/ASIO and ReplayGain.
I generally prefer small apps that do a single thing well. www.tinyapps.org has a large (but sadly rarely updated) collection. There is a blog too.
In the end, it seems like modularity is the key. You can have your program read email, but as long as it's optional and doesn't directly add bloat to your program that's probably okay.
I agree - Firefox is getting very sluggish/bloated. Although I have reccently found part of this is due to the horrendous flash player implementation. I reccently installed the Flashblock extension which prevents the massive CPU hit you get from viewing pages full of flash adverts.
After reading this article, i asked my colleague what software comes to his mind that has become bloated over the years. His immediate response was: "Windows?" :p
I'm still using or prefer to use when i have the choice:
- Paint Shop Pro 6
- ACDSee 3.1
- MS Outlook '97 / 2000
- Via 4in1 v4.43 (pre-Hyperion, on those machines that need it)
- MS Media Player 6
My longest lasting Appz that didn't go "feature-frenzy":
- Buzof (Basta Computing)
I don't use anymore (and replaced it with):
- Winamp foobar2000
- Media Player BSPlayer, VLC
- NERO Suite i only install Burning ROM, i burn ROM images using ImgBurn
- Internet Explorer Opera, and Firefox as "backup"
- Winzip Winrar, 7-Zip, Directory Opus ZIP handler (in this order)
- any McAfee and Norton Internet Security / Antivirus Suites Bitdefender
- EDonkey/EMule thank god for Torrents Usenet!
I do (mostly) enjoy upgrading:
- OO Defrag (showing first signs of bloat since v10)
- Directory Opus
- video drivers :)
- DirectX (never had any problems with upgrading DX)
- MS Visual Studio
Generally, i am VERY skeptical about any software that has "Suite" in its name and/or tries to cover multiple things at once (eg. Antivirus + Firewall + Spam, Picture Viewer + Image Editor + Animation or Video Editing, CD/DVD Burning + Media Editing, Video Playing Archiving Internet Browsing/Streaming).
I also feel that the "featurism" most significantly affects software for image, audio and video viewing and editing as well as typical "security" suites. Not to forget about CD/DVD Burning though.
I can't complain about IM's though because i only use MS Office Communicator 2005 which feels slick and lean to me. But just by looking at today's versions of XFire, ICQ or AIM on other user's computers i feel disgusted even though I've never used them.
Is software doomed to spoil over time?
No; commercial software appears doomed to spoil though. Somehow software companies go through a metamorphosis, similar to your wolly moth example. They started with nothing, and wrote new software. They wrote software because they felt an itch, or a market opening, or whatever. And they found out they could make good money doing it.
At some point, they discovered selling to existing customers was a far less scary proposition than finding new customers to sell software for that doesn't exist. The once great entrepreneurial spirit of the company, writing new programs, has diminished in the face of finding a few reasons to sell your customers something they basically already own. If a customer is satisfied with version 5 already well into the spoilage, fixing the spoilage for a fee sounds crappy. Call it what you will, but I call it removing features for a fee. But every major release also comes with an implicit bug fixing onslaught that nobody can test until they've already paid or pirated. Ever seen a bullet point for "Fixed ticket #2452?" Only in changelogs that may or may not be published.
The trouble is, why would a company with software give up such a revenue stream? Releasing a new major version is almost guaranteed money, no matter how bad Vista is. Or whatever you happen to be working on. Fixing spoilage is about finding ways for a company to transition software from a state of development to a state of stable management. If I had the answer, I'd have a million dollars.
I can't name a single closed source app I used five years ago I still use today. The situation isn't much better on Linux. GNOME's a bit like Windows; its hard whether I call it spoiled or just unfinished. But there's a few notables: Firefox has been around since 2002. It's basically the same thing from a usability standpoint. Firefox's tools for fighting bloat grew directly from a pair of developer's desire to remove what they saw as bloat in Mozilla's Netscape browser.
In a sense, every product competes with itself, but with open source you can't deliberately deny bug and security fixes to old versions. Open source isn't immune to bloat, it just has a better pressure release valve.
After some years, VirtualDUB (www.virtualdub.org) still remains a shiny little gem. Probably, because it's not commercial... I guess the difference is all in the marketing.
But, as pointed out, the difference between junk and cool feature is often a matter of perspective:
@dbr said: (MSN) annoying animated emoticons, completely unnecessary "Personal Message' field that people just fill up with even more junk
...if everybody uses (and creates) animated emoticons and fills in the Personal Message, then those two are definetly cool features :-)
Another thing to keep in mind: software bloated by unnecessary junk features, and software bloated by performance, are not the same thing. Opera introduced a LOT of features, even unnecessary but cool ones, such as the Commodore64 CSS Style, but the application is still lightning fast and the installer is still under 5mb.
It's not just software that is spoiling...
Turn on the TV, or go shopping and you see exactly the same thing:
Companies trying to sell you crap you dont need. For example how many more razors can they add to disposable razors, until people say "Ok, that's enough. These guys are taking the piss" [duh].
Does this problem originate with the "Growth fetish" we have in capitalist society?
Growth at all costs (even your sanity or product).
I think so.
Not to mention grep. I mean c'mon, grep 2.0 125Kb TARred. greap 2.5 668Kb TARred?!?!??!?!11 Where the heck is all that bloat coming from? What, now it supports --label and --only WHO CARES. "Users want those new features.". Tell that to my floppy disk man.
It's ludicrous to see what some programmers will try to get away with if you let them.
Opera browser hasn't spoiled over the years. In fact it got better.
I, too, think a good plugin system is the only way (today) to avoid bloating like this.
Anybody has some good alternatives to ACDsee?
About device-driver software:
Logitech Mouse Driver (Setpoint 4) - overkill when it comes to applying settings on a per-application basis. I know it's to work around how programs handle mouse input but it's just not something I'm willing to put up with. I'd rather have an OK setup for all programs than being able to setup the perfect mouse feel for specific applications.
I bet other device-driver software has similar overkill features or signs of bloat. Think about your scanner or printer software with beautiful names like "Eazy Printing", i guess.
Interesting to read all this, especially the comments about open source. I use an open source application every day for professional work, and it has nothing I would call bloat in spite of a very long and growing feature list. Blender. The user interface is so non-standard that the program is hard to learn, but once learned it is a dream to use, so they can keep it that way as far as I am concerned. Because it is for 3D modelling, animation and rendering and for visual effects it needs a lot of features, but it stands up remarkably well in the face of competition. I've been using 3D Studio Max while studying with some experienced professionals, and for what I do at home Blender is easier to use, far easier. Blender loads in a fraction of the time and yet has all the features I need for my 3D graphics modelling work.
And of course some open source software is crap; most of it probably. This also applies to commercial software too, that's why most new software companies last less than eighteen months. Just because you have an idea for some software doesn't mean the idea is any good, and even if the idea is brilliant, you might have ambitions much bigger than you or your programming team can manage to code properly.
What do you do then, when your company writes only one piece of software, and that software is as good as perfect?
Move to greener pastures. Port it to another OS if there's need for it. Make an universal binary version if necessary. Invent a new product or improve an existing one of the competitor. There are enough itches to scratch.
@ steffenj : ah yes, ACDSee. The problems started when they included the mp3 and movie player in the image viewer for some stupid reason. For an even more stupid reason, I haven't found a way in the newer versions to just turn this option *off*, which results in the fact that after browsing 3-4 images it'll encounter an mp3 and then the CPU spends a few seconds on preloading/caching/buffering. It'll accept that it won't open any extension under the sun anymore, but it will still browse mp3 and movie files. I just want it to skip that.
re: 7-zip; there's one thing I'm missing, and that's shift-clicking to drag the files literally out of the archive so the original file goes *poof* and you're left with only the contents. WinRAR does this, 7-zip does not. Or is this implemented in a newer version?
Open source software generally suffers from another kind of bloat - that of the interface. As you're free to include any new option that's possible and lay out insane settings/preferences windows, you'll soon get to the point of 15 tabs to set only how you want to see things on the screen. If anything, they need sane defaults and UI/UX designers. It's nice to have choices; it's nicer to package this choice in a sane way, and that shouldn't mean reflecting the config files directly in the UI.
Wow, have to agree on so many levels. I use WinAmp 3 light, ACDSee 2.2 and JASC Paint Shop Pro 7.0. If it ain't broken, don't fix it.
VirtualDUB: copy that, am still using it too. This goes second on my list of programs without bloat which satisfied my need for years. If only it were (still) able to open WMV though ...
This is why I'm so glad notepad has never changed. Even DOS windows started to get cleverer to keep up with the cut-n-paste revolution, but if you just want to scribble, then Notepad.exe will always be available, no matter what version of windows you're using, no matter whose computer you're on (as long as it's a PC).
Reminds of a more simple life...
Although, to be fair, I did like it when notepad got the CTRL+S shortcut for saving post-NT...
Brilliant article again Jeff... how many times have I said to myself "what have they done to Acrobat Reader?"
It seems the applications I have been impressed with the most are those written for software engineering - although the overhead is much larger to run these apps - look at the quality, look and feel and power of VS.NET 2005 over 2003... impressive.
On another note - why do I have to type the word ORANGE in every time I want to post a comment?
I Know this is "anti-bot posting" technology - but isn't there a better way of doing this - it puts me into an "ORANGE" frame of mind, which being ginger is ok - but I often associate ORANGE with a warning (its about to fail - condition ORANGE, or is that soylent green?) ;o)
can we change the Enter the word to "POSITIVE" or "WHITE" or "THOUGHTS" or something abit less aggresive?
just a thought...
Some software remains good because it supports the developer's business, but it is boring to them—they make it keep working for you without having to write press releases about it.
Apple's TextEdit in OS X is the first word processor with formatting that I really like since MS Word 4.1, I think. Basic text formatting, powerful typography and a ruler, the standard OS spellchecker. Reads and writes .rtf and .doc, and they are about to add OpenDocument and Word 2007, hopefully the basic interface stays simple.
Apple's Image Capture works just fine with any scanner, without being craptacular in a dozen different ways like every singe scanner manufacturers' Mac software.
Let's hear it for boring software!
In the tools of the trade category, I switched from Anarchie FTP years ago when it was becoming the kitchen sink to Panic's Transmit, which still looks the same and works great. The newer tabbed interface actually lets me multitask projects without clutter.
BBEdit is a bit like command-line software: they've added a lot, but it stays out of the way. Almost everything has remained fast.
I think that Winamp is a fairly good example of listening to your users. They realised that Winamp 3 was crap, and kept developing Winamp 2, and even having some sense of humour about it. "ALMOST AS NEW AS WINAMP 2 Nullsoft Winamp3"
I still use Winamp (with the old UI) for playing net radio and random files, even though I now prefer to manage my music libary with iTunes.
What do you do then, when your company writes only one piece of software, and that software is as good as perfect?
Move to greener pastures. Port it to another OS if there's need for it. Make an universal binary version if necessary. Invent a new product or improve an existing one of the competitor. There are enough itches to scratch.
I tried to answer that in the rest of my paragraph: "I think many companies find it easier to just add features and features because they think it is to risky to start working on an entirely new project."
OK, then is all commercial software doomed to crush itself under feature creep eventually?
In a word: yes. But not just commercial software - open source software as well. In pre-internet days, new versions primarily consisted of bug fixes, algorithm improvements, and UI modifications with a few new (and typically useful) features thrown in for good measure.
Along came the internet, and someone somewhere had the (good) idea to offer bug fixes and updates to customers for free. Only afterwards did they realize that this reduced the substantial changes between versions (and thus the reason for the customers to upgrade). To combat this, you have the feature creep.
The underlying problem is the reproducibility of software. When an engineer designs a bridge, he designs it to the best of his ability and then he's done. He stops active development on that bridge and goes on to design the next one. That engineer can make a career out of designing the same bridge over and over again. In the software world, if you stop developing you're out of a job but your software lives on and continues to sell.
The same thing happens with most open source software only at a much slower rate because open source software development tends to be slower than commercial software.
Essentially, until developers (and their managers) learn how to say "okay, this application is done" this trend will continue.
That's my $0.02 anyway.
I rush to post this and get out of here before you guys kill me with stones or something. A piece of software I think never bloated over the time - Windows.
Now sit back in your chair and relax. Here is what I mean:
First, I've never seen a version of Windows that loads slower than the previous versions, Moore's law taken into account. It's not that Windows becomes faster, it's just that IT DOES NOT OUTRUN MOORE'S LAW. This means that my Windows 95 on my 486 loaded slower than XP on my Core Duo.
Second, Windows, from its infancy always had tons of useless features. We have all watched Ballmer in that commercial of Windows 1.0 shouting 'Reversi' (http://video.google.com/videoplay?docid=-1769003739231727974q=ballmer+windowstotal=212start=0num=10so=0type=searchplindex=1). So in my opinion XP does not have more useless features than 1.0 - just about the same amount, which - having in mind the progress made - is pretty good. And think of how many improvements were done.
That said, I agree about all the comments about Winamp, PSP, Media Player and the like.
I completely agree with you. I stopped upgrading to new versions of Quicken in 2000. At that point, it did everything I wanted it to do, and it did it well. I can't imagine what Intuit has been doing to Quicken over the last 7 years (man, that's a lot of development effort!), but I know I don't need any of it.
The caterpillar looks so much prettier than the butterfly.
I dig Notepad++, Paint.NET, FileZilla... If I think of more un-bloated apps, I'll post them.
Other examples of software that has become spoiled : HomeSite, CoolEdit.
I think jldugger put my thoughts better than I would have done:
"At some point, they discovered selling to existing customers was a far less scary proposition than finding new customers to sell software for that doesn't exist. The once great entrepreneurial spirit of the company, writing new programs, has diminished in the face of finding a few reasons to sell your customers something they basically already own."
Exactly what happened with PSP, firstly when it went paid-for and secondly (and much much more worserer) when Corel bought it and decided it was an asset to be sweated.
I don't use PSP any more. I'm a Paint.NET guy now, even though it doesn't do as much as PSP did in its golden era (version 6 to 8 for me). If I need more I go to Photoshop Elements, although I can't say I like it much.
Are you kidding?
Any Linux distribution that installs KDE or Gnome by default is by definition bloated. Then add in all the daemons for PnP and all that imitation-windows garbage...
Give me fvwm or give me death!
Most Windows apps, including Windows, expand to fill the available CPU, memory, HD space.
Windows OSes have done more to promote hardware upgrade cycles than we realize. Hardware manufacturers would be nowhere without Windows bloat.
I've often been amazed how MS Office and the like force people to buy the latest and greatest versions. People have to upgrade because other people have upgraded and are sending them documents in the latest format which older versions can't read. So everyone upgrades just to allow them to keep doing what they were doing before. I currently use OpenOffice but find it difficult to e-mail documents to clients because no one else uses it, and they refuse to install it - even though it's free. So I have to export to MS Office format, which isn't 100% perfect so the formatting gets messed up. Perhaps proprietary file formats should be outlawed.
I think there are some similarities to companies too. Most companies have a certain lifetime.
In the beginning they do their thing really good (which is why they succeed, if they do), then they are expanding business and "taking on new opportunities" making their "code base" much more larger, complex and bloated. In the end you end up with these huge giants that seem to do everything and have a hand in everything. Some of them stays alive for longer, others don't. None of them stays forever.
I guess the companies who make it longer are the ones with better structure. That doesn't mean that they have more of it, rather less. It is the same with software. The more you let the different parts of the software live their own life, and by that I mean that they are separated from the rest of the software, the longer it seems to last. Firefox manages this by extensions, but other software like Windows Media Player and Paint Shop Pro tries to put _everything_ under one roof. Doesn't seem to work out, does it?
Users will never live inside one software only, back to the mantra Mike Minutillo mentioned: "You can't be everything to everyone so be be something for someone."
I have always weighed upgrades, and if they didn't please me, I kept the old version. Simple as that, and no whining because I already had something that did what I wanted.
I liked Paint Shop Pro because it wasn't the huge waste of resources that Photo Shop was (and still is). I despise the newer iterations, so I've been carting my copy of v4.12 to every new computer I've gotten for almost ten years. Whenever I load it up at work, somebody always says something like "Paint Shop Pro? Why are you using that? Don't you know Photo Shop is installed on all of our machines?" And my response is "yes, but in the time it took you to say that, I've already loaded the image I need to work with, and if I weren't explaining that to you, I'd already be done with the changes I need to make. By now, Photo Shop would be about 10% through loading all the filters nobody ever uses."
However, sometimes slow software is good. If you need to take a break, get something to eat or drink, whatever, loading up a resource hog will do the trick. "Oh no, I'm not goofing off. I'm just waiting for Illustrator to load."
How about Visual Studio 2005? Even the code you create with it can be spoiled at birth if you are not careful... i.e. DataAdapters that generate thousands of lines of codes that are very difficult to customize or extend.
With VS2005, the multitude of options that a developer is faced with when solving a problem is mind boggling... The IDE itself has become slow and buggy (in particular the BI version). Finally, people who complain about problems/bugs in VS2005 are told by MS itself on some of its forums that the fix is coming... in the form of VS2008. How about fixing VS2005 first? Also, if MS wants developers to produce less buggy code, IMO, they should slow down the pace of change for the tools they use. How about an IDE/Framework release every 5 years instead of every 2 to 3 years? How can one master a tool to use it properly if they keep changing the tool???
Note that each release of the Framework/IDE adds more spoilage to the package...
@Mike: The .NET framework _is_ bloated, in the way that it adds way too much complexity -- just think about all the different collection and list APIs. On a positive note, they are doing something to clean it up, so it is moving in the right direction (away from bloat/complexity).
You could also view LINQ as a way to reduce complexity by adding components of dynamic languages.
I also like the fact that the upcoming version 2 of the Ruby on Rails framework will be removing a lot of component (they will be plug-ins instead) and generally clean up and simplify the APIs.
Maybe you just have to remember to remove some of the old stuff as you add the new...
UltraEdit by IDM Software is the only example I can think of that I have been using for nearly 10 years without suffering from bloat. I used it exclusively for 6 years for all my ASP development at my last job because Visual Interdev was such a bloated beast (the tool I was *supposed* to use there).
UltraEdit has been able to continuously upgrade itself without becoming bloated or unusable. They seem to have got it right. I can't imagine being a developer without it.
We ran into this conundrum while writing SpamAssassin -- every new subsystem bloated the core. The solution, IMO, is plugins. De-bloat -- move subsystems out of the core into optional plugins -- and the problem is greatly ameliorated.
I think you described here why software should be free, open. Although the process is present in the open source world, it's easy to "fork" and "patch". The process of adding useless or just to much features is mostly driven by (weird) economics and marketing. The symbiose between hardware and software doesn't exist anymore. On that point, I think only one type of software wins the cup: games.
What do you do then, when your company writes only one piece of software, and that software is as good as perfect?
Make it Blue and Call it Office 2007? ;o)
If it makes anyone feel any better, feature creep/bloat/spoilage/whatever you want to call it isn't a development of the Internet age, much less the PC age - Fred Brooks described it in _The Mythical Man-Month_ as the second-system effect ( http://en.wikipedia.org/wiki/Second-system_effect ) - after a first system that's successful, architects/designers are less wont to be judicious with what gets left on the cutting room floor (hey, we know what we're doing!), so their systems/applications become less driven to solve a particular problem set really well and more, well, either a candidate for The Daily WTF or in sore need of an armada of well-paid consultants to get it up and running because it's so feature-y.
Hey Now Jeff,
After reading I remember the days I really enjoyed Winamp. I guess software is just like milk.
Coding Horror Fan,
Notepad doesn't suffer from bloat :-)
OK, let me dig up a model on software evolution:
There are basically two phases:
-= The evolutionary phase =-
The software follows the path of what a customer base wants until it gets to the point where the customer is greatly satisfied. Once the software creature fits this environment, there's no need to change anymore.
That's the state open source software usually stays in until its environment changes. Commercial software behaves differently:
To stay successful (sell copies) past the point of fitness, you need to change the environment. From that point on, you're in phase two:
-= The extinction phase =-
You get bigger, fatter, slower until some more efficient creature kills you (either directly or indirectly) and takes your place. Then the cycle starts again.
-= Appendix =-
Sometimes you happen to see a third phase creep in between, the metamorphosis. That's where the creature - instead of trying to change the environment itself - rather changes to fit into another set of the same old environment (your favorite music player more and more changes to become CD burning software).
That can be counted as just another appearance of phase two. It usually still leads to extinction.
-= Disclaimer =-
Any similarities to actual events are just coincidence.
I've often pondered this myself - why does a 'nice', small, functional piece of software get bloated beyond what it did so beautifully when you first found it and started using it?
The answer I'd come up with is that a combination of the user base requesting little additions, which in turn get additions - and the developers want to add features - over time shift the seemingly simple, single focus into a do-everything-please-everyone-jack-of-all-trades monstrosity.
The thing I've noticed is that this is cyclical - when the software gets too 'spoiled' then the user base migrates to a 'new' piece of software that, because it's 'new', hasn't gone through countless rounds of additions yet.
Your point about this being a business decision to have feature bullet points is something I handn't considered before and makes a lot of sense to sell new versions.
I think the move towards the web-based alternatives, for many of the reasons that Curtis Chambers points out (comment #4) is mostly because the web is the next logical development platform for 'new' applications - not necessarily because they need to be on the web - it's just the best way to get a wide user base.
Therefore I think the cycle of 'new' applications will increasingly be web-based where possible.
p.s. This is my first post to CodingHorror, which I've been a avid reader of since I found out about it almost 6 months ago, and I'd just like to say that I look forward to every post you make, Jeff ;o)
I think that the spoiled feeling in software in the same feeling Robert Pirsig had regarding society in the 70's when he wrote his famous book (Read it if you haven't). Nothing is made with quality , everything tends to be stylized crap. I think we are doing the same thing to software and computer that we have done to society. We are spoiling software and computer hardware. Sure some people will resist and continue to use command lines (grep, awk, sed, etc...) and small/ useful software (Total Commander, vim) but the vast majority will follow the death procession and upgrade their pc every 2 years or when it's unusable because of spyware. Like Metallica said it's "Sad but True".
mIRC comes to mind - massive feature list if you're a script writer - and a huge amount of upgrade potential by loading scripts - but all conveniently hidden away from the every day user.
Most people just need to point, click, connect to some channels, and they're done. Then never play around with the option menu again.
Personally I think the extension system is brilliant - it can be applied to nearly any software. I think of Photoshop here. The craziest piece of software to use because of the abundant features. During setup you should be able to add a whole lot of plugins that you would use or potentially use, and leave out the rest. If you're missing something, do a quick search on what you need, add the plugin, and you're ready to go.
Same principle can be applied to most software. This [should be] the way of the future.
For me, besides PSP, the other software that spoiled over time to the point of non-usability was MusicMatch. I loved it up through version 7 ("loved" as in "paid for the pro version"). I upgraded to 10 (paid for it, too) and they had changed the UI in ways that were non-intuitive. Then Yahoo bought 'em and completely and totally ruined it forever. I will not look back. Of course, since my home workstation and server are Linux, I have great alternatives, but I still have to administer (and find decent music playing apps for) my wife's and mother's machines, so it is still an issue for me.
Per the comments on emacs and whether it's bloatation has ended up in spoilage or the best software ever, I've always liked the old joke, "emacs is a great operating system, but it could use an editor." (NOT trying to start a "which editor is better" war here! :-)
I think ACDSee and NERO are the worst.
ACDSee used to be so fast, that's why I used now, it is just sucks. Image editing tools, etc.
Nero has to take the cake though for worst feature. A recent version included...A VOIP client. I've been requesting that for years for my burner software.
I think it stems from a problem of commercial software in general and how your typical company hiring typical developers operate. I firmly believe that a small team of developers can really build great software (great = efficient, and valuable).
Without sounding cliche' Have the problem that Microsoft faces with their bloatware is because they do listen to every person on the planet. The most destructive feature is "help microsoft track how you use your program anonymously".
To me, no respectable power-user ever turns this on. Just your typical low-end user. So what do you get. Software build by survey that has silly features in it that no advanced user really enjoys.
But then again, it's quite common for the Windows 'ecosystem', by definition it caters to the the common denominator.
It's weird how you're able to keep coming up with interesting topics, and then present them with grace!
Yes, Acrobat Reader is an abomination.. and the download for Microsoft LifeCam's "driver" was around 117MB! :)
Incorporating more and more features must not be bad in every way.
You need only 10% of the features, and so does nearly everybody.
But every needs other 10%.
With Office 2007 Microsoft tried to get things in balance between accessibility and feature-completeness - i think they did it very well for a first shot in this direction.
Of course all old users are complaining, but in the long run, it's the way to go.
I don't know if anyone mentioned it, I only skimmed the comments, but a related annoyance is programs that lock out old versions, or force the upgrade. I always wait as long as possible to upgrade but recently I've been "forced" to give up functioning versions of MSN, Yahoo messenger, Hotmail, Yahoo mail, yahoo photos and probably others. Trading them in for bulkier and buggier versions in most cases.
In my view, the solution not only lies in plugins but in packages of plugins. I'm thinking about Eclipse, Firefox and LINUX package managers like apt-get.
Dependancies can be a pain to manage when the plugin system isn't mature enough and it may take some time to setup your software to your liking, but my guess is these issue can be solved with mature technology.
Imagine sharing configuration profiles instead of downloading and installing software...
There must another law that was not enumerated above.
-Every application will expand until it can play mp3s.
I've used a Garmin GPS device that plays mp3s. !?!?!
Why does LG need to sell an 'Internet Refrigerator' that plays mp3s? If you are tired of winamp bloat, just buy a new fridge.
It's driven by marketing. New features sell. Performance enhancements don't.
A brighter set of marketing "professionals" might figure out that adding new features isn't necessarily desirable, and that selling a suite of smaller, simpler targeted applications (or features) might just generate a more consistent revenue stream, particularly if enhancements to these applications are added only after rational, quantitative market research and an excruciating amount of testing.
But we're talking about marketing here. What are the odds?
An example where the user himself spoils a software is Mozilla Firefox.
It works great when its vanilla. But as and when you start adding extensions, it starts to affect its performance. In this particular case, it is the combined sin of the extension developers (which apart from having the features that they are supposed to have, also have some that are not used much), and the user. Oops! did I call myself a user? OK. I mean the customer.
The collective in-efficiencies of the individual extensions and the greed of the customer to have all that he can, is what makes Firefox (mind that capital 'F') a spoilt kid.
The fix for that is in our hands. Choose your extensions wisely!
I too was a big Paint Shop Pro user throughout the 90s, but I switched to Fireworks around 2000. Unfortunately, Fireworks is now suffering the same fate - the last three releases have each doubled in size.
Winzip actually improved. The older versions had an annoying feature where if you opened a new instance, it popped up a message asking you if you're sure to open a new instance because one is already open. It's gone with v11.
The classic behaviour of right clicking and creating a new zip or doubleclicking a zip to extract it is still there. Now it handles rar files too so one doesn't need to have a copy of winrar. It's still Although I prefer to handle rar files with winrar myself. Winzip is still fast.
Anyone ever seen the toolbar from a recent version of TOAD? Yikes.
I loved paint shop pro version 7. Then with 8 they tried to make it a photo editing tool (to appeal to a completely different audience) , which completely and utterly ruined it as a tool to create bitmaps.
I tried version 10 as a trial.. and hated it also. So when corel took over.. they kept the photo editing direction.
er not bitmaps in particular.. but pixel pushing all the same..
I've used Paint Shop Pro 4.12 forever, well at least for the last 10 years. The last time I thought I might upgrade was around 8.0 and it was horribly slow and unusable.
re : Will never spoil:
If you think that, you don't use the GNU versions!!!
I make a distinction between feature-creep (It slices! It dices! But wait, there's more!) and increasingly fine levels of control and precision without sacrificing simplicity. Two products that I think display the later are :
TED Notepad - http://jsimlo.sk/notepad/
CSVed - http://csved.sjfrancke.nl/
HP software anyone? Actually I can't think of a time that HP wasn't bloating software. Just last night I was working on a computer and opened the task manager to see EIGHT HP processes running. Any development team that sits back and decides it's okay to chew through the user's processor with EIGHT running processes while the user isn't even using the product should be beaten with large, wet cats.
All of the above also applies to Norton, hence my switch to Avast, which still annoys me on occasion because it runs something like 3-4 processes itself, but at least they seem to be fairly lightweight.
The only apps I still use that have never spoiled are vim and mIRC. AppRocket is another one, but I've recently replaced it with Launchy to get... more features.
I am still a Paint Shop Pro 9 user but I am wondering if going back to the version 8 would be a good idea or not.
The original MPC project is basically dead, look into MPC update (guliverkli2) and home cinema (mpc-hc).
MPC is a great example of this almost entirly because it IS dead. The version of it I use is from 2005, but as far as I can tell it's completly bug free, and has every feature I could possible want in a lightweight media player. What is there to update without going down the path of spoiling it?
Jeff, when and why did you dump Microsoft Money?
I'm using the '05 version, without the online functionality, and I'm fairly pleased with it. But it was my first foray into personal finance software, so I probably don't know what I'm missing.
On a related note, regarding extensions in Firefox... I'd say there's a small drawback in that unless people are "power users" who know to look, and where to look, for extensions, they'll never know what features or ease of use they're missing out on.