Ich weiß, dass es eine breite Frage ist, also werde ich versuchen, so spezifisch wie möglich zu sein. Diese Frage ist eher eine "organisatorische" als eine technische Frage.
Wir haben ein vielseitiges Projekt mit folgenden Hauptkomponenten:
- Ein Server, der die Kerngeschäftslogik hostet (Datenmodelle)
- Ein Backoffice für Kunden, das die Kerngeschäftslogik verwendet
- Eine Anwendungs-API (REST), die auch die Kerngeschäftslogik verwendet
- Es gibt Smartphone-Apps (iOS und Android), die die Anwendungs-API verwenden
- Es gibt eine andere Tablet-App (Android) als die Smartphone-App, die dieselbe Anwendungs-API verwendet.
Bald werde ich mit aktiven Kunden in Produktion sein. Und wie bei jedem Projekt muss ich alle verschiedenen Komponenten im Laufe der Zeit warten. Das bedeutet, dass alle folgenden Elemente aktualisiert werden können:
- der Code der Kerngeschäftslogik auf dem Server (wird vom Backoffice, der API und als Nebeneffekt von mobilen Apps verwendet)
- die API selbst (wird sowohl von Smartphone- als auch von Tablet-Apps verwendet)
- alle mobilen Apps (via Appstore / Googleplay)
Natürlich können serverseitige Teile (Kerngeschäftslogikcode und API-Code) sofort von mir selbst geändert werden. Neue mobile Apps müssen jedoch von den Clients im Appstore / Googleplay heruntergeladen werden, und ich kann nicht sicher sein, ob sie auf dem neuesten Stand sind.
Könnten Sie Anleitungen und Tipps für bewährte Verfahren geben, um diese Upgrades reibungslos und ohne Risiko für den Kunden zu gestalten?
Welche Komponente brauche ich zur "Version"? Wie kann sichergestellt werden, dass alles funktioniert, auch wenn der Client seine mobile App nicht aktualisiert? Sollte ich ihn zwingen, ein Upgrade durchzuführen, um meine Arbeit zu erleichtern?
Mit einem Wort, wie sollte ich mich organisieren, damit mein vielseitiges Projekt im Laufe der Zeit lebendig wird?