Testautomatisierung in der Softwareentwicklung meistern

Testautomatisierung in der Softwareentwicklung: Was sind die Vorteile, Herausforderungen und welche Rolle spielt die Künstliche Intelligenz?
Vorteile, Herausforderungen und die transformative Rolle der Künstlichen Intelligenz

In der heutigen Softwareentwicklung sind kurze Entwicklungszyklen die Voraussetzung, um den Anforderungen des Marktes gerecht zu werden. Deshalb ist Testautomatisierung unerlässlich, um die Qualität der Software dauerhaft zu sichern. Mit automatisierten Tests können Unternehmen schneller entwickeln und gleichzeitig eine höhere Qualität der Software garantieren. Dadurch lassen sich Einsparungen sowohl bei den Testkosten als auch bei der Testzeit von bis zu 30 bzw. 90% erreichen. Darüber hinaus ist ein Return on Invest (ROI) von bis zu 100% innerhalb von zwei Jahren nach der Testautomatisierung möglich.

Vorteile der Testautomatisierung

Durch die Implementierung der Testautomatisierung ergeben sich viele Vorteile:

  • Einsparung von bis zu 30-50% der Testkosten
  • Return on Investment (ROI): ROI bis zu 100% innerhalb der ersten zwei Jahre nach der Einführung von Testautomatisierung.
  • Reduktion der Testzeit um bis zu 90%, insbesondere bei wiederkehrenden Regressionstests
  • Sicherstellung der Qualität
  • Häufigere Releases: Verkürzung der Release-Zyklen von Monaten auf Wochen oder sogar Tage
  • Beschleunigte Weiterentwicklung: durch schnelleres Feedback an die Entwickler und damit verbundene Fehlerbehebung.
  • Hohe Standardisierung durch definierte,bewährte Prozesse und Verantwortlichkeiten
  • Flexibilität durch kurze Iterationen und Retros
  • Klare Kommunikation und Status-Berichte
  • Transparenz der Prozesse und der Verantwortlichen
  • Leistungsmessung dank Reports und Performance Messungen

Herausforderungen der Testautomatisierung

Die Herausforderungen der Testautomatisierung sind vielfältig und erfordern eine sorgfältige Planung und Ausführung. Eine grundlegende Herausforderung besteht darin, das Know-how der Mitarbeiter aufzubauen, damit sie effektiv automatisierte Testfälle entwickeln und warten können. Nicht weniger wichtig ist das Definieren der richtigen Testfälle. Hierbei ist es oft realistischer, eine Abdeckung von 70% der Funktionalitäten anzustreben, statt eine vollständige Abdeckung zu forcieren, die oft weder praktisch noch kosteneffizient ist. Zudem erfordert die Anpassung und Wartung der Testfälle kontinuierliche Aufmerksamkeit, um mit den Veränderungen in den Softwareanwendungen Schritt zu halten. 

Die Integration des Testteams in den Entwicklungsprozess und das frühzeitige Einplanen neuer Features in das Testkonzept sind ebenfalls entscheidend. Dies beinhaltet die Berücksichtigung der Auswirkungen neuer Features auf bestehende Testfälle, was die Komplexität erhöht und eine gut durchdachte Teststrategie und eine präzise Testplanung erfordert. 

Weitere kritische Aspekte sind die Qualität und Wartbarkeit der Testdaten sowie der Testartefakte selbst. Valide Testdaten für jedes Szenario zu gewährleisten und einen konsistenten Aufbau sowie Nutzen der Testbibliotheken zu sichern, sind essentiell für effektive Testläufe. Hohe Wartungsaufwände, insbesondere die Bearbeitung und Anpassung von Testskripten, sind oft herausfordernd. Hier kann Künstliche Intelligenz (KI) eine Lösung bieten, indem sie automatisierte Prozesse für die Wartung und Optimierung der Testfälle unterstützt, was die Effizienz und Effektivität der Testautomatisierung insgesamt verbessern kann. 

 

Integration Testautomatisierung

Integration der Testautomatisierung

Um diesen Herausforderungen gerecht zu werden, ist eine genaue Planung der Automatisierung von Tests zur Entwicklung eines Produkts notwendig. Hilfreich ist die Bündelung der Aktivitäten und Rollen in einem Test-Hub mit folgenden Schritten:

