Sé que es una pregunta amplia, así que intentaré ser lo más específico posible. Esta pregunta es más una pregunta "organizativa" que técnica.
Tenemos un proyecto de varios lados con estos componentes principales:
- Un servidor que aloja la lógica empresarial central (modelos de datos)
- Un backoffice para clientes que utiliza la lógica comercial central
- Una API de aplicación (REST) que también utiliza la lógica empresarial central
- Existen aplicaciones para teléfonos inteligentes (iOS y Android) que utilizan la aplicación API
- Hay otra aplicación de tableta (android) diferente de la del teléfono inteligente que usa la misma aplicación API.
Pronto estaré en producción con clientes activos. Y como cualquier proyecto, necesitaré mantener todos los componentes diferentes a lo largo del tiempo. Eso significa que se puede actualizar todo lo siguiente:
- El código de la lógica empresarial central en el servidor (utilizado por el back-office, la API y, como efecto secundario, por las aplicaciones móviles)
- la API en sí (utilizada por aplicaciones de teléfonos inteligentes y tabletas)
- todas las aplicaciones móviles (a través de appstore / googleplay)
Por supuesto, yo mismo puedo cambiar las partes del lado del servidor (código de lógica de negocio central y código API). Sin embargo, los clientes deben descargar nuevas aplicaciones móviles en la tienda de aplicaciones / googleplay, y no puedo estar seguro de que estén actualizadas.
¿Podría proporcionar alguna orientación, consejos de buenas prácticas, para que estas actualizaciones sean fluidas y sin riesgos para el cliente?
¿Qué componente necesito para "versión"? ¿Cómo garantizar que todo funcione incluso si el cliente no actualiza su aplicación móvil? ¿Debo obligarlo a actualizar para facilitar mi trabajo?
En una palabra, ¿cómo debo organizarme para hacer que mi proyecto multifacético se viva con el tiempo?