Anwendungsentwicklung für innovative Anwendungen

Wie unter Demokratisieren von Daten mit digitalen Innovationen erläutert, werden die meisten Innovationen in der digitalen Wirtschaft durch Daten gefördert. Im Rahmen dieser Analogie sind Anwendungen die Tankstellen und die Infrastruktur, die erforderlich sind, damit dieser Kraftstoff in die richtigen Hände gelangt.

In einigen Fällen reichen die Daten allein aus, um Änderungen voranzutreiben und Kundenanforderungen zu erfüllen. In der Regel erfordert die Lösung von Kundenanforderungen, dass Anwendungen die Daten strukturieren und für Benutzerfreundlichkeit sorgen. Innovative Anwendungen interagieren mit dem Benutzer und stellen Informationen und Anleitungen zur Verfügung. In diesem Artikel werden einige Grundsätze erläutert, die Ihnen dabei helfen können, die richtige Lösung zur Anwendungsentwicklung auf der Grundlage der zu validierenden Hypothesen zu finden.

Diagramm: Elemente, die beim Erstellen einer App helfen können, die Kunden eine Benutzererfahrung bietet, die ihre Anforderungen erfüllt

Freigegebener Code

Teams, die schnell auf Kundenfeedback, Marktveränderungen und Verkaufschancen reagieren, sind in der Regel am innovativsten. Das erste Prinzip innovativer Anwendungen ist ein Element der Wachstumsmentalität: „Freigeben des Codes“. Die Freigabe von Code lädt zu verschiedenen Perspektiven und Beiträgen ein und fördert die Innovation. Daher sollte die Entwicklung von Anwendungen mit einem freigegebenen Coderepository beginnen.

Ein gängiges Tool für die Verwaltung von Coderepositorys ist GitHub, wo Sie sehr schnell ein Repository für freigegebenen Code erstellen können. Eine Alternative ist Microsoft Azure Repos, ein Azure DevOps-Dienst, der unbegrenzte, in der Cloud gehostete private Repositorys für Ihr Projekt bereitstellt. Für die Versionskontrolle können Sie entweder Git (ein verteilter Typ) oder das zentralisierte Team Foundation Version Control (TFVC) auswählen, wenn Sie Azure Repos verwenden. Weitere Informationen zu Azure Repos, Git und TFVC finden Sie in der Dokumentation zu Azure Repos.

Entwickler ohne Programmiererfahrung

Professionelle Entwickler sind wichtig für Innovationen. Wenn sich eine Hypothese im großen Stil bewährt, können sie die Lösung stabilisieren und für die Skalierung vorbereiten. Leider kann es sein, dass professionelle Entwickler Mangelware sind, und eine professionelle Entwicklung kann zudem die Kosten erhöhen und Innovationen verlangsamen.

Citizen Developer sind Benutzer, die neue Geschäftsanwendungen mithilfe von Entwicklungs- und Laufzeitumgebungen erstellen, die von der Unternehmens-IT sanktioniert werden. Die Verwendung der Citizen Developer kann dazu beitragen, die Entwicklungsarbeit zu skalieren und frühe Hypothesentests zu beschleunigen. Diese Strategie ist sinnvoll und effektiv, wenn frühe Hypothesen mithilfe von Tools wie Power Apps für Anwendungsschnittstellen, AI Builder für Prozesse und Vorhersagen, Power Automate für Workflows oder Power BI für den Datenverbrauch überprüft werden können.

Hinweis

Wenn Sie sich beim Testen von Hypothesen auf Citizen Developer verlassen, ist es ratsam, auch professionelle Entwickler zur Unterstützung, Überprüfung und Anleitung der Arbeit einzusetzen. Die Experten können dabei helfen, einen robusten Entwurf zu entwickeln, der die Rendite der Innovation beschleunigt. Durch die rechtzeitige Einbindung professioneller Entwickler können Sie später klare Übergänge realisieren.

Intelligente Umgebungen

Intelligente Umgebungen kombinieren die Geschwindigkeit und Skalierung moderner Webanwendungen mit der Intelligenz von Cognitive Services und Bots. Jede einzelne dieser Technologien kann aber möglicherweise ausreichen, um die Anforderungen Ihrer Kunden zu erfüllen. Wenn sie richtig kombiniert werden, erweitern sie das Spektrum der Anforderungen, die durch eine digitale Erfahrung erfüllt werden können, während gleichzeitig die Budgets für die Anwendungsentwicklungskosten eingehalten werden.

Moderne Web-Apps

Moderne Webanwendungen können den schnellsten Weg darstellen, um die Anforderungen interner oder externer Kunden zu erfüllen. Die Erfahrungen, die sie bieten, können Kunden schnell binden und ermöglichen eine schnelle Weiterentwicklung der Lösung.

Hinzufügen von Intelligenz

