Многих в начале могут напугать цены на разработку приложения для смартфонов. В этой статье я постараюсь описать основные пункты трудозатрат на разработку.

В практике было установлено, что цикл разработки делится примерно на следующие временные затраты:

  1. Планирование и архитектура 10-20%
  2. Прототип и дизайн 15-20%
  3. Разработка основного функционала 40-50%
  4. Тестирование 10-30%
  5. Доработки по результатам тестирования 5-10%

Пример оценки времени приложения IOS

Мы получаем задачу на разработку приложения для IOS. Заказчик — агентство недвижимости. Наше приложение будет предоставлять информацию по продаваемым объектам, позволять новым клиентам делать предварительные заявки на продажу и покупку квартир.

1 этап. Планирование и архитектура.

На данном этапе мы получаем информацию от заказчика, намечаем варианты реализации и согласовываем их. Мы должны четко понимать задачу, а заказчик — четко понимать что получит в итоге.
Наш менеджер встречается с заказчиком и уточняет детали, которые заказчик желает отразить в работе. Скажем что встреча была 2 часа и 2 часа на транспорт.

После получения первичной вводной, на проект составляется Техническое Задание (ТЗ), будем считать нашего менеджера профессионалом и он сможет это проработать за 1 день (8ч)
Когда ТЗ разработано, оно отправляется на утверждение заказчику, где тот в свою очередь оценивает точность понимания задачи, узнает о нюансах, которые могут возникнуть при применении той или иной технологии. После ознакомления он связывается с менеджером проекта и согласовывает детали. Менеджер вносит поправки в ТЗ (4ч на созвон, проработку и внесение изменений)

Техническое задание сформировано. Мы собираем совещание на котором задача разбивается на подзадачи, определяется стратегия разработки, алгоритмы и т.п. Совещание может длиться как 20 минут, так и 3 часа. Стоит учитывать что в работе участвуют минимум 3 человека — менеджер, программист IOS, программист BackEnd. Следовательно затраты на совещание 9 часов.

Не забываем о составление договора, согласование цены, юридических аспектов и т.д. Это обычно занимает 1 рабочий день (суммарно)

Итого первый этап у нас занял 33 часа, а казалось все так просто, правда?:)

Этап 2. Прототип и дизайн.

Основываясь на идеологии технического задания и руководствуясь фирменным стилем компании дизайнер создает первичный макет приложения. Это может выглядеть как набросок. (4 часа)
Под полученный макет прорабатывается графическая часть — отрисовка приложения, кнопок, контроллеров. Дизайнер должен сверстать все типовые страницы приложения, к примеру для нашего рассматриваемого приложения (агентства недвижимости) это будут:

  1. Главное окно
  2. Навигационное меню
  3. Витрина объектов недвижимости
  4. Фильтр поиска и сортировки по витрине
  5. Карточка объекта
  6. Форма заявки на просмотр
  7. Форма заявки на добавление объекта (клиентская)
  8. Экран контакты

Эта работа занимает примерно по 2-4 часа на 1 экран. В нашем случае примерно 3 х 8 = 24 часа

* Для кастомного подхода, требуется вдвое больше времени, чем при применении стандартных тем оформления.

Все экраны собираются в приложение для прототипирования. На области экранов определяются обработчики переходов. Таким образом мы получаем кликабельный прототип, который уже можно отправить заказчику, чтобы он оценил как будет выглядеть приложение после разработки, где и как будут располагаться кнопки, устраивает ли его расположение других элементов управления. Создание прототипа как правило занимает 1-2 дня.

Прототип мы получили за 30 часов работы. Это кажется много для работы, которую казалось-бы можно пропустить, но подумайте сами — теперь заказчик уверен в том что получит, может отсечь лишние функции или сразу сделать акцент что не хватает той или иной возможности. Получив прототип заказчик станет спокоен, что после разработки это будет функционировать именно так как он ждет. Также для средних и крупных компаний будет очень удобным поделиться прототипом между инвесторами и вовлеченными сотрудниками, прототип дает возможность быстро оценить будущее приложение не обращаясь к громоздким ТЗ. Мы в свою очередь — точно знаем какие функции и как будут работать, какие компоненты будет использовать целесообразнее.

