Die passende Integrationsplattform für Ihr Unternehmen und Ihre Kunden

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-Landschaften 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

Doch was versteht man eigentlich unter einer Integrationsplattform: 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-Landschaft
  • 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 Integrationsplattform/-lö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 aus verschiedenen Integrationslösungen

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 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 on premise 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.

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.

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

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: