Разбираем, от каких факторов зависят сроки разработки мобильного приложения — от объёма функциональности до качества постановки задачи — и почему одинаковое на первый взгляд приложение может занять совсем разное время.
«Сколько времени занимает разработка мобильного приложения?» — пожалуй, самый частый вопрос, который мы слышим на первой встрече с заказчиком. К сожалению, назвать точную цифру без погружения в проект невозможно. Но можно объяснить, откуда вообще берутся сроки. И вопреки распространенному мнению, они зависят далеко не только от количества экранов или функций. Гораздо сильнее на скорость разработки влияют архитектура проекта, выбранный стек технологий и накопленный инженерный опыт команды.
Что действительно влияет на сроки разработки
Многие пытаются оценить приложение по принципу «экранов немного — значит делается быстро». На практике это почти никогда не работает. Два приложения с одинаковым количеством экранов могут отличаться по сложности разработки в несколько раз.
Например, простой каталог товаров и приложение с тем же самым каталогом, но синхронизацией с CRM, онлайн-оплатой, Push-уведомлениями, программой лояльности и офлайн-режимом — это совершенно разные проекты, несмотря на внешнее сходство.
На сроки разработки обычно влияют сразу несколько факторов:
- сложность бизнес-логики приложения;
- необходимость интеграции с CRM, ERP, 1С, платежными системами и другими внешними сервисами;
- качество первоначального технического задания;
- количество изменений по ходу разработки;
- выбранная технология — WebView, React Native или полностью нативная разработка;
- наличие готовой серверной инфраструктуры и API.
Очень часто именно последний пункт становится причиной серьезных задержек. Пока клиент видит красивый дизайн будущего приложения, разработчики неделями занимаются исключительно серверной частью и интеграциями.
Почему одни команды работают быстрее других
Есть распространенное заблуждение, что сократить сроки можно только увеличив количество разработчиков. На практике гораздо важнее накопленная инженерная база команды.
Каждый коммерческий проект содержит огромное количество повторяющихся задач: авторизация пользователей, Push-уведомления, работа с API, интеграция платежей, аналитика, публикация в App Store и Google Play, взаимодействие с CRM или интернет-магазином.
Если каждый раз писать все это с нуля, сроки разработки неизбежно растягиваются. Именно поэтому зрелые команды постепенно формируют собственую экосистему внутренних решений: библиотеки компонентов, шаблоны архитектуры, автоматизацию сборок, инструменты публикации приложений и готовые модули интеграции.
В Codeking, например, одним из таких решений стал собственный модуль интеграции мобильных приложений с 1С-Битрикс: Управление сайтом. Благодаря тому, что он использует штатную бизнес-логику платформы, подключение интернет-магазина к мобильному приложению зачастую занимает буквально несколько часов вместо нескольких дней разработки собственного API.
Именно такие инженерные решения дают наиболее заметную экономию времени. Разработчики перестают заниматься повторением уже однажды решенных задач и могут сразу переходить к реализации функциональности, которая действительно уникальна для конкретного проекта.
Как мы делаем сроки максимально предсказуемыми
Абсолютно точный срок невозможно назвать до начала проектирования — и любая студия, которая обещает это сделать за пять минут разговора, скорее всего, просто угадывает. Но сделать разработку максимально прогнозируемой вполне реально.
Для этого мы сначала определяем состав первой версии приложения (MVP), фиксируем функциональность, выбираем оптимальный стек разработки и оцениваем интеграции с внешними сервисами. После этого проект разбивается на понятные этапы, каждый из которых имеет конкретный результат и сроки выполнения.
Большинство коммерческих приложений мы разрабатываем на связке React Native + Expo. Этот стек позволяет поддерживать единую кодовую базу для Android и iOS, сохраняя практически нативную производительность и существенно сокращая время разработки по сравнению с полностью нативными приложениями.
Кроме того, мы активно используем собственные внутренние инструменты: готовые библиотеки компонентов, автоматизированные процессы сборки, систему публикации приложений и модуль интеграции с интернет-магазинами на 1С-Битрикс. Благодаря этому большая часть типовых задач уже давно автоматизирована.
В результате сроки проекта определяются не тем, сколько времени потребуется на повторное написание уже существующего функционала, а исключительно сложностью бизнес-задач конкретного приложения. Именно такой подход позволяет одновременно сохранять высокое качество продукта и запускать проекты заметно быстрее классической разработки «с чистого листа».