1. Discovery Phase

Ziele der Discovery Phase sind:

  • Verstehen des Kontextes, der Herausforderungen und des Bedarfs: Nur bei vollem Verständnis des spezifischen Kontexts des Projekts können maßgeschneiderte Lösungen entwickelt werden, die den tatsächlichen Bedarf abdecken.
  • Erkennen und Minimieren von Risiken: Durch eine proaktive Risikoanalyse können negative Auswirkungen auf das Projekt vermieden und eine stabile Entwicklungsgrundlage geschaffen werden.
  • Ganzheitliche Beleuchtung des Projektumfelds: Eine umfassende Beleuchtung Projektumfelds sowohl im Hinblick auf technische als auch organisatorische Abläufe gewährleistet ein umfassendes Verständnis der Projektlandschaft.
  • Entwicklungsstart so einfach wie möglich machen: Klare Prozesse, leicht verständliche Anleitungen und eine gut vorbereitete Infrastruktur erleichtern den Einstieg für alle Beteiligten.

2. Steuerung und Planung

Fragestellungen, wie die richtigen Testautomatisierungstools, Festlegung der Rollen und Verantwortlichkeiten sowie die Verwendung einer entsprechenden Testarchitektur müssen vorab geklärt werden.

Erst danach kann mit der eigentlichen Planung und Steuerung begonnen werden. In der Planung sind folgende Aspekte zu beleuchten:

  • Entwicklung von Automatisierungsstrategien
  • Sicherstellen einer nahtlosen Integration der Tests in Build-Pipeline
  • Erstellung eines Testkonzepts
  • Spezifikation der Tests unter Berücksichtigung der Layer Archtiecture (Test-Pyramide)

Anhand der Grafik ist zu erkennen, dass die Kosten, die Komplexität, der Wartungsaufwand, die Dauer/Performance und Fragilität für GUI-Tests weitaus höher ist als für Unit- bzw. API-Tests. Deshalb ist eine sinnvolle Verteilung unter der Berücksichtigung der genannten Kriterien zwingend erforderlich:

Testpyramide zur Testautomatisierung
Testpyramide
  • Schichtenarchitektur ermöglicht es, testspezifische Layer zu definieren, die unterschiedliche Aspekte des Systems abdecken
  • Unterste Ebene: Unit Tests, die einzelne Codeabschnitte und Funktionen testen. Durch das frühe Auffinden von Fehlern in dieser Phase können Probleme kostengünstig behoben werden, bevor sie sich auf höhere Schichten auswirken.
  • Mittlere Ebene: API-Tests, die die Schnittstellen zwischen den verschiedenen Komponenten testen. Hier wird geprüft, ob die Daten korrekt an den Server gesendet und verarbeitet werden, was die Integrität der Kommunikationswege sicherstellt.

 

Anforderungen an Testautomatisierungstools

  • Einfache Bedienbarkeit der Tools, da sie den Einstieg erleichtert und die Lernkurve für das Test-Team verkürzt.
  • Umfassende Log-Ausgabe zur detaillierten Protokollführung zur Auswertung der Testergebnisse, um Rückschlüsse auf die Qualität des getesteten Systems zu ziehen.
  • Aufzeichnung der Usertests, um die Erstellung von Testszenarien durch die Aufzeichnung von Benutzeraktionen zu vereinfachen.
  • Aufzeichnung der Testskripte und Testaktivitäten zur systematischen und wiederholbaren Durchführung von Software Tests.
  • Aufzeichnung der Testausführung durch Screenshots oder Videos zu visuellen Dokumentationen der Prozessschritte.
  • Einfache Programmiersprache oder Low-Code-Optionen zur leichteren Erstellung und Wartung der Test für weniger versierte Teammitglieder, um die Produktivität des Teams zu fördern.
  • Parametrisierung, um die Wartungsaufwände gering zu halten und eine höhere Flexibilität bei der Ausführung der Test-Skripte zu erreichen

