I have come across the expression software/feature bloat, but is this a real thing or should we rather be talking about things like performance problems, memory and disk footprint, user experience and on-demand installation? What am I missing here?
5 Answers
In my experience, it is because feature bloat is a root cause of problems rather than a direct problem that it useful to think of it separately.
In addition to the potential problems for the end user listed in the original question, feature bloat can have significant maintenance cost. When adding a new feature it's important to not only consider the cost of developing that feature, but maintaining it over the lifetime of the product. The oft-quoted rule of thumb is that time spent on a feature is 20% development and 80% maintenance, but in the real world it varies widely depending on feature complexity and degree of interaction with other features.
-
1I'd argue one can add features that have negative maintenance costs . . . Jan 9, 2012 at 21:38
-
@WyattBarnett I guess some bug reporting features, could be examples of this.– DavidJan 10, 2012 at 8:49
There are two meanings of this:
First is not about technical shortcomings, it's about user experience. Unnecessary features make it harder for user to figure out the application. User will perceive application as too complicated and will not know how to do basic stuff.
Second is that having too many rarely used features makes software bloated in terms of memory and disk footprint. That's why in lot of applications you have plugins instead, which can be installed only when you actually intent to use them.
-
2Interestingly: The Ribbon, in office, was an attempt to combat the first. From what I recall, there was a staggering number of feature requests for Office 2007 that already existed. People just couldn't find them. Jan 9, 2012 at 20:06
-
In terms of memory and disk footprint you really shouldn't be that worried. RAM and Hard Drives are getting cheaper and faster every year.– user20891Jan 10, 2012 at 1:25
A very similar term is "feature creep". vartec's answer is a better explanation of "feature bloat" but you should also know what "feature creep" means.
Basically, as a project evolves there is often a tendency for more features to be added to the project. This becomes a serious planning problem, as it is impossible to ever finish a project that keeps changing and increasing in scope.
Where "feature bloat" connotes more of a user experience problem, "feature creep" is more of a scheduling problem.
I think software bloat and feature bloat are two differentt things.
A particular feature could be implemented with less code, so it's not the feature but the software that is the root of the cause. Developers need to be constantly reminded to not add features that weren't requested.
It's tempting to jump all over the number of user requests. Sure they can ask too much relative to the development resources available, but programmers often add features of their own. Developers tend to bring a bazooka to a mosquito hunt.
During the late 1990s, Microsoft Excel had at least three, and I think four, mutually-incompatible ways to add an "international" currency symbol onto a formatted number, each accessed by its own separate UI.
So, yeah, "feature bloat" certainly does exist.