Bloat is a function of time, people, and money Jason 24 May 2006

21 comments Latest by Josh Ferguson

Why does most software get bloated? Time, people and money.

TIME. Time is an especially effective bloat catalyst. Just as evolution generally produces more complex organisms over time, the same thing happens to software. More features, more features, more features. Sometimes more features are the right features. And that’s good. But often software doesn’t stop at a little more and it ends up with a lot more. And that’s where time isn’t on your side.

PEOPLE. The more people a company has working on a product the more opportunity there is for bloat to take hold. People need to stay busy. Even when there’s nothing to do there’s something to do. And that something often ends up being extra stuff that isn’t really needed. Extra features, new science projects, more complexity. More people + more time can be a dangerous combination in the wrong hands. This is one of the advantages of having less people on your team: you simply can’t do more than you should. There’s a physical limit, a constraint, that helps you stay simple. Forcing simple is better than forcing complexity. One is better bedrock.

MONEY. This is more of an issue for traditional software than web-based subscription software. In the world of traditional software (read: Office, Photoshop, Quark, etc) the only way for the software vendor to get more money out of you is to add more stuff to their product. They have to add more so they can up the version number and wring more dollars out of you. Certainly the more can be the more you want, but that’s often true at the beginning of a product cycle and not at the end. There’s a point that more just ends up being more. Products with version numbers past 10, or products that used to have version numbers but now have years or letters, are great examples of too much software.

Be smart with your time, people, and money. The combination of these things don’t need to lead to bloat. They can actually lead to wonderful products. But the odds are against you. So stay smart and know the limits of your time, people, and money.

21 comments so far (Jump to latest)

Jamie Tibbetts 24 May 06

Kick ass band name: Bloat Catalyst

Alan 24 May 06

In the world of traditional software (read: Office, Photoshop, Quark, etc) the only way for the software vendor to get more money out of you is to add more stuff

It’s important to note that at the beginning of a software product’s life the addition of new features isn’t a ploy to get more money out of you, it’s a ploy to get money out of your neighbor, who hasn’t yet bought the product. Office became the feature-bloat nightmare it is today because Microsoft would

1. Release Office

2. Ask people who didn’t buy Office why they didn’t buy Office

3. Add suggested features (too often ignoring what the customers needed and just giving them what they wanted)

4. Release Office

5. Ask remaining people who didn’t buy Office why they didn’t buy office

bleargh 24 May 06

oi, emacs 21+ is not “too much software”.

Mark Gallagher 24 May 06

Good points, agree.

But it’s also leadership. Having smart people at the top that understand the power of simple design. In particular the product managers need to get it and communicate the priority of a simple UI to the project managers.

Google and Apple have tons of money and time for new product development, yet they keep the UI of their products pretty simple.

Smart leadership.

Rimantas 24 May 06

Does anyone know, who said along the lines “if programmers were paid to remove code instead of adding it, software would be much better”?

Dharmesh Shah 24 May 06

I’d add one more:

FEAR: Nobody is buying my product, but if I add this one feature maybe it will suck a little less and I can increase sales.

Mark Ramm 24 May 06

It’s not time, people, or money that causes bloat. Sure it takes resources (time, people, and money) to create bloat, so you can’t have bloat without them. But it’s not the availability’s of resources that creates bloat, it’s management choices.

Bloat is the result of putting resources in the wrong place, rather than building something new and different, managers play it safe and spend their resources making what they have “better.” The fear of change and possible failure coupled with the desire to milk more out of your current cash cow creates bloat.

Matt 24 May 06

I agree with Dharmesh. I think it has more to do with fear, especially with small business.

clifyt 24 May 06

“FEAR: Nobody is buying my product, but if I add this one feature maybe it will suck a little less and I can increase sales.”

And often its true.

Quite a few of us work in areas where specific features are NOT optional — we need them to get our jobs done:

If SPSS didn’t offer specific statistical functions just because they were too complex, we’d buy another package.

If Word didn’t offer Tracking and Versioning, we’d most likely have to move to something that does (and its interesting because this is a feature all the geeks I know HATE but couldn’t live without in the Wiki age).

I don’t mind complexity in software — I just want a way to hide the stuff I don’t use easier. I don’t care much for Microsoft, but I do love Word — I can customize the interface as much as I need it to be for my own use. And friends that use my computer are often confused by the fact that my interface looks a lot different than theirs (and the fact that I’ve had to roll some of my own VB Macros to get it to do everything).

So in a perfect world, we would have more flexibility in software. We’d have more ways to connect one piece to another. And it would be invisible to the point that if you don’t want a feature, its not there. I know in the testing software I develop — most people don’t need the Computer Adaptive Testing component because its far too complicated for most people without an advanced degree to use. At the same time, I could either make two versions and charge accordingly for them, or I could simply add the functionality in there and make it a bit difficult to stumble onto unless you want this feature (and if you want it, its very simple to get this interface up and running).

its not bloat thats the killer — its the presentation of thus bloat that hasn’t been addressed.

Rahul 24 May 06

Alan: that may work to some extent, but it becomes a problem when the reason that people didn’t buy Office is because it does too many different things and they want it to do less. What do you do then? Release a new version of Office that does less but annoys the established userbase? Release an alternative version that receives neither the brunt of the marketing or the best word of mouth from consumers?