Rollen und Verantwortlichkeiten

  • Der Testmanager ist verantwortlich für das Testkonzept. Er stellt sicher, dass die Software den Qualitätsstandards entspricht und alle Anforderungen erfüllt werden.
  • Der Test-Engineer ist verantwortlich für die Definition der Testfälle und die Durchführung der Test-Cycles sowie die Auswertung der Test-Berichte.

3. Projektphase: Realisierung und Durchführung

In der Projektphase werden die Infrastruktur und der Tool-Chain auf Grundlage der in den vorgehenden Phasen durchgeführten Analysen und Definitionen aufgesetzt.

Ebenfalls sinnvoll ist eine Pilotierung und Stabilisierung im Rahmen eines Proof of Concept (PoC).

Um erste Erfahrungen zu sammeln, Fehler zu vermeiden und schnell reagieren zu können, ist die Umsetzung eines kritischen Workflows (Standard Use-Case) von entscheidender Bedeutung. Ebenso wichtig sind die Anpassung und Erstellung eines Betriebshandbuchs sowie einer technischen Dokumentation.

Um das Testteam in die Lage zu versetzen, automatisierte Tests zügig umzusetzen, ist eine umfassende Schulung aller Projektmitglieder unerlässlich. Schulungen und Know-How-Transfer-Sessions sind entscheidende Elemente, um das Testteam schnell handlungsfähig zu machen.

Testautomatisierung mit Künstlicher Intelligenz

Um die Vorteile der Testautomatisierung voll ausschöpfen zu können, ist der Einsatz von KI unerlässlich. Die KI bietet zahlreiche Unterstützungsansätze, um die Testautomatisierung kosten- und ressourceneffizient durchzuführen. Sie kann u. a. bei folgenden Aufgaben unterstützen:

  • Erstellung der Test-Cases (Guided Testfalldesign)
  • Ermittlung der Testabdeckung
  • Erstellung & Implementierung der Gherkin-Tests
  • Visualisierung von Test-Fällen (Test-Based Modeling)
  • Ermittlung von Standardfallabweichung (GUI-Test)
  • Analyse von Fehlern (Klassifikation)

Fazit

Testautomatisierung ist besonders für lang andauernde und mittelgroße bis große Softwareentwicklungsprojekte von entscheidender Bedeutung. Bei einer gut durchdachten Strukturierung und Planung bietet sie zahlreiche Vorteile: Sie beschleunigt den Entwicklungsprozess, reduziert die Kosten und verbessert die Qualität der Software erheblich. Eine erfolgreiche Testautomatisierung setzt jedoch eine sorgfältige Planung, ein umfassendes Testkonzept sowie den Einsatz moderner Test-Tools und Technologien voraus.

Blue Print für Ihre Testautomatisierung!

Testautomatisierung einfach integrieren und umsetzen. Wie? Erfahren Sie mehr in unserem E-Paper zur Testautomatisierung!

Inhalt:

Revolutionäre Entwicklung: Wie KI die Software-Testautomatisierung verändert

Die Künstlicher Intelligenz (KI) beeinflusst und bereichert unser tägliches Arbeitsleben in vielen Bereichen. Auch das Software-Testing wird duchr KI revolutinoiert.

Die exponentielle Entwicklung von Software führt auch zur exponentiellen Steigerung der Komplexität und Kosten. Dies lässt sich eindrucksvoll an der Entwicklung von Videospielen beobachten. Während die Entwicklungskosten für GTA 5 (2013) noch 200 Millionen Dollar betrugen, steigen die Kosten für GTA 6 (2025) bereits auf über 2 Milliarden Dollar. Offensichtlich gilt hier auch das Mooresche Gesetz, jedoch in Bezug auf die Kosten: eine Verdopplung etwa alle zwei Jahre!

Ein Hauptkostentreiber ist die Qualität. Softwarequalität hängt wesentlich von einem guten Testsystem ab, und professionelle Hersteller haben deshalb seit Jahren stark automatisierte Test Factories aufgebaut.

 

Der nächste revolutionäre Schritt: KI-gestützte Testmethoden und Software

