Заказчик обычно закладывает бюджет на разработку и не закладывает на то, что будет дальше. Между тем приложение, которое год никто не трогает, перестаёт работать само по себе — не потому что кто-то что-то сломал, а потому что вокруг него всё меняется. Разберём, из чего складывается сопровождение.
Что придётся делать обязательно
Обновления под новые версии систем. Apple и Google выпускают по крупной версии в год и требуют, чтобы приложения собирались под свежие инструменты. Не пересобрали вовремя — приложение перестают принимать в магазин, а иногда и снимают с публикации. Раз в год пересборка и проверка неизбежны.
Продление аккаунтов разработчика. Apple берёт годовой взнос, Google — разовый при регистрации. Пропустили платёж Apple — приложение исчезает из App Store, и вернуть его обратно дольше, чем кажется.
Сертификаты и ключи подписи. У Apple сертификаты имеют срок жизни, ключи APNs тоже. Просрочился ключ уведомлений — пуши тихо перестают доходить, и никто об этом не узнает, пока клиенты не пожалуются.
Сервер. Приложение почти всегда работает с сервером: хостинг, домен, сертификат шифрования, резервные копии. Всё это оплачивается и обновляется.
Что происходит по факту
Кроме планового есть текущее: у части пользователей что-то падает, приходят отзывы, меняются требования площадок оплаты, банк обновляет протокол эквайринга. Такие вещи не планируются, но случаются регулярно — примерно раз в квартал что-нибудь требует вмешательства.
Отдельно стоит мониторинг: сбор сообщений о падениях, чтобы узнавать о проблеме раньше, чем о ней напишут в отзывах. Без него обратная связь приходит через магазин, а оценка приложения падает надолго.
Из чего складывается сумма
Мы обычно делим сопровождение на три части. Первая — фиксированные платежи: аккаунты, сервер, домен, сертификаты. Это предсказуемая сумма в год.
Вторая — обязательные работы: ежегодная пересборка под новые версии систем, обновление зависимостей, проверка на актуальных устройствах. Это несколько дней работы в год.
Третья — доработки по мере необходимости: почасовая оплата или пакет часов в месяц. Пакет удобнее: неизрасходованные часы обычно переносятся, а срочные правки не требуют отдельного согласования каждый раз.
Точную сумму называть в статье бессмысленно — она зависит от размера приложения, числа интеграций и того, есть ли у вас свой сервер. Разумный ориентир: годовое сопровождение обходится заметно дешевле разработки, но это не ноль, и планировать его нужно сразу.
Что можно снизить
Меньше интеграций — меньше поводов для поломок: каждая связь с внешним сервисом когда-нибудь изменится. Больше настроек на сервере вместо зашитых в приложение — реже нужны новые версии. Свои аккаунты разработчика вместо чужих — не зависите от подрядчика в момент, когда захотите его сменить. И понятная документация — новый разработчик разберётся за дни, а не за месяц.
Главное
Приложение — не сайт, который можно выложить и забыть на три года. Это продукт, живущий в чужих правилах: Apple, Google, банки, операторы связи. Правила меняются, и приложение нужно под них подстраивать. Заложите на это бюджет заранее — выйдет дешевле, чем срочно чинить снятое с публикации приложение.
Что происходит без поддержки
Картина типовая и повторяется из проекта в проект. Первые полгода приложение работает, вопросов нет. Через год выходит новая версия iOS, и часть экранов начинает отображаться неправильно — не критично, но неаккуратно. Через полтора года истекает сертификат уведомлений, и пуши тихо перестают доходить. Через два Apple перестаёт принимать обновления, собранные старыми инструментами, и любая правка требует сначала обновить всю сборку.
К этому моменту разработчик, который делал приложение, уже занят другим, зависимости устарели на несколько версий, и обновление «на одну строчку» превращается в неделю работы. Регулярное сопровождение стоит дешевле именно потому, что не даёт накопиться этому долгу.
Как устроено сопровождение у нас
Мы обычно предлагаем два варианта. Первый — минимальный: следим за сроками аккаунтов, сертификатов и домена, раз в год пересобираем приложение под актуальные версии систем, держим сервер в рабочем состоянии. Этого достаточно, чтобы приложение просто продолжало работать.
Второй — с пакетом часов на доработки. Внутри пакета делаются мелкие правки, добавляются функции, чинятся находки из отзывов. Удобен, когда продукт живёт и меняется: не нужно согласовывать каждую правку отдельным договором.
В обоих вариантах мы настраиваем сбор сообщений о падениях и следим за ним, чтобы узнавать о проблемах раньше, чем о них напишут в магазине.
Вопросы, которые стоит задать подрядчику
Что входит в поддержку, а что считается отдельной работой. Как быстро реагируете на поломку — и что считается поломкой. На кого оформлены аккаунты в магазинах и где лежит ключ подписи. Что происходит, если мы решим уйти к другому подрядчику. Есть ли документация по сборке и выпуску.
Ответы на эти пять вопросов говорят о будущем сотрудничестве больше, чем цена в предложении.