So che è una domanda ampia, quindi cercherò di essere il più specifico possibile. Questa domanda è più una domanda "organizzativa" che tecnica.
Abbiamo un progetto su più lati con questi componenti principali:
- Un server che ospita la logica di business principale (modelli di dati)
- Un backoffice per i clienti che utilizza la logica aziendale principale
- Un'API dell'applicazione (REST) che utilizza anche la logica aziendale principale
- Esistono app per smartphone (iOS e Android) che utilizzano l'API dell'applicazione
- Esistono un'altra app per tablet (Android) diversa da quella per smartphone che utilizza la stessa API dell'applicazione.
Presto sarò in produzione con clienti attivi. E come qualsiasi progetto, dovrò mantenere tutti i diversi componenti nel tempo. Ciò significa che è possibile aggiornare tutti i seguenti elementi:
- il codice della logica di business principale nel server (utilizzato dal back-office, dall'API e, come effetto collaterale, dalle app mobili)
- l'API stessa (utilizzata dalle app per smartphone e tablet)
- tutte le app mobili (tramite appstore / googleplay)
Naturalmente, le parti sul lato server (codice della logica aziendale principale e codice API) possono essere modificate immediatamente da solo. Tuttavia, le nuove app mobili devono essere scaricate dai client sull'appstore / googleplay e non posso essere sicuro che siano aggiornate.
Potresti fornire qualche consiglio, consigli sulle buone pratiche, per rendere questi aggiornamenti fluidi e senza scrupoli per il cliente?
Di quale componente ho bisogno per "versione"? Come garantire che tutto funzioni anche se il client non aggiorna la sua app mobile? Dovrei costringerlo ad aggiornare per semplificare il mio lavoro?
In una parola, come dovrei organizzarmi per rendere vivo il mio progetto su più lati nel tempo?