Es wird für professionelle Entwickler und Citizen Developer immer einfacher, Features für maschinelles Lernen und KI zu Anwendungen hinzuzufügen, die dabei helfen, die Anforderungen des Kunden zu erfüllen und eine interaktive Erfahrung zu bieten. Beispiele für diese Features sind:

  • Spracherkennung
  • Text-to-Speech
  • Maschinelles Sehen
  • Visuelle Suche
  • KI für die Vorhersage

Innovatoren sollten darauf achten, solche Features zu nutzen, um eine interaktive und moderne Benutzeroberfläche zu erstellen.

Bots

Ein Bot ist eine Konversations-KI-Anwendung, die Benutzern eine Erfahrung bietet, die eher dem Umgang mit einem Menschen und weniger dem mit einer herkömmlichen Computeranwendung entspricht. Benutzer kommunizieren mit einem Bot mithilfe von Text, interaktiven Karten und Sprache. Bei einer Botinteraktion kann es sich um eine kurze Frage und Antwort (um z. B. eine Reservierung zum Abendessen vorzunehmen) oder auch um eine komplexe Konversation handeln, die auf intelligente Weise Zugriff auf Dienste bereitstellt.

Bots sind zu denselben Dingen wie andere Arten von Software in der Lage: Lesen und Schreiben von Dateien, Verwenden von Datenbanken und APIs und Durchführen von regulären Rechenaufgaben. Was Bots einzigartig macht, ist die Verwendung von Mechanismen, die in der Regel auf die Kommunikation zwischen Menschen beschränkt sind. Bots sind mit modernen Webanwendungen vergleichbar: Sie sind über das Internet verfügbar und nutzen APIs zum Senden und Empfangen von Nachrichten. Der Inhalt eines Bots fällt je nach Art des Bot sehr unterschiedlich aus. Moderne Botsoftware basiert auf einem Stapel von Technologien und Tools, um zunehmend komplexe Funktionen auf den unterschiedlichsten Plattformen bereitzustellen. Allerdings kann ein einfacher Bot auch nur eine Nachricht erhalten und an den Benutzer zurückgeben, wobei sehr wenig Code zum Einsatz kommt.

Cloudnative Lösungen

Die cloudnative Architektur ermöglicht es Ihnen, schnelle Veränderungen anzunehmen und resiliente und skalierbare Anwendungen einfacher auszuführen. Cloudnative Anwendungen werden in der Regel mithilfe von Containern, Microservices, verwalteten Diensten, serverlosen Funktionen und ereignisbasierter Programmierung erstellt. Am häufigsten verwenden cloudnative Lösungen Continuous Delivery, um eine schnellere Markteinführungszeit zu erzielen.

Eine cloudnative Lösung ermöglicht zentralisierten Entwicklungsteams, die Kontrolle über die Geschäftslogik aufrechtzuerhalten, ohne dass monolithische, zentralisierte Lösungen benötigt werden. Sie erleichtert es auch, die Konsistenz zwischen den Eingaben der Citizen Developer und modernen Umgebungen zu steuern. Außerdem sind cloudnative Lösungen Innovationsbeschleuniger, indem sie Entwicklern ohne Programmiererfahrung und professionellen Entwicklern die sichere Innovation mit minimalen Hindernissen ermöglichen.

Innovationen durch vorhandene Lösungen

Viele Kundenhypothesen können am besten durch eine modernisierte Version einer vorhandenen Lösung bereitgestellt werden. Dies kann passieren, wenn die aktuelle Geschäftslogik den Bedürfnissen der Kunden nahe kommt.

Die meisten Formen der Modernisierung, einschließlich Refactoring, sind in der Migrationsmethodik innerhalb des Cloud Adoption Framework enthalten. Diese Methodik führt Cloudeinführungsteams durch die Prozesse zum Migrieren einer digitalen Ressource zur Cloud. Der Leitfaden zur Azure-Migration bietet einen optimierten Ansatz für dieselbe Methodik, der für eine kleine Anzahl von Workloads oder sogar für eine einzelne Anwendung geeignet ist.

Nach der Migration und Modernisierung einer Lösung gibt es eine Vielzahl von Möglichkeiten, wie diese zur Erstellung neuer innovativer Anwendungslösungen genutzt werden kann, um die Anforderungen der Kunden zu erfüllen. Beispielsweise könnten Entwickler ohne Programmiererfahrung Hypothesen testen, oder professionelle Entwickler könnten intelligente Umgebungen oder cloudnative Lösungen erstellen.

Erweitern einer vorhandenen Lösung

