Я знаю, что это широкий вопрос, поэтому я постараюсь быть максимально конкретным. Этот вопрос скорее «организационный», чем технический.
У нас есть многосторонний проект со следующими основными компонентами:
- Сервер, на котором размещена основная бизнес-логика (модели данных)
- Бэк-офис для клиентов, который использует основную бизнес-логику
- API приложения (REST), который также использует основную бизнес-логику
- Существуют приложения для смартфонов (iOS и Android), использующие API приложения
- Есть другое приложение для планшета (android), отличающееся от приложения для смартфона, использующее тот же API-интерфейс приложения.
Скоро я буду в производстве с активными клиентами. И, как и любой проект, мне нужно будет поддерживать все различные компоненты с течением времени. Это означает, что все следующее может быть обновлено:
- код основной бизнес-логики на сервере (используется бэк-офисом, API и, как побочный эффект, мобильными приложениями)
- сам API (используется приложениями для смартфонов и планшетов)
- все мобильные приложения (через appstore / googleplay)
Конечно, части сервера (основной код бизнес-логики и код API) могут быть изменены непосредственно мной. Однако новые мобильные приложения должны быть загружены клиентами в appstore / googleplay, и я не уверен, что они обновлены.
Не могли бы вы дать какие-либо рекомендации, советы по передовому опыту, чтобы обновления были гладкими и без риска для клиента?
Какой компонент мне нужен для «версии»? Как убедиться, что все работает, даже если клиент не обновляет свое мобильное приложение? Должен ли я заставить его обновиться, чтобы облегчить мою работу?
Одним словом, как мне организовать свой многогранный проект с течением времени?