В практике разработки системных приложений, а также приложений работающих с переферийными устройствами, приходится выполнять исследовательскую работу. Исследование технологии создает представление о том, как работать для достижения требуемого результата. К этому подэтапу также относится работа со сторонними API.

Этап 3. Разработка основного функционала.

В то время, когда у программиста уже сформировалось полное понимание того, что должно быть разработано, он может приступить к разработке.

Разработка тоже делится на некоторые идеологические модули:

  • Подбор стека технологий. 2-4 часа
  • Выбор интегрируемых компонентов и модулей от сторонних разработчиков (в нашем случае Yandex.Maps ) 4-8 часов
  • Построение программной модели 4 часа
  • Отрисовка интерфейсов, тестирование интерфейса на различных типах устройств 8-24 часа
  • Написание программного кода. от 5 дней
  • Сбор сниппетов в общий код (если у разработке мобильного приложения участвует более 1 разработчика) 4-16 часов
  • Устранение ошибок, обнаруженных в результате внутреннего тестирования 4-8 часов

Наше приложение можно считать готовым, мы получили функциональную версию, удовлетворяющую техническому заданию.

Как мы уже выяснили ранее, помимо программной части приложения, в большинстве случаев необходим разработка серверной части (API). Для нашей задачи по недвижимости, это не займет много времени, но для решения задач с более сложной логикой, трудозатраты на проработку API могут достигать тех же временных сроков, что и создание самого приложения.

Подведем итог этапа: приложение для недвижимости 70 часов, сервер API 16 часов. За 86 часов делается приложение, когда четко описано задание и программисты не простаивают в ожидании утвердительных решений заказчика

Этап 4. Тестирование.

Этап тестирования, помимо самого тестирования, включает в себя работы по переносу ПО на сервера заказчика, настройка отказоустойчивости/резервирования.

Тестирование разделяется на :

  • Внутреннее, закрытое. Наш тестировщик проводит ревизию приложения, оценивает функциональность, удобство интерфейса. Тестировщик выполняет все описанные в ТЗ операции.
  • Тестирование заказчиком. Мы переносим программный код на ресурсы заказчика, где тот выполняет тестирование доступными для него методами, например раннее внедрение.
  • Открытое тестирование. Программный комплекс инсталлируется на полнофункциональные рабочие мощности, приложения размещаются в магазинах для публичного доступа.

Длительность этапа тестирования составляет от 1 до 3-4 недель. По завершении тестирования составляется отчет с указанием выявленных замечаний.

Внутренне тестирование сопровождается на всех этапах разработки и доработок и составляет приблизительно 20% от времени на разработку. В нашем случае затраты на тестирование 19ч + 8ч на перенос и настройку серверов. Итого 27 часов.

Этап 5. Внесение доработок.

По результатам тестирования, мы собираем краткое совещание и оцениваем необходимые доработки. Оценка важна для того, чтобы доработки не конфликтовали с уже реализованными функциями. Обычно на доработки уходит 1-2 дня, после чего финальную ревизию делает тестировщик. Суммарно трудозатраты 12 часов.

ИТОГ

На создание приложения для агентства недвижимости у нас получились следующие трудозатраты:

  • Планирование и архитектура 33ч
  • Дизайн и прототип 30ч
  • Разработка 86ч
  • Перенос и тестирование 27ч
  • Внесение доработок 12ч

Итого 188 часа или 24 рабочих дня.

Следует отметить что эта цифра отражает только фактические трудозатраты. Из практики можно судить, что фокусфактор программистов составляет от 50 до 70%. Это не говорит о том что программисты лентяи и сидят в социальных сетях. Фокусфактор обуславливается отсутствием на рабочем месте (отпуск, болезнь). Не все рабочее время человек проводит выполняя поставленную задачу, КПД составляет ориентировочно 80%. Давайте сосчитаем живые временные затраты 24/60%=40 дней, прибавим выходные и получим 2 календарных месяца.

Вот мы и получили срок, за который можно сделать приложение для риэлторского агентства. Теперь Вы можете сравнить свою идею планируемого приложения с этой и примерно оценить сроки реализации.

Как теперь посчитать сколько это будет стоить, Вы можете прочитать это в статье оценки стоимости.