Как правильно заказать сайт или приложение под ключ? Часть 3: оценка стоимости методом Фибоначчи
31-05-2020
или тайм менеджмент по-пизански
Когда вы создаете цифровой продукт, главное - верно оценить трудоемкость и, соответственно, стоимость. Без этого невозможно нормально планировать работу всей команды. В продолжение серии статей об эффективной подготовке к разработке вашего проекта, мы откроем вам простой метод оценки трудозатрат на выполнение задач. В его основе - шкала Фибоначчи - числовой ряд, придуманный средневековым математиком Леонардо Пизанским по прозвищу Фибоначчи.
Все статьи:
Начинающие, а порой и опытные разработчики не всегда могут сказать, сколько времени и труда потребует верстка лендинговой страницы или интеграция сайта с платежным шлюзом. При кодировании и сборке всегда могут вылезти “подводные камни” - откажется линковаться сторонняя библиотека, не будет доступен тестовый сервер, упадет репозиторий. Программисты - люди ответственные, они боятся подвести коллег и не рискуют называть точные сроки.
Но менеджерам, владельцам продукта, да и всем остальным членам команды надо знать, сколько труда займет разработка, хотя бы примерно. Оценка поможет определить приоритеты задач, сформировать стратегические планы компании, да и заказчик хочет знать цену и сроки запрошенных доработок.
Как же планировать в условиях неопределенности?
или критерии беглой оценки
Вернемся к шкале Фибоначчи. Сама последовательность выглядит так: 0, 1, 2, 3, 5, 8, 13, 21. Предположим, что это - некие баллы и договоримся с командой о цене одного балла.
Заметка: существуют разные способы тарирования шкалы, в нашей команде мы приравниваем один балл к одному часу работы.
А дальше все проходит элементарно и без стресса для программиста. Мы просим разработчика выбрать цифру из ряда Фибоначчи, которая наиболее соответствует его представлению о сложности задачи. Никаких точных расчетов и обязательств сделать к сроку.
или что означают баллы
Для облегчения оценки и обсуждения ниже приводим список значений баллов по шкале Фибоначчи с инсайтами и примерами.
Быстрая реализация, простое задание на несколько минут.
Инсайт:
Я знаю, что именно нужно сделать, работа практически не займет времени;
Таких задач за один день возможно сделать много.
Примеры:
Поменять цвет или размер шрифта;
Заменить параметр в запросе внешнего API.
Быстрая реализация, минимальная сложность, не более одного часа.
Инсайт:
Я знаю, что именно нужно сделать, работа займет немного времени;
Таких задач за один день можно сделать несколько.
Примеры:
Добавить поле ввода номера домашнего телефона на форму;
Добавить столбец в структуру базы данных.
Быстрая реализация, небольшая сложность, занимает несколько часов.
Инсайт:
Я знаю, большую часть того, что нужно сделать, изменить или улучшить, но работа потребует некоторого времени;
Такая задача за один день может быть выполнена только одна.
Примеры:
Добавить поле ввода номера домашнего телефона на форму, реализовать контроль ввода и хранение данных;
Разработать новый метод для внешнего API.
Средняя скорость реализации, средняя сложность, возможны неизвестные элементы.
Инсайт:
Я примерно знаю, что мне нужно сделать, и это займет довольно много времени;
Такая задача потребует примерно один день, а может и больше.
Примеры:
Перевести статический CSS средней сложности в препроцессор CSS;
Разработать новый сводный отчет о продажах товаров с фильтрами и выгрузкой в CSV.
Длительная реализация, высокая сложность, вероятны неизвестные элементы.
Инсайт:
Я знаю, что именно нужно сделать, но это займет много времени из-за сложности и объема работы, в процессе есть шанс столкнуться с неизвестными моментами и небольшими трудностями;
Такая задача потребует примерно неделю или больше.
Примеры:
Интеграция модуля информационного обмена с новым внешним API;
Подключение профилей пользователей на платформе.
Долгосрочная реализация, высокая сложность, критические неизвестные элементы.
Инсайт:
Я понимаю общую идею задания и конечную цель, но его реализация будет медленной из-за объема, сложности, неизвестных моментов и потенциальных препятствий;
Такая задача потребует на реализацию несколько недель.
Примеры:
полностью поменять расклад/HTML/CSS/JS веб-приложения;
мигрировать существующее решение на новый фреймфорк.
Что делать:
Долгосрочная реализация, высокая сложность, много критических неизвестных элементов.
Инсайт:
Я осознаю конечную цель задания, но не вполне понимаю, как к ней идти. По этой причине реализация будет тянуться долго и нудно;
Работы потребуют затрат от месяца и более.
Примеры:
Перевод приложения с устаревшей базы данных на новую БД с ORM;
Рефакторинг легаси кода ядра приложения.
Что делать:
Оценка трудозатратности конкретной задачи в конкретных часах позволяет видеть и анализировать конкретные сроки и конкретную стоимость. Казалось бы, гибкая разработка! Однако в ней бывает намного больше конкретики, чем при разработке по строгому плану, что мы подробно обсудили в этой статье.
Но умение правильно оценить задачи, и, соответственно, весь объём работ, необходимо при любом подходе к разработке. Эта информация поможет вам общаться с командой на одном языке и понимать, во что конкретно будет вложен выделенный на разработку бюджет.