Adding more is great for version 1, 1.1, 1.2 and 1.3. Marketing makes developers call those 1.0, 2.0, 3.0 and 4.0. But after that, it’s time to go back to the drawing board and design the real 2.0 that starts from the ground up and builds a superior application. Since you already learned from your first attempt, it should (“should”) be more in-line with what the market expects (or desires, but just because people want certain things isn’t necessarily a good reason to give it to them).

Dean Landry, Toronto, Ontario, Canada 24 May 06

I agree that the above are environmental conditions that allow bloatware to be created, but certainly not the catalyst.

If that were true, humans would be bloatware, along with every other evolved species. Nature has those three elements as well; time, thought, and resource. It is within the way these are utilized that determines that ‘bloatedness’ or more analogous, the ineficiency in software evolution.

Anonymous Coward 24 May 06

Dean, JF was talking about software, not THE WORLD.

Dean Landry, Toronto, Ontario, Canada 24 May 06

I was drawing an analogy to show the logic.

Software that changes is evolution - software is changed based on external conditions. Software wants to survive and make profit just like people ;)

Alan 24 May 06

Rahul, I never meant to imply it “worked”, unless worked means “makes loads of money in teh short term”.

Anonymous Coward 24 May 06

Man- If there is one thing thats been drilled into my head- its bloat and simplicity.

I am in the process of defining and developing a product and the “fear” that dharmesh talks about has kept me adding feature after feature.

BUT- after reading getting real and this blog- The constant hammering on bloat and simplicity has really given me the “intellectual” confidence to real push back and question much much more than I would have previously. I am still adding features but much less than before :)

Anonymous Coward 24 May 06

The more people a company has working on a product the more opportunity there is for bloat to take hold.

This is so true. I work for a company of 250,000 plus people, soon to be over 350,000. We move like a loaded freight train on full speed down hill. Yeah, we are kicking ass and taking names, but change something? Make a turn? Not a chance.

We have hundreds of thousands useless processes. Processess to correct processes. The worst part about it, is now the IT guys have jumped on the less is more band wagon, and are removing 90% of our tools. Soon we will be working in the dark ages.

My point is this, No company needs to be bloated, their problems need to be thought of logically. Most people in charge don’t think logically, and so we get bloat. Once you are bloated, it is too late to turn back without major sacrafice. Teams need to be like ninja’s, fast, agile, and in small groups.

John 24 May 06

The more people a company has working on a product the more opportunity there is for bloat to take hold.

This is so true. I work for a company of 250,000 plus people, soon to be over 350,000. We move like a loaded freight train on full speed down hill. Yeah, we are kicking ass and taking names, but change something? Make a turn? Not a chance.

We have hundreds of thousands useless processes. Processess to correct processes. The worst part about it, is now the IT guys have jumped on the less is more band wagon, and are removing 90% of our tools. Soon we will be working in the dark ages.

My point is this, No company needs to be bloated, their problems need to be thought of logically. Most people in charge don’t think logically, and so we get bloat. Once you are bloated, it is too late to turn back without major sacrafice. Teams need to be like ninja’s, fast, agile, and in small groups.

Nathan 25 May 06

For large companies, it is pretty hard, but not impossible to become nimble.

The company I am consulting with fights bloat currently not by hiring less people, but by the correct placement of people.

You don’t need 300 people: to make sure the architect has done a good job, to make sure the brand is well represented, to make core contract decisions…you only need 1 or a few for each of those and it only should take them a normal amount of time to do those tasks.

Money, now that is something that they have yet to get the reigns of, but it is starting. It is possible to be large and nimble.

andrew 25 May 06

Having just priced Adobe’s Web bundle earlier today, I am in 100% agreement with MONEY.

Why is a Flash 8 upgrade $299, but a Studio 8 upgrade $399? I’d be the first to agree that Dreamweaver is worth about 20 bucks, but man, what a kick in the nads!

It seems to me that Adobe’s iron-fist monopoly pricing structure is a giant bird-flip to the entire creative market.

Ed Staub, Manchester NH 26 May 06

Even when added features are good additions,
why does most software get bloated?
Fear of disruption, and ignorance.

Imagine two cases:
One, where a feature set is all released at the same time.
Two, where the feature set is released in thirds, over a three-year time span, and is not known when the first release is shipped.

In the first case, designers can see the whole picture and design the product as a coherent whole.

In the second case, designers must avoid breaking any existing functionality, and must minimize disruption of the current UI and API.

In order to reduce risk of breakage to existing functionality, internal refactoring and redesign is often avoided.

The result is that the bloated sum of the parts is greater than the whole.

Josh Ferguson 28 May 06

John,
I want to know what company has 250,000 employees. Even Wal-Mart the largest company in the world only has just over 45,000. That must be an amazing company you work!..:)

the rest,
So about this, I’d be inclined to agree that bloat is bad and these things along with other psychological issues and the normal uncertainty in running any business cause risk. The ‘Fear’ that was mentioned above is merely a result of the uncertainty of adding a feature. There is some possibility that adding the feature will make the software much better and your users will love you, and then the possibility it will make their experience that much more difficult.

My question then is, when do you stop? If you do stop, do you just never touch the software again? When does basecamp or campfire stop. Are they done being developed for a few years until more features come up that are must haves? When do any of us stop? Should word have stopped at 97, 2000, XP?

All of this uncertainty makes it a little difficult to ascertain the true stopping point. So ontop of pre-empting the problem by writing articles and talking about it, someone should hold workshops and write about how to take features out of software. :)