Про оценку задач
Мысль про один из больных вопросов для программиста - это оценка времени на выполнение задач
Вас просят оценить время на выполнение задачи, например клиент или ваш начальник.
Почему-то многие представляют в разработчике супер эксперта с опытом, мега интуицией, который оценил за свою жизнь 100 проектов, и может дать оценку на вашу задачу за считанные минуты.
Программист может быть хорошим разработчиком, но никаким оценщиком. Как правило, бизнесу больше нужна не оценка, то есть время на выполнение задачи, а предсказуемость разработчика.
К примеру, под капотом проект спроектирован очень плохо и криво, но снаружи все красиво и радужно. Казалось бы со стороны клиента все прекрасно, дизайн клевый, все адаптивно.
“Опытный” разработчик, при получении задачи по внешнему виду, проверит, а можно ли эту задачу вообще сделать, исходя их тысячи причин.
В связи с этим важно делать две вещи:
Поиск зоны неопределенности
По-максимуму убираем неопределенность, в тех вещах, которые нам не ясны.
Сначала выполняем базовый запрос, пытаемся понять, а можно ли вообще его отправить, а потом уже рисуем дизайн под это.
Берем “кусочек” данных с прода, пытаемся поработать с ограниченным набором данных, а уже потом тестируем все на полностью, на всех данных системы.
Взаимодействовать с клиентом
Если, что-то идет или пошло не так, сигнализируем бизнесу. Допустим оценили задачу на 2 часа. Спустя час сделали только 10%, тревожный знак, говорим об этом клиенту.
Только так исполнитель в глазах клиента, будет более надежен, чем тот который, не взаимодействует никак, и не говорит о возникших сложностях.
Так же разумнее будет попросить у клиента время на ознакомление с технологиями, чтобы дать более точную оценку, а не брать цифру из головы.
Почасовка
Час работы для исполнителя, очень удобная единица счета, затратили время на выполнение работ, умножили на ставку в час вот он результат. Очень удобно.
Но здесь не все так однозначно.
Например, вы делали задачу 2 часа, потом вы стали умнее делаете теперь за полтора часа.
А потом вы написали скрипт, который за вас будет делать работу, еще быстрее.
Спрашивается, за что клиент должен платить, за два клика по ссылке, за написание скрипта который будет все делать или за конечный результат.
То есть важно понимать, что является предметом оплаты, рабочее время разработчика или конечный результат, то есть проект. Вообще что!
Средний час рабочего времени, для кого-то это действительно час, для кого-то 15 минут, а для кого-то целый день. У каждого свой час.
Более правильно мерить все позадачно или услугами. То есть не я сделаю эту задачу за 1 час, а я сделаю эту услугу.
Услуга - это как раз и есть некий договор с фиксированной оплатой, и не важно час, день, неделю, месяц затратили на реализацию.
Обещать сделать задачу можно за неделю, а сделать за день, отлично, оплата идет по задаче, а не по времени.
В итоге можно сказать, что договор между исполнителем и заказчиком заключается на определенную работу с фиксированной стоимостью.
Нужно перевести часы в задачи или услуги который будут понятны клиенту.