Evolvierbarkeit (Software)
# Evolvierbarkeit (Software)

Die Evolvierbarkeit ist ein Kriterium bei der Entwicklung von Software, das anzeigt, mit welcher Energie und welchem Erfolg neue Features eingebracht werden können.

Die Evolvierbarkeit einer Software ist optimal gegeben, wenn ein Feature-Request zu einem späten Zeitpunkt des Entwicklungsprojekts mit dem gleichen Aufwand umgesetzt werden kann, wie wenn das Feature von Anfang an gefordert gewesen wäre. Sind neue Features zu einem späten Zeitpunkt nur mit sehr großem Aufwand umsetzbar, ist die Evolvierbarkeit der Software gering.

Evolvierbarkeit ist eine nicht-funktionale Eigenschaft einer Software, die unter anderem von Softwaredesign- und Softwarearchitektur-Entscheidungen abhängt.

Beispiele für Ansätze, die Evolvierbarkeit unterstützen sind:

* Trennung von Implementierung und Schnittstelle
* Separation of Concerns
* Lose Kopplung
* KISS-Prinzip
* Prinzipien objektorientierten Designs
* Serviceorientierte Architektur bzw. Microservices
