1. Startseite
  2. Wissen kompakt
  3. Overengineering

Overengineering

Wissen kompakt: Overengineering beschreibt ein Phänomen, dass Produkte und Dienstleistungen in einer höheren Qualität entwickelt und geliefert werden, als dies von Kunden gefordert wird.

Overengineering – Mehr muss nicht besser sein

Overengineering beschreibt eine Situation, in der ein Produkt robuster konstruiert wird oder mehr Merkmale aufweist, als es für seinen Verwendungszweck notwendig ist oder vom Anwender erwartet wird. In der Folge steigen die Aufwände und Kosten in der Entwicklung, in der Wartung und der Pflege. Die Entwicklungsdauer und möglicherweise auch die Fehlerwahrscheinlichkeit des Produkts nehmen zu. Häufig werden Lösungen zudem komplizierter in der Bedienung und die Performance der Lösung leidet.

Auch bei Dienstleistungen gibt es dieses Phänomen und selbst bei Prozessen wird der Begriff des Overengineerings oft verwendet; immer dann, wenn ein Prozess unnötig komplex oder ineffizient ist. In solchen Fällen wird auch gerne von einem Overkill gesprochen.

Gründe für Overengineering

Es gibt verschiedene Gründe für ein Overengineering:

  • Das Streben nach Perfektionismus, denn erst wenn ein Produkt auch Feature X und Y unterstützt, ist es in der Wahrnehmung der Designer und Entwickler eine perfekte Lösung.
  • Die Unkenntnis der tatsächlichen Wünsche und Bedürfnisse der Kunden, aufgrund mangelnder Kommunikation mit Stakeholdern und lückenhaften Prozessen zur Anforderungserhebung.
  • Die Orientierung an vorhandenen Lösungen am Markt und das damit einhergehende Gefühl, ähnliche Basis- und Leistungsmerkmale liefern zu müssen.
  • Anforderungen können sich ändern und neue Technologien erscheinen, die frühere Designentscheidungen in Frage stellen. In diesem Wissen entwerfen System- und Softwarearchitekten gerne Lösungen, die Erweiterungsmöglichkeiten oder Schnittstellen bereitstellen, die derzeit noch nicht benötigt werden.

 

Overengineering

Das richtige Maß zwischen Over- und Underengineering

In der Praxis der Produktentwicklung ist es schwierig, das richtige Maß zwischen Overengineering und Underengineering zu finden. Wo liegt die Grenze zwischen guten Design und zu viel Design? Wie lässt sich bei einem Code-Review herausfinden, welche Teile konkret benötigt werden und welche bereits für zukünftige, imaginäre Anforderungen realisiert wurden?

Bei der Entwicklung von Produkten empfiehlt es sich,

  • Lösungen nicht generischer zu machen, als sie sein müssen, und
  • Erweiterungsmöglichkeiten nur dann vorzusehen, wenn es sehr wahrscheinlich ist, dass sie zukünftig benötigt werden.

Sicherlich ist es auch sinnvoll, frühzeitig Feedback von Kunden und Anwendern einzuholen.

Impuls zum Diskutieren

Ist Overengineering eine logische Konsequenz, wenn Entwicklungsteams die Entstehung von technischen Schulden vermeiden wollen?

Hinweise:

Wenn Ihnen der Beitrag gefällt, teilen Sie ihn gerne in Ihrem Netzwerk. Und falls Sie sich für Tipps aus der Praxis interessieren, dann testen Sie unseren beliebten Newsletter mit neuen Beiträgen, Downloads, Empfehlungen und aktuellem Wissen. Vielleicht wird er auch Ihr Lieblings-Newsletter.

Wir suchen Softwareentwickler und Softwareentwicklerinnen. Haben Sie Lust, unser Team zu verstärken? Ob Sie als Berufseinsteiger die ersten Schritte machen, bereits einige Jahre Erfahrung mitbringen oder als Expertin tief im Code stecken – bei uns finden Sie genau die Herausforderung, die zu Ihnen passt!

Was macht t2informatik?

Was macht t2informatik? Kleiner Tipp: Es hat etwas mit Softwareentwicklung zu tun!

Hier finden Sie ergänzende Informationen aus unserer Rubrik Wissen kompakt:

Wissen kompakt: Was ist Gold Plating?

Was ist Gold Plating?

Wissen kompakt: Was ist das YAGNI-Prinzip?

Was ist das YAGNI-Prinzip?