Hinter den Kulissen

Featuregesteuerte Entwicklung – reservino Weiterentwicklung ganz auf Kundenwünsche angepasst

Jeden Monat kommt bei Steffen und mir erneut die Frage auf:

Welche neuen Funktionen erhält reservino denn als nächstes?

Ideen gibt es natürlich viele. Aber wo kommen Sie her? Welche sind umsetzbar und wünschenswert?

Dieser Blog beschreibt unser Vorgehen und erklärt, warum die Mitarbeit unserer Kunden uns so wichtig ist!

Der Entwicklungszyklus

Als Softwareentwickler lernt man, dass Software schreiben auf viele verschiedene Arten funktioniert: Chaotisch, planerisch, in Intervallen, AGIL :-)… IT Busswords wie: Wasserfallmodell, Rup oder Scrum legen Grundrichtlinien fest, wie die Entwicklung strukturiert sein sollte. Welches ist die Richtige um reservino regelmäßig und produktiv voranzutreiben?

Unsere Antwort darauf ist klar: Halte dich an Vorgehen dessen Vorteile dir wichtig sind, aber finde deinen eigenen Rhythmus. Denn jedes Projekt ist anders.

für reservino ist uns wichtig:

  • agil auf Probleme (Funktionsstörungen, liebevoll Bugs genannt) reagieren und diese in kürzster Zeit korrigieren.
  • neue, wichtige Funktionen innerhalb kurzer Zeit einbauen
  • geplante, komplexe Funktionen langfristig vorsehen und sie nicht vergessen
  • Neu- und Bestandskunden überzeugen, indem wir flexibel auf ihre Bedürfnisse reagieren und ihnen notwendige Funktionen schnell bereitstellen können

Daher haben wir uns für eine agile Vorgehensweise entschieden, bei der wir die Grundrichtlinien bekannter Modelle nutzen, aber unsere eigenen Regeln zusätzlich einbauen:

  1. Jeden Monat kommt ein neues Release mit geplanten Funktionen heraus. Der Termin wird allerdings nicht langfristig festgelegt sondern ergibt sich aus dem Tempo der Entwicklung.
  2. Für jedes Release gibt es eine feste Liste an Funktionen, die bereits genau beschrieben sind und bereit sind implementiert zu werden.
  3. Wenn wir mit einer Funktionalität beginnen, so gelangt sie schnellst möglichst und sobald sie einen Mehrwert liefert in unsere Testumgebung. In dieser Umgebung testen wir und ausgewählte Restaurants (vielen Dank an euch :-D) bis die neue Funktion unseren sowie euren Erwartungen und Ansprüchen gerecht wird.
  4. Kommen während der Entwicklung unvorhergesehene Probleme auf, werden diese mit höchster Priorität gehandhabt. Ist das Problem behoben, wird aus den bereits fertiggestellten Funktionen und dem Bugfix (Korrektur des Problems) eine Release erzeugt und auf der Produktionsumgebung bereitgestellt.

Woher kommen überhaupt die Ideen für neue Funktionen?

Der schöne Spruch

Der Kunde ist König

 

wird bei uns aktiv gelebt. Jede Funktion die wir in reservino einbauen kommt von unseren Kunden. So stellen wir sicher, dass nur die Funktionen in reservino Einzug erhalten, die auch benötigt und benutzt werden. Nichts ist schlimmer als ein System mit zu vielen Funktionen, die wenig Mehrwert liefern. Witzigerweise ist Daniela (Mitbegründerin von reservino) ab und zu selbst ihr eigener Kunde, da sie bei ihrem Bruder im Restaurant mithilft und dort auch reservino benutzt. Nichts ist besser, als selbst die Brille eines Benutzers aufzusetzen, um ihre Anforderungen genaustens zu verstehen.

Wichtig ist natürlich, dass die Sinnhaftigkeit und Machbarkeit der gewünschten Funktion nicht in Konkurrenz mit anderen Funktionen steht und andere Kunden keinen Nachteil daraus ziehen. Hin und wieder müssen wir somit etwas jonglieren und uns erneut mit euch abstimmen.

In welcher Reihenfolge werden die Funktionen entwickelt?

Die Priorisierung der Funktionen wird von mehreren Faktoren beeinflussst:

  1. Wieviele Kunden wünschen sich die Funktion?
  2. Ist der Kunde ein Neukunde oder ein Bestandskunde
  3. Wieviele Wünsche des Kunden wurden in letzter Zeit bereits umgesetzt?
  4. Ist die Funktion bereits vollständig verstanden und bereit zur Entwicklung

Je mehr Kunden sich eine Funktion wünschen, desto schneller kommt sie an die Spitze unserer Liste. Auch Neukunden haben eine gewisse Priorität vor Bestandskunden. Natürlich kann eine Funktion nur dann zur Entwicklung freigegeben werden, wenn sie von uns vollständig verstanden und dokumentiert ist. So stellen wir sicher, dass während der Entwicklung keinerlei offene Fragen oder Überraschungen aufkommen.

Fazit

Wir freuen uns über jede Anfrage nach neuen Funktionen, denn genau diese machen reservino zum besten System was Gastronomen für ihre Reservierungsverwaltung verwenden wollen. Denn genau das und nicht weniger ist unser Anspruch. Nicht desto trotz muss immer sichergestellt sein, dass die Funktion machbar und für alle Kunden generell sinnvoll ist. Wie schnell sie dann ins System kommt hängt davon ab, wie komplex sie ist und wieviele Kunden sich sie wünschen. Wir geben unser Bestes, möglichst fair und schnell zu sein!

 

Glossar für Nicht ITler

Feature = Funktion in einem Softwaresystem

agile Entwicklung = beweglich, also veränderbar. Wir planen nicht lange vorraus, sondern passen uns dynamisch an Änderungen an.

Bug = Fehlverhalten in der Anwendung, Bugfix = Die Bereitstellung einer Lösung des Problems

Release = eine Version einer Software

Testumgebung, Produktionsumgebung = Testumgebung und Produktionsumgebung sind Plattformen auf denen das Softwaresystem installiert ist. Produktionsumgebung wird von den Kunden genutzt, Testumgbung von den Entwicklern. Normalerweise werden Funktionen während der Entwicklung immer mal wieder auf dem Testsystem installiert um sie zu Testen. Je agiler das Projekt desto öfter wird dies gemacht. Bei reservino folgt das installieren jede Nacht, sofern neue Funktionen vorliegen.

Usability = Nutzbarkeit des Systems. Wie angenehm ist es für die Benutzer das System zu verwenden. Eine hohe Usability macht zufriedene Kunden und Spaß das System zu verwenden.

 

Referenzen und weiterführender Link: https://usertimes.de/2018/04/18/product-features-definieren-fuer-agil/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.