In den letzten Jahren haben wir bei Kokoen uns darauf spezialisiert, mobile Anwendungen zu entwickeln und dabei die Zeit und Kosten bei der App-Entwicklung auf ein Minimum zu reduzieren. Hier ist ein Überblick darüber, wie wir dies erreicht haben.

Kundenbedürfnisse verstehen 

Nachdem wir eine Kundenanfrage erhalten haben, definieren wir als erstes, was der Kunde wirklich möchte. Das kann sich sehr von dem unterscheiden, was er haben will, und es ist mit Sicherheit ist es sehr, sehr unterschiedlich zu dem, was er sagt, dass er haben will.

Zeit und Kosten bei der App-Entwicklung sparen

Copyright © www.projectcartoon.com under the Creative Commons Attribution 3.0 Unported License

Am besten ist es dabei dann, keine Zeit mit endlosen Gesprächen und Dokumenten mit vielen technischen Spezifikationen zu verschwenden. Die Anforderungen aufzuschreiben ist zwar eine gute Idee. Aber meistens nur, um das “große Bild” dessen zu definieren, was die App können soll und einige spezifische Wünsche, die im Vertrag enthalten sein sollten. Es ist jedoch ineffizient, die kleinsten technischen Details auf Papier zu bringen, da es unmöglich ist, alle Bedürfnisse, Fragen und Probleme abzuschätzen, die die Entwickler haben könnten, rein von der Vorstellung, wie die App sein sollte.

Stattdessen versuchen wir, einen Klick-Dummy zu bauen, um dem Kunden und uns selbst dabei zu visualisieren, was wir machen werden. Bei der Arbeit an diesem Klick-Dummy werden alle technischen Details und Anforderungen fortlaufend spezifiziert.

Die Erstellung eines Klick-Dummys hilft, die Anforderungen besser zu definieren und Probleme oder Fragen zu entdecken, die ohne einen Klick-Dummy verborgen geblieben wären.

Agil arbeiten – Definieren der einzelnen Schritte (Increments)

Die Anforderungen können und werden sich zweifelsohne ändern. Warum sollte man sich also jetzt auf Elemente konzentrieren, die vielleicht nie programmiert werden oder – noch schlimmer – die vielleicht bald komplett neu programmiert werden? Deshalb ziehen wir es vor, agil zu arbeiten!

Anforderungen Software

Copyright © Andrews McMeel Syndication – dilbert.com

Das Konzept einer agilen Vorgehensweise stellt die traditionelle Arbeitsweise eines Unternehmens völlig auf den Kopf – im wahrsten Sinne des Wortes. Agile Unternehmen übertragen die Verantwortung vom Management hin zu den Entwicklerteams. Diese Teams übernehmen die Verantwortung für ihr eigenes Handeln. Das Management erhält eine völlig andere Rolle. Kontrolle und Führung werden zur Unterstützung und Ermutigung der Mitarbeiter (Stichwort: Servant Leadership). Die Pyramide kehrt sich um. Was jetzt gebraucht wird, ist eine breite, von unten gestützte Basis, auf der die Mitarbeiter erfolgreich arbeiten können. Klare Ziele und Richtlinien ersetzen eine kleinräumige Planung und ermöglichen eine schnelle Reaktion auf Veränderungen und unerwartete Ereignisse.

Die Steuerungsfunktion wird vom Team selbst übernommen. Das Team überwacht nicht nur den Arbeitsfortschritt, sondern versucht ständig, sich zu verbessern, Hindernisse zu beseitigen und die Aufgaben sinnvoll zu verteilen. Dies ist dann erfolgreich, wenn alle Teammitglieder die Ziele oder Visionen, auf die sie hinarbeiten, genau kennen. Im Idealfall haben sie sogar an der Formulierung dieser Ziele oder Visionen mitgewirkt.

Diese drei Schritte führen schnell zu mehr Agilität:

1. Organisieren von Teilprojekten

Das Gesamtprojekt wird in Teilprojekte unterteilt, von denen jedes einen Mehrwert für den Kunden generiert. Es ist wichtig, dass sich die Teilprojekte nicht überschneiden, damit sie unabhängig voneinander verfolgt werden können. Jedes Teilprojekt muss in konkrete Aufgaben zerlegt werden, bevor es bearbeitet werden kann.

2. Kurzfristige Planung

Es werden nur das nächste und das nachfolgende Teilprojekt geplant, da in der Regel nur für diese Teilprojekte die notwendigen Details vorliegen. Für zukünftige Teilprojekte sind die verfügbaren Informationen oft zu ungenau; das Risiko von Änderungen und Neuplanungen ist hoch.

3. Die Sicht des Kunden einnehmen

Das Teil- und Gesamtprojektergebnis wird aus der Sicht des Kunden formuliert. Auf diese Weise verliert kein Teammitglied das Ziel aus den Augen und alle Teammitglieder können bei Problemen selbstständig im Sinne des Kunden reagieren, wobei der Kunde extern oder intern sein kann.

