What is Bloatware, what types exist and does an agile approach help against Bloatware?
Featuritis without real benefit
Bloatware is software that has an excessive number of unnecessary, unused features. So bloatware stands simply for “inflated” or ” bloated” software. As an alternative to bloatware, the term “software bloat” is also used.
The process that leads to bloatware is called creeping featuritis. The reasons for this disease of creeping increase are mostly a lack of stakeholder communication, ignorance of basic needs, satisfiers and delighters (as described by the Kano model), overengineering or the desired marketing of new functions or entire programs.
Types of bloatware
Basically, there are three different types of bloatware:
- Software that is overloaded with functions that provide little or no benefit to the majority of users.
- Software that offers similar functions to competing products, but requires more system resources.
- Software that is either additionally installed with the installation of other programs or has already been pre-installed (and often cannot be uninstalled on smartphones). This type is also called Crapware.
By simply counting function calls within a software, manufacturers could relatively easily find out which functionalities are used or not used by users. As a result, features could either be removed from the functional scope of future versions or outsourced to plug-ins or add-ons. In the case of outsourcing, interested users could continue to use these functions, while all other users use “leaner” software. The development of modular software could also be an instrument against bloatware in itself, but often meaningful modules also contain functions that offer only minor benefits or are rarely used.
Bloatware despite agile software development
Can agile software development also lead to bloatware? The answer is yes. Ideally, agile – and also traditional – software development takes the wishes and requirements of the user into account. There are numerous ways to get to know them, e.g. through dedicated requirements engineering. In practice, despite agile software development, the prioritisation and refinement of backlogs is often carried out without user feedback and without a focus on the business value of individual functions. And this can lead to the provision of functions that merely inflate the corresponding product.
From the point of view of quality assurance, bloatware could also possibly violate the test criterion “absence of unspecified functionalities (by the customer)”. A circumstance that also plays an important role in so-called Gold Plating.