Agile Softwareentwicklung in der Schweiz 2017 in Zahlen


SwissQ,

Software ist überall in der Schweiz. Von der „von einem Studenten entwickelten iOS-App“ hin zum millionenteuren Zahlungssystem in einer Grossbank. Agile Softwareentwicklung verspricht Software schneller und in besserer Qualität zu liefern. Besser auch im Sinne von: Die Software macht, was sie soll. Dabei ist Software immer mehr vernetzt mit anderen Systemen und normalerweise keine komplette Neuentwicklung. Meist wird eine bestehende Software erweitert und/oder modernisiert. Dabei bestehen grosse Abhängigkeiten zum Betriebssystem, der verwendeten Hardware und der Integration in bestehende Systeme. Unsere Trends & Benchmark Studie der Schweizer IT 2017 zeigt es deutlich: Nur ein Drittel der Schweizer Software Projekte ist eine Neuentwicklung.

Agile Software-Entwicklung in der Schweiz - Projektart

Agile Software-Entwicklung in der Schweiz – Projektart

Die hohe Komplexität von Software in Verbund mit hohem Zeitdruck (Stichwort Digitale Transformation) hat daher in den letzten Jahren dazu geführt, dass Software vermehrt „in kleinen Paketen“ entwickelt wird.  Die sogenannte Agile Softwareentwicklung, z.B. mit der Scrum-Methodik, versucht kleine Probleme in kleinen Teams zu lösen. Häufig sind diese Teams auf verschiedene Standorte verteilt, evtl. über mehrere Zeitzonen. Die Teams sind evtl. auch spezialisiert auf bestimmte Technologien, z.B. Design, Security oder Mobile Entwicklung. Nicht jedes Projekt „muss“ in Form Agiler Softwareentwicklung realisiert werden. Das sehr verbreitete Szenario eines Software Updates für eine wichtige Business-Software oder der Austausch veralteter Hardware wird auch weiter strukturiert in einem wasserfallartigen Projekt möglich und wahrscheinlich sinnvoll sein. Entsprechend werden weiterhin traditionelle Wasserfall-Projekte oder Mischformen realisiert (siehe Grafik unten).

 

Agile Softwareentwicklung schafft maximalen Nutzen bei fixen Kosten

Ein zentrales Element von agilem Projektvorgehen ist das Versprechen immer „das aktuell Wichtigste“ zu erledigen. In jeder Phase wird zunächst gefragt: „Lieber Kunde, welche zusätzlichen Funktionen würden Dir jetzt den grössten Nutzen bringen?“ Dabei sind die Kosten für die kommende Phase vorgegeben.

Wenn der Kunde nicht mehr bereit ist, für die nächsten Funktionen den gegebenen Preis zu zahlen, dann ist die Software „fertig“.

Die Idee klingt logisch und funktioniert bei kleinen Projekten in der Tat sehr gut. Wenn der „liebe Kunde“ aber in Wirklichkeit nicht eine Person, sondern mehrere Abteilungen in einer Behörde oder Grossbank sind, dann wird das schwierig umzusetzen. Auch ist es häufig sehr schwer, eine extern entwickelte Software final abzunehmen, wenn die Funktionalität ständig im Fluss ist. Insbesondere das Thema Vertrag ist in der Agilen Software Entwicklung daher schwierig.

 

Agile verspricht höhere Qualität

Eine wirklich grosse Software kennt keine einzelne Person mehr im Detail. Nicht die Bedienung, nicht alle Schnittstellen und schon gar nicht alle Programmanweisungen. Das führt zwingend zu Kommunikationsproblemen, Doppeltarbeiten – und vergessenen Arbeiten. Die naheliegende Idee ist daher, die Software in mehrere kleine Portionen zu zerlegen. Wenn die Zerlegung geschickt vorgenommen wird, dann sinkt die Komplexität und damit kann die Qualität steigen. Und in der Tat zeigt unsere Trends&Benchmark Studie, dass Projekte erfolgreicher sind, je kleiner sie sind.

Auch technische Massnahmen, wie der konsequente Einsatz von Testautomation oder das Erstellen eines täglichen Releases (Stichwort DevOps) können die Software-Qualität massgeblich erhöhen. In der Schweiz hat eine Sättigung stattgefunden. Der Anteil an mit Testautomatisierung abgesicherter Software ist 2017 nur noch minimal gestiegen.

Software Testautomatisierung in der Schweiz

Software Testautomatisierung in der Schweiz

 

Ein grosses Problem: Wann ist Done wirklich DONE?

Als Software Tester habe ich nicht nur die Aufgabe, zu prüfen, ob Funktionen korrekt funktionieren, sondern auch, ob sie das „Richtige“ machen. In Agilen Projekten wird sehr wenig dokumentiert. Dadurch kann das Projekt schneller und „agiler“ unterwegs sein, aber es macht mir das Tester-Leben sehr schwer. Wann ist eine Funktion wirklich fertig, wirklich done done, wie wir in der IT sagen? Welche Fehleingaben müssen abgefangen werden? Darf der Löschen-Button grün sein oder nicht? Als Tester interessieren mich diese kleinen Details. Entsprechend ist die Zusammenarbeit zwischen Entwicklern und Testern in agilen Projekten sehr intensiv. Und es ist meine Aufgabe, sicherzustellen, dass eben doch mehr aufgeschrieben wird, als mancher möchte.

