10 Minuten Lesezeit Mit Insights von Mo Ramezanpoor Mobile Architect and Capability Lead london@zuhlke.com Stellen Sie sich vor, Sie haben gerade eine neue mobile App auf den Markt gebracht. Schon nach wenigen Wochen hagelt es Beschwerden von Usern über Abstürze und langsame Performance. Schnell wird klar: Das Problem liegt in der Architektur der App. Sie ist nicht in der Lage, den Umfang und die Komplexität der Funktionen, die Sie nach dem Launch ergänzt haben, zu bewältigen. Wir zeigen Ihnen, wie Sie Ihre Architektur mit dem Design Ihrer App und Ihrer Produktvision in Einklang bringen können. Nur dann wird Ihre App die Funktionen bieten, die sich Benutzerinnen und Benutzer wünschen und brauchen. Gleichzeitig bleibt genügend Raum für zukünftige Entwicklungen. Im Anschluss gehen wir darauf ein, wie Sie Sicherheit und Datenschutz in die Architektur Ihrer App einbinden, um die User-Daten zu schützen und Hackerangriffe zu verhindern. Und schließlich erläutern wir, wie Sie eine nachhaltige Architektur schaffen, die den Anforderungen einer schnell wachsenden Nutzerbasis und neuen und weiterentwickelten Funktionen gerecht wird. Am Ende dieses Leitfadens haben Sie eine Checkliste mit allen wichtigen Punkten an der Hand, die bei der Bewertung Ihrer mobilen App-Architektur zu berücksichtigen sind. Ferner kenne Sie die konkreten Schritte zur Verbesserung der Architektur. Also: Prüfen wir die Architektur Ihrer mobilen App auf Herz und Nieren! Bei der Bewertung Ihrer Architektur sind einige wichtige Kriterien zu beachten. Wir haben Ihnen die Kriterien zusammengestellt, die wir für eine mobile Architektur für wichtig halten und die über die allgemeinen Prinzipien der Software-Architektur hinausgehen. Um eine solide mobile App zu entwickeln, müssen Sie insbesondere die folgenden drei Bereiche beachten: Funktionalität: Ausrichtung an Design und Produkt Integration von Sicherheit und Datenschutz Effizienz: Aufstellung eigenständiger Entwicklungsprozesse Stärkung der Teamautonomie durch unabhängige explorative Tests Nachhaltigkeit: Einsatz von Automatisierung und Checklisten Etablierung von Governance Ausrichtung an Design und Produkt Bei der Entwicklung einer erfolgreichen mobilen App ist die Ausrichtung an Design und Produkt der Schlüssel zum Erfolg. Aber was versteht man darunter? Einfach ausgedrückt: Die Architektur Ihrer mobilen App sollte die gewünschten Funktionen und Merkmale unterstützen und gleichzeitig zukünftiges Wachstum und Weiterentwicklung ermöglichen. Man kann sich das wie den Bau eines Hauses vorstellen: Wenn das Fundament wackelig ist, wird auch alles andere in Mitleidenschaft gezogen. Das Gleiche gilt für die Architektur Ihrer App. Ist diese nicht auf Ihr Design und Ihre Produktvision abgestimmt, wird es schwierig, die von den Usern gewünschten Funktionen bereitzustellen. Zudem wird die App auf lange Sicht schwer zu skalieren und zu warten sein. Aber woher wissen Sie, ob die Architektur Ihrer App auf das Design und das Produkt abgestimmt ist? Sehen wir uns zwei Beispiele an: Beispiel 1: Eine mobile App für einen Streaming-Service. Die Architektur dieser App sollte auf das Abspielerlebnis und die Infrastruktur ausgelegt sein. Dabei gilt es, Fragen zu beantworten, wie etwa: Wie findet die Offline-Wiedergabe statt? Wie gehen wir mit Bild-in-Bild-Funktionen und Unterbrechungen um? Wie optimieren wir Video-Caching und Qualitätsanpassungen? Beispiel 2: Eine mobile Banking-App. Bei der Architektur dieser App sollten Sicherheit sowie die Fähigkeit, viele unabhängige oder miteinander verbundene Dienste anzubieten, im Vordergrund stehen. Dabei gilt es, Fragen zu beantworten, wie etwa: Wie stellen wir die Sicherheit des Datenzugriffs und der Zahlungen sicher? Wie gehen wir mit der Integration von Open Banking um? Wie implementieren wir Kartenmanagement-Funktionen? Wie Sie sehen, haben beide Apps unterschiedliche Anforderungen und erfordern daher unterschiedliche Ansätze für die Architektur. Es gibt jedoch ein paar wichtige Kriterien, anhand derer Sie beurteilen können, wie gut Ihre Architektur Design und Produkt unterstützt: Funktionen, die dem Zweck der App entsprechen, können problemlos implementiert werden. Sicheres Experimentieren und Prototyping sind möglich. Die sichere Integration von teilweise implementierten oder deaktivierten Funktionen wird unterstützt. Anhand dieser Kriterien können Sie sicherstellen, dass die Architektur Ihrer mobilen App die gewünschten Funktionen und Merkmale unterstützt und gleichzeitig zukünftiges Wachstum und Weiterentwicklung ermöglicht. Und die Vorteile der Abstimmung von Design und Produkt mit der Architektur? Kürzere Vorlaufzeit für Discovery und Refinement Kürzere Vorlaufzeit für die Qualitätssicherung Bessere Gesamtqualität Besseres Verständnis des Teams für die Funktionalität der App Kürzere Ankündigungsfrist zum Deaktivieren risikoreicher Funktionen Integration von Sicherheit und Datenschutz Beim Betrachten der Systemarchitektur eines Unternehmens wird deutlich, wie Sicherheitsvorrichtungen implementiert wurden – beispielsweise durch den Schutz von Services mit Gateways und Firewalls sowie durch Komponenten zur Authentifizierung, Autorisierung und Berechtigungsverwaltung. Bei mobilen Apps fehlen diese Vorrichtungen jedoch oft – selbst bei solchen, die sensible Daten verarbeiten. Einzelne Vorgänge wie die Abfrage des Kontostands oder die Beantragung eines Kredits stellen möglicherweise eigene Internetverbindungen her, wodurch die App für genau die Schwachstellen anfällig ist, die Gateways und Firewalls abdecken sollen. Deshalb zeigen wir Ihnen, wie Sie die Sicherheit und den Datenschutz der Architektur und Infrastruktur Ihrer App bewerten und messen können. Anhand dieser Kriterien können Sie potenzielle Schwachstellen erkennen und Gegenmaßnahmen ergreifen, bevor Probleme entstehen. Die Entwicklungsinfrastruktur und -architektur sollte die versehentliche Bereitstellung von internem Code und Assets in der Produktion verhindern. Die Entwicklungsinfrastruktur und -architektur sollte das Risiko von versehentlichen Fehlern und böswilligen Code-Manipulationen minimieren und grundlegende Sicherheitsvorkehrungen dagegen bieten. Auffällige oder bösartige Muster sollten leicht zu erkennen sein. Die Vorteile einer Bewertung der Sicherheit und des Datenschutzes liegen auf der Hand: schnellere Implementierung und schnellere Freigabezyklen, bessere Gesamtqualität, geringeres Betriebs-/Sicherheitsrisiko. Lassen Sie uns jedoch den wichtigsten Vorteil nicht vergessen: Sie können ruhig schlafen. Das Wissen, dass Ihre App-Architektur und -Infrastruktur sicher sind, den gesetzlichen Vorschriften und Branchenstandards entsprechen und die Privatsphäre der User schützen, gibt Ihnen die nötige Zuversicht, um sich auf die Entwicklung überzeugender Funktionen und das Wachstum Ihres Unternehmens zu konzentrieren. Aufstellung eigenständiger Entwicklungsprozesse Sie kennen das: Ihr Projekt verzögert sich, weil noch Beiträge einzelner Beteiligter fehlen. Um diese ärgerliche Situation zu vermeiden, müssen eigenständige Entwicklungsprozesse geschaffen werden. Stellen Sie sich Ihr Entwicklungsteam als gut geölte Maschine vor. Jeder Teil des Teams arbeitet harmonisch zusammen, ist aber auch in der Lage, unabhängig zu arbeiten, ohne darauf angewiesen zu sein, dass die anderen Teile aufholen. Auf diese Weise kann die Bereitstellungszeit erheblich verkürzt werden und Teams können parallel arbeiten. Am Ende wird die korrekte Integration kurz überprüft, um sicherzustellen, dass es keine Abweichungen zwischen den Annahmen der Teams gibt. Es gibt noch weitere externe Faktoren, die sich auf die Produktivität der Entwickler auswirken können, wenn sie nicht berücksichtigt werden. So kann es beispielsweise sehr zeitaufwändig sein, eine Zahlungskarte zu einer Wallet hinzuzufügen. Die App und die Funktion sollten so konzipiert sein, dass das Hinzufügen und Entfernen eines Ausweises so nah wie möglich am realen Prozess simuliert werden kann. Die Bewertung Ihres eigenständigen Entwicklungsprozesses ist recht einfach. Beurteilen Sie anhand der folgenden Kriterien, wie gut Ihr Entwicklungsprozess die Abhängigkeit von externen Faktoren ausschaltet: Die gesamte Funktionalität sollte von Entwicklern ohne Live-Backend-Dienste zugänglich sein und getestet werden können. Die gesamte Funktionalität sollte für Entwickler unabhängig und ohne großen Aufwand zugänglich sein und getestet werden können. Einzelne Funktionen sollten unabhängig voneinander zugänglich sein und getestet werden können. Wenn Sie diese Kriterien berücksichtigen, können Sie mit schnelleren Implementierungs- und Release-Zyklen, einer besseren Reaktion auf Zwischenfälle und geringeren Auswirkungen verspäteter oder fehlender Abhängigkeiten rechnen. Vor allem aber werden Sie in der Lage sein, besser und schneller zu entwickeln und Ihren Usern das Erlebnis zu bieten, das sie verdienen. Stärkung der Teamautonomie durch unabhängige explorative Tests Exploratives Testen können Sie sich wie eine Schatzsuche vorstellen. Sie suchen aber keine Goldmünzen, sondern Fehler und Grenzfälle, welche die Leistung Ihrer App beeinträchtigen könnten. Und genau wie bei einer Schatzsuche sind Sie umso erfolgreicher, je mehr Tools und Ressourcen Sie zur Verfügung haben. Deshalb ist das Reduzieren von Abhängigkeiten für effiziente explorative Tests so wichtig. Wenn Sie die App in einem internen Build testen, erfahren Sie schneller und präziser, wie eine Funktion funktioniert, ohne zunächst ein Testkonto in einer Backend-Umgebung einrichten zu müssen. Es geht nicht nur darum, die App zu testen, sondern auch darum, den Entwicklern so viele Informationen wie möglich zur Verfügung zu stellen, wenn etwas gefunden wird, zum Beispiel ein Fehler oder Grenzfall. Sie sollten die App in verschiedenen Situationen und Umgebungen testen können, um beispielsweise klären zu können, ob ein bestimmter Sachverhalt auch in der Produktion auftritt. Daher ist die Bewertung explorativer Tests so wichtig. Beurteilen Sie anhand der folgenden Kriterien, wie gut Ihr Prozess funktioniert: Interne Builds sollten die Abhängigkeit von externen Faktoren während der explorativen Tests minimieren. Interne Builds sollten das Testen in verschiedenen Umgebungen und unter verschiedenen Bedingungen unterstützen. Interne Builds sollten eine erweiterte Protokollierung/Verfolgung ermöglichen. Wenn Sie diese Kriterien berücksichtigen, können Sie nicht nur mit einer schnelleren Iteration und Identifizierung wertvoller Szenarien durch explorative Tester rechnen – eine einfache Einrichtung wird andere Teammitglieder zudem dazu ermutigen, Funktionen direkt in der App zu testen und etwaige Probleme zu melden. Auch ein besseres Verständnis der App-Funktionalität durch das Team ist zu erwarten. Der wichtigste Vorteil effektiver explorativer Tests besteht jedoch darin, dem Team das Testen und Erkunden der App zu erleichtern. Einsatz von Automatisierung und Checklisten Automatisierung und Checklisten sind Ihre Geheimwaffe im Kampf um die Nachhaltigkeit und den Erfolg einer mobilen App. Durch die Automatisierung von Aufgaben wie Tests, kontinuierliche Integration und Berichterstellung können Sie die Architektur und den Bereitstellungsprozess Ihrer App standardisieren und die Gesamtqualität verbessern. Mit der Automatisierung allein ist es jedoch nicht getan. Sie brauchen eine klare Strategie dafür, welche Arten von Tests notwendig sind und wie umfangreich diese sein sollten. Denken Sie daran: Eine hohe Testabdeckung ist nicht unbedingt gleichbedeutend mit hochwertigen Tests. Um bestmöglich von Automatisierung und Checklisten zu profitieren, sollten Sie folgende Ergebnisse anstreben: Mehr Vertrauen in die ordnungsgemäße Funktionsweise der App Geringerer Zeitaufwand für die Qualitätssicherung Kürzere Vorlaufzeiten für die Entwicklung von Funktionen Weniger Bugs in der Produktion Schnellere Reaktion bei Zwischenfällen Wenn Sie diese Ergebnisse erreichen, werden Sie auch Vorteile wie kürzere Durchlaufzeiten, verbesserte Effizienz und ein höheres Qualitätsniveau feststellen. Aber das ist noch nicht alles. Um Automatisierung und Checklisten wirklich optimal zu nutzen, sollten Sie in Erwägung ziehen, visuelle Elemente wie Screenshots und Komponenten der Design-Bibliothek in Ihre automatisierten Berichte einzubinden. Dadurch erhalten Sie einen umfassenderen Überblick über die Funktionen Ihrer App und das Team kann sie besser überprüfen. Etablierung von Governance Effektive Governance klingt nicht gerade aufregend. Für die Zukunftsfähigkeit Ihrer mobilen App ist sie jedoch unerlässlich. Die Governance einer mobilen App gestaltet sich mitunter schwierig. Es gilt, ein Gleichgewicht zu finden zwischen der Möglichkeit für verschiedene Teams, die benötigten Funktionen zeitnah einzubinden, und der Gewährleistung einer angemessenen Wartung der App sowie der Weiterentwicklung ihrer Architektur mit den Anforderungen des Unternehmens. Um die Governance und ihre Auswirkungen auf die Architektur effektiv zu bewerten und zu messen, brauchen Sie eine Entwicklungsinfrastruktur, die den gesamten Lebenszyklus einer Funktion unterstützt und automatisierte Berichte über den Zustand des Codes erstellt. Dazu gehören die Zusammenfassung der Ergebnisse automatisierter Tests, Testmetriken und Berichte über die funktionalen und nicht-funktionalen Anforderungen der App. Nicht zu vergessen: die Dokumentation. Eine ausführliche Dokumentation der Architektur und ihrer Kernprinzipien und Richtlinien kann die Transparenz, das Vertrauen und die Koordination innerhalb des Teams verbessern. Das Endergebnis? Eine gut gewartete App mit einer flexiblen Architektur, die sich mit den Anforderungen des Unternehmens weiterentwickelt. Zudem ergeben sich kürzere Vorlaufzeiten, geringere Betriebs- und Sicherheitsrisiken und ein besseres Verständnis für den Zweck der Architektur. Governance ist vielleicht nicht der spektakulärste Aspekt der App-Entwicklung, aber die Mühe lohnt sich in jedem Fall. Fazit In diesem Leitfaden haben wir Ihnen die wichtigsten Kriterien vorgestellt, die Sie bei der Bewertung der Architektur Ihrer mobilen App berücksichtigen sollten – von der Ausrichtung an Design und Produkt über die Integration von Sicherheit und Datenschutz bis hin zum Einsatz von Automatisierung und Checklisten. Doch nicht nur technische Aspekte sind relevant. Eine effektive Governance ist ebenfalls entscheidend für die Nachhaltigkeit Ihrer App. Über die Implementierung einer Entwicklungsinfrastruktur, die alle Aspekte des Lebenszyklus einer Funktion abdeckt und automatisierte Berichte erstellt, können Sie sicherstellen, dass Ihre App gut gewartet wird und ihre Architektur sich mit den Anforderungen des Unternehmens weiterentwickelt. Ob Sie nun als CTO, Engineer oder Product Owner tätig oder anderweitig an der App-Entwicklung beteiligt sind – nehmen Sie sich die Zeit, die Architektur Ihrer App zu bewerten und zu verbessern. Es erfordert ein wenig Einsatz, aber am Ende steht eine hochwertige und zukunftsträchtige mobile App, die den Anforderungen der User und Ihres Unternehmens gerecht wird. Warum Architektur in Zeiten von Mobile-first zentral ist In diesem Artikel gehen wir auf die Bedeutung der mobilen Architektur ein. Zum Artikel
Warum Architektur in Zeiten von Mobile-first zentral ist In diesem Artikel gehen wir auf die Bedeutung der mobilen Architektur ein. Zum Artikel
Life Science und Pharma – Compliant Framework for Cloud-Based Innovation in Pharma & MedTech Mehr erfahren
Öffentlicher Sektor und Verwaltungen – Mit dem Digital Twin zu Smart City und Smart Industry Mehr erfahren