Dank Künstlicher Intelligenz (KI) steht nun der nächste revolutionäre Schritt bevor: autonome, KI-gesteuerte Testmethoden und Software. KI kann Muster in großen Datenmengen erkennen und aus diesen Erkenntnissen Testfälle automatisch generieren und optimieren, was die Effizienz und Genauigkeit erheblich steigert. Ein weiteres Anwendungsgebiet ist die automatische Fehlererkennung: KI-Systeme können Anomalien und Fehler erkennen und identifizieren, die menschliche Tester übersehen können. Dies führt zu einer schnelleren und präziseren Fehlerbehebung.

 

Mehr als nur Detektion: Optimierung und Fehlerbehebung durch KI

KI-Testsoftware geht jedoch über die reine Fehlerdetektion hinaus. Sie hilft aktiv bei der Behebung von Schwachstellen und optimiert den Code durch direkte Eingriffe. Zudem können KI-gestützte Testautomatisierungstools das Verhalten von Benutzern simulieren, um die Benutzerfreundlichkeit und Performance unter realistischen Bedingungen zu testen. Durch maschinelles Lernen können diese Systeme kontinuierlich dazulernen und ihre Teststrategien verbessern, was zu einer immer präziseren und umfassenderen Testabdeckung führt.

Vereinfachte Erstellung und Wartung von Testskripten

Auch die Erstellung und Wartung von Testskripten wird durch den Einsatz von KI erleichtert, da intelligente Algorithmen automatisch Anpassungen vornehmen können, wenn sich die Anwendung ändert. KI-basierte Testsoftware unterstützt zudem beim Performance-Tuning und verbessert die Dokumentation durch professionelle Testmethoden.

Tiefere Einblicke durch KI-gestützte Analyse

Darüber hinaus ermöglicht die KI-gestützte Analyse von Testdaten und Testergebnissen tiefere Einblicke in Schwachstellen, insbesondere in Bezug auf Penetrationsrisiken. KI-Testmethoden helfen dabei, Test-Fälle zu visualisieren und das Delta von GUI-Tests zu ermitteln. So können gezielt Prioritäten gesetzt und Ressourcen effizient eingesetzt werden.

Ein evolutionärer Schritt für die Softwareentwicklung

KI in der Testautomatisierung von Software ist ein logischer Evolutionsschritt und wird schon in wenigen Jahren für die professionelle Softwareentwicklung unabdingbar sein. Dies gilt nicht nur für große Softwarehäuser, sondern auch für kleine Unternehmen und Softwareprojekte. KI hat die wunderbare Eigenschaft, dass sie kaum Skaleneffekte benötigt, um rentabel zu sein.

Der Zwang zur Qualitätssicherung

Softwareprojekte vernachlässigen oft den Aspekt des Testens. Dies ist zur Qualitätssicherung jedoch dringen erforderlich. KI bietet dafür zahlreiche Möglichkeiten.

Die Zukunft: Konvergenz von KI-basierter Code-Entwicklung und Testing

Ein Blick in die Zukunft zeigt, dass KI-basierte Code-Entwicklung und KI-basiertes Testen konvergieren werden, was möglicherweise die Anzahl der benötigten Codierer reduziert. Besonders in Bereichen, in denen Low-Code- oder No-Code-Methoden zum Einsatz kommen, wird KI-Testsoftware unverzichtbar sein. Der Designer der Software selbst kann sein Produkt nicht mehr testen und ist auf unabhängige KI-Testsoftware angewiesen, die in die No-/Low-Code-Tools eingebaut sein sollte.

Governance und Compliance

Diese Entwicklung erfordert zusätzliche Governance, um sicherzustellen, dass die Software den allgemeinen Compliance-Regeln eines Unternehmens und gesetzlichen Vorgaben entspricht, die ebenfalls exponentiell wachsen. Zudem muss die Unabhängigkeit von KI-Entwicklern und KI-Testern gewährleistet sein, um Interessenkonflikte zu vermeiden.

Inhalt:

Die passende Integrationsplattform für Ihr Unternehmen und Ihre Kunden

Integrationsplattfo
Steigende Ansprüche der Kunden, verkürzte Markteinführungszeiten und höhere Anforderungen an die Informationssicherheit und den Datenschutz werden immer wichtiger. Die Lösung für viele dieser Herausforderungen liefert eine Integrationsplattform.

Informationssicherheit und Datenschutz zentrale Themen

