Я знаю, що це питання широке, тому я постараюся бути максимально конкретним. Це питання є скоріше "організаційним" питанням, ніж технічним.
У нас є багатосторонній проект з такими основними компонентами:
- Сервер, що розміщує основну логіку бізнесу (моделі даних)
- Проблема для клієнтів, яка використовує основну логіку бізнесу
- API програми (REST), який також використовує основну логіку бізнесу
- Існують додатки для смартфонів (iOS та android) за допомогою API програми
- Є інший додаток для планшетів (Android), відмінний від смартфона, використовуючи той самий API програми.
Незабаром я буду на виробництві з активними клієнтами. І як і будь-який проект, мені потрібно буде підтримувати всі різні компоненти протягом часу. Це означає, що все наступне можна оновити:
- код основної бізнес-логіки на сервері (використовується бек-офісом, API і, як побічний ефект, мобільними додатками)
- сам API (використовується як для смартфонів, так і для планшетів)
- усі мобільні додатки (через appstore / googleplay)
Звичайно, частини сервера (основний логічний код бізнесу та код API) я можу негайно змінити сам. Однак нові додатки для мобільних пристроїв повинні завантажуватись клієнтами в appstore / googleplay, і я не можу бути впевнений, що вони актуальні.
Чи можете ви надати якісь вказівки, поради щодо передового досвіду, щоб зробити оновлення тез плавним та без ризику для клієнта?
Який компонент мені потрібен для "версії"? Як переконатися, що все працює, навіть якщо клієнт не оновить свій мобільний додаток? Чи варто змусити його модернізувати, щоб полегшити роботу?
Словом, як я повинен організувати, щоб мій багатосторонній проект жив з часом?