Вопрос про эстимейты очень важный. Я часто говорю о «Внутреннем маркетинге для программистов» (видео есть на канале), а именно как коллеги и руководство определяют, кого из разработчиков повышать. Так вот, две базовые вещи, которые требует бизнес от разработчика: правильные estimate и правильное понимание business value. Бизнес-велью оставим на следующий раз, а с эстимейтами разберемся детальнее.
Эстимейты (определение сроков выполнения) важны в большинстве профессий, программирование не исключение. Программы вы пишите для кого-то, т.е. для бизнеса клиента. Если вы пишите программу просто чтобы попробовать и поучиться — это не программирование, а баловство. Программирование — это когда есть реальная бизнес-задача и ваш код ее решает.
Сроки разработки программы для бизнеса обычно не критичны. Неделя, месяц или полгода — бизнес сможет подстроиться (не всегда, но в большинстве случаев). По крайней мере, несколько дней точно не имеют принципиального значения. Исключения — форс-мажорные ситуации, например, программа готовится под какую-то конкретную выставку к определенному сроку. Но это скорее исключение. Обычно бизнес может подстроиться под те сроки, которые вы сами устанавливаете. Но чтобы подстроиться под даты, заказчик должен быть уверен, что работа будет сдана в срок.
Чтобы сдать проект в установленное время, нужно две вещи: точно оценить сроки и непосредственно работать по плану.
Как правильно оценить сроки?
Самый простой способ приучить мозг точно рассчитывать время выполнения проекта — постоянно сравнивать информацию. Опирайтесь на предыдущий опыт. У вас есть задача, сколько на нее потребуется часов? После выполнения оцените, сколько она потребовала времени реально. Проделывайте это постоянно. Кроме того, такие задачи могут быть даже не связаны с вашей работой. Например, вы планируете на сегодня 3 поездки, прикиньте, сколько это займет времени и оцените в конце, сколько заняло по факту. Нужно сделать уроки с ребенком. Сколько нужно часов? Прикинули, потом сверили. Постоянно проверяйте себя, правильно ли вы изначально оценили время задачи. Ваш мозг настроится на такую работу. Со временем ваши эстимейты будут становиться все точнее и точнее. Вы даже сможете оценивать время выполнения совсем незнакомых задач. Это очень эффективный способ научиться правильно эстимировать работу. Ну, а насколько это важно — вы уже поняли.