Die Summe aller erledigten Aufgaben am Ende eines gewählten Zeitraums (ein so genannter Sprint) wird als “Done Increment” bezeichnet. Diese Increments sind die Zusammenfassung der aktuell erledigten Aufgaben mit allen in früheren Sprints erledigten Aufgaben. Wir ziehen es vor, mit wöchentlichen Increments zu arbeiten. Bei einem neuen Projekt gibt es in der Regel noch viele Unsicherheiten und ungelöste Probleme/Fragen. Diese stellen Risiken für die Entwicklung dar, da sich der Aufwand für einzelne Anforderungen nur schwer abschätzen lässt. Daher ist es naheliegend, in möglichst kleinen Einheiten zu arbeiten, insbesondere wenn sich das Projekt noch in einer frühen Phase befindet. Fragen Sie sich, was die Vorteile dieser Arbeitsweise sind? Hier sind sie:

  • Regelmäßige Reflexion über den Entwicklungsprozess
  • Software so früh wie möglich produktiv einsetzen und dann schrittweise erweitern
  • Den Beteiligten regelmäßig laufende Software präsentieren

Verringerung der Risiken mit MVPs

Diese Vorteile sind auch der Grund, warum wir mit dem so genannten “Minimum Viable Product” (MVP) arbeiten. Also einem Produkt mit den Mindestanforderungen und -eigenschaften. Bei der Entwicklung eines MVP besteht die Grundidee darin, so schnell wie möglich ein Produkt zu schaffen, das nur die notwendigsten Merkmale aufweist. Dieses wird dann sofort veröffentlicht und es wird zunächst ein Feedback von den (potenziellen) Kunden eingeholt. Dieses Feedback wird im Folgenden zur Erweiterung und Verbesserung des MVP verwendet.

 

Minimal Viable Product

Copyright © Henrik Kniberg – Making sense of MVP (Minimum Viable Product)

Alle weiteren Funktionen sollten aus dem MVP herausgelassen werden. Es werden nur die Funktionen aufgenommen, die für den eigentlichen Zweck des Produkts erforderlich sind. Dies spart eine Menge Arbeit, Zeit und Kosten bei der App-Entwicklung.

Der Hauptgrund für die Entwicklung eines MVP ist die Risikominimierung. Wenn man sich dazu entscheidet, ein Produkt komplett zu entwickeln und zu veröffentlichen, können viele Probleme auftreten.

Zum Beispiel nimmt die Entwicklung eines solchen vollwertigen Produkts viel Zeit und Geld in Anspruch. Weit mehr, als es bei der Entwicklung eines MVPs der Fall wäre.

Ein weiteres Risiko bei der Entwicklung besteht darin, den tatsächlichen Markt und die Kundenbedürfnisse zu ignorieren. Wenn monatelange Entwicklungszeit in ein Produkt investiert wird, aber niemand will es nach der Veröffentlichung haben, dann haben alle Zeit und Geld damit verschwendet, etwas zu entwickeln, das niemand braucht.

Die Entwicklung eines MVP hingegen reduziert das Risiko für Unternehmen, indem nur ein Prototyp mit den notwendigsten Funktionen entwickelt wird, und spart dem Unternehmen zunächst viel Zeit und Geld. Außerdem wird bei einem frühen Markteintritt schnell bewertet, ob die Idee und das Produkt überhaupt eine Chance auf dem Markt haben.

Zeit und Kosten bei der App-Entwicklung sparen: Nutzung der am besten geeigneten Technologien

Bevor wir mit der Entwicklung beginnen, haben wir viel Zeit damit verbracht, darüber zu diskutieren, welche Technologien wir verwenden und wie die Anwendung entwickelt werden sollte – ganz im Sinne von “Wochen des Programmierens können Ihnen Stunden der Planung ersparen”. Die grundlegenden Fragen bei der App-Entwicklung sind natürlich die Anforderungen und die gewünschten Betriebssysteme. Kombiniert mit dem verfügbaren Budget ergibt sich aus dieser einfachen Berechnung die endgültige Entwicklungsstrategie.

Heutzutage gibt es verschiedene Möglichkeiten, eine App zu entwickeln: Nativ, Hybrid, Kompiliert und PWA. Jede von ihnen hat ihre Vor- und Nachteile und mit der richtigen Wahl können Sie viel Zeit und Kosten bei der App-Entwicklung sparen. Mehr darüber können Sie hier lesen: Überblick über die Optionen zur App-Entwicklung.

Natürlich ist es nicht möglich, eine allgemeingültige Bewertung für einzelne Projekte vorzunehmen. Einfache Anforderungen können durchaus webbasiert umgesetzt und über ein natives Framework in den App-Stores verteilt werden. Oftmals bringen jedoch die aktuellen technologischen Beschränkungen das Projekts an seine Grenzen. In diesem Fall ist eine Hybridlösung unter Kosten/Nutzen-Gesichtspunkten meist eine hervorragende Alternative. Sind die Anforderungen jedoch zu kompliziert oder aufwendig oder betritt man das Terrain der Spielentwicklung, führt kaum ein Weg an einer nativen Lösung vorbei.

Haben Sie Fragen oder benötigen Sie Beratung bei der Umsetzung Ihrer Idee in eine App? Zögern Sie nicht, uns für ein kostenloses Beratungsgespräch zu kontaktieren.