In den Anfängen wurde „Agile“ häufig als Vorwand dafür verwendet, ein „chaotisches Vorgehen“ zu rechtfertigen. Das hat sich geändert. Inzwischen haben viele Firmen Erfahrung mit dem Vorgehen und bei Problemen wird ein Agile Coach hinzugezogen. Und es wird zu Projektbeginn definiert, was genau in der sogenannten Definition of Done steht.

Fehler in Software - Tester finden Bugs

Fehler in Software – Tester finden Bugs

 

Scrum verspricht schnelleres Time to Market

In der Schweiz fand die letzten Jahre ein Wettrennen um ein Zahlungssystem mit dem Handy statt. Mehrere Banken haben ein eigenes System dafür entwickelt, Apple ist auf den Markt getreten und inzwischen bietet auch Samsung das Zahlen mit dem Handy an. Ein solches System kann jedoch nur dann vom Markt akzeptiert werden, wenn es sehr verbreitet ist. Der First-Mover hat hier daher einen entscheidenden Vorteil. Gleichzeitig sind Qualität und Sicherheit in diesem Fall sehr wichtig.

Dabei ist es nicht die eigentliche App-Software, die schwierig ist, sondern die Integration in die Zahlungsverkehrssysteme der Banken. Wenn ich mit dem Handy im Supermarkt bezahle, dann muss das Geld von meinem Konto bei Bank A zum Konto bei Bank B gehen. In Echtzeit, denn ich möchte den Laden unmittelbar verlassen. Für so ein Projekt werden hochspezialisierte Teams mit sehr unterschiedlichen Fähigkeiten benötigt. Designer, iOS-Entwickler, Android-Entwickler, Datenbank-Spezialisten und Sicherheitsexperten, um nur ein paar zu nennen. Mit der richtigen Planung können diese Teams parallel arbeiten – und sich schrittweise zu einem Gesamtsystem integrieren. Nach dem Go-Live müssen schnell erste Updates geliefert werden können, der Zeit-Druck auf das Projekt bleibt zunächst hoch. Genau für solche Projekte scheint ein Agiles Vorgehen eine gute Lösung zu sein.

Vorgehensmodelle der Agilen Softwareentwicklung der Schweiz - Scrum dominiert

Vorgehensmodelle der Agilen Softwareentwicklung der Schweiz – Scrum dominiert

 

Scrum of Scrum oder der Umgang mit den grossen Problemen

Nur in der Theorie lassen sich alle IT-Projekte isoliert und in kleinen Happen realisieren. Manche Probleme sind so gross und dermassen mit anderen Systemen verzahnt, dass man sie nicht mit drei Achtmann-Teams lösen kann. Das sogenannte Scrum of Scrum – die Zusammenarbeit mehrerer Teams – lässt sich nicht ohne Reibungsverlust skalieren. Auch gibt es Abhängigkeiten, die nicht agil sind. Vorgaben durch Gesetzesänderungen oder traditionell entwickelnde Partner können zu Synchronisationsproblemen führen. Vorgehen wie SAFe (Scaled Agile Framework)  versuchen hier Hilfe zu bieten. Häufig kann auch der Einsatz eines Agile Coaches mit der entsprechenden Erfahrung dazu führen, dass die Teams effizienter zusammenarbeiten.

Integrierte Software in Grossprojekten

Integrierte Software in Grossprojekten

 

Fazit

Mit der steigenden Verbreitung agiler Softwareentwicklung in der Schweiz verschwinden nicht die Probleme. Wenn mehr und grössere Projekte mit einem agilen Vorgehen realisiert werden, dann steigt der Integrationsaufwand in die vorhandene IT. Daher gewinnen sogenannte Agile-Frameworks für Grossprojekte an Bedeutung. In der Schweizer IT ist das Framework SAFe aktuell im Kommen. Ein grosses Problem bleibt bestehen: Agile Softwareentwicklung setzt eine passende innere Einstellung und ein hohes Mass an Diszipliniertheit und Engagement voraus. Das lässt sich nicht „von oben befehlen“, sondern muss mit Fingerspitzengefühl eingeführt werden. Entsprechend kann ein Agile Coach oder ein sehr erfahrener Scrum-Master erforderlich sein. Es bleibt jedenfalls festzuhalten, dass es aufwärts geht mit der Schweizer IT. Der Anteil erfolgreicher Software-Projekte steigt von Jahr zu Jahr. Sicher nicht nur, aber auch, weil wir Agile Softwareentwicklung mit mehr Erfahrung betreiben.

Lesen Sie mehr über die Trends in der Schweizer Softwareentwicklung in unserem Trends & Benchmark Report 2017.

Projekterfolg in der Schweizer IT

Projekterfolg in der Schweizer IT

 

 

0 thoughts on “Agile Softwareentwicklung in der Schweiz 2017 in Zahlen”


Schreibe einen Kommentar