Produktentwicklung digital – in 3 Schritten die richtigen Technologien für Ihre Anwendung finden
Ihr digitales Produkt soll auch in Jahren noch am Markt bestehen? Jetzt ist der Zeitpunkt, sich über die Technologie hinter Ihrer Idee Gedanken zu machen. 3 Faktoren bestimmen über den Erfolg Ihrer Anwendung.
Die anfänglichen Herausforderungen in der Produktentwicklung – Idee, Planung der Funktionalitäten und Definition eines MVP – sind überwunden. Damit stehen entscheidende Pfeiler bereits. Ein wichtiger fehlt allerdings noch: die technische Komponente Ihres Projektes. Die folgenden drei Punkte sollten Sie beleuchten, um den Grundbaustein des Produkts aus technischer Perspektive zu legen und so eine Anwendung zu entwickeln, die dauerhaft leistungsfähig bleibt.
1. Technologie Ihrer Software-Anwendung
Zum einen muss über die Technologie entschieden werden, mit der die Anwendung entwickelt wird. Dabei kommt es darauf an, welche Funktionalitäten die Anwendung hat. Außerdem spielen Faktoren wie das Know How der internen Mitarbeiter und die Verbreitung von Sprachen und Frameworks im Unternehmen eine Rolle. So sollte geklärt werden, ob es standardisierte Technologien gibt, die auch für das neue Produkt berücksichtigt werden müssen, oder ob auch eine neue Technologie verwendet werden kann. Ein Beispiel-Klassiker stammt aus der App-Entwicklung:
Stellen Sie sich vor, Sie möchten eine App entwickeln lassen: Häufig ist hier der erste Impuls bei der Frage nach den verwendbaren Gerätetypen: „Meine App soll überall funktionieren – auf Smartphones und Tablets, sowohl unter iOS als auch mit Android!“. Dabei wird nicht bedacht: Je nach dem, was Ihre Anwendung können muss, kann jede zusätzliche Plattform erhebliche Kosten verursachen. Die App muss im Extremfall für jede Plattform einzeln entwickelt werden! Denken Sie an Ihre Zielgruppe: Zu welcher Hardware und zu welchem Betriebssystem wird sie am ehesten greifen? Gerade Firmenkunden setzen oft auf ausgewählte Plattformen für ihren Betrieb. Warum also für Anwendungsfälle entwickeln und bezahlen, die nicht eintreffen werden? In der Entwicklung für private Endkunden sieht das natürlich schon wieder anders aus, denn hier steht eine Vielzahl an unterschiedlichen Endgeräten und Betriebssystemen. Haben Sie allerdings Folgendes im Hinterkopf: Jedes Betriebssystem kommuniziert über eine eigene Muttersprache mit Hardware und Anwendung. Werden Apps für diese jeweilige Muttersprache programmiert, ist das die native Entwicklung. Das heißt: Entwickeln Sie eine App, die auf allen Smartphones und Tablets laufen soll, benötigen Sie, je nach Anforderungen, statt einem:r Entwickler:in für Ihre Android App zusätzlich eine:n Entwickler:in für iOS, eventuell noch eine:n für Windows. Das resultiert in einem Vielfachen der Kosten. Es geht aber auch einfacher: Denn auch komplexe Anwendungen kommen mittlerweile mit Cross-Platform-Technologien wie Flutter sehr gut aus. Anwendungen, die beispielsweise auf native Gerätefunktionalitäten wie Bluetooth zugreifen müssen oder von denen eine sehr lange Nachhaltigkeit gefordert ist, fahren mit einer nativen Entwicklung für Android und iOS allerdings besser.
Wählen Sie deshalb nur die Gerätetypen und Plattformen für Ihr App-Projekt, die auch von Ihrer Zielgruppe verwendet werden und die Sie für die Umsetzung Ihrer Anforderungen brauchen. So sparen Sie unnötige Kosten in der App-Entwicklung, aber auch in der Entwicklung anderer Anwendungen ein.
Lesen Sie hier mehr zu den verschiedenen Formaten einer Mobilen App.
Fragen, die Sie sich stellen sollten:
- Wer wird meine Anwendung benutzen?
- Auf welchen Geräten muss meine Anwendung laufen?
- Gibt es Standard-Technologien im Unternehmen, die ich für das neue Produkt berücksichtigen muss?
- Plane ich spezifische Features, die stark mit der Hardware des Gerätes (Kamera, Bluetooth) interagieren müssen?
- Wie hoch ist mein Budget?
2. Die richtige Software-Architektur finden
Ein anderer wichtiger Faktor ist die Wahl der richtigen Software-Architektur. Muss ich mich um alles selbst kümmern, von Datenbank bis Speicher, oder gibt es Services, die ich nutzen kann? Existiert schon eine Umgebung, in die das Produkt integriert werden muss? Möglicherweise starten Sie auf einer grünen Wiese und es existiert noch keine etablierte IT-Infrastruktur, in die Sie Ihre Anwendung zwingend integrieren müssen. Dann sollten Sie prüfen, welche Anforderungen Sie an Ihre Anwendung haben und aus welchen Komponenten Ihre Anwendung besteht.
Die Vorteile einer Cloud Nativen Anwendung
Immer häufiger setzen Unternehmen für die Entwicklung Ihrer Anwendung auf Cloud-Services, wie die flexible Bereitstellung von Rechenkapazitäten oder die Nutzung von Datenbanken. Um die Vorteile der Cloud bestmöglich nutzen zu können, wird die Anwendung von vornherein für den Betrieb in der Cloud gebaut. Dieser Ansatz nennt sich Cloud Native.
Fragen, die Sie sich stellen sollten:
- Welche Komponenten benötige ich für meine Software-Architektur?
- Kann ich für die Komponenten meiner Software-Architektur bestimmte Services buchen?
- Fange ich bei Null an oder muss ich das Produkt in eine vorhandene Infrastruktur integrieren?
- Wie lange werden die Daten gespeichert?
- Wo werden die Daten gespeichert?
- Ist die Verfügbarkeit der Anwendung gewährleistet?
- Wird die Anwendung öfter Lastspitzen haben?
- Rechne ich mit einem hohen Nutzungsaufkommen?
- Eignet sich die Cloud für mein Projekt?
- Möchte ich die Anwendung Cloud Native entwickeln?
All das sind Themen, die großen Einfluss auf die Wahl der richtigen Architektur haben. Wenn Sie diese Fragen beantworten können, ist der erste Baustein für die passende Architektur gelegt und Sie können in die Architekturerstellung übergehen, in der einzelne Komponenten der Architektur evaluiert werden, bis das beste Ergebnis für den Anwendungsfall gefunden wurde. Je nach dem, wie umfangreich sich Ihre Architektur gestaltet, entwickeln sich die Kosten Ihrer Cloud.
3. Hosting: Public, Private, Hybrid Cloud?
Die Architektur beeinflusst ebenfalls die Hosting-Entscheidung. Doch müssen bezüglich Hosting noch weitere Punkte betrachtet werden wie Standort, Datenschutz und Verfügbarkeit. Wenn Sie beispielsweise in einem Teil der Anwendung extrem sensible Daten verarbeiten, die unter keinen Umständen auf öffentlichen Servern liegen dürfen, auch wenn diese gut geschützt sind, käme eine Public Cloud für diesen Teil der Anwendung weniger in Frage.
Bekannte Public Cloud Anbieter sind beispielsweise Amazon Web Services, Microsoft Azure oder Google Cloud Platform. Mit Hilfe der Cloud müssen Sie sich keine Gedanken machen, welche und wie viele Server Sie benötigen und wie leistungsstark diese sein müssen. Sie müssen auch nicht auf kaputte Hardware reagieren und aufwendig ins Rechenzentrum fahren, um defekte Teile auszutauschen. Die Cloud abstrahiert diese physikalische Komponente vollständig: Stattdessen definieren Sie einfach, wie viel Leistung Sie brauchen und auch wie automatisch diese skalieren soll. Sie mieten also keinen physischen Server, sondern nur Rechenleistung. Mit einer Public Cloud können Sie auf sich ändernde Anforderungen schneller reagieren, da diese (fast) unlimitierte Kapazitäten zur Verfügung stellt, die Sie je nach Bedarf schnell und einfach beanspruchen können. Aus diesem Grund werden die Anbieter auch Hyperscaler genannt.
Angenommen, diese öffentlichen Clouds kommen für bestimmte Teile der Anwendung nicht in Frage, können Sie trotzdem evaluieren, ob Ihnen Services der Hyperscaler wie Datenbanken oder Speicher für andere Bereiche der Anwendung Mehrwert bieten, sodass ein hybrides Cloud-Modell in Frage kommt. Damit kann ein Teil in der privaten Cloud liegen und ein anderer Teil kann die Vorteile der Public Cloud nutzen, ohne dass dies Auswirkungen auf die private Cloud hat. In den meisten Fällen ist das Hosting sehr stark mit der Architekturentscheidung verflochten. Beides bedingt sich gegenseitig.
Fragen, die Sie sich stellen sollten:
- Dürfen Daten nur auf privaten Servern gespeichert werden oder eignet sich auch eine Public Cloud-Lösung?
- Ist Hybrid-Cloud ein denkbares Modell für mich?
- Gibt es bereits einen Software-Anbieter im Unternehmen, dessen Cloud-Lösung wir zusätzlich verwenden können?