describe.ru

Почему программы всегда делают дольше, чем обещали

Это не лень и не плохое планирование. У ошибки в оценках есть механизм, и он воспроизводится независимо от опыта команды

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

Явление достаточно устойчивое, чтобы у него было название - ошибка планирования, описанная Канеманом и Тверски в 1979 году. Она не специфична для программирования, но в нём проявляется ярче всего.

Оценивают не то, что делают

Когда человека просят оценить задачу, он мысленно проигрывает, как её решает. Этот сценарий получается гладким: в воображении никто не отвлекается, ничего не ломается, коллега отвечает сразу.

Оценка получается честной оценкой хорошего сценария. А происходит средний.

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

Работа, которой нет в списке

Вторая половина расхождения - задачи, которые не считаются задачами. Разобраться в чужом коде. Дождаться доступа. Обновить зависимость, которая ломает сборку. Объяснить всё это на созвоне.

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

Отдельная категория - доделывание последних процентов. Функция, которая «работает», обычно работает на нормальных данных. До состояния, когда она переживает пустой ввод, обрыв сети и пользователя, нажавшего кнопку дважды, остаётся столько же работы, сколько уже сделано.

Отсюда старая шутка про первые девяносто процентов задачи, которые занимают девяносто процентов времени, и оставшиеся десять процентов, которые занимают ещё девяносто.

Что реально помогает

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

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

И принимать как данность, что оценка - это не обещание. Обещание - это то, что говорят снаружи, и оно должно учитывать, что оценка была оптимистичной.

Комментарии

Загружаю.

Читать дальше