Nicht nur die Ansprüche der Kunden an die Services ihrer Anbieter sind gestiegen, auch die Umwelteinflüsse, die eine höhere Kundenorientierung und damit einhergehende verkürzte Markteinführungszeiten erfordern, machen es notwendig, dass Unternehmen immer flexibler auf Veränderungen reagieren. Hinzu kommt, dass es in Zeiten, in denen die Informationssicherheit und der Datenschutz immer wichtiger werden, die eigenen Geschäftsprozesse und die darin verarbeiteten Daten so sicher wie möglich vor unberechtigten Zugriffen zu schützen.  Die Lösung für viele dieser Herausforderungen liefert eine Integrationsplattform.

Diese kann Daten und Anwendungen effektiv verbinden, um die Effizienz zu steigern, die Reaktionsfähigkeit zu verbessern und damit einen Wettbewerbsvorteil zu bieten. IT-Architekturen mit komplexen, schlecht vernetzten Systemen und Anwendungen stellen in diesem Zusammenhang dagegen oft ein Hindernis dar, da ihre Anpassbarkeit und Skalierbarkeit sehr gering sind.

Integrationsplattform: Eine Definition

Eine Integrationsplattform ist eine Softwarelösung, welche die nahtlose Verbindung und Kommunikation zwischen verschiedenen Komponenten, Anwendungen, Systemen und Datenquellen ermöglicht. Sie dient als zentrale Schnittstelle, um Informationen aus verschiedenen Quellen zu sammeln, zu integrieren, zu transformieren und auszutauschen.

Die Hauptaufgabe einer Integrationsplattform besteht darin, die Heterogenität von Datenformaten, Protokollen und verschiedenen Technologien zu überwinden. Sie bietet eine umfassende Palette von Werkzeugen und Funktionen, um Daten zu harmonisieren.

Integrationsplattformen im Enterprise Architecture Management

Letztendlich spielt eine Integrationsplattform im Unternehmen somit eine entscheidende Rolle bei einem modernen Enterprise Architecture Management. Sie ist quasi dessen Herzstück, von dem aus alle Services und Applikationen gesteuert, gewartet und ausgetauscht werden können.

Die Bedeutung von Integrationsplattformen liegt vor allem darin, dass sie Unternehmen dabei unterstützen, die Komplexität ihrer IT-Landschaft zu bewältigen und eine nahtlose Integration und Vernetzung ihrer Systeme zu ermöglichen. Durch den Einsatz einer Integrationsplattform können Unternehmen die interoperable Kommunikation zwischen ihren Systemen verbessern und dadurch Daten nahtlos austauschen. Dies ermöglicht es ihnen, betriebliche Prozesse und Workflows zu optimieren, die Effizienz zu steigern und bessere geschäftliche Entscheidungen auf der Grundlage aktueller und konsistenter Daten zu treffen.

Dies trägt auch erheblich dazu bei, die Qualität und Konsistenz der Daten zu verbessern. Durch die zentrale Erfassung, Transformation und Validierung von Daten können Unternehmen sicherstellen, dass alle Systeme auf aktuelle und fehlerfreie Daten und Anwendungen zugreifen können und ein Datenverlust vermieden werden kann.

Vorteile einer Integrationsplattform

Beispiele für die Vorteile von Integrationsplattformen gibt es viele. Hier nur einige davon:

  • Vereinfachung der Integration von Anwendungen und Daten
  • Reduzierung von Komplexität und Vorverarbeitung von Daten
  • Erhöhung von Transparenz und Sichtbarkeit von Datenflüssen
  • Senkung von Integrationskosten und -zeit
  • Erhöhung der Skalierbarkeit der IT-Architektur
  • Verbesserung der Effizienz und Geschwindigkeit der Geschäftsprozesse
  • Erhöhung der Möglichkeit zur Automatisierung vieler Geschäftsprozesse
  • Flexibilität für die schnelle Anpassung an sich ändernde Geschäftsanforderungen
  • Bessere Integration von Cloud- und On-Premise-Lösungen
  • Erhöhung der Sicherheit durch zentrale Kontrolle und Überwachung von Prozessen für den Datenaustausch
  • Verbesserung der Datenqualität und -konsistenz
  • Reduzierung von Zeit und Kosten bei Wartung und Entwicklung von Schnittstellen

