Как получить от оценки максимум пользы
![SimbirSoftMobile](/upload/iblock/60d/60d18bc617f30dec49599d8b244c4963.jpg)
Всем хочется предсказуемости: мы заранее знаем стоимость товаров в магазинах, договариваемся о цене на автомойке или техобслуживании. Поэтому и в разработке нам хочется предсказуемости и стабильности. Возможно ли это?
Предположим, у нас есть техническое задание: определены экраны и функции, есть карты переходов, мы точно знаем, что и как должно работать и общаться с другими сервисами. Наша задача — найти компанию, которая разработает то, что мы хотим согласно этому заданию. Предварительная оценка помогает понять, уложимся ли мы в сроки и бюджет, если они есть, и составить первое впечатление о компании-исполнителе.
Как оцениваем
Оценка — это не просто примерные цифры, а целый процесс.
Анализ
Подключаем эксперта, имеющего опыт разработки проектов разной сложности: от небольших магазинов до порталов и внутренних систем. Даем ему на изучение всю информацию, которая есть у клиента: детальное техническое задание, описания, прототипы, сценарии использования (кликнул иконку «корзина» --> появилось окно заказа).
Уточнение
Чем менее детально описание, тем больше вероятность, что клиент и технарь поняли его по-разному. Чтобы так не получилось, общаемся лично и обсуждаем детали: технические и бизнесовые.
Вопросы бизнеса касаются целевой аудитории, их задач и потребностей. Здесь определяем ключевой функционал и желаемые сроки.
Техническими вопросами определяем количество пользователей, объем данных, платформы: нативная или кроссплатформенная разработка, для каких устройств: смартфоны, планшеты, “умные” девайсы, интеграция со сторонними системами, обучение сотрудников. Тут же оговариваем предпочтения к дизайну.
Непосредственно оценка
После изучения материалов мы делим функционал на части и оцениваем. Если приложение большое — от 20 экранов, много функций, большие планы на развитие — мы рекомендуем начать с основного. Мы уже определили нужные функции, поэтому и оценить сможем точнее. Так мы экономим: в первой версии выпускаем основное, смотрим реакцию пользователей, выпускаем новые версии продукта с новыми возможностями.
Как только определили задачи для базовой версии, подключаем эксперта узкого профиля. Например, делаем мобильный банк — подключаем человека, который часто разрабатывает банковские приложения. Их функционал частично схож: личный кабинет, информация по картам и счетам, переводы, банкоматы. Если эксперт уже разработал не одно похожее приложение, он знает сколько времени нужно на каждую функцию.
Для себя мы сформировали список типовых функций и часов на их разработку. Так мы ускоряем оценку и исключаем субъективность при оценке типовых задач — берется опыт реальных приложений.
Отдельно рассматриваем интеграцию. Тот же мобильный банк работает совместно с интернет-банком, CRM системой, онлайн-чатом. Здесь мобильный эксперт советуется с backend-разработчиком, например, чтобы определить способы или методы интеграции.
Определяем состав команды, сроки и готово.
Упс, что-то пошло не так...
По данным исследования агентства Standish Group, 3% больших проектов и около половины небольших идут так, как запланировано.
![SimbirSoftMobile](/upload/iblock/739/7396cd6bfe0bd19b09bdfe0887e28c22.png)
Значит ли это, что разработчики не умеют оценивать?
Не совсем. Часто разработчик делает оценку в уверенности, что все пойдет идеально. Или очень хочет проект и готов занизить оценку, чтобы она понравилась. На практике выходит по-другому: сервер “отвалился”, документация потерялась или стала неактуальной, ответственный за проект заболел или уволился, и новому специалисту приходится срочно вникать в проект. Это увеличивает первоначальные оценки, ведь на момент их подготовки исходные данные были другие. Растет цена, уменьшается удовлетворенность от сделанного. К тому же, всем хочется прикрутить дополнительные фичи в оговоренную стоимость, хотя изначально они вообще не оценивались. Так стоимость разработки приложения тоже растет.
Зачем вообще оценивать
Несмотря на сказанное, оценка - важный этап перед началом работ.
Что из нее можно узнать:
- Примерные сроки и стоимость того конкретного функционала, который мы оценивали;
- Адекватность компании: налажены ли процессы и коммуникация, сколько займет подготовка оценки;
- Профессионализм технических специалистов: какие вопросы задают, есть ли релевантный опыт, заинтересованы ли в проекте;
- Скорость реакции: если уже сейчас отвечают с задержками в неделю, что же будет дальше?
Как получить максимум от оценки
- Просите указать часовую ставку специалистов: одна сумма в коммерческом предложении мало что вам даст. Если у компании выше часовые ставки, но ниже общая сумма оценки, возможно, какую-то часть не оценили;
- Просите расписать оцениваемый функционал: так становится понятно, что именно было изучено и оценено, никакой важный функционал не забылся;
- Смотрите на команду разработки: есть ли тестировщики, аналитики, руководители. Написать код — еще не все, важно собрать в единое целое написанный код.
А что, если есть только общее представление о будущем продукте?
В таком случае оценка также необходима. Она поможет влиться разработчику в суть проекта и сразу покажет моменты, которые нужно улучшить еще на этапе планирования. Для себя мы разработали систему концепций, которые готовим перед непосредственной оценкой.
![SimbirSoftMobile](/upload/iblock/914/91405af6c55bb81198735ee04997ec94.png)
Схема работы приложения.
Тут прописываем карты экранов, списки окон, функционал для базовой версии и последующих, продумываем возможный дизайн.
![SimbirSoftMobile](/upload/iblock/32b/32b2a2f844c03db5656cd2098fc29cf4.png)
Список базовых функций приложения и предварительный дизайн.
Понятно, что в таком случае оценка получится приблизительной, так как дизайн может измениться, функционал будет расширен или некоторые экраны удалены, но заказчик будет иметь представление о среднем времени разработки экрана или функционала и сможет правильно скорректировать свои бюджет и время. Ведь не всегда бюджета хватает на полное приложение, или основной функционал приложения требуется для демонстрации раньше, чем финальная версия приложения.
В любом случае, оценка — необходимый этап в планировании и разработке программного продукта не зависимо от того, есть ли четко сформулированные требования или нет. Несмотря на то, что оценка делается с учетом всех требований, нужно быть готовым к тому, что она изменится в процессе работы, поэтому рекомендуем брать максимум от оценки.