Das Erweitern einer Lösung ist eine gängige Form der Modernisierung. Dies kann der schnellste Weg zu Innovationen sein, wenn Folgendes für die Kundenhypothese zutrifft:

  • Die vorhandene Geschäftslogik entspricht den Kundenanforderungen oder kommt diesen nahe.
  • Eine verbesserte Erfahrung (keine neue) erfüllt die Anforderungen der Kunden am besten.
  • Die Geschäftslogik, die für die MVP-Lösung (Minimum Viable Product) erforderlich ist, wurde zentralisiert – üblicherweise über einen N-Schichten-, Webdienste-, API- oder Microservices-Entwurf. Dieser Ansatz besteht darin, die vorhandene Lösung mit einer neuen, in der Cloud gehosteten Umgebung zu umschließen. In Azure befände sich diese Lösung wahrscheinlich in Azure App Service.

Neuerstellen einer vorhandenen Lösung

Wenn eine vorhandene Lösung den Kundenanforderungen entspricht oder nahe kommt, aber nicht einfach erweitert werden kann, ist es möglicherweise erforderlich, sie umzugestalten. Bei diesem Ansatz wird die Anwendung in die Cloud migriert. Nach der Migration der Anwendung werden Teile davon geändert oder dupliziert, als Webdienste oder Microservices, die parallel zur vorhandenen Lösung bereitgestellt werden. Die parallele dienstbasierte Lösung könnte wie eine erweiterte Lösung behandelt werden. Diese Lösung würde einfach die vorhandene Lösung mit einer neuen, in der Cloud gehosteten Umgebung umschließen. In Azure befände sich diese Lösung wahrscheinlich in Azure App Service.

Achtung

Das Refactoring bzw. Neuentwerfen von Lösungen oder Zentralisieren von Geschäftslogik kann, im Gegensatz zu einer Kundenwertquelle, schnell zu einer zeitaufwendigen technischen Herausforderung werden. Dies ist ein Risiko für die Innovation, insbesondere in der Frühphase der Hypothesenvalidierung. Mit etwas Kreativität beim Entwerfen einer Lösung sollte ein Pfad zum MVP vorhanden sein, der kein Refactoring vorhandener Lösungen erfordert. Es ist ratsam, das Refactoring zu verzögern, bis die anfängliche Hypothese bedarfsabhängig überprüft werden kann.

Betriebsmodellinnovationen

Zusätzlich zu modernen, innovativen Ansätzen für die App-Entwicklung gibt es auch einige bedeutende Neuerungen beim App-Betrieb. Diese Ansätze haben viele organisatorische Veränderungen angeregt. Eine der herausragendsten ist das Betriebsmodell Cloudkompetenzzentrum. Wenn die Geschäftsteams vollständig personell ausgestattet und ausgereift sind, können sie ihre eigene betriebliche Unterstützung für eine Lösung bereitstellen.

Der Typ des Self-Service-Betriebsverwaltungsmodells in einem Cloudkompetenzzentrum ermöglicht strengere Kontrollen und schnellere Iterationen innerhalb der Lösungsumgebung. Diese Ziele werden durch Übertragung betrieblicher Kontrolle und Verantwortlichkeit an das Geschäftsteam erreicht.

Wenn Sie versuchen, die globale Nachfrage nach einer vorhandenen Lösung zu skalieren oder zu erfüllen, kann dieser Ansatz ausreichen, um eine Kundenhypothese zu validieren. Nachdem eine Lösung migriert und etwas modernisiert wurde, kann sie vom Geschäftsteam skaliert werden, um verschiedene Hypothesen zu testen. Dies umfasst normalerweise Kundenkohorten, die sich Gedanken über die Leistung, die globale Verteilung und andere Kundenanforderungen machen, die durch IT-Vorgänge beeinträchtigt werden.

Reduzierung von Mehraufwand und Verwaltung

Je mehr innerhalb einer innovativen Anwendung oder Lösung gewartet werden muss, desto langsamer wird diese Anwendung oder Lösung durchlaufen. Das bedeutet, dass Sie die Innovation beschleunigen können, indem Sie die Auswirkungen von Vorgängen auf die verfügbare Bandbreite reduzieren.

Zur Vorbereitung auf die vielen Iterationen, die für die Bereitstellung einer innovativen Lösung erforderlich sind, ist vorausschauendes Denken wichtig. Minimieren Sie beispielsweise die Betriebsbelastungen frühzeitig im Prozess, indem Sie serverlose Optionen bevorzugen. In Azure könnten serverlose Anwendungsoptionen Azure App Service oder Container beinhalten.

Ziehen Sie parallel dazu die Optionen für serverlose Transaktionsdaten in Azure in Betracht, die ebenfalls den Mehraufwand reduzieren können. Der Azure-Produktkatalog bietet Datenbankoptionen, die Daten ohne eine vollständige Datenplattform hosten.

Nächste Schritte

Je nach Hypothese und Lösung können die in diesem Artikel erwähnten Prinzipien das Entwerfen von Apps unterstützen, die MVP-Definitionen erfüllen und Benutzer einbinden. Im nächsten Schritt werden die Prinzipien erläutert, die die Einführung unterstützen und Möglichkeiten bieten, wie Sie die Anwendung und die Daten den Kunden schneller und effizienter zur Verfügung stellen können.