Непредвиденные расходы при разработке приложения
Аналитика
Разработка
14.06.2022
О незапланированных расходах и причинах их возникновения рассказывает Наби Ибатуллин, руководитель направления мобильной разработки в Neti Mobile.
Почему возникают непредвиденные расходы
Я выделяю три причины появления таких трат:
Новые требования заказчика. Например, в ходе разработки клиент попросил добавить новые функции. Или во время обсуждения задачи заказчик не четко сформулировал задание, а о некоторых функциях сообщил уже в процессе работы.
Увеличение нагрузки на сервер. К примеру, клиент не сразу сообщил, какого размера файлы или на сколько человек рассчитано приложение. Из-за увеличения нагрузки понадобятся дополнительные мощности на сервере.
Влияние внешних факторов. Например, в приложении использовалась интеграция с внешними сервисами, которые внезапно отключились. В таком случае придется искать другой сервис, и цена может быть выше. Или сервис был бесплатным, а стал платным – придется платить.
Иногда сочетаются несколько факторов. Например, в одном из проектов клиент не сразу сообщил о большом количестве одновременных подключений к сервису. Понадобилось больше памяти, больше потоков процессора и дополнительное кэширование данных. Незапланированная оптимизация привела к новым расходам.
На каком этапе можно понять полную стоимость разработки
Точная величина всех трат будет известна только в конце проекта. Но приблизительное понимание можно получить и раньше. Чтобы выяснить, как меняется цена, можно использовать конус неопределенности: чем детальнее описан продукт, тем точнее его оценка.
На начальном этапе уровень неопределенности высокий, соответственно, и диапазон стоимости больше — вплоть до 10-кратного разбега. Чем лучше проработаны требования, прототип, дизайн, тем меньше диапазон итоговой стоимости работ.
Обычно итоговая стоимость меняется не более чем на 20% от изначально озвученной цены. Есть и исключение – если во время разработки клиент добавляет новые функции. В таком случае предугадать финальную стоимость невозможно.
Был случай, когда после разработки дизайна и анализа мы оценили стоимость работ в 800 тысяч рублей. К концу разработки оказалось, что в приложении будет больше данных, чем планировалось. Пришлось добавить две функции – возможность импорта информации и оптимизацию загрузки данных. В итоге стоимость работ увеличилась до 980 тыс. руб.
Как избежать ненужных трат
Ошибка — внедрять все и сразу. Чтобы избежать лишних трат, нужно расставить приоритеты: какие функции действительно нужны, а какие могут не пригодится.
Например, клиент хочет получать статистику использования софта. Модуль статистики стоит дорого, и на начальном этапе неясно, какие метрики исследовать – количество посещений, популярные разделы приложения или что-то другое. Такой модуль полезен для владельца приложения, но не на этапе запуска программы.
Для внедрения функции нужны анализ и четкое понимание. Для этого мы используем разные методики оценки приоритетов, в том числе RICE.
RICE — это метод приоритезации идей и оценки функций продукта. Аббревиатура включает 4 фактора:
Reach — охват: сколько пользователей будут использовать функцию.
Impact — влияние: оценивается по шкале от 1 до 3.
Confidence — уверенность в оценке охвата, влияния и трудозатрат: измеряется в процентах.
Effort — трудозатраты в часах.
Все значения являются предполагаемыми. А фактор Confidence показывает, насколько эксперт уверен в точности своих предположений.
В этом случае видим, что самая высокая оценка у требований №1 и №3. Значит, будем внедрять их.
У нас был заказчик, который хотел реализовать в одной из первых версий приложения оплату через Apple Pay / Google Pay. Нам удалось убедить клиента, что на начальном этапе неизвестно, будут ли пользователи оплачивать покупки внутри приложения. Проще и дешевле реализовать оплату по ссылке через сайт. Систему мобильных платежей можно добавить и позже.
Еще пример. Мы создавали приложение-планировщик графика работы. Изначально заказчик просил создать временные слоты для записи – с 9:00 до 12:00 и с 16:00 до 18:00. Позже выяснилось, что нужно разделить рабочие дни специалистов на четные и нечетные, что повлияло на сложность и время разработки. Соответственно, изменилась стоимость работы.
Часто встречающиеся расходы
1. Интеграция с SMS-сервисом. Для функции отправки SMS нужна интеграция с платным сервисом — это оплата подписки или количества отправленных SMS.
Плата за хостинг. Если есть серверная часть, нужен виртуальный хостинг или выделенный сервер.
2. Покупка аккаунтов. Аккаунты Google и Apple Developer оплачиваются ежегодно.
Оплата техподдержки. Чтобы сервис работал стабильно, нужен аудит. Контроль поможет избежать сбоя в приложении, если обновятся библиотеки или слетит сертификат на хостинге.
3. Сторонние сервисы. Бывает, что для взаимодействия с приложением нужны платные сервисы. Например, карты с географическими данными по координатам.
4. Добавление функций. Новые функции добавляются в ходе разработки, цена работ увеличивается.
Заключение
Стоимость разработки приложения не всегда известна заранее. Но если вы обговорите функционал с исполнителем и четко обозначите пожелания – высокие непредвиденные расходы вам не грозят. В таком случае достаточно заложить бюджет на 20% больше плана на случай форс-мажора.