По нашему опыту и постоянному анализу рынка примерно только каждый 7-й проект переходит в стадию реализации в течении 6-ти месяцев после получения оценки бюджета и срока разработки мобильного приложения, и по словам заказчиков всему виной столь высокая стоимость разработки.
Что же касается западного рынка, то там заказчик более-менее готов к подобным расценкам, хотя у них конечная стоимость на один и тот же проект всегда будет в 2, 3, а то и 5 раз выше чем у нас. Разработка среднего мобильного приложения на 2 платформы iOS и Android у них начинается от 30 000 $. И мы не будем в рамках данной статьи сравнивать уровень жизни по странам, ВВП на душу населения и другие экономические показатели, так как это скорее прерогатива аналитических агентств и личных расчетов каждого заказчика, будет ли его проект прибыльным и когда он вернет назад свои кровные.
Но «высокая» стоимость – это очень субъективное мнение, складывающееся либо из-за размера кошелька, либо из-за недостатка понимания процесса разработки мобильного приложения. И, к сожалению, или к счастью, подобное ценообразование складывается явно не из-за накрутки в 2 и 3 раза большинством компаний исполнителей, либо сегодня мобильные приложения вообще были бы лишь у единиц. Хотя космонавты всё же присутствуют на рынке, но их совсем немного, и они сразу становятся видны, если конечно попадутся, когда запрос на оценку отправлен в 5-7 компаний. Мы на эту тему писали отдельную статью "Сколько стоит разработать мобильное приложение", чтобы понимать ориентировочную стоимость и не попасться на удочку.
Начнём, пожалуй, с самого главного – процесса разработки, который в среднем состоит из 6-ти больших этапов, и мы сюда не включаем начальные этапы, которые также занимают немало времени:
1. Выявление, формирование и утверждение требований (ТЗ)
2. Просчет и составление КП
3. Согласование работ и обсуждение деталей
4. Заполнение, согласование и подписание документов
5. Сдача проекта заказчику
6. Публикация в магазинах
7. Тех поддержка…
И поверьте, заказать разработку мобильного приложения – это совсем не тоже самое, что и заказать допустим пластиковые окна, где вроде бы также эти мелкие этапы присутствуют.
Сначала в столбик, а потом кратко по каждому этапу:
8. Проектирование – UX/UI
9. Дизайн – GUI
10. Разработка клиентской части – iOS (iPhone, iPad)
11. Разработка клиентской части – Android (смартфон, планшет)
12. Разработка серверной части – Back-End (веб-сервис, БД, RESTful API)
13. Тестирование и отладка – QA/QC
Это первый серьёзный этап в разработке мобильного приложения, в котором обычно принимают участие следующие специалисты:
• Дизайнер UX (User eXperience – пользовательский опыт). Все начинается с определения целей, задач и изучения целевой аудитории. Затем продумываются сценарии использования приложений (все должно быть интуитивно понятно для пользователей), то есть, сколько вообще будет существовать возможных вариантов его использования и каждый вариант рассматривается под разным углом: а если пользователь попал в приложение чисто случайно, а если по рекомендации, а если по прямой установке с магазина, а если с landing page (продающая страница) и ещё таких много «если». На основании этих вариантов начинает складываться картина будущего пользовательского интерфейса.
• Дизайнер UI (User Interface – пользовательский интерфейс). На основании проработанного UX, дизайнер приступает к зарисовкам уже в виде более наглядной карты экранов с кнопочками и продуманной логикой. Далее, совместно с дизайнером UX происходит прорисовка всей карты приложения. При этом, естественно, каждый шаг согласовывается с заказчиком. Иногда Дизайнер UX и UI может быть одним и тем же человеком.
• QA-инженер (Quality Assurance engineer – специалист по обеспечению качества и соответствия продукта к требованиям заказчика). Данный специалист (может быть не один), занимается, во-первых, анализом соответствия, все ли требования заказчика учтены, а во-вторых, улучшает качество логики и её процессов. Иногда его роль на данном этапе может выполнять Аналитик.
• Project manager (менеджер проекта). От данного специалиста зависит очень многое, особенно срок реализации проекта. Он распределяет и назначает задачи, ставит по каждым из них дедлайн, следит за их выполнением в срок и в случае, если что-то идеи не так, он оперативно находит решение возникших сложностей и не допускает срыва срока выпуска продукта. Не допускает появлению хаоса в работе.
• Архитектор/Team leader/DevOps (посредник между техническими специалистами и всеми остальными). Данный специалист (их тоже в зависимости от масштаба реализуемого проекта может сразу быть несколько) обсуждает непосредственно идеи реализации с технической стороны, так сказать, придерживает коней, так как границ в проектирование условно нет, а вот, в технической реализации все-таки есть, по крайне мере с точки зрения рационального затрачиваемого времени. Ведь это влияет и на карман заказчика, и на срок реализации. Все должно быть разумно.
• Менеджер по работе с клиентом. Это тот, кто на передовой и работает непосредственно с заказчиком. Собирает у него правки и пожелания, отвечает на все его вопросы, а их всегда бывает много и это естественно нормально, получает тумаков если что-то не так и пытается донести столь сложные технические моменты заказчику понятным языком. Обычно он ведёт проект начиная от заявки и заканчивая выпуском и последующей поддержкой проекта (доработки, правки, статистические показатели, консультации, продвижение и т.д.).
Также на данном этапе возможен вариант создания интерактивного прототипа, чтобы можно было понажимать на кнопочки прорисованных экранов и было видно, какой экран открывается при каждом таком случае. Это ничего общего не имеет с технической разработкой и приосходит это с помощью назначения связей между нарисованными экранами. Обычно этот процесс ведется с помощью таких сервисов, как Marvel. Это бывает полезно, когда проект имеет сложную визуальную логику и заказчику трудно улавливать ход мыслей дизайнеров. Естественно, это увеличивает бюджет и срок разработки.
Далее я не буду останавливаться подробно на каждом специалисте, который встречается повторно, ведь он выполняет в большинстве своём одну и туже роль.
• Дизайнеры GUI. Это могут быть другие специалисты, которые создавали первый этап, так как здесь немного иная их роль. После реализации этапа проектирования необходимо создать графический дизайн проекта (GUI – graphical user interface), то есть, разрисовать красками созданные ранее черно-белые экранчики, нарисовать все элементы. Придать им стиля, цвета, картинок, иконок, фона, анимации и после чего нарезать (подготовить в разном виде под разные платформы и размеры экранов) все созданное для разработчиков и описать работу графических элементов, переходов и анимации. При этом, в промежутках следить, чтобы все соответствовало ранее разработанным сценариям и продуманному юзабилити.
• Архитектор/Team leader/DevOps
• Project manager
• QA-инженер
• Менеджер по работе с клиентом
Чтобы не дублировать в каждом из этих этапов одних и тех же специалистов, так как кроме самих разработчиков клиентских частей все остальные не меняются, было решено объединить эти три самые сложные и самые объемные этапы работы в один.
• Дизайнер UX/UI. Следит в промежутках, чтобы все соответствовало его ранее разработанным сценариям.
• Дизайнер GUI. Следит в промежутках, чтобы все соответствовало его ранее разработанным дизайнерским элементам, переходам и анимация работала так, как планировалась.
• Архитектор/Team leader/DevOps. Данный специалист выстраивает архитектуру всего проекта (software architecture), то есть, какие технологии будут использоваться, как будет распределяться нагрузка, какие задачи будет выполнять клиентская часть, а какие – серверная, и, как и в каком виде они будут обмениваться данными между собой и как сделать так, чтобы дальше проект было максимально просто масштабировать (увеличивать функционал). Это также очень важно, ведь проект можно реализовать в различных интерпретациях, но в итоге разница может быть колоссальной.
• Разработчики iOS, Android и Back-end. Каждый специалист осуществляет реализацию своей части по распланированным и продуманным последовательным таскам (задачам). Работа ведётся параллельно. Здесь, может быть, как 3 специалиста, так и 10, всё зависит от масштаба проекта.
• Project manager
• QA-инженер
• Менеджер по работе с клиентом
Данный этап выделяем в отдельную графу, так как здесь стоит сделать акцент. Помимо того, что здесь участвуют все вышеописанные специалисты, здесь всегда увеличивается еще и количество тестирощиков QA/QC (quality assurance & quality control).
Тестирование – это очень важный этап, здесь необходимо проверить уже в работающем проекте сотни разных сценариев, все ли функции работают корректно, нет ли случайных крашей (вылетов) приложения, как ведёт себя проект, если в момент его использования произошёл входящий звонок или пропал интернет, а вдруг разрядился гаджет, вся ли информация сохраняется так, как было задумано.
Скажем честно: на данном этапе отлавливается не один десяток багов, которые правятся параллельно и до того момента, пока продукт не станет стабильным. Но даже после такой проделанной работы, все равно, к сожалению, встречаются мелкие баги, но к этому нужно быть готовым и относиться с пониманием, так как абсолютно идеальным обычно проект становится уже после запуска, то есть после правок, на которые укажут сами пользователи, которые также это понимают и относятся с уважением к приложениям, реагирующим на их отзывы и правящих все на лету. То есть не оставляют запущенное приложение на произвол судьбы.
А теперь, когда Вы все это понимаете, при выборе компании разработчика обязательно обращайте внимание, правят ли они как минимум свои ошибки, которые обнаруживаются уже после запуска и если да, то как быстро они это делают и как долго готовы его таким образом поддерживать и можно ли эту поддержку продлевать.
Конечно, можно многое из вышеописанного пропустить, но задайтесь в таком случае вопросом: а получите ли в итоге Вы то, что хотите? И будет ли тогда игра стоить свеч? Скорее всего нет, так как здесь однозначно подходит поговорка «скупой платит дважды». И будьте очень осторожны, когда Вам какая-то компания предложит сделать проект за смешной бюджет. Лучше в таком случае сэкономить на разработке первой версии приложения, но получить действительно качественный продукт, а о том, как это сделать, мы писали в статье "Как и на чем можно сэкономить при разработке мобильного приложения".
Подводя итог, хотелось бы заметить, чтобы всю эту работу выполнить, необходимы не просто специалисты с вышеописанными умениями и знаниями технологий, но также они должны обладать надлежащим опытом, либо снова можно попасть впросак.
И если хотите узнать, сколько на рынке труда стоит подобный специалист - просто зайдите на любой ресурс вакансий, в поиске впишите любого из вышеописанных кандидатов и в итоге вся картина ценообразования разработки мобильных приложений Вам станет ясна.
Забегая немного наперед, позволим себе обобщить и вывести среднее арифметическое заработной платы на одного специалиста, которая составляет примерно 105 000 руб.
Да, Вы сможете найти специалистов и за 30 000 руб., но они будут столько стоить не из-за нехватки работы, а из-за нехватки опыта работы, то есть их ранг будет Junior, следовательно, сами они ничего не сделают, и работать нормально они смогут только в паре с Senior или Middle+ специалистами, которых стоимость составит в районе 150 000 руб. и 90 000 руб. соответственно. Middle специалисты могут и самостоятельно делать проект, но очень нежелательно, когда нет рядом Senior, хотя бы для совета.
Вся эта информация, конечно, обобщена, и предоставлена для понимания рынка труда ИТ-специалистов, чтобы замкнуть понимание итоговых стоимостей, которые предоставляют компании по разработке мобильных приложений. Надеюсь теперь ответ на вопрос, из чего складывается стоимость на разработку мобильного приложения, и почему она стоит "дорого", стал для Вас более ясным и очевидным. Ведь также не стоит забывать, что есть еще расходы на офис, лицензионное программное обеспечение, оборудование, налоги и еще нужно хоть что-то заработать самой компании предоставляющей услуги.