Are Features The Enemy?

Could this feature bloating be compared to multiple sequels of a good movie?

I see that many believe that software or electronics eventually reaches an “optimal” point. I cannot really see how that could be. Businesses and consumers are changing the way they do tasks every day. I do not see how a product that doesn’t change could keep up. There will always be new features that perform a task more efficiently or in a novel way; of course, new features that overlap with others or that make old ones obsolete should be dropped. That seems obvious, but I’ve seen products with ancient features that no one uses and are only because people are used to seeing them (floppy disk drive, anyone?).

As far as the “feature matrix,” I see a problem with software that tries to be a catch-all for every feature that ever was. It never works. When I need a product, I have specific features in mind to do specific tasks. Then I go to buy that product and become frustrated because the one feature that I need (and on the top of my list, no less) is not even offered by most of the products. They are all so busy competing to have the most useless features that they forget to innovate and focus on what customers really need to do a particular task.

Dang, as I was reading your post, I was actually thinking about how that happened with Winamp. It used to be fast, now it takes forever to start up and load a song. I fnally gave up on it. It used to be my favorite! Then I saw you use Winamp as an example. Right on!I hope those idiots at nullsoft read your article, and wake us up from the nightmare that Winamp has become!

It’s not the developers or managers faults completely.

The real source for all the suckiness is the users. Developers are only guilty of doing what the user (says he )wants.

Somewhat missing the point here but…

The last thing on earth I want my word processor to do is automatically do anything.

So automatically indenting the first line of a paragraph is a huge nuisance. Especially when I am not typing a letter. Properly indenting pseudo code or bulleted lists in a design type document is nearly impossible with-out first turning off all of Word’s automatic features.

The two last posts talk about the new features, and why them spoils a software. There is other consecuence in the development of new features. The New Features always is a productor of bugs in our software. With this observation, we have a trilogy about the problems of new features :wink:

i noticed that many of the examples you used in your last 2 posts were “freeware” suppported by some sort of ads (aim, media players, etc.)

it seems to me that feature-creep is a logical outgrowth of this software model. if you want to support your software with ads you need your software to be used by as many people as possible.

therefore, the goal becomes to pack as many features as possible into your software to get as many people as possible to spend as much time as possible using it. an instant messenger client that can send messages, check email, read rss feeds, order movies, play music, remind you to feed the dog, post to your blog and cook dinner makes perfect sense in this context.

the model works well since most computer users don’t understand that “big” software necessarily runs slower (all else equal) than “small” software and so they upgrade and continue to choose their software based on feature matrices without a second thought.

of course it would be more efficient to have programs that do one or a few things well, but then that would make it harder to make money from in-software ads.

there’s no reason though why you can’t make feature bullets from bugfixes:

  • improved compatibility of file uploader
  • streamlined interface
  • now doing x is 30% faster
  • better compatibility with format y

Features are the enemy - of developers. In the world of software “products”, they are essential. You simply can’t sell “more stable” since customers expect what they bought last time was already stable. Yes, maybe it lacked features, but those that were implemented were implemented properly, right? Imagine an auto company saying “buy this year’s model of X - the brakes work way better than they did in last year’s model.”

So although we developers hate the fact that the requirements for a given release of the product include primarily new features and little if any “refactoring” or “framework re-architecture” it is a fact of life we must get used to.

“Of course, measuring productivity and results is hard, whereas counting bullets on a giant feature matrix is brainlessly easy”

Welcome to the world of capitalism. Follow the money trail and you’ll have your answer. Businesses need to survive; they do this buy selling more products. They sell more products by subjecting us to these clever little marketing campaigns that tell us our life isn’t complete without the “New” and “Improved” widget. They tell us it will cure cancer and give us a better woody. And of course, we buy it…

This problem isn’t just with software, it’s every product out there. I mean, my God, how much softer and bigger can toilet paper get? I’m perfectly happy with toilet paper version 1.0.

I must confess: I think it’s natural. Like evolution. Mammals become bigger, larger, expanding in their biological niche until a specialized predator comes along and kills them off. By overeating the predator himself follows the same cycle and so on and on. :slight_smile:
I don’t think that is negative at all. It’ll get us all new kinds of software. Think of an large OS…

