DWX - Developer Week 2017
26.06.17 - 26.06.17
In Nürnberg

AppDRoadshow 2017
27.06.17 - 06.07.17
In Köln, Hamburg, Stuttgart, München, Zürich

Next IT con.
27.06.17 - 27.06.17
In Nürnberg

PM CHALLENGE IlluMinate: Communication
29.06.17 - 29.06.17
In München, SkyLounge

DIGILITY - Augmented und Virtual Reality
05.07.17 - 06.07.17
In Köln

SpiraleImmer kürzer werdende Entwicklungszyklen führen oft zu fehlerhaften, enttäuschenden neuen Releases. Mit dem Ergebnis, dass möglichst schnell die nächste Version erscheint. Wie entkommt man dieser Spirale? Welche Lösungswege gibt es?

Die Digitalisierung führt dazu, dass immer mehr Unternehmen erkennen, dass Softwareentwicklung in ihrer Wertschöpfungskette einen immer zentraleren Stellenwert einnimmt. Ein Blick in die Autoindustrie macht diese Entwicklung deutlich. Noch vor wenigen Jahren fand der Hauptteil der Entwicklung und Herstellung in den Bereichen der Mechanik, der Materialien oder des Designs statt. Heute stellt die Softwareentwicklung einen der wesentlichen Bestandteile in der Wertschöpfung dar. Insbesondere bei Herstellern wie Tesla ist die Bedeutung der Softwareentwicklung augenfällig: Große Updates, die auf Basis der bestehenden Hardware neue Funktionen und Features erschließen, werden von Kunden inzwischen erwartet und in schnellen Abständen geliefert.

Neben diesen Erwägungen bringt auch das Thema Cyber-Security die Notwendigkeit mit sich, regelmäßig Sicherheits-Updates und -Patches zu veröffentlichen. Der stark anwachsende Grad der Vernetzung durch das Internet der Dinge und Dienste sowie die Schnittstelle zwischen IoT-Geräten und Cloud befeuern zusätzlich die Tendenz immer kürzer werdenden Zyklen bei der Softwareentwicklung.

Software-Aktualisierung als Großereignis

Software-Updates waren jedoch nicht immer eine Angelegenheit täglicher Routinen. Mit dem Release eines OS-Updates von Apple gingen früher großen Erwartungen einher und es handelte sich entsprechend um wichtige Ereignisse. Eine Strategie, die sich auch andere Hersteller zunutze gemacht haben, um sich von den Konkurrenten abzugrenzen. Ein Software-Update des Kameraherstellers Fujifilm ist fast gleichbedeutend mit einer neuen Produktveröffentlichung: Neue Software transformiert teilweise grundlegend bestehende Produkte durch neue Features und grundlegende Verbesserung der Funktionen. Auch ältere Technik wird so den neuen Bedürfnissen und Möglichkeiten angepasst.

Der Status quo der Softwareentwicklung: Updates, Bug-Fixes und Beta-Versionen

Heute stellen Softwareaktualisierungen die Normalität dar – laut einer aktuellen Studie sind Updates zum großen Teil bereits wöchentlich (ca. 70%) fällig und in manchen Fällen sogar täglich (28%). Angesichts dieser Situation stellt sich die Frage nach Gründen und möglichen Lösungsstrategien. Einer der Hauptgründe für die immer kürzer werdenden Aktualisierungszyklen ist sicher die frühzeitige Veröffentlichung von unfertiger, teils fehlerhafter Software beziehungsweise von Beta-Versionen. Skalierbarkeit, Erhöhung der Kapazitäten und Marktanteile haben gegenüber reiner Leistungsfähigkeit der Software Priorität. Besonders im Start-up-Umfeld und bei jungen Unternehmen geht es in der Regel darum, so schnell wie möglich ein laufendes Produkt zu erstellen – Zeit zum ausgiebigen Testen bleibt oft nicht.

Innovation und Schnelligkeit gelten heute als entscheidende Bestandteile von agilen, erfolgsversprechenden Strategien. Dabei gerät der Reifegrad der entwickelten Software in den Hintergrund. Das Motto ist, besser der erste am Markt zu sein, als eine fehlerfreie Software zu veröffentlichen. Ergänzend zu solchen Faktoren, haben sich parallel die Techniken der Softwareentwicklung in den letzten Jahren grundlegend verändert, was ebenfalls zu immer kürzeren Entwicklungszyklen führte. DevOps – die Kombination aus Entwicklung („Development“) und Betrieb („Operations“) – ermöglicht es heute, sehr schnell live zu gehen und Aktualisierungen während des laufenden Betriebs durchzuführen.

Ansprüche an die Softwareentwicklung steigen: Integration in komplexe Systeme

Durch die zunehmende digitale Vernetzung in der industriellen Fertigung, der Industrie 4.0, steigen auch von Kundenseite die Ansprüche an die Softwareentwicklung. Die vernetzte Produktion benötigt sowohl ein hohes Maß an Sicherheit sowie komplexe Lösungsansätze. Beides ist die Voraussetzung für maßgeschneiderte Produktion, die gesteigerten Ansprüche an die Qualität der Fertigung und für das Überleben auf einem immer dynamischer werdenden Markt. An dieser Stelle wird deutlich, wie sehr sich hier zwei Entwicklungen gegenseitig beeinflussen: Die Innovationszyklen werden nicht nur im Rahmen der Softwareentwicklung immer kürzer, sondern auch im Hardwarebereich. Letzteres erfordert wiederum Anpassungen und Aktualisierungen auf der Softwareseite.

