Сколько времени и денег нужно на создание мобильного приложения
Маркетолог облачной backend-платформы Scorocode Михаил Епихин написал для vc.ru колонку про отрасль разработки мобильных приложений - как заказчикам сэкономить время и деньги на создании приложений, а программистам - снизить себестоимость разработки и поддержки.
Несмотря на свою популярность, мобильные приложения до сих пор остаются таким зверем, про которого уже знают, что это и с чем его едят, но пока не выяснили, почем продают. Низкая грамотность клиентов в этом вопросе вредит обеим сторонам.
Заказчику трудно выбрать подрядчика, потому что он не понимает, сколько времени и сил нужно на решение задачи, а исполнителям приходится регулярно объяснять, что нельзя за неделю создать 30-экранного монстра для всех устройств или что, если конкурент безбожно заломил цену, а мы нет, это не значит, что мы намного хуже делаем.
Поэтому давайте проясним, из чего складывается цена на разработку приложения. В статье мы посчитали стоимость создания мобильного приложения, которая, естественно, может увеличиваться или уменьшаться вследствие ряда факторов: региона, репутации агентства и так далее, о которых также расскажем.
Сроки
Первое, из чего складывается стоимость и время разработки - это сложность приложения. Второе - количество платформ (iPhone iOS, iPad iOS, Android phone, Android tablet, Windows Phone), на которых оно будет работать. Да, планшеты и смартфоны нередко считаются отдельно, но не всегда, ниже объясню почему.
Кстати, приложение под Android делать процентов на 20-30 дольше и по крайней мере на треть дороже, чем под iOS, потому что его нужно тестировать на большем количестве девайсов. В результате находится больше багов и приходится вносить больше правок. В часах разница в затраченном времени начинается от 20 для простого приложения (все данные - от эксперта рынка Николаса Райта, опубликованные в блоге Upwork) и заканчивается числами за сотню для сложного.
Разделение по категориям сложности у каждой студии свое. Тот же Николас, например, выделяет:
- простые (делаются по шаблонам, без баз данных, 70-140 часов для устройств Apple);
- поддерживающие интеграцию с базами данных (делаются с помощью backend-платформ типа Scorocode, 140-210 часов для iOS);
- для предприятий (интегрируются с бизнес процессами, используют как базы данных, так и память устройства, от 210 часов для iOS);
- игровые (сингплэеры и мультиплэеры, от 420 часов для iOS).
В России, как правило, не группируют по тематике, поэтому далее я не буду относить бизнесовые и игровые приложения к разным категориям. Плюс скорректирую данные по часам разработки: укажу «среднюю температуру по больнице».
Простые приложения
Обычно под простыми приложениями понимают те, которые содержат около 5 экранов, не обмениваются данными ни с какими вашими и чужими базами (сами не обновляют списки свободных столов, оставшихся билетов), не собирают аналитику действий пользователей, а личный кабинет в них если и есть, то с регистрацией только по email.
Простые приложения - это, как правило, или визитки (информация о компании, адрес, карта проезда), или программы, созданные для одного несложного процесса вроде оформления заказа без выбора товара и добавления в корзину. Для iOS и Android-смартфонов и планшетов специализированные агентства создают подобное за месяц-два, затрачивая 100-300 часов своих специалистов.
Приложение на одной платформе можно сделать быстрее и дешевле - в рамках месяца (150 часов) - но немногие клиенты согласны ограничиваться одним устройством. Для них и тех, кто хочет сэкономить, есть решение в виде кросс-платформенной разработки, но там много подводных камней вроде ограниченности функциональности, визуализации и производительности, правда, для некоторых заказов это не критично (обо всем этом можно почитать обзоры Mashable, Forbes или заметки на Habrahabr).
Даже при раздельном написании код для каждой платформы не должен быть абсолютно уникальным. То есть, если программу сначала писать для одной платформы и потом адаптировать под другую, то это не увеличит стоимость разработки в два раза. Зато немного удлинит сроки.
Приложения средней сложности
Средние по сложности - это те, которые охватывают несколько процессов. К ним относится большинство интернет-магазинов и систем бронирования. Экранов там около 10, есть личный кабинет, поддерживается авторизация через соцсети, есть интеграция с сервером или сайтом, часто и с платежными системами. Может быть встроен функциональность обратной связи, выставления оценок, выстраивания рейтингов. Для нескольких платформ они делаются за 3-6 месяцев (300-800 часов).
Приложения этой категории - наиболее распространенные. По данным американского опроса (трехлетней давности, зато до сих пор входящего во многие мировые сводки по отрасли), стандартное приложение создается в среднем за 18 недель, то есть за 4 месяца. Сейчас сроки разработки стали короче, и в ближайшие годы тенденция, похоже, сохранится. Технологии развиваются, курсов, открытых уроков и конференций по теме становится все больше, и это безусловно положительно влияет на развитие рынка.
Сложные приложения
К этой категории относятся приложения, разработка которых занимает от 800 часов (6 месяцев). Они могут поддерживать синхронизацию в режиме реального времени, всевозможный интерактив, интеграции с любыми базами, анимацию, работу со скачанным (с картами, например) в офлайне и все остальное, что вашей душе угодно.
Когда клиента не устраивают сроки, он обычно просит запараллелить задачи и подключить больше специалистов. В создании мобильного приложения обычно можно так поступить только с программированием, остальные этапы остаются последовательными, но, если вы найдете студию, где управляют проектами по подходам Agile, возможно, они немного сэкономят ваше время. В любом случае не стесняйтесь в общении со студиями интересоваться, как у них устроен процесс разработки, чтобы убедиться в том, что вы не переплачиваете за неэффективный менеджмент.
Стоимость
Деньги сэкономить проще: цена продукта складывается из стандартных составляющих, некоторые из которых можно ликвидировать или заменить более дешевыми аналогами.
Аренда помещения
Если вы работаете со специализированной студией, сразу учитывайте в стоимости ее расходы на аренду офиса и коммунальные платежи. В Москве это примерно 120 тысяч рублей в месяц на помещение для небольшого коллектива (ориентируюсь на данные из материала про стоимость разработки сайтов, они действительно средние по столице).
Одновременно такой штат может вести 8 проектов (тоже по аналогии с материалом по ссылке выше), то есть за каждый месяц работы с вами они потратят как минимум 15 тысяч на аренду офиса под ваш заказ. Таким образом, для простых приложений, которые делаются за месяц-два, расходы составят 15-30 тысяч, для средних (3-6 месяцев) - 45-75, для сложных - от 90.
Варианта сэкономить за счет этой части два: ищите молодое агентство, где сотрудники работают удаленно, или сами подбирайте команду специалистов, которые трудятся на себя, но имейте в виду, что, если после публикации приложения вам может понадобиться поддержка, то с фрилансерами лучше не связываться.
Кстати, что касается агентств, не только новый игрок на рынке, экономящий на офисе, может быть выгодным подрядчиком. Да, на их цены очень влияют опыт и наличие наград, но если вы заранее определитесь с тем, какое приложение хотите делать, и найдете похожее в портфолио агентства, то есть шанс получить скидку, апеллируя к тому, что для вас будут создавать не с нуля, а на базе прошлого заказа.
Плюс компании, которые используют BaaS-платформы (Backend as a service) вроде нашей, тратят на разработку значительно меньше (об этом ниже), соответственно, их услуги должны стоить дешевле. Эту информацию можно и нужно запрашивать на этапе переговоров, как и оценки всех работ с разбивкой по часам сотрудников. Лучше попросить выставить реальную стоимость разработки в часах с отдельно указанной комиссией, так вам будет проще сравнить предложения разных студий друг с другом и с цифрами из нашей статьи.
Проектирование и дизайн
Этим может заниматься и команда от трех специалистов (UX-дизайнер, UI-дизайнер и графический дизайнер), и один мастер на все руки. В первом варианте качество выше (цена тоже), но обычно студии используют второй. В нем на дизайн в среднем уходит 80 часов при затратах на разработку в 500 часов и 160 - при разработке в 900. Со средней московской зарплатой соответствующего дизайнера в 80 000 рублей в месяц (по данным hh.ru) и средним количеством рабочих часов в месяц 165 (по производственному календарю) получаем округленно 15 000 для простого приложения (около 270 часов на создание), 40 000 для среднего (около 670), 80 000 для сложного (около 1 150).
Сэкономить на дизайне можно, работая со специалистами из регионов (качество может страдать, потому что рынок там развит хуже, чем в столице) или из Украины. Там примерно в полтора раза больше фрилансеров, по крайней мере, ориентированных на зарубежные заказы, а цены ниже.
Разработка
Делится на backend и frontend, но мобильные программисты, специализирующиеся на определенной ОС, занимаются и тем, и другим. Исходя из среднего оклада сотрудника в 100 000 в месяц (по данным Superjob), получаем стоимость разработки простого приложения примерно в 120 000, среднего - 290 тысяч, сложного - 515 тысяч (количество часов на создание берем то же, что выше).
Пользуясь услугами фрилансеров, можно сэкономить, если искать их на русскоязычных площадках (причем желательно разработчиков из провинции) или найти хорошего недорогого спеца по рекомендации. Поиск на международных ресурсах программистов с хорошим рейтингом может обернуться только переплатой, даже при учете экономии на аренде помещения: если средний программист студии получает по текущему курсу около 9 долларов в час, то свободные художники с их свободным английским не стесняются оценивать себя в 2-6 раз дороже (данные Upwork).
Есть вариант упростить обе части разработки, создав приложения по шаблону. За него вы ежегодно будете платить всего 3-4 тысячи рублей, но качество таких продуктов обычно очень далеко от современного понимания прекрасного. Дальше, чем качество шаблонов сайтов и email-рассылок, например.
Второй вариант - упростить только программирование серверной части, воспользовавшись платформами backend-разработки. Это эффективно, потому что доля backend-работ (включая core) в программировании приложений составляет около 80% - на front уходит только пятая часть времени. Вы получаете готовый SDK, который включает в себя моделирование данных, PUSH, email- и SMS-уведомления, облачное хранилище, серверный код на JavaScript, аналитические инструменты и управление пользователями. Он помогает сократить количество задействованных сотрудников (даже в сложных приложениях можно обойтись без архитектора и разработчика баз данных, системного администратора и одним-двумя системными разработчиками вместо двух-трех) и снижает долю серверного программирования в разработке до 30%.
Это особенно положительно влияет на сроки создания всего продукта (то, что без BaaS-платформы можно написать за 18 месяцев, с ней делается в 2-3 раза быстрее), потому что больше всего времени на серверную функциональность тратится в начале, и пока не создана база, frontend писать невозможно. Плюс автоматически решается вопрос с облачными сервисами для хостинга данных и инструментами анализа серверной нагрузки на приложение. За использование платится комиссия, как у любого облачного сервиса.
Тестирование и публикация
Этим обычно занимается менеджер проекта или специальные тестировщики ПО, но зарплаты у них примерно одинаковые - около 80 тысяч в среднем (снова данные Superjob и HeadHunter). По практике, на тестирование и выкладывание в сторы уходит от 2 дней до 2 недель непрерывной работы, то есть от 16 до 80 часов. Для простого приложения это будет стоить 8 000 рублей, для сложного в районе 40, для среднего - около 25.
Прибавим сюда управление проектом, которое, скорее всего, будет осуществлять тот же менеджер. По опыту, он потратит на это около 3 дней непрерывной работы (включая первую встречу с клиентом, сбор требований и т. п.) в простом варианте, 7 - в среднем и от 14 - в сложном. В деньгах такие траты - это 12 000, 27 000 и 54 000 рублей соответственно.
Кстати, выкладывание приложения в магазин далеко не последняя по сложности задача. Гайдлайны App Store и Google Play содержат довольно много причин, по которым ваш продукт могут отклонить, например, возрастной рейтинг. Кроме того, каждая итерация проверки занимает довольно много времени - около недели (но есть способы ускорить процесс), что добавляет проблем тем, у кого к чему-то приурочены дедлайны по выкладке. Почитать инструкции, хитрости и опыт других других людей, который поможет в этом непростом деле, можно на Хабре.
Если говорить об итоговых цифрах времени и денег, на которые надо рассчитывать, по словам самих исполнителей, то здесь данные студий очень разнятся. Например, 2Nova Interactive озвучивает рамки от 600 тысяч рублей до нескольких миллионов. Минимальный срок разработки у них - 1,5 месяца (без учета времени согласований и публикации в сторах).
У MST в портфолио есть и проекты, которые были сделаны менее чем за 2 недели, и такие, работы по которым ведутся уже несколько лет (продолжается доработка дополнительной функциональности). В AGIMA нам рассказали, что простое приложение делают за 2-3 месяца и относят к таким все, что дешевле 1 млн рублей (среднее они создают за 3-6 месяцев и стоит оно 2-4 млн, сложные - от 6 месяцев, и стоят они уже от 4 миллионов). Кстати, стоимость может быть как фиксированной, так и пересматриваться в процессе разработки, если у вас горят сроки и нет времени определяться с объемом функционала в начале проекта. Правда, во втором варианте, вы, скорее всего, переплатите за срочность.
Прогнозы
Как видите, уже сейчас есть немало способов сокращать издержки на разработку приложений. В будущем стоимость разработки (как и сроки) должна продолжать снижаться за счет появления новых готовых инструментов разработки и развития технологий в направлении унификации данных.
Например, уже сейчас есть гибридная система React Native, разработанная компанией Facebook, которая работает с нативными компонентами операционных систем iOS и Android. То есть это вариант кроссплатформенной разработки, которая, за счет взаимодействия с разными ОС напрямую, выглядит так, как будто приложение писали под каждое устройство отдельно. Пока технология еще очень молодая (Android-версию, например, выпустили меньше года назад), в системе доступен весьма ограниченный функционал интерфейсных элементов, в плане багов тоже не все гладко, но в будущем она вполне может решить все основные проблемы кроссплатформенной разработки.