Donnerstag, 21. Mai 2020

Feature Bloat

Bild: Flickr / Tiger Girl - CC BY 2.0
Es gibt Begriffe mit denen man Kommunikation unglaublich beschleunigen kann, da sich in sich einen immensen Bedeutungsumfang beinhalten. Einer von ihnen ist der Feature Bloat, bzw. die Bloatware. Er ist bereits für sich genommen sprechend, beinhaltet bei näherer Betrachtung aber noch eine ganze Reihe weiterer Antipattern und Fehlerquellen. Auf ihm bauen verbreitete Leidensgeschichten auf aber auch eines der bekanntesten IT-Memes. Es lohnt also zu wissen was das eigentlich ist.

Zur Semantik: unter diesem Begriff versteht man das "Aufblähen" (→ to bloat) von Produkten mit immer neuen Funktionen. Die Gründe dafür liegen häufig im Marketing oder Vertrieb, die hoffen, dass dadurch neue Kunden gewonnen oder bestehende Kunden gehalten werden können. Eine vor allem in der IT verbreitete Ursache kann auch technische Verspieltheit sein, eine weitere ist, dass neue Features in bestehende Produkte eingebaut werden um die Kosten einer Neuentwicklung zu sparen. Und es gibt noch viele weitere.

Was sie alle gemeinsam haben: ihre Intention mag gut sein, tatsächlich geht diese Art von Produktentwicklung aber so gut wie immer am Markt vorbei. Die wenigsten Anwender wollen "das eine Werkzeug das alles kann", alleine deshalb nicht weil mit der steigenden Anzahl an Funktionen Navigation und Bedienung immer komplizierter werden, was früher oder später unverhältnismässige Nutzungsaufwände und ständige versehentliche Fehlbedienungen zur Folge hat. Und eine am Bedarf vorbeigehende Entwicklung ist Überproduktion, eine Verschwendung in Reinform.

Als zusätzlicher Punkt kommt dazu, dass die Produktentwicklung mit steigendem Funktionsumfang immer aufwändiger in der Entwicklung wird. Bei arbeitsteiligen Teams führt das dazu, dass sie mit immer weiteren Teams immer granularere Abstimmungen vornehmen und gegenseitig auf Zulieferungen warten müssen. Bei crossfunktionalen Teams kann das vermeidbar sein (es sei denn Arbeit wird parallelisiert, in der Hoffnung schneller zu werden), dafür kommt es hier fast zwangsläufig zur gleichzeitigen Arbeit an verschiedenen Stellen, mit den bekannten Effizienzverlusten.

Zuletzt wird die Entwicklung selbst immer komplexer wenn immer weitere Features eingebaut werden. Eine grosse Anzahl von Schnittstellen und Abhängigkeiten erhöht das Risiko, dass einige von ihnen übersehen werden. Die Folge ist ein immer grösserer Aufwand für Integrations- und Regressionstests, der immer weniger Zeit für die eigentlich wertschöpfende Arbeit lässt. Und ab einem bestimmten Komplexitätsgrad finden auch die nicht mehr alles, dann werden Fehlerhafte Produkte erzeugt und erfordern zusätzlichen Reparaturaufwand.

Zusammengenommen führen diese Faktoren dazu, dass mit immer grösserem Aufwand immer geringere Ergebnisse entstehen. Damit fällt Feature Bloat genau in die Kategorie der Ideen von denen man sich möglichst schnell verabschieden sollte.

Related Articles