So che è una domanda ampia, quindi cercherò di essere il più specifico possibile. Questa domanda è più una questione "organizzativa" che tecnica.
Abbiamo un progetto multi-lato con questi componenti principali:
- Un server che ospita la logica aziendale principale (modelli di dati)
- Un backoffice per i clienti che utilizza la logica aziendale principale
- Un'API di applicazione (REST) che utilizza anche la logica del core business
- Ci sono le app per smartphone (iOS e Android) che utilizzano l'API dell'applicazione
- C'è un'altra app per tablet (Android) diversa da quella dello smartphone che utilizza la stessa API dell'applicazione.
Presto, sarò in produzione con clienti attivi. E come ogni progetto, dovrò mantenere tutti i diversi componenti nel tempo. Ciò significa che tutti i seguenti possono essere aggiornati:
- 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 sia dalle app per smartphone che da tablet)
- tutte le app mobili (tramite appstore / googleplay)
Naturalmente, le parti lato server (codice di business logic principale e codice API) possono essere modificate immediatamente da solo. Tuttavia, le nuove app mobili devono essere scaricate dai client su appstore / googleplay e non posso essere sicuro che siano aggiornate.
Potresti fornire consigli, suggerimenti sulle buone pratiche, per rendere questi aggiornamenti più fluidi e, non risolti per il cliente?
Quale componente devo fare per "versione"? Come garantire che tutto funzioni anche se il client non aggiorna la sua app mobile? Dovrei costringerlo all'aggiornamento per semplificare il mio lavoro?
In una parola, come dovrei organizzarmi per rendere il mio progetto multi-lato live nel tempo?