Herausforderungen Digitalisierung administrativer Prozesse
E-Government als Weg zu mehr Wirtschaftswachstum
Die Digitalisierung administrativer Prozesse im öffentlichen Sektor hat während der Corona-Pandemie einen Schub erfahren, es bleibt jedoch viel zu tun. Gerade auf dem afrikanischen Kontinent sind administrative Hürden ein wichtiger Faktor für das geringe Wirtschaftswachstum in vielen Ländern. Die Digitalisierung von administrativen Prozessen wie Kreditvergabe oder öffentlich online zugängliche Informationen zu vertrauenswürdigen Unternehmen sind deshalb oft eine wichtige Voraussetzung für das Wirtschaftswachstum.
Einbindung der Verwaltungsangestellten bei Umsetzung
Immer mehr Regierungen bemühen sich deshalb teilweise mit Hilfe der Weltbank und anderen Organisationen um eine Digitalisierung des öffentlichen Sektors. Damit dies gelingt, gilt es einige Hürden zu beachten. Da es letztendlich um einen verbesserten Service für den Bürger geht, ist sowohl eine Einbindung der Mitarbeiter in der Administration als auch der Bürger notwendig, um Applikationen zu entwickeln, die alle überzeugen.
Gerade in Hinblick auf die Mitarbeiter ist es wichtig, diese von Anfang an davon zu überzeugen, dass die neue Lösung ihnen die Arbeit erleichtert und keine Gefahr für ihre Arbeitsplätze darstellt. Das bedeutet, dass diese bereits bei der Anforderungsanalyse beteiligt werden. Um ihre Bedürfnisse zu erkennen, ist es oft notwendig, vor Ort die bestehenden Abläufe zu beobachten, um diese einerseits digital abbilden und andererseits optimieren zu können.
Um die Akzeptanz der neuen Systeme zu steigern und eventuelle Widerstände zu verringern, ist es wichtig, sich vorab eine Strategie zu überlegen. Besonders intensive Schulungen nach Implementierung des Systems, bei denen die Vorteile für die User im Vordergrund stehen, können ein wichtiger Faktor dazu sein.
Zusammenarbeit der Systeme zwischen Behörden
Weitere Fallstricke für die Digitalisierung administrativer Prozesse sind die gesetzlichen Vorgaben für diese. Um sie entsprechend in einem System berücksichtigen zu können, ist eine genaue Analyse und Kenntnis der Gesetze notwendig. Zudem müssen die Bereiche, die sich auf Gesetze beziehen, leicht anpassbar sein, um diese bei Veränderungen schnell aktualisieren zu können.
Nicht zuletzt stellen entweder fehlende oder in monolithischen Systemen verteilte Daten eine Herausforderung dar. Diese durch hoch performante Suchfunktionen leicht auffindbar zu machen sowie Daten so zu migrieren, damit weiterhin alle gesetzlichen Vorgaben eingehalten werden, erfordert ein großes Maß an Planung und Verständnis für administrative Prozesse.
Ein weiterer wichtiger Erfolgsfaktor für die Nutzung von digitalen administrativen Systemen ist der Datenaustausch ziwchen Systemen von unterschiedlichen Behörden. Das erspart zum einen den Nutzern das Hin- und Herfahren zwischen den Behörden, und zum anderen werden Informationen direkt aus ihren Quellen abgefragt, was die Genauigkeit, Korrektheit und Aktualität der Daten garantiert.
Technisches und inhaltliches Knowhow
All dies sind Gründe, warum es Regierungen oft schwer fällt, den geeigneten Partner für die Umsetzung ihre Digitalisierungsstrategie zu finden, denn Unternehmen bringen selten sowohl das Knowhow für die Entwicklung eines solch komplexen Systems als auch das notwendige Wissen bezüglich der besonderen Voraussetzungen für die Digitalisierung administrativer Prozesse mit.
Abschließend lässt sich also sagen, dass Erfahrung bei der Umsetzung von E-Government Projekten entscheidend ist, um Probleme zu vermeiden. Eine genaue Kenntnis der Gesetzeslage und der Abläufe ist darüber hinaus essentiell.
Inhalt:
Komplexität braucht neue Lösungen
Vergleich Individualsoftware vs. Standardsoftware
Vorteile Individualsoftware: passgenaue Lösungen
Vorteile für Individualsoftware Individualsoftware sind schnell gefunden: Entschließt sich beispielsweise ein Unternehmen dazu, eine Software-Lösung entwickeln zu lassen, passt sich diese optimal an die eigenen Bedürfnisse an. Geschäftsprozesse bleiben von ihr unberührt, da sie diese von Anfang an berücksichtigt und sogar dabei – denken wir nur an die Digitalisierung – helfen kann, sie zu verbessern. Zudem lässt sie sich nahtlos in bestehende Systeme und Strukturen integrieren oder auch hier dabei helfen, diese transparenter und schneller zu machen, wenn beispielsweise monolithische Strukturen in ein System zusammengefasst werden.
Sind trotz aller vorausschauender Planung Anpassungen und Erweiterungen nötig, wenn sich etwas die Größe des Unternehmens oder sein Dienstleistungsspektrum ändert, sind diese jederzeit möglich, da der direkte Kontakt zum Hersteller besteht. Das wird auch dann wichtig, wenn Unternehmen schnell auf die Veränderungen auf dem Markt reagieren müssen, was in Zeiten schnellen Wandels und vieler weltweiter Krisen wie etwa der Corona-Pandemie oder der Ukraine-Krieg immer wichtiger wird. Nicht zuletzt können auch der Look und die Funktionen genau auf die Wünsche des Unternehmens zugeschnitten werden.
Nachteile Individualsoftware neu bewertet
Doch wie sieht es mit den Nachteilen aus? Auf den ersten Blick scheint die Implementierung einer neuen Software als langwieriger Prozess, den viele gerne umgehen möchten. Doch wer sich mit der Einführung und Implementierung einer Standardsoftware auseinandergesetzt und miterlebt hat, weiß an wie vielen Stellen es haken kann, bis das Produkt das gewünschte Ergebnis erzielt. Denn „schnell gekauft“ bedeutet noch lange nicht, dass die Lösung auch schnell läuft und das scheinbar billigere Standardprodukt in der Folge schnell zu einer dauerhaften Baustelle wird.
Ist man zudem ein kleinerer Kunde, ist das Interesse an einem gelingenden Support oft nicht sehr groß, wohingegen die Entwickler einer eigenen Lösung schon allein im eigenen Interesse für Probleme und Anfragen zur Verfügung stehen. Oft deckt ein Standardprogramm außerdem nicht immer alle Bereiche eines Unternehmens ab, sodass man sich mit den verschiedensten Anbietern auseinandersetzen und verschiedene Systeme warten muss, wohingegen bei einer Individualsoftware-Lösung alles in einer Hand liegt.
Kosteneinsparungen durch genaue Planung und Nearshoring
Tatsächlich ist es möglich, dass die Kosten bei der Entwicklung von Individualsoftware das geplante Budget übersteigen. Eine genaue Bedarfsanalyse und Planung sowie eine strikte Budgetüberwachung können eine Kostenexplosion allerdings von Anfang an vermeiden. Weitere Einsparungen sind möglich, wenn man auf einen Partner setzt, der seine Software-Entwicklung in ein Nearshoring-Gebiet outgesourct hat. Hinzu kommt, dass die Bilanz im Vergleich von Individualsoftware mit Standard-Produkten schnell anders aussieht, wenn man Wartung, Software-Updates, Lizenzen etc. berücksichtigt, die bei diesen oft anfallen.
Eine enge Zusammenarbeit mit einem Unternehmen, das sich auf die Entwicklung komplexer Software-Lösungen spezialisiert hat, verhindert deshalb auch, dass es zu Missverständnissen kommt, was das fertige Produkt können und leisten muss. Dazu trägt auch die agile Arbeitsweise von Software-Unternehmen bei, bei der schnell die Entwickler schnell auf geänderte Anforderungen reagieren können.
Fazit: Individualsoftware Lösung der Wahl in komplexen Umgebungen
Sicherlich kann es in manchen Fällen sinnvoll sein, eine Standard-Software zu wählen. Bei der Entscheidung hilft angelehnt an das Cynefin-Framework die Frage nach der Komplexität der eigenen Strukturen und Prozesse. Gerade in Zeiten der Digitalisierung sind die Herausforderungen selten einfach, sodass der Ansatz einer Best-Practice-Lösung nicht mehr greift. Denn in einer komplexen Vuca-Welt zählen Vorgehensweisen und Strukturen, die leicht und schnell anpassbar sind. Dabei hilft eine auf die Bedürfnisse des Kunden zugeschnittene Lösung, die sich bereits in der Entwicklung mit den besonderen Herausforderungen des Unternehmens beschäftigt hat, weit besser als eine, die für Standardfälle entwickelt wurde. Dies gilt selbst wenn in diese Erfahrungen aus vielen Branchen hineingeflossen sind, da nichts ist so einzigartig ist wie eine Unternehmensstruktur und -kultur.
Inhalt:
Nearshoring in Tunis - geht das?
Sechs Vorbehalte neu beleuchtet
Viele Unternehmen in Europa nutzen in Folge von IT-Fachkräftemangel und hoher Lohnkosten inzwischen Nearshoring Partner, um ihre Softwareentwicklung oder gesamte Geschäftsprozesse outzusourcen. Klassischerweise fällt die Wahl dabei auf Polen, Bulgarien oder auch die Ukraine. Doch auch Standorte wie Tunesien gewinnen in diesem Zusammenhang immer mehr an Bedeutung.
Allerdings gibt es immer noch Vorbehalte gegenüber nichteuropäischen Partnern, die sich jedoch leicht widerlegen lassen, denn Nearshoring in Tunesien bietet auch viele Vorteile.
Qualitative Ausbildung und räumliche Nähe
Qualität: In Tunesien ist die Hochschulbildung qualitativ hochwertig und mit den westeuropäischen Ländern absolut vergleichbar. 240.000 Studierende schließen jedes Jahr die Hochschule ab, davon sind 20.000 Absolventen Ingenieure und Wissenschaftler und 9.000 Informations- und Kommunikationstechnologie-Absolventen. In Tunesien existieren mehr als 50 Ingenieurschulen, die unter anderem Informatik unterrichten. Dies garantiert eine hohe Qualität bei der Umsetzung von Softwareprojekten.
Distanz: Auch wenn Tunesien auf einem anderen Kontinent liegt, beträgt die Zeitverschiebung maximal eine Stunde im Sommer und ein Flug dauert nur wenig mehr als zwei Stunden. Somit ist im Gegensatz zum Offshoring in Ländern wie Indien gewährleistet, dass Ansprechpartner während der europäischen Geschäftszeiten für Absprachen oder zur Lösung von Problemen zur Verfügung stehen.
Mehrsprachigkeit und stabile Infrastruktur
Kommunikation: Große Teile der tunesischen Bevölkerung sprechen fließend Französisch, Englisch wird in der Schule ab Klasse 4 unterrichtet und es sind zertifizierte sowie professionelle Sprachinstitutionen für die deutsche Sprache vorhanden. Bei den technischen Berufen kann Französisch und Englisch vorausgesetzt werden, oft kommen Deutsch und Italienisch hinzu. Die lokale Distanz lässt sich durch digitale Kommunikationsmittel, die sich während der Corona-Pandemie noch weiterentwickelt haben, ohne Probleme überbrücken. Dazu trägt auch die gute Telekommunikationsinfrastruktur bei, bei der Tunesien im südlichen Mittelmeerraum führend ist.
Mentalität: Ohne Frage bestehen zwischen der deutschen und tunesischen Mentalität Unterschiede. Firmen wie die think tank Business Solutions verfügen jedoch inzwischen über jahrzehntelange Erfahrung in der Umsetzung zahlreicher Projekte mit europäischen Partnern. Ein deutscher Brückenkopf bestehend aus Product Ownern und IT Consultants garantiert zusätzlich, dass die Zusammenarbeit mit den Kunden reibungslos funktioniert.
Hands-On-Mentalität und Kosteneinsparungen
Steuerung: Die Steuerung eines Projekts ist immer herausfordernd, besonders wenn ein hybrides, multinationales Team geführt werden muss. Um den reibungslosen Ablauf eines Projekts zu gewährleisten, bietet sich ein agiles Arbeitsmodell an, das sich gerade bei der Entwicklung und Umsetzung von Software in Unternehmen wie der think tank auch in Tunesien durchgesetzt hat. Durch die Steuerung der Projekte durch deutsche Kollegen ist sichergestellt, dass die Anforderungen der Kunden immer im Fokus stehen. Die Entwickler in Tunesien haben zudem genau wie ihre Kollegen in anderen Ländern eine „Get the job done“-Mentalität und agieren zielorientiert.
Kosten: Auch kostenseitig ist Tunesien eine sehr gute Alternative. Die Stundensätze für einen tunesischen Mitarbeiter sind attraktiv und wettbewerbsfähig. Trotz der guten Arbeitsmarkt-Qualität sind die durchschnittlichen Lohnkosten beispielweise für einen Vollzeitangestellten – im Vergleich zu den osteuropäischen Ländern – sehr gering und machen somit Tunis zu einem attraktiven nordafrikanischen Standort für Business Process Outsourcing.
Nicht zu vergessen ist, dass wir uns mit Tunesien in einem politisch stabilen Raum befinden, während es im osteuropäischen Raum in der letzten Zeit immer Spannungen und Unwägbarkeiten gibt.
Insgesamt lässt sich feststellen, dass Tunesien als Nearshoring-Partner eine gute Alternative zu den klassischen osteuropäischen Ländern darstellt. Im Zusammenspiel mit einem deutschen Brückenkopf, der bei Bedarf als Übersetzer nicht nur der Kultur, sondern auch der Mentalität fungieren kann, setzt man auf das Beste aus beiden Welten: Verfügbarkeit von Fachkräften, Kosteneinsparungen und deutsches Knowhow und deutsche Qualität.
Inhalt:
Tests in der Softwareentwicklung
Fehler und wie Sie diese vermeiden können
Häufige Argumente gegen ein extensives Testen in der Software Entwicklung lauten oft, dass dies nicht notwendig sei, weil im eigenen Unternehmen sehr viel Wert auf qualitatives Arbeiten gelegt wird. Dadurch wäre es möglich, bei den Software Tests Geld zu sparen. Bei genauerer Betrachtung ist jedoch schnell klar, dass diese beiden Punkte sich sehr schnell widerlegen lassen.
Folgen: Fehlende Features und unzufriedene End-User
Denn bei der Kommunikation zwischen dem Kunden und dem Entwickler können in den verschiedenen Schritten Missverständnisse entstehen, sodass am Ende bei der releasten Anwendung Features fehlen oder sie nicht das kann, was sie sollte. Zudem kann man den menschlichen Faktor nicht vernachlässigen, d. h. Menschen machen bei bester Arbeit auch immer wieder Fehler. Außerdem können Veränderungen in einem bestehenden System zu Fehlfunktionen an anderer Stelle führen, die erst auftauchen, wenn ein End-User sich darüber beschwert.
Und hiermit sind wir schon bei eine der Folgen, wenn Unternehmen beim Testen sparen wollen. Fehler können zu Unzufriedenheit beim Kunden und damit zu einem Imageverlust führen. Hinzu kommt, dass die nach dem Release auftretenden Bugs möglichst schnell gefixt werden müssen. Die Entwickler sind während dieser Zeit gebunden und können nicht an der Entwicklung neuer Features weiterarbeiten, sodass sich die Weiterentwicklung des Projekts verzögert und damit Geld kostet, das durch das Testen eingespart hätte werden sollen.
Do‘s: Rechtzeitiger Start und dezidierte Rollenverteilung
All dies macht klar, dass Testen ein notwendiges Korrektiv in jeder Software Entwicklung ist. Doch was sollten Sie bei Software Tests beachten und was sollten Sie vermeiden? Wichtig ist es, die Testfälle rechtzeitig, d.h. bereits bei Erstellung der User Storys zu erstellen. Im besten Fall ist dafür ein unabhängiges Test-Team zuständig, das nicht zu nahe an der Entwicklung beteiligt ist, um auszuschließen, dass eine gewisse Betriebsblindheit entsteht. Gleiches gilt bei der Testdurchführung. Am besten testet niemand die eigenen Testfälle, sondern immer die, die ein anderer erstellt hat. Zusätzlich wird dadurch vermieden, dass durch den Product Owner der das Release genehmigen und damit alle Testfälle genehmigen muss, ein Nadelöhr entsteht, was zu Verzögerungen führen kann.
Essenziell ist es, auf eine gute Ausarbeitung der Testfälle zu achten. Das bedeutet, dass die Testfälle auf Grundlage der User Storys erstellt und bestenfalls alle dort aufgeführten Schritte abgedeckt werden. Das Testing sollte auch direkt nach der Umsetzung der User Story durch den Entwickler beginnen, um das Release Datum einhalten zu können. Zu jedem Test gehört zudem ein Test-Reporting, in dem genau festgehalten wird, was funktioniert hat und was nicht, um einen Überblick über die Fehler in einem Entwicklungssprint zu behalten. Eine große Hilfe kann eine Automatisierung von Testfällen für Standardanwendungsfälle, z.B. „Ich kann einen Text downloaden“ oder bei Fehlern sein, die immer wieder auftauchen.
20% des Projektvolumens für Software Tests einplanen
Natürlich sollte das Testen nicht überhandnehmen, eine Testabdeckung von 95% macht alle Kosteneinsparungen zunichte, da eine solche Quote nur durch intensives Testen erreicht werden kann. 20% des Projektvolumens sind ein guter Richtwert, an dem man sich bei der Einführung eines Testverfahrens orientieren kann. Sinnlos ist es jedoch, durch weniger Testen Geld einsparen zu wollen, da sich das durch den möglichen Imageverlust, die Ressourcenbindung bei Entwicklung für das Bugfixing und den damit verbundenen zeitverzögerten Release einer nachgelagerten Applikation nicht lohnt.
Inhalt:
Blockchain Use-Case Analyzer
Do you need a Blockchain?
· Dezentralität,
· Sicherheit und
· Vertrauen.
Um einen besseren Überblick über die verschiedenen Einsatzgebiete zu erhalten, sind nachfolgend die Kategorien aufgelistet, zu denen sich die meisten Use-Cases, branchenunabhängig, zuordnen lassen:
Digital Identity Management: Auf die Idee, digitale Identitäten zu verwalten, sind sicherlich schon viele gekommen. Nicht zuletzt Facebook und Google, welche als Registrierungsservice in viele Online-Dienste eingebunden sind. Aus User-Sicht bequem und bedenklich zugleich, da nicht immer offensichtlich ist, wann welche Daten für welchen Zweck an Dritte weitergegeben werden. Ausschlaggebend bei dieser Kategorie ist der Zweck, nämlich die Speicherung personenbezogener Daten, die validiert und somit für andere Services zur Authentifizierung genutzt werden können.
Markterschließung und digitale Währungen: Diese Kategorie bezeichnet die Schaffung neuer Märkte. In der Regel handelt es sich dabei um einen blockchainbasierten Markt auf dem Waren oder Dienstleistungen gehandelt werden können. Alle Cryptocurrency-Anwendungen sind Beispiele für diese Kategorie. Initial Coin Offerings (ICOs) bei denen in einer initialen Funding-Phase Investoren-Gelder gesammelt werden, sind ebenfalls Beispiele für Markterschließung.
Herkunft und Tokenisierung: Bei der Tokenisierung wird ein reales Objekt, das einen Vermögenswert darstellt, in ein Digital Asset umgewandelt. Der Wert wird auf Tokens übertragen und eindeutig einem Besitzer zugewiesen. Über den Tracking-Mechanismus kann zu jeder Zeit die Herkunft und die Eigentümerschaft eines Objekts nachgewiesen werden (Herkunft).
Meta-Konsens: Meta-Konsens ist eines der fundamentalen Paradigmen der Blockchain, da sich alle Teilnehmer auf eine „Kette“ einigen müssen. Bei dieser Anwendungsfallkategorie geht es um die Findung und das Erreichen eines Konsens’ zu einem bestimmten Thema ohne das Wahlergebnis manipulieren zu können. Beispiele sind Parlamentswahlen, Bürgerentscheide oder die Abstimmungen von Aktionären oder Verträge zwischen mehreren Parteien.
Tracking: Beim Tracking geht es um die transparente, dauerhafte Speicherung und Nachverfolgbarkeit von Informationen, welche für mehrere Organisationen relevant sind. Ein gutes Beispiel sind Anwendungsfälle aus dem Supply-Chain-Management, da die Daten über Transportgüter sowohl für die einzelnen Lieferanten als auch für die Überprüfung der Einhaltung der Gesetze und Richtlinien (Compliance) notwendig sind.
IoT – Internet of Things: Maschinen, die wie wir Menschen im realen Leben auf der Blockchain interagieren und über eine Wallet Waren und Dienstleistungen austauschen sind Teil der Kategorie IoT. Ein Beispiel ist das automatische Bezahlen von Maut- oder Parkgebühren, welche vom Auto, das eine eindeutige ID besitzt, gezahlt werden können. Smart Contracts, die ohne Eingriff von außen automatisch ausgeführt werden zählen ebenfalls zu dieser Kategorie.
Intermediäres Vertrauen: Aufgrund der zu Beginn dargelegten Eigenschaften hat die Blockchain das Potential, die Teilnehmer einer Wertschöpfungskette auf die wirklich notwendigen, d. h. nur auf die tatsächlich zu einer Wertsteigerung beitragenden Teilnehmer, zu reduzieren. Dienstleistungen und Waren können somit viel günstiger angeboten werden. Ein Beispiel ist der Energiesektor, in dem es Dank der Blockchain möglich ist Erzeuger und Konsument direkt miteinander zu verbinden.
We don't need a Blockchain!
Kritisch sollte der Einsatz einer Blockchain-Lösung betrachtet werden, wenn es um die Speicherung großer Datenmengen geht, es viele Schreibzugriffe gibt und ein Echtzeitdatensatz notwendig ist oder nur wenige Teilnehmer involviert sind.
Fazit
Die Einsatzmöglichkeiten der Blockchain sind so vielfältig wie unser Leben. Dennoch fällt es oft schwer zu beurteilen wann der Einsatz wirklich sinnvoll ist. „If trust or robustness are not important, then there is nothing which a blockchain offers that can´t be done with a regular database.“ Gideon Greenspan – Founder of Coin Sciences
Quellen: Ulrich Gallersdörfer Masterthesis: Analysis of Use Cases of Blockchain Technology in Legal Transactions https://wwwmatthes.in.tum.de/pages/z0tgbukmqlbr/Master-s-Thesis-Ulrich-Gallersdoerfer, zuletzt geprüft am: 05.02.2020
Cathy Mulligan (April 2018) These 11 questions will help you decide if blockchain is right for your Business https://www.weforum.org/agenda/2018/04/questions-blockchain-toolkit-right-for-business, zuletzt geprüft am 05.02.2020
T. Koens & E. Poll 2018 What Blockchain Alternative Do You Need? http://tommykoens.com/wp-content/uploads/2018/09/blockchain-alternative.pdf, zuzletzt geprüft am: 05.02.2020
DHS model (~end 2017) Dylan Yaga Peter Mell Nik Roby Karen Scarfone Blockchain Technology Overview https://nvlpubs.nist.gov/nistpubs/ir/2018/NIST.IR.8202.pdf , zuletzt geprüft am: 05.02.2020
Skalierungsframeworks Nexus, LeSS und SAFe
Tabellarische Gegenüberstellung
Megatrends wie die Digitalisierung, die Globalisierung und die Flexibilisierung verändern unsere Arbeitswelt heute rapide. Die Erwartungen und Ansprüche der Kunden passen sich in immer kürzeren Abständen den digitalen Möglichkeiten an. Auch an Produkte werden permanent neue Anforderungen gestellt. Teams können über die ganze Welt verstreut sein und trotzdem hervorragend zusammenarbeiten. Alles wird schneller, interaktiver und agiler – entsprechend werden auch die Produktentstehungszyklen immer kürzer.
Eine Methode, die diesen Anforderungen gerecht wird – heute in aller Munde – ist Scrum. Jedoch! Was tun, wenn das Produkt so groß und umfassend ist, dass viele Teams, unterschiedliche Fachbereiche oder gar die ganze Organisation daran zusammenarbeiten soll? Die passende Skalierung für eine effiziente und zufriedenstellende Zusammenarbeit bietet den Teams Orientierung und Unterstützung. Aber: wie entscheidet man, welches skalierbare Framework das Beste ist? Welches Framework kann genutzt werden, wenn die Prozesse von Scrum für 3, 4, 5, … Teams zu klein gedacht sind? Die Suche nach dem optimalsten Vorgehen stellt für viele eine große Herausforderung dar.
Um Ihnen einen groben Überblick über die gängigen skalierbaren Frameworks zu bieten, habe ich eine Übersicht zusammengefasst, die die Unterschiede der einzelnen Frameworks herausstellt: Nexus (Framework for Scaling Scrum), LeSS (Large-Scaled Scrum) und SAFe (Scaled Agile Framework).
Nexus
Der Vater des Frameworks Nexus, Ken Schwaber, bezeichnet dieses selbst als Exoskelett, das drei bis neun Scrum-Teams verbindet um ein Produkt zu entwickeln. Es ist ein Prozess-Rahmenwerk auf Basis des agilen Manifests und Scrum.
Nexus besticht durch seine Schlichtheit. Scrum wird in seinen Rollen, Events und Artefakten skaliert. Der Schwerpunkt liegt auf teamübergreifenden Abhängigkeiten und Integrationsthemen, die bei der Skalierung über mehrere Teams auftreten und legt Wert auf Transparenz.
LeSS
LeSS möchte durch seine Einfachheit bestechen (more with less) und setzt auf klare Prinzipien. Die Teams unter einem Product Owner sind für die komplette Produktentwicklung zuständig und tragen eine große Verantwortung, die auch die Kommunikation Richtung Kunden und Umfeld einschließt. Bei einer Größe von mehr als acht Teams wird das System zu LeSS Huge in einer zusätzlichen Skalierungsphase expandiert.
SAFe
SAFe ist ökonomisch ausgerichtet und hat die stetige Verbesserung der Wertströme im Auge. Mit seiner hierarchischen Struktur betrachtet es über das Team hinaus die Programm-, Solution und Portfolio-Ebenen sowie die Gesamteinbettung in das Unternehmen. Rollen, Methoden und Artefakte sind klar beschrieben und unterstützen die Einführung in das skalierte agile Arbeiten.
Diese Gegenüberstellung soll Ihnen eine Orientierung bieten, damit Ihnen die ersten Schritte bezüglich der Entscheidung in welche Richtung Sie gehen wollen – Nexus, LeSS oder SAFe – leichter fallen. Auf die Vor- und Nachteile sowie die Grenzen dieser Frameworks ist hier bewusst nicht eingegangen worden.
Jedoch, bevor Sie sich für eines der Skalierungsframeworks entscheiden können, müssen Sie genau überlegen welches zu Ihrer Unternehmenskultur und Ihren Unternehmenswerten passt. Prüfen Sie, was Ihr Ziel ist, was wollen Sie erreichen? Wie sieht das Umfeld aus und welche agilen Methoden kommen in Ihrem Unternehmen bereits zum Einsatz?
Meine Empfehlung ist, aus den bekannten Frameworks die Elemente, die am besten zu Ihrer Organisation passen, herauszunehmen und ein agiles Skalierungsframework zu adaptieren.
Einsatz?
Quellen:
SAFe – https://www.scaledagileframework.com/, zuletzt geprüft am 30.09.2019
LeSS – https://less.works/de, zuletzt geprüft am 30.09.2019
THE NEXUS™ GUIDE – https://www.scrum.org/resources/nexus-guide, zuletzt geprüft am 30.09.2019
Agile Skalierungsframeworks: Safe, Less und Nexus im Vergleich – https://t3n.de/news/agile-skalierungsframeworks-safe-less-nexus-1150190/, zuletzt geprüft am 30.09.2019
Das beste agile Framework – 5 Large-Scale Ansätze im Überblick – https://www.mosaiic.com/agile_framework/, zuletzt geprüft am 30.09.2019
Agiles Testen in der Softwareentwicklung
Der Weg zu mehr Qualität und Effizienz
Mit Einführung agiler Methoden stehen die Anforderungen der Nutzer im Mittelpunkt der Softwareentwicklung. Die zukünftigen Nutzer werden stärker in den Entwicklungsprozess eingebunden und stellen durch ihren Input sicher, dass tatsächlich wichtige Themen umgesetzt werden, die Applikation leicht zu bedienen und perfomant ist. Um das zu überprüfen, muss funktionsfähige und fehlerfreie Software oft und kontinuierlich ausgeliefert werden. Auch die hohen Anforderungen an den nicht-funktionalen Teil der Software müssen fortwährend getestet werden: wurde sauber gecodet, entspricht die Applikation den Sicherheitsanforderungen, funktioniert sie stabil und ist sie leicht wartbar? Mit einem Satz: Eine konstante, häufige und fehlerfreie Code-Auslieferung ist eine Frage der Qualität.
Was unterscheidet agiles vom klassischen Testen
Im klassischen Testmanagement sind Entwicklung und Test klar getrennt und alle vier Teststufen laufen nacheinander ab: Die Testphase beginnt mit der Fertigstellung des Produkts. Zuerst werden die einzelnen Komponenten (Komponententest) getestet, in der nächsten Stufe, dem Integrationstest, wird das Zusammenspiel der einzelnen Komponenten überprüft, um schließlich die Funktionen des gesamten Produkts zuerst intern (Systemtest) und abschließend durch den Kunden (Userakzeptanztest) auf Herz und Nieren zu prüfen. Dabei sind die Rollen klar verteilt. Das Entwicklungsteam entwickelt, das Testteam testet und das Testmanagement kontrolliert und steuert. Will man im agilen Umfeld kontinuierlich (mit jeder Iteration) stabile und fehlerfreie Software ausliefern, müssen fortwährend Tests durchgeführt werden.
Nach klassischen Testmethoden eine Teststufe nach der anderen zu durchlaufen ist auf Dauer nicht realisierbar, da die Iterationen kurz sind und es schnell gehen muss. Auch im agilen Testing gibt es Komponenten-, Integrations- und Systemtests, mit dem Unterschied, dass diese nicht nacheinander, sondern innerhalb einer Iteration parallel ablaufen, zum Teil sogar in die Entwicklung eingebettet sind. Auch kennt das agile Vorgehen keine klar verteilten Rollen: Idealerweise sind Softwareentwickler und -architekten sowie Tester, Test- und Qualitätsmanager Teil des Entwicklungsteams und unterstützen sich gegenseitig. Das Team hat ein gemeinsames Ziel: Hohe Qualität durch eine hohe Testabdeckung, eine effiziente Testdurchführung und -dokumentation. Dies lässt sich nur durch ein ausgewogenes Gleichgewicht zwischen einem hohen Automatisierungsgrad und wenigen manuellen Tests erfüllen.
Effiziente Verteilung der Tests: Die Testpyramide
Ein Blick auf die Testpyramide von Mike Cohen zeigt, wie eine effiziente Teststrategie gestaltet werden kann, wie die Testverteilung auf die einzelnen Teststufen geplant werden soll und welche Bereiche sich am sinnvollsten für eine Testautomatisierung eignen. Die breite Basis der Pyramide bildet eine hohe Anzahl an Komponententests in Form von automatisierten Unit Tests. Sie sind relativ einfach parallel zur Anwendungsentwicklung zu erstellen, schnell durchzuführen, entsprechend kostengünstig und garantieren eine hohe Testabdeckung. Sie sorgen dafür, dass die meisten Fehler bereits bei der Entwicklung entdeckt werden. Die mittlere Stufe der Testpyramide bilden Integrationstests (API-Tests). API steht für Application Programming Interfaces. Automatisierte API-Tests stellen sicher, dass Komponenten wie vorgegeben zusammen arbeiten. API-Tests sind für die Testautomatisierung sehr gut geeignet, da sie in der Regel wenigen Änderungen unterliegen und einfach zu warten sind.
An dieser Stelle ist noch anzumerken, dass nicht-funktionale Tests, wie Last- und Performancetests in der Testpyramide nicht berücksichtigt werden, aber wichtig für die Userakzeptanz und teils auch sehr gut automatisierbar sind. System-Tests (GUI-Tests) finden sich an der Spitze der Pyramide. Als GUI (Graphical User Interface) bezeichnet man die grafische Benutzeroberfläche. Automatisierte GUI-Tests prüfen, ob alle Funktionen wie gewünscht ablaufen. Ihre Automatisierung ist aufgrund einer Auswahl an Tools gut machbar, die Auswahl der zu automatisierenden Tests sollte aber sehr sorgfältig geprüft werden, da sie aufwendiger in Erstellung und Wartung und damit kostenintensiv sind. In der Regel erfordern GUI-Tests erhebliche Nacharbeiten, um mit häufigen Änderungen Schritt halten zu können. Es empfiehlt sich nur so viele GUI-Tests wie nötig und so wenig wie möglich zu automatisieren und diese sukzessive einzuführen, indem man zum Beispiel Sprint für Sprint Bestandsfunktionen mittels automatisierten Regressionstests absichert. Explorative und End-to-End Tests eignen sich kaum für Testautomatisierung. Letztere aufgrund ihrer Komplexität. Explorative Tests aufgrund ihres Freiheitsgrades. Der explorative Tester erkundet die Applikation ohne zuvor exakt festgelegt zu haben welche Testschritte auszuführen sind. Ein Vorteil besteht darin, dass weniger Vorbereitung erforderlich ist, die Dokumentation so gering wie möglich gehalten wird und dass Fehler abseits bestehender Testszenarien gefunden werden.
Quellen: Buch: Agile Testing: Manfred Baumgartner, Martin Klonk, Helmut Pichler, Richard Seidl, Siegfried Tanczos (2018): Der agile Weg zur Qualität