Wahl der geeigneten Integrationslösung

Unternehmen sollten bei der Wahl einer Integrationsplattform/-lösung einiges beachten, damit diese zu ihren Anforderungen passt. Dabei sollten vor allem die Anforderungen und Funktionalitäten im Vordergrund stehen. Welche Features benötigen die einzelnen Stakeholder, welche Datenformate, Schnittstellen, Transaktionsfähigkeit etc. sind involviert? Dazu ist es wichtig, von Anfang an alle Fachabteilungen mit an Bord zu holen.

Die gewählte Lösung sollte flexibel und skalierbar sein, damit die einfache Integration weiterer Systeme und weiterer Anwendungen gewährleistet ist. Darüber hinaus sollte sie cloudfähig sein, um die Skalierbarkeit und Flexibilität weiter zu erhöhen.

Die Sicherheit der Unternehmensdaten und -systeme sollte darüber hinaus oberste Priorität haben. Dementsprechend sollte die Plattform über ausreichende Sicherheitsmechanismen verfügen, um die Daten vor unbefugtem Zugriff und Bedrohungen zu schützen. Dabei spielen auch Compliance-Anforderungen eine große Rolle.

Last but not least spielt die Nutzerfreundlichkeit für die User im Unternehmen eine große Rolle. Diese sollte bei der Integration einer neuen Lösung immer im Vordergrund stehen.

Kombination verschiedener Ansätze

Oft kann die Kombination verschiedener Ansätze bei der Umsetzung einen besseren Erfolg liefern als sich auf einen Ansatz festzulegen.

So können durch die Verwendung von Microservices einzelne Komponenten der Lösung unabhängig voneinander skaliert werden und sind sehr flexibel. Die Kombination der Ansätze ermöglicht es zudem, die Entwicklung und Bereitstellung neuer Funktionen und Dienste schnell voranzutreiben. So bietet die Verwendung von Drittanbietern die Möglichkeit, auf bewährte Lösungen zurückgreifen und Zeit sowie Entwicklungsaufwand zu sparen.

Microservices können unabhängig voneinander entwickelt, bereitgestellt und skaliert werden, was eine effiziente Nutzung der Ressourcen ermöglicht. API-Schnittstellen und ein entsprechendes API Management erleichtern zudem die Integration mit anderen Systemen und Diensten, sowohl intern als auch extern. Durch die Verteilung der Funktionalität auf Microservices können außerdem Ausfälle in einzelnen Komponenten isoliert und behoben werden, ohne dass die gesamte Lösung beeinträchtigt wird.

Die Umsetzung einer Lösung kann sowohl cloud- als auch vor Ort basiert umgesetzt werden.

Anwendungsbeispiel: Integration entlang des Customer Life Cycles

Gerade für Unternehmen, die ihre Dienstleistungen und Produkte online anbieten, stellt eine auf die Bedürfnisse der Kunden zugeschnittene Integrationsplattform eine gute Möglichkeit dar, das Kundenerlebnis zu verbessern und somit deren Zufriedenheit zu erhöhen. Im ersten Schritt ist dabei ist ein Blick auf den Customer Life Cycle mit allen für eine optimale Customer Experience besonders wichtig. Denn durch die Abdeckung aller Kunden betreffender Geschäftsprozesse mit Hilfe einer einzigen Plattform werden gleich mehrere Probleme gelöst. Zum einen sind die Dienstleistungen und Produkte über eine „Eingangstür“ erreichbar, zum anderen sind die Prozesse dadurch leichter anpassbar.

In unserem Fall schauen wir uns das Immobilien-Universum mit seinen verschiedenen Service-Bereichen an und stellen vor, warum Wahl der Integrationsplattform auf den Ansatz mit Microservices gefallen ist.

Schritt 1: Integration aller externen und internen Stakeholder

Wichtig ist in diesem Fall, dass durch eine genaue Analyse aller beteiligten Nutzer und Partner ein System geschaffen wird, das alle dort abholt, wo sie stehen. Im Falle einer Immobilienplattform sind dabei sowohl externe als auch interne Stakeholder zu berücksichtigen, die jeweils mit einem anderen Anspruch auf die Anwendung schauen.