I attended a talk not too long ago by Jared Spool, a guy who’s been in the usability biz quite a while now. He postulated that there are three “eras” of software development:

  1. The technology phase, where the business is driven by the novelty of a technical solution - ANY technical solution. This is now largely past, but think of the first word processors or the first commercial websites. Just that they existed and worked was enough to drive demand.

  2. The feature phase, where the business is driven by competing feature list. This is exactly what you are describing in your posts. This phase starts out in “big list” mode that focuses on volume of features, but eventually migrates to “right size” mode which focuses on the exact selection of features. But features are still the focus.

  3. The experience phase, where the market is mature enough that they finally begin to focus on the user experience as the key market differentiator and driver of competitive advantage. This seems to be very much the focus of companies like 37signals who aren’t stuck with one foot firmly planted in the pre-dot-com era. But even MS can be seen moving in this direction with ideas such as the MSOffice ribbon.

If this model holds true (and I’m far from convinced that it will, no matter how much I wish it were so) then what we are seeing is an evolution away from “featuritis” and the resultant bloat that eventually kills applications. So perhaps, with an appropriate focus on user needs as the driver of development, implosion is not inevitable… at least for the products that come from companies who “get it.”

Ahh Software bloat. Even today I probably use less than 1% of all the wonderful ‘features’ in Word and Excel. Ok, with every upgrade it looks slightly nicer but I doubt I actually use any of it except maybe in the first five minutes of prodding around to see whats new.

I think that the issue of software bloat is especially bad in the commercial operating system market. Just look at how much disk space and RAM both Vista and Mac OS X are using.

And why is it happening? Because new features are the only reason to buy new operating systems. How many people would have bought a new copy of XP or Mac OS X if the only new features were fewer bugs and more security? While geeks might appreciate what was done, I suspect most people wouldn’t.

The funny this is, I actually don’t mind Apple and Microsoft including so much middleware with their OSes, as I think it provides good value to consumers but good god man, at least give us power users a hidden option of not installing it! Not everyone needs Internet Explorer/Safari, or Media Player/iTunes, or Calendar/iCal, or Windows Mail/Mail. And I really don’t need hundreds of megabytes of wallpapers.

MS and Apple really need to take a more modular approach to their OSes. It’s not like their don’t have software installation systems in place.

Oh, and let me say that I am a former Mac OS X user, now Vista user. I like them both; they are both just too bloated.

Abdu writes: “The model is not doomed as long as computers get more powerful and memory and hard drives get cheaper and bigger.”

Rubbish. I used to use VC4 and it was great, I could have several copies open at the same time on a box with 16Mb ram and it was responsive and did enough for me to code effectively. Now I have VS2005 on a box with 1Gb RAM and I cannot open 2 copies because moving from one to the other requires a 5 minute swap-fest. My productivity has actually decreased using the new tool.

For developers VC6 was the pinnacle of development IDEs. The new ones (and yes, new stuff every 3 years for some stupid reason… probably that the previous version was not as good as it should have been) have been simply a waste of time and effort all round.

2 points I’d like to add:

  1. software sometimes spoils intentionally to sell support or sell new software, code is not something that actually degrades like other products, take the tread on tires for example. because of this they force it to break with updates, licenses, subscriptions, ending support, wga, etc.

  2. people make software, and people don’t usually know what the hell they want, out of boredom they are prone to change something even when it works right, for eternity they are searching for the greener grass

Users don’t know what they want. Yes, we’ve added features to the software that we know are useless, and we advise our customers (after they’ve bought it) not to use said features, but the other companies’ marketing team said how much they needed feature X or feature Y. Of course, we’ve been doing this niche software for long enough to know - the customer would never REALLY want to do x in their office - unless they want an angry mob at their doors. So, we add feature X, then make it hard to find.

So, who decides how many features is too many? I see a lot of posts here from (presumably) software development types complaining about feature bloat, and yet you must realize that software use by development types is an entirely different process than its use by a more general computing population. You all have a level of focus and mastery over your tools that most computer users do not. Features that you find useless or annoying may actually be very helpful to others. It may also be comforting for them to know that certain features exist, even if they aren’t currently using them, particularly if they are not confident in their ability to manage multiple applications and whatnot.

Feature bloat is in the eye of the beholder. Experts get a kick out of announcing the miniscule memory footprint of the text editor they use; average users do not. Average users want to be able to do the most amount of stuff with the minimum amount of mucking around. There is an argument that the increasing complexity of interfaces to manage the “bloat” is problematic, but features themselves are not bad.

I might seem like a good idea to integrate features from one product into another, but you run into bloatedness when that happens. Sometimes, these features might actually conflict.

Example:
If you have Adobe Acrobat reader installed, you can view pdf files right in your browser. The one thing that ticks me off the most is when I want to open a new tab while viewing a pdf. Unfortunately, ctrl+t is sent straight to the pdf, rather than firefox, and my new tab doesn’t open. I don’t understand why it would be this way. I’m in Firefox, let me open a new tab with a keyboard shortcut.