Schwierig wird dies insbesondere dann, wenn es um die Integration von neuer Software in teilweise veraltete oder heterogene Systeme geht, die auf Rückwärtskompatibilität angewiesen sind. Selbst in einem Unternehmen, in dem Individualsoftware zum Einsatz kommt, kann eine Software schon nach einigen Monaten den Legacy-Status erreichen. Die Entwicklung eines neuen Systems ist mit einem großen Zeitaufwand verbunden und oft mit Umsatzeinbußen verknüpft. Um Situationen wie diese zu vermeiden, gibt es eine Reihe von unterschiedlichen Lösungsstrategien, die auf unterschiedlichen Ebenen ansetzen.

Lösungsstrategien: Auf dem Weg zu fehlerfreier und anwenderfreundlicher Software

Software entsteht oft unter Zeitdruck, so dass kaum Zeit zum ausgiebigen Testen bleibt. Aufwändig zu programmierende kleinere Unit-Tests und Test in komplexeren Zusammenhängen erfordern einen gewissen Reifegrad des Codes und werden in den Zeiten von Continuous Delivery zur Herausforderung. Die Entwicklung und Pflege einer möglichst vollständigen Testautomatisierung zählt darum zu einer zentralen Anforderung einer zeitgemäßen Softwareentwicklung. Die Zahl der Bugs kann dadurch drastisch minimiert und eine stabil laufende Software sichergestellt werden.

Ein Einsatzpunkt für Verbesserungen ist der bereits erwähnte DevOps-Ansatz. Zwar führt die Kombination von Development und Operations zu zielgerichteten und praxisorientierten Prozessen bei der Softwareentwicklung. Insbesondere bei der Erstellung von Individualsoftware lohnt sich jedoch der „Umweg“ über einen Prototypen: kollaborative Protoyping verspricht eine noch anwenderfreundlichere Software. Dabei wird der Kunden früh ins Boot geholt, so dass bereits im Vorfeld beziehungsweise während der Entwicklungsphase ein verwertbares Kundenfeedback direkt in den Prozess des Programmierens einfließen kann.

Erhöhung und Gewährleistung von höherer Qualität in der Softwareentwicklung verspricht das Vier-Augen-Prinzip: Pair Programming ist ein Lösungsansatz, der zunächst aufwändiger ist, aber im Resultat weniger Folgekosten bedeutet. Sowohl der Austausch über Ungereimtheiten im Code als auch die Minimierung der Fehlerrate führt zu fehlerfreien Software und zugleich mehr Lernsituationen. Diese stellen einen weiteren wichtigen Bestandteil einer Lösungsstrategie dar. Ein positiver Umgang mit Fehlern, genauer gesagt einer auf Fehlern basierenden Lernkultur, ist wichtig bei der Ausbildung von zukünftigen Talenten. Wenn Fehler erst nachträglich auf Projektebene behoben werden, schließt daran kein Lernprozess an.

Softwareentwicklung im Zeitalter von IoT und Continuous Delivery

Der Bedarf an sicherer, fehlerfreier und aktueller Software ist heute größer denn je. Angesichts des Internets der Dinge wächst die Zahl an vernetzten Geräten und IoT-Anwendungen sprunghaft. Zwar gibt es hier vielversprechende technische Lösungen wie etwa der Einsatz von Containern – dadurch werden bleiben aber zwei wesentliche Aspekte unberührt: Der Prozess der Softwareentwicklung selbst und die Situation auf Arbeitsmarkt. Softwareentwickler zählen nach wie vor zu den gefragtesten Berufsgruppen und leidet gleichzeitig massiv unter Fachkräftemangel. Insbesondere kleinere und mittlere Unternehmen können sich in der Regel durch die hohen Personalkosten keine eigenen Softwareentwickler leisten. Verlässliche Partnerschaften und Kooperationen gewinnen in diesem Zuge eine immer größere Bedeutung. Denn die verschärfte Situation am Arbeitsmarkt führt zusätzlich zu einer hohen Entwicklerfluktuation, so dass es für Projektneulinge zusätzlichen Zeitaufwand bedeutet, tief im Code verborgene Fehler zu entdecken und zu beheben. Darum sind Lösungsstrategien, die beim Prozess der Softwareentwicklung selbst ansetzen, heute eine zentrale Voraussetzung für die stabile und anwenderfreundliche Software.

Thomas MüllerThomas Müller ist Geschäftsführer der Solcom GmbH, einem branchenübergreifenden Technologiedienstleister in den Bereichen Informationstechnologie und Engineering. Seit mehr als 20 Jahren arbeitet Solcom als Partner global agierender Spitzenunternehmen. Aus dieser Erfahrung heraus schreibt er über Trends und technische Neuerungen im Bereich der IT und der Digitalisierung. 

 


 

Frische IT-News gefällig?
IT Newsletter Hier bestellen:

Newsletter IT-Management
Strategien verfeinert mit profunden Beiträgen und frischen Analysen

Newsletter IT-Security
Pikante Fachartikel gewürzt mit Shortnews in Whitepaper-Bouquet

 

Awareness Factsheet