COMPAREX wird SoftwareONE. Ab dem 1. April wird die COMPAREX AG ihren Markenauftritt in SoftwareONE ändern. Die Markenkonsolidierung ist Teil eines laufenden Integrationsprozesses im Zuge des Erwerbs der COMPAREX AG durch SoftwareONE.

Application Services

Strategische Software-entwicklung: Methoden für eine agile Arbeitsweise #2

Strategische Softwareentwicklung: Methoden für eine agile Arbeitsweise #2

Nachdem wir Ihnen im ersten Blogbeitrag der Reihe die methodische Seite der agilen Softwareentwicklung vorgestellt haben, möchten wir Ihnen heute aufzeigen, welche technischen Konzepte es in diesem Bereich gibt und welche Methoden wir bei SoftwareONE anwenden. Darüber hinaus erhalten Sie einen kurzen Einblick, inwiefern die Cloud Sie bei einer schnelleren Entwicklung unterstützen kann.

Proof of Concept (PoC)

Wahrscheinlich haben Sie diesen Begriff irgendwo schon einmal gehört – doch was verbirgt sich hinter einem PoC? Ganz einfach gesagt, bedeutet es die Überprüfung der Machbarkeit des geplanten Projektes. Bereits im Vorfeld wird genau überlegt, welche Hürden bei der Entwicklung entstehen könnten oder ob vielleicht schon erste Herausforderungen bekannt sind. Ziel eines PoC ist es, gute Lösungen von nicht umsetzbaren Ideen zu identifizieren und somit Stolpersteine frühzeitig zu erkennen und zu beseitigen. Dies hat den Vorteil, die Entwicklungszeit zu reduzieren und eine Lösung schneller nutzbar zu machen. Vorteil des PoC ist, dass die gewonnen Erkenntnisse auch in anderen Projekten einfließen können.

Klassische Beispiele für ein Proof of Concept sind u.a.

  • Zentrale Kommunikationsbestandteile: Wie kommunizieren die einzelnen Bestandteile?
  • Komplexe Algorithmen: Funktioniert meine Idee/ ist sie umsetzbar? 

Der Prototyp

Ein Prototyp oder ein prototypischer Ansatz bedeutet, dass zu Beginn des Projektes mit einem stark reduzierten Set oder nur mit einer ganz konkreten Anforderung gearbeitet wird. Ein Beispiel hierfür ist ein Klick-Dummy. Dieser Prototyp ermöglicht es, Abläufe zu simulieren und dem Endnutzer eine Visualisierung der Applikation zur Verfügung zu stellen. Somit ist es möglich, von Beginn an direktes Feedback vom Endverbraucher zu erhalten und diese Anforderungen oder Wünschen direkt in die Entwicklung einfließen zu lassen.

Minimal Viable Product (MVP)

Ein MVP ist deutlich komplexer als ein Prototyp. Es ist eine bereits nutzbare Applikation, die erste (minimale) Funktionen aufweisen kann. Diese werden kontinuierlich erweitert und den Bedürfnissen der Endnutzer angepasst. Ein MVP kann von einer größeren Personengruppe getestet werden, was wiederum das Anwenderfeedback um einiges wertvoller macht. Die neugewonnenen Informationen können sofort in die weitere Entwicklung einfließen und den gesamten Prozess um einige Zeit verkürzen.

Um ein MVP erstellen zu können, sollten unbedingt alle Bestandteile aus der Entwicklungspyramide miteinbezogen werden, wie rechts dargestellt. Auf der linken Seite wird die Entwicklung einer Applikation veranschaulicht, die nur auf Grundlage ihrer Funktionalität erstellt wurde. Dies ist kein MVP, sondern ein Prototyp oder Proof of Concept.

Ziel des MVP ist es, mit einem minimalen Aufwand möglichst viel über die Lösung herauszufinden. Die Applikation muss bereits funktionsfähig sein und dem Endverbraucher einen ersten Nutzen liefern. Jedoch benötigt man für die Finalisierung der Lösung unbedingt das Feedback vom Endverbraucher, um schrittweise die neue Lösung zu erstellen.

Wie kann die Cloud eine schnellere Entwicklung unterstützen?

Die Cloud bietet sehr gute technische Voraussetzungen für eine agile Anwendungsentwicklung. Ein Grund dafür ist das geringe Investment, dass man zu Beginn eines Projektes aufbringen muss. Der technische Mehraufwand hält sich ebenfalls in Grenzen und die Entwicklungsumgebung ist in Sekunden verfügbar – egal in welcher Größenordnung. Außerdem kann sie schnell und unkompliziert angepasst werden.

Platform as a Service (PaaS)

