Software wird nur noch selten als isolierter Monolith entwickelt. Typische Szenarien sind die Anbindung komplexer Fremdsysteme, die parallele Erstellung von integrierten Hard- und Software-Komponenten oder die Entwicklung sogenannter Cyber Physical Systems bzw. hochverteilter Systeme für das Internet of Things.
Um die Komplexität solcher Szenarien in den Griff zu bekommen, hat sich die Disziplin des Systems Engineering bewährt. Insbesondere in kritischen Umfeldern kommt man ohne Modelle z. B. für die Analyse der Auswirkungen externer Einflüsse oder Attack Surfaces nicht mehr aus.
Die volle Leistungsfähigkeit entwickeln standardisierte Programmier- und Modellierungssprachen erfahrungsgemäß erst dann, wenn sie durch Domain Specific Languages (DSLs) ergänzt oder für die jeweilige Domäne angepasst werden. Die Einführung von DSLs ist eine zeitgemäße Innovation und steigert die Entwicklungsgeschwindigkeit.
Auch Software altert und zeigt Verschleiß. Was im ersten Moment paradox klingt, lässt sich empirisch nachweisen. Proaktives Änderungs- und Wartungsmanagement hilft dabei, teure Neuentwicklungen zu vermeiden.