Вечная проблема с эстимацией сроков и декомпозицией задач.

Tymur Kubai
3 min readMay 31, 2017

--

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

А еще девелоперы удивляються, почему заказчик удивляется таким большим цифрам при эстимации работы. Да потому что девелоперы сами такую дичь заряжают.

Буквально после написания тестового для megogo там где задание было расчитано на 4–5 часов, а фактически заняло 13, добавляется девушка на linkedin, после небольшого общения узнаю что наша взгляд на $ совпадаю и первый этап это тестовое задание. И о чудо! “1. Мы с вами делаем тестовое задание. Оно рассчитано на пару часов выполнения”.

Окей, но это что-то мне напоминает ))) В моей голове фраза “пару часов” это ассоциация 2+-0,5 часа. Хотя тот кто ставил задачу мог ошибится(каюсь сам так ошибаюсь) и вместо “несколько”, сказать “пару”. А несколько это уже 3+ часа.

Начал читать тестовое задание. И что же я вижу? 3 или 4 теста для апи. Потом для этиж же кейсов аналогично, но тесты через UI используя WebDriver(а там еще приписочка, желательно на Geb при заходе в репозиторий гита, там видно что документация по фреймворку лежит, как в прямом таки в переносном смысле на сайте http://www.gebish.org/, домен не оплачен и dns шлет тебя куда подальше, факт — офф доки отсуствуют). Ах да еще тесты нужно писать на twitter, а для чего нужен будет аккаунт(который нужно завести там и время на разобраться как с ним работать ибо никогда не жаловал твиттер и всегда его обходил стороной).

А теперь декомпозируем и проэстимируем все возможные варианты, с идеальной скоростью выполнения так что бы на выходе был более менее нормальный код:

  1. Нет знание тестового приложения — фактор риска
  2. Инициализация проекта, git, всякие депенденси в gradle и т.д. 15 минут
  3. 3–4 теста, на api используя jsonpath(чутка меньше времени) — 1 час
  4. либо 3–4 теста, на api используя jackson(больше времени, но более долгосрочная перспектива и + мне в копилку как исполнителю) — 1,5–2 часа
  5. 3–4 теста, на Webdriver или Selenide — 2–3 часа
  6. 3–4 теста, на Geb(вот тут время явно беру от балды, но теоретически его должно хватить) 5–6 часов

Итак есть 4 комбинации (от быстрой к длинной):

  1. Econom — пункты 2+3+5 что в сумме 3,25 часа
  2. Standard — пункты 2+4+5 что в сумме 3,75–4,25 часа
  3. Advanced — пункты 2+3+6 что в сумме 6,25–7,25 часа
  4. All-inclusive — пункты 2+4+6 что в сумме 6,75–8,75 часа

Не забываем про фактор риска и закон мерфи, что если что-то когда-то может пойти не так то это случится. И нужно закладывать фактор риска, что увеличит время выполнения допустим на 20–30%.

Выводы

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

Поэтому дают нереалистичные сроки и/или не понимают с какими проблемами может столкнуться исполнитель.

Благословим же scrum, где сроки дают исполнители после общения с закачиком и обговоре всех тонкостей предстоящих работ и вместе с этими сроками они берут на себя отсвественность за выполнения работы.

--

--

No responses yet