PaaS wird von allen Cloud-Anbietern bereitgestellt und bieten Ihnen die Möglichkeit, viele verschiedene Dienste sehr einfach zusammen zu bringen. Es spielt fast keine Rolle, für welche Plattform Sie sich entscheiden, da sich alle sehr stark ähneln. PaaS ist mit allem ausgestattet, was für die Entwicklung von neuen Applikationen notwendig ist und der Einkauf neuer Hard- oder Software fällt somit weg. Besonders in den Bereichen Künstliche Intelligenz, Storage oder Data Analytics werden viele Dienste angeboten, die Sie schnell und einfach einsetzten können. Abhängig von der benötigten Rechenleistung kann PaaS außerdem einfach nach oben oder unten skaliert werden. Der Preisvorteil gegenüber Infrastruktur-Dienste ist ebenfalls ein nennenswerter Vorteil.

Function as a Service (FaaS)

FaaS wird von allen Cloud-Anbietern bereitgestellt und das nahezu identisch. Es wird keine eigene Infrastruktur oder Plattform benötigt – diese liegen beim Anbieter. Somit entfallen regelmäßige Aufgaben wie Wartung oder die Installation neuer Updates. FaaS benötigt nicht nur den geringsten Code-Einsatz für die Entwicklung neuer Applikationen, es ist auch die schnellste Methode, um mit der Entwicklung zu beginnen. Bereits innerhalb kürzester Zeit können erste Ergebnisse geliefert werden. Da sie sehr gut skalierbar sind, sind sie im Vergleich zu anderen Ansätzen auch sehr kosteneffizient. Abgerechnet wird nach dem Pay-as-you-go-Prinzip: Nur die genutzten Ressourcen werden berechnet, nicht die Leerlaufzeit.

Berechnungsbeispiel für Microsoft Azure:

512 MB RAM Speicher in der Ausführungsumgebung/ 2 Sekunden Ausführungszeit/ insgesamt 2 Millionen Ausführungen pro Monat / Region West Europa → 25,80 USD/ pro Monat

Zusammengefasst:

  • Mein Rat: Legen Sie los! Erstellen Sie ein passendes Setup, welches Ihnen die nötige Freiheit gibt in verschiedene Richtungen zu experimentieren und weiter zu entwickeln. 
  • Nutzen Sie Prototypen, nutzen Sie Proof of Concepts, nutzen Sie agile Methoden, die wir in unserem ersten Blogbeitrag vorgestellt haben
  • Plattform-Dienste eignen sich sehr gut für den Einstieg, um möglichst schnell und einfach Software-Entwicklung aufzusetzen 
  • Starten Sie Ihre Applikation klein und nur mit den nötigsten Funktionen → wachsen Sie so viel wie nötig
  • Dies gilt auch für Ihre Infrastruktur in der Cloud: Starten Sie klein und lassen Ihre Umgebung anwachsen, so groß es notwendig ist
  • Nutzen Sie von Anfang an Automationen: Sei es für Continuous Integration (CI) oder Continuous Delivery (CD)
  • Infrastructure as Code: Integrieren Sie von Beginn an Ihre Infrastruktur in den Automationsprozess
  • Überwachen Sie ihre Anwendungen in Hinblick auf Funktionalität und Verbrauch. Dadurch erhalten Sie wertvolles Feedback, was Sie in Ihre zukünftige Arbeit einfließen lassen können.

Sie wollen mehr erfahren?

Haben wir Ihr Interesse an Agile Work und Anwendungsentwicklung geweckt? Dann melden Sie sich doch bei unseren Application Services-Expert*innen, um herauszufinden, wie wir Ihrem Unternehmen helfen können, Ihre Potentiale freizusetzen.

Kontakt aufnehmen

Kommentieren Sie diesen Artikel

Hinterlassen Sie einen Kommentar, um uns mitzuteilen, was Sie von diesem Thema halten!

Kommentar hinterlassen

Autor

Steffen Becker

Steffen Becker

Fachvertrieb Microsoft Lösungen

Verwandte Artikel

Microsoft Teams, SharePoint und die Spracheinstellungen | SoftwareONE Blog
  • 22 Juni 2022
  • Torsten Gladbach
  • User Productivity, Future Workplace
  • Teams, Microsoft 365

Microsoft Teams, SharePoint und die Spracheinstellungen

Teams nutzt die Standard-Spracheinstellung des M365 Tenants. In international agierenden Unternehmen ist das manchmal ein Problem – wir bieten einen Workaround.

Nutzen Sie Ihre On-Premises-Daten mit Microsoft Power Platform

Schwierig ist die Nutzung von On-Premises-Daten über ein Data Gateway nicht – doch ein paar Dinge sollten Sie dabei beachten. Was das ist, lesen Sie in unserem Blogbeitrag.

Adobe Document Cloud Subscription vs. On-Premises

Was sind die kaufmännischen und technologischen Vorteile der Adobe DC Subscription im Vergleich mit On-Premises-Produkten?