Schritt 2: Automatisierung von Prozessen entlang der Wertschöpfungskette

Nach Analyse aller Bedürfnisse der Stakeholder lässt sich sehr genau aufschlüsseln, welchen Service diese jeweils an jedem Schritt ihrer Customer Journey benötigen. So stellt die Integrationsplattform mit Frontend zu den Kunden ein Best Practice Beispiel für Kundenzentrierung dar.

Schritt 3: Ausgangssituation IT-Infrastruktur und IT-Systeme

Oft haben Unternehmen immer noch mit Datensilos oder nicht verbundenen Applikationen zu kämpfen. Dies verhindert zum einen einen reibungslosen Ablauf, es drohen Datenverluste und Sicherheitslücken, zum anderen lässt sich so keine zufriedenstellende Customer Experience gewährleisten.

Schritt 4: Kombinations-Lösung zur Integration von Systemen

Die Lösung für diese Problematik liegt auf der Hand: Mit Hilfe von Microservices lassen sich Anwendungen Schritt für Schritt austauschen und durch API-Schnittstellen mit dem Frontend verbinden, wenn die Anpassung einer Dienstleistung oder eines Prozesses notwendig wird. Dadurch lassen sich die Time to Market Zyklen deutlich verkürzen, um flexibel auf neue Herausforderungen reagieren zu können.

Dies entspricht auch den Grundsätzen der Agilität, die eine inkrementelle Vorgehensweise sowie eine kontinuierliche Anpassung der Services im Sinne einer hohen Kundenzentrierung vorsieht und weiter dazu beiträgt, dass die Wettbewerbsfähigkeit eines Unternehmens gesichert ist. Zudem ist es durch die Automatisierung vieler Prozesse und die hohe Skalierbarkeit der Anwendung möglich, die freiwerdenden Ressourcen zu nutzen, um die Geschäftstätigkeit etwa durch Markteintritt in andere Länder sowie eine Erweiterung des Angebots um weitere Dienstleistungen auszuweiten und mehr Umsatz zu generieren.

Enterprise Architecture mit Integrationsplattform für mehr Kundenzufriedenheit

Am Beispiel der Immobilienplattform entlang des Customer Life Cycles ist sehr deutlich geworden, dass es sinnvoll ist, sich die eigene IT-Landschaft genauer anzusehen, um gegebenenfalls eine bessere Lösung zu finden. Dabei kann es zusätzlich wertvoll sein, sich genauer anzusehen, welche Plattform tatsächlich zum Unternehmen passt, um die Technologien und Entwicklungen zu nutzen, die am besten auf die eigenen Geschäftsprozesse abgestimmt sind und so bezüglich der Kundenzentrierung auf dem Markt unter Umständen sogar eine Vorreiterrolle spielen zu können.

Inhalt:

Herausforderungen Digitalisierung administrativer Prozesse

Bei der Digitalisierung administrativer Prozesse gibt es einige Hürden, die es zu beachten gibt, damit diese gelingt. Gerade in afrikanischen Ländern sind solche Projekte besonders wichtig.

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

Individualsoftware
Individualsoftware bietet einige Vorteile gegenüber bereits bestehenden Lösungen. Doch was spricht tatsächlich für eine individuelle Lösung, was dagegen? Und können die Nachteile vielleicht aus einem anderen Blickwinkel betrachtet werden?

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?

Nearshoring in Tunis
Sechs Vorbehalte neu beleuchtet
Fachkräftemangel in der IT und geringere Kosten sind nur zwei der Gründe, warum viele Unternehmen ihre Software-Entwicklung an einen Nearshoring-Partner outsourcen. Oft fällt die Wahl auf die Ukraine oder Polen. Gegen Länder wie Tunesien gibt es immer noch Vorbehalte. Sind diese gerechtfertigt?

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.

Definition und Merkmale von Nearshoring

Doch was versteht man eigentlich unter Nearshoring? Nearshoring bezeichnet die Verlagerung betrieblicher Aktivitäten ins nahegelegene bzw. -stehende Ausland. Es kann als Sonderform von Offshoring und Gegenteil von Farshoring aufgefasst werden. Nearshoring bietet eine gute Möglichkeit, IT-Dienstleistungen in konstant hoher Qualität zu guten Konditionen zu erbringen. Dies ist in Zeiten von Fachkräftemangel und damit verbundenen hohen Lohnkosten eine gute Alternative für viele Unternehmen.

Ziele und Vorteile von Nearshoring

Mit Nearshoring wollen Unternehmen wie bei Offshoring überhaupt vor allem die Personalkosten (Löhne und Ausgaben für Aus- und Weiterbildung) senken. Dadurch können Unternehmen ihre Kosten reduzieren und ihre Flexibilität und Effizienz erhöhen. Damit sichern sie sich einen Wettbewerbsvorteil, da so Geld für notwendige Investitionen frei wird, um den Herausforderungen der Digitalisierung zu begegnen. Der Trend der Auslagerung von Leistungen im IT Bereich ins Ausland exisitiert angesichts der wachsenden Globalisierung deshalb bereits seit vielen Jahren.

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.

Herausforderungen beim Nearshoring

Durch die Verlagerung in einen anderen Teil der Welt erhöht sich der Kommunikationsaufwand, oft gibt es Sprachbarrieren, die überwunden werden müssen. Zusätzlich müssen Prozesse genau definiert sein, um die Vorteile des Nearshoring nutzen zu können. Eine zusätzliche Herausforderung sind Datenschutzrisiken, die bei der Option einer Verlagerung der IT Entwicklung außerhalb Deutschlands besonders berücksichtigt werden müssen.

 

Vorteile von Nearshoring in Tunesien

Trotz aller Bedenken gegenüber der Verlagerung von Dienstleistungen in ein anderes Land, das anderen Gesetzgebungen untersteht, ist das Nearshoring eine gute Alternative, um sich in einer globalisierten Welt behaupten zu können. Dass Tunesien hierfür eine gute Option ist, lässt sich anhand einiger Kriterien gut darstellen.

Zugang zu mehr Talenten

Wie bereits dargelegt, bietet Nearshoring den Vorteil, auf qualifizierte Mitarbeiter aus verschiedenen Ländern zuzugreifen. 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.

Zeitliche und räumliche Nähe

Distanz: Auch wenn Tunesien auf einem anderen Kontinent liegt, befindet sich das Land in der gleichen Zeitzone bzw. in der Sommerzeit und ein Flug dauert nur wenig mehr als zwei Stunden. Diese Nähe gewährleistung im Gegensatz zum Offshoring in Ländern wie Indien, dass Ansprechpartner während der europäischen Geschäftszeiten für Absprachen oder zur Lösung von Problemen zur Verfügung stehen. Durch Innovationen wie dem Cloud Computing ist die Zusammenarbeit zudem nahezu barrierefrei.

Keine Sprachbarrieren 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.

Hands-On-Mentalität

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.

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.

Kosteneinsparungen und schnellere Lieferzeiten

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.

Faziz: Nearshoring als Chance für Ihr Unternehmen

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, Effizienz und deutsches Knowhow sowie deutsche Qualität. Durch die Nähe zu Deutschland hat auch das Thema Daten- und Informationssicherheit einen hohen Stellenwert, was Datenschutzbedenken hinfällig macht.

Tests in der Softwareentwicklung

Bei Tests in der Softwareentwicklung Geld sparen zu wollen, ist keine gute Idee. Oftmals kommt es dadurch zu Verzögerungen und Imageverlust. Häufige Argumente dagegen lassen sich schnell widerlegen.

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

Blockchain
Die Blockchain-Technologie hat das Potential alle Bereiche unserer Gesellschaft tiefgreifend zu verändern. Als Konstrukt aus den Konzepten der digitalen Signatur, dem Proof of Work bzw. Proof of Stake und dem Konsensalgorithmus vereint sie bisher unvereinbare Konzepte:

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

agile frameworks safe less nexus
Megatrends wie die Digitalisierung, die Globalisierung und die Flexibilisierung verändern unsere Arbeitswelt heute rapide.

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

agiles testen
Agile Methoden bei der Softwareentwicklung erfordern auch Anpassungen in den Arbeitsabläufen. Das gilt auch für das Software Testing. Doch wie kann agiles Testen aussehen?

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

 

Inhalt: