“Как делать точные временные оценки” - Стив Павлина

Недавно в [info]ru_time_mngmnt обсуждался вопрос точных временных оценок. И один из комментаторов, [info]crazyph, привёл ссылку на статью Стива Павлины “How to Make Accurate Time Estimates”. Я решил сделать перевод, потому что предлагаемые Стивом методы перекликаются с тем, что я применяю в своих командах. О них я расскажу позже, в другом посте.
А сейчас предлагаю вам ознакомиться с переводом. Он в билингва-формате, как и предыдущий мой перевод статьи Стива “10 способов оптимизировать ваши будни”.

How to Make Accurate Time Estimates

Как делать точные временные оценки

May 19th, 2008 by Steve Pavlina Стив Павлина, 19 мая 2008
Перевод – Алексей Тигарев, 2 июня 2008
Many people are really bad at estimating how much time a task will take. Perhaps you estimate you’ll need about an hour, and it really takes you 3-4 hours to finish. Or maybe you allocate 30 minutes for a task, and you’re done in 5 minutes. Многие люди очень плохо умеют оценивать время, необходимое для выполнения дела. Возможно, вы предполагаете, что вам нужно около часа, а в реальности уходит 3-4 часа. Или вы выделяете на задачу 30 минут, и всё готово через 5 минут.
What can you do to get better at making accurate estimates? Что можно сделать, чтобы научиться точно оценивать время на задачи?
Here are several techniques you can use to make better time estimates: Вот несколько техник, которые вы можете использовать, чтобы сделать свои оценки более точными:

Calculate Your Fudge Ratio

Вычисляйте ваш “коэффициент заблуждения“

The best place to start is to measure your current estimation accuracy. Лучший способ начать – это измерить текущую точность ваших оценок.
Make a to-do list of upcoming tasks to complete, and jot down an off-the-cuff estimate for how long you expect each task to take. As you complete each task, record the time you actually spend on each one. Then add up your total time spent, and divide it by your total time estimate for the collection of tasks. That’s your fudge ratio. Составьте список текущих задач и на скорую руку набросайте оценки временных затрат для каждой задачи. По мере выполнения задач отмечайте, сколько времени реально заняла каждая задача.
Затем разделите суммарное реально затраченное время на сумму первоначальных оценок. Это – ваш «коэффициент заблуждения».
For example, if you estimate that a certain list of tasks will take 12 hours to complete, but they really take 15 hours, then your fudge ratio is 15/12 = 1.25. This means you it took you 25% longer than expected to complete the tasks. Например, если вы предполагали, что определённый набор задач потребует 12 часов для выполнения, но в действительности всё это заняло 15 часов, то ваш «коэффициент заблуждения» составляет 15/12 = 1.25. То есть выполнение задач заняло на 25% больше времени, чем предполагалось.
If you measure your fudge ratio for a variety of tasks, you’ll probably find that for individual tasks, your fudge ratio varies tremendously, perhaps ranging as widely as 0.1 to 10.0. However, for groups of tasks that collectively require a few days to complete, you may notice that your fudge ratio settles into a fairly narrow range. When you average enough tasks, your fudge ratio converges on a consistent figure. Измеряя «коэффициент заблуждения» для разнообразных задач, вы, скорее всего, заметите, что значение коэффициента для отдельных задач очень сильно «пляшет», возможно, в диапазоне от 0.1 до 10. Однако, если задачи брать группами суммарной длительностью в несколько дней, можно заметить, что коэффициент попадает в достаточно узкий промежуток. Будучи усреднённым по достаточному количеству задач, «коэффициент заблуждения» сходится к постоянному значению.
My average fudge ratio is about 1.5. This means that whenever I make an off-the-cuff estimate for how long a task will take, on average I’m too optimistic; the task ends up taking about 50% longer than my initial guess. For any particular individual task, my estimates may be much more inaccurate. However, if I estimate that a collection of tasks will require about 2 days to complete, it’s a safe bet they’ll really require about 3 days. Мой средний коэффициент заблуждения – около 1,5. Это означает, что, когда я делаю грубую оценку длительности задачи, в среднем я слишком оптимистичен; в результате задача требует где-то на 50% больше времени, чем я изначально предполагал. Для любой отдельно взятой задачи оценки могут быть ещё более неточны. Однако, если я предполагаю, что некий набор задач требует двух дней на реализацию, я могу рассчитывать на то, что это на самом деле займёт около трёх дней.
Once you know your fudge ratio, you can use it to generate more
accurate estimates for groups of tasks. Just add up your off-the-cuff estimates, and multiple the total by your known fudge ratio. This will tend to be a fairly accurate estimate.
Зная свой «коэффициент заблуждения», можно использовать его, чтобы производить более точные оценки групп задач. Просто сложите грубые оценки и умножьте на известный вам коэффициент. В результате получится достаточно точная оценка.
I tend to be consistently optimistic when estimating the time required for certain tasks. Knowing my fudge ratio has NOT made my initial estimates more accurate. My off-the-cuff estimates are just as inaccurate as they’ve always been. However, when I multiply my estimates by the fudge ratio, the estimates come pretty close to the time required. This helps me budget my time better. Я стабильно оптимистичен при оценке времени, необходимого для решения некоторых задач. Знание моего «коэффициента заблуждения» НЕ сделало мои изначальные оценки более точными. Мои грубые оценки столь же грубы, как и были. Однако при домножении на коэффициент оценки сильно приближаются к реально необходимому времени. Это помогает мне лучше распределять своё время.
Based on my fudge ratio, I know that if I want to complete about 8 hours of actual work in a day, I should only list about 5 hours and 20 minutes worth of tasks based on my off-the-cuff time estimates (5:20 = 8 hours / 1.5). While it might seem silly to make this kind of compensation every day, in practice it works quite well — far better than the alternative of listing 8 hours of tasks and then either pushing myself to work a 12-hour day or feeling bad that I only completely 2/3 of my tasks. Self-sabotage can make things even worse when I subconsciously know I’m trying to do the impossible. На основании значения своего «коэффициента заблуждения» я знаю, что если я хочу выполнить около 8 часов реальной работы в день, то я должен спланировать задач лишь на 5 часов 20 минут суммарной длительности по грубым оценкам (5:20 = 8 часов / 1,5).
Хотя может показаться глупым уравновешивать таким образом каждый день, на практике это работает весьма хорошо – гораздо лучше, чем планировать каждый раз на 8 часов и либо заставлять себя работать 12 часов в день, либо чувствовать себя плохо оттого, что удалось выполнить лишь 2/3 запланированного. Самосаботаж, возникающий из-за того, что бессознательное знает, что вы пытаетесь сделать невозможное, ухудшает ситуацию ещё сильнее.
It’s better to make a reasonable task list that I can actually complete by the end of the day instead of beating myself up for being bad at estimating. Even if my daily task list seems too short at first glance, it feels good to cross off the final task at the end of the day. Due to daily variations, this isn’t perfectly accurate, but overall it’s better than anything else I’ve tried, and it encourages a sustainable daily rhythm without overworking or under-working. Составить разумный список дел, которые вы действительно можете сделать до конца дня, лучше, чем потом ругать себя за некачественное планирование. Даже если список дел кажется слишком коротким на первый взгляд, зачёркивание последней задачи в конце дня приносит немалое удовольствие. Этот метод не даёт абсолютной точности – результаты варьируются день ото дня, но в целом это лучше, чем что-либо из того, что я пробовал. И это помогает поддерживать устойчивый суточный ритм без перегруженности и без недогруженности.
I recommend using at least 10-20 hours of tasks for your initial fudge ratio calculation. If you based your calculation on only a few hours of tasks, your fudge ratio may not be accurate enough. Я рекомендую для вычисления начального значения «коэффициента заблуждения» использовать набор задач общей длительностью как минимум 10-20 часов. Если вычисления основываются лишь на нескольких часах, коэффициент может получиться слишком неточный.
Of course it’s a good idea to recalculate your fudge ratio every once in a while. Once a quarter should be fine. It’s also wise to update it whenever the nature of your work changes, such as when you begin a new project or switch companies or careers. Разумно пересчитывать «коэффициент заблуждения» время от времени. Раз в квартал – нормально. Также имеет смысл обновить его, если род вашей работы изменился, например, вы начали новый проект, сменили работу или направление деятельности.
If you want to get a little more detailed, you can calculate different fudge ratios for different kinds of work. Personally I don’t do this, but if you think it’s likely that different tasks will yield significantly different fudge ratios,
it may be a good idea. For example, if you’re a student who finds that math homework has a fudge ratio of 0.9, but term papers have a fudge ratio of 1.7, you’ll probably want to maintain separate fudge ratios to create better estimates.
Если вы хотите ещё большей точности, вы можете вычислять несколько коэффициентов для разных видов работы. Лично я этого не делаю, но если вам кажется, что для разных задач получатся существенно разные коэффициенты, это может иметь смысл. Например, если студент определит, что домашнее задание по математике для него имеет «коэффициент заблуждения», равный 0,9, а курсовые работы – 1,7, то, возможно, стоит учитывать отдельные коэффициенты для лучшего оценивания.
If you manage a team of people, you can calculate a fudge ratio
for each member of your team (with or without their knowledge). Ask for time estimates from each team member for a collection of tasks, measure the actual time required, and calculate the fudge ratio for each team member. Whenever you get new time estimates from those team members for upcoming tasks, you can multiply their estimates by their individual fudge ratios. This will help you
create a more accurate schedule for team projects. I think you’ll find that people tend to err in their estimates in a fairly consistent manner.
Если вы руководите командой, вы можете вычислить «коэффициент заблуждения» для каждого из членов команды (с их ведома или
без него). Попросите оценки времени для набора задач у каждого члена команды, измерьте реально затраченное время и вычислите коэффициент для каждого человека. Получая временные оценки по задачам от этих людей в дальнейшем, вы сможете умножать их оценки на соответствующие коэффициенты. Это позволит более точно планировать проекты, над которыми работает команда. Скорее всего степень, на которую люди ошибаются в своих оценках, окажется довольно постоянной.

Achieve Reasonable Granularity

Добейтесь разумной точности

In order to make accurate estimates, it’s important that you break your tasks down to the right level of granularity. If your chunks are too big, you’ll overlook too many details. If your chunks are too small, you’ll get buried in low-level details, and you could spend more time estimating a task than it would take to just complete it; this is too much overhead. Чтобы делать точные оценки, важно разбивать задачи до правильного уровня детализации. Если порции работы слишком большие, вы пропускаете много деталей. Если порции слишком малы, вы зарываетесь в низкоуровневых деталях. И можете провести больше времени, оценивая задачу, чем просто выполняя её. Это слишком большие накладные расходы.
For example, “Overhaul my website” sounds like a complex, multi-task project. This isn’t granular enough to make a reliable estimate. You’ll need to list the individual tasks needed to complete this project. Например, «переделка сайта» - скорее всего, cложный проект, состоящий из многих задач. Эта степень детализации недостаточна для того, чтобы сделать оценку, на которую можно положиться. Придётся детализировать проект до отдельных задач, из которых он состоит.
On the other hand, “Write mailing address on envelope” is way too granular. You could have completed this task in as much time as it took to list it and estimate it. This much detail only wastes your time instead of making you more efficient. С другой стороны, «Написать адрес на конверте» - пример излишней детализации. Вы могли бы выполнить эту задачу ровно за столько времени, сколько нужно для того, чтобы внести её в список и оценить. Такая чрезмерная детализация лишь тратит зря ваше время, а не делает вас более эффективным.
You should experiment to find the right chunk size where you can make the most accurate estimates. I’ll offer a couple pointers based on what works well for me: Стоит поэкспериментировать, чтобы выбрать подходящий размер порции работы для наиболее точных оценок. Предлагаю пару способов, которые хорошо работают у меня:
The One-Sitting Rule. My estimates tend to be best for tasks I can complete in a single sitting. In practice this means about 2-4 hours per chunk. When I go less granular than that (bigger chunks), I miss too many details and grossly underestimate the time required. When I go more granular (smaller chunks), I list out too many details, I overestimate how long things will take, and I waste too much time creating and managing my to-do list instead of getting things done. Правило «За один присест». Мои оценки
становятся наиболее точными, когда я работаю с задачами, которые могу выполнить «за один присест». На практике это означает 2-4 часа на задачу. При использовании менее детального разбиения (бОльших порций работы), я пропускаю множество деталей и в целом недооцениваю требующееся время. Если разбиваю задачу более детально (используя меньшие порции), я специфицирую слишком много деталей, и суммарное время оказывается переоцененным. Вдобавок я трачу слишком много времени на создание и поддержание списков дел в актуальном состоянии вместо того, чтобы добиваться выполнения.
Compensate for Experience. If I’ve completed similar tasks many time before, my estimates will tend to be fairly accurate, so I might drop my fudge factor down to 1.2 or even 1.0. For example, I’ve written 700+ articles, so I’m pretty good at estimating how long an average article will take to write (3 hours is typical). But if I have to do something I’ve never done before, a fudge ratio of 2.0 or higher may be more accurate. The less experience I have with a task, the higher my fudge ratio needs to be. Учитывайте опыт. Если я уже выполнял подобные задачи многократно, мои оценки, скорее всего, будут почти точными. В результате я могу снизить «коэффициент заблуждения» до 1,2 или даже до 1,0. Например, я написал более семисот статей, поэтому я очень хорошо оцениваю время, необходимое мне на написание средней статьи (обычно три часа). Но если я делаю что-то, чего до этого ни разу не делал, «коэффициент заблуждения», равный 2,0 или больше, даст более точные результаты. Чем меньше опыта работы с задачами определённого рода, тем больше «коэффициент заблуждения».

Define Clear Task Boundaries

Определяйте чёткие границы задач

Make sure your tasks are clearly defined. Vague or nebulous tasks are hard to estimate. Убедитесь, что ваши задачи чётко определены. Нечёткие, “туманные” задачи трудно оценивать.
If one of my tasks is “Update accounting,” I can’t be certain of what that includes. Does that mean balancing my checking account? Doing payroll? Filling out tax forms? Recording receipts? If I want to make a reliable estimate, I need a clear picture of what I’ll be doing. Если одна из моих задач звучит как «Разобраться с бухгалтерией», это не даёт мне возможности чётко представить, что включается в эту задачу. Означает ли это сверку счетов? Заполнение платёжной ведомости? Заполнение налоговых деклараций? Регистрацию квитанций? Если я хочу сделать достоверную оценку, мне нужна чёткая картина того, что именно я буду делать.
You may find it helpful to list a few keywords for the components of an otherwise unclear task. You don’t necessarily need to estimate the time for each segment. You just need to be able to visualize what you’ll be doing. The
keywords can help trigger the right imagery, so you can make a better estimate.
Может оказаться полезным записывать несколько ключевых слов для обозначения составных частей задачи, формулировка которой была бы без этого нечёткой. При этом оценивать каждую составную часть отдельно не обязательно. Это делается лишь для того, чтобы вы могли себе представить, что вы будете делать. Ключевые слова помогут визуализировать нужные образы, и вы сможете оценить задачу более точно.
You should be able to quickly verbalize the first and last steps of each task. For example, when I see a task labeled “Write new blog entry,” I know that the first step is to pick a topic. The last step is to click the “Publish” button.
If you can’t name the first and last steps of a task on your list, then your task doesn’t have clear boundaries. In that case you’ll need to take a moment to define those steps, or you’ll need to define your task a little more clearly, possibly by breaking it into smaller chunks. Good estimates require clear start/finish boundaries.
Вы должны быть способны быстро описать первый и последний шаги каждой задачи. Например, я знаю, что для задачи “написать
новый пост для блога” первый шаг – это выбор темы. Последний шаг – нажатие кнопки “Опубликовать”.
Если вы не можете определить первый и последний шаги задачи, то ваша задача не имеет чётких границ. В этом случае стоит уделить минутку и точно определить эти шаги либо описать всю задачу более подробно, возможно, разбив её на несколько подзадач. Хорошие оценки требуют чёткого знания начала и конца задачи.
Be especially careful to consider what will be required to bring a task to 100% completion. If your task is to “Pay your bills,” does that end when you write the checks, when you deposit the payments in the mail (or complete an online payment process), when you file the paid bills in your filing cabinet, or when you balance your checkbook? Don’t forget to consider how long it takes to clean up and put away your materials. Even if you’re just making dinner, there will be dishes to attend to afterwards. Особенно внимательным следует быть, решая, что именно считать стопроцентным выполнением задачи.
Если задача звучит как «Оплатить счета», когда её считать законченной? После того, как вы заполните чеки? После того, как внесёте плату на почте (либо завершите онлайн-платёж)? После того, как подошьёте оплаченные счета в специальную папку? После подведения баланса в чековой книжке?
Не забудьте учесть, сколько займёт уборка рабочих материалов. Даже если вы просто готовите обед, после этого придётся что-то делать с посудой.

Reuse Estimates for Recurring Tasks

Повторно используйте оценки для повторяющихся задач

Once you’ve completed a recurring task, make a record of the time required for completion, so you can reuse that estimate in the future. When that task reappears on your to-do list, you can simply look up your old estimate. These estimates will be fairly accurate because they’re based on previous results, not previous estimates. Выполнив повторяющуюся задачу, запишите, сколько времени на это потребовалось. Это даст возможность использовать это число как оценку в будущем. Когда задача вновь появится в вашем списке дел, вы можете просто взять для неё эту оценку. Такие оценки довольно точны, так как базируются на предыдущих результатах, а не на предыдущих оценках.
I recommend that you create an estimation list for your common
recurring tasks. Here are two methods for doing that:
Рекомендую создать список повторяющихся задач вместе с временными оценками. Вот вам два способа:
Method 1 (simple version). For a very basic estimation list, you only need to record a single figure for each task. Just note how long the task took to complete the last time you did it. Способ 1 (упрощённая версия). Упрощённый список оценок содержит единственное число для каждой задачи – его временную оценку. Просто записывайте, сколько времени эта задача заняла в последний раз, когда вы её выполняли.
Your simple estimation list might look something like this: Упрощённый список оценок может выглядеть примерно так:
Grocery shopping - 55 minutes Make and eat dinner - 42 minutes
Vacuum house - 83 minutes
Wash, fold, and put away laundry - 75 minutes

And so on…

сходить в магазин за продуктами – 55 минут, приготовить обед и поесть – 42 минуты,
пропылесосить дом – 83 минуты,
помыть, вытереть и убрать посуду – 75 минут

и т. п.

Once you build a good list of time estimates for recurring tasks, you can create a very reasonable plan for your day by adding tasks to your schedule. Имея хороший список оценок для повторяющихся задач, вы можете составлять очень реалистичный план на день, добавляя задачи в расписание.
Method 2 (detailed version). For a more
complex version, you can record four figures for each task:

  1. the number of times you’ve completed the task since you started keeping records,
  2. (2) your best (minimum) time to complete the task,
  3. your worst (maximum) time to complete the task, and
  4. your average time to complete the task.

You can use these figures for making reliable estimates in the future; the min-max range tells you how reliable your estimates are likely to be. Whenever you complete each task again, take a moment to update your figures. In practice this won’t take
much time at all, but you’ll end up with a fairly accurate list of estimates.

Способ 2 (детальная версия). Есть более сложный метод. Для каждой задачи записываются четыре числа:
(1) количество выполнений задачи с момента начала ведения записей
(2) лучшее (минимальное) время выполнения задачи
(3) худшее (максимальное) время выполнения задачи
(4) среднее время выполнения задачи

Эти цифры можно использовать для выдачи реалистичных оценок в будущем. Разница между минимальным и максимальным временем покажет, насколько надёжны ваши оценки. Всякий раз, как вы снова выполните задачу, обновите эти числа. На практике это занимает очень мало времени, но в результате вы имеете список довольно точных оценок.

To update your average task time using this method, multiply (1) by (4), add the time required to complete the most recent repetition, and then divide the result by (1)+1. For example, if you previously completed a task 10 times, averaging 30 minutes per repetition, and the 11th repetition takes 35 minutes, then your new average is (10×30+35)/(10+1)=30.45 minutes. This method allows you to keep updating your average without having to record all of your previous task completion times. Для того чтобы пересчитать среднее время на задачу, умножьте (1) на (4), прибавьте время, затраченное на последнее повторение
задачи, и разделите результат на (1)+1. Например, если вы ранее выполняли задачу 10 раз, в среднем за 30 минут, и 11-е повторение заняло 35 минут, то ваша новая оценка составит (10×30+35)/(10+1)=30,45 минут. Этот способ позволяет обновлять среднее время выполнения задачи, не храня записи о том, сколько времени это заняло каждый раз.
If you record your best (minimum time) to complete a task, you can also use that to challenge yourself. Beating your previous record can motivate you to maintain a faster tempo. At the very least, try to beat your average time. Putting the clock on yourself can push you to work a little faster, especially for repetitive tasks that might otherwise seem a bit dull. Если вы записываете свой лучший результат (минимальное время выполнения задачи), вы можете использовать это, чтобы бросить себе
вызов. Желание побить предыдущий рекорд может мотивировать вас поддерживать более высокий темп. Надев часы, можно стимулировать желание работать чуть быстрее, в особенности над повторяющимися задачами, которые иначе кажутся довольно скучными.
For most people I recommend Method 1. Method 2 is probably overkill unless you’re really committed to optimizing your time usage. Для большинства людей я рекомендую Способ 1. Способ 2 – это, вероятно, перебор, если только вы не являетесь настоящим фанатом оптимизации использования вашего времени.
Learning to make better time estimates is a useful skill to develop, one that will serve you well for life. The methods above are actually quite easy to implement. Умение делать хорошие временные оценки – весьма полезный навык. Освоив его, вы будете получать от него пользу в течение всей жизни. Методы, описанные выше, довольно просто реализовать.
Becoming a better estimator may improve your life at the tactical level of daily time management, but be careful not to lose sight of the strategic level. Have you taken the time to define your life purpose? Are you setting the right goals? Are you working in the right career? Mastering low-level tactics won’t provide much
value when your overall life strategy is nonsensical or nonexistent.
Улучшение навыков оценки может улучшить вашу жизнь на тактическом уровне (ежедневный тайм-менеджмент). Но важно не
проглядеть также стратегический уровень. Уделяли ли вы время для того, чтобы сформулировать своё предназначение? Строите ли вы правильную для себя карьеру? Овладение низкоуровневой тактикой не принесёт много пользы, если общая стратегия вашей жизни бессмысленна или не определена вообще.
Even so, accurate estimation can benefit you across a variety of fields, so it’s a good skill to develop early in life. It’s still okay to develop this skill before you’ve achieved clarity at the higher levels of life purpose and long-term goals. Just be sure that at some point, you remember to attend to those higher levels, so you don’t merely become a faster rat on a treadmill. Хотя и в этом случае навык точного оценивания временных затрат на задачи сослужит вам хорошую службу в ряде областей. Таким
образом, этот навык хорошо развить на ранних этапах жизненного пути. Это нормально, если вы разовьёте его раньше, чем достигнете ясности на более высоких уровнях – с жизненным предназначением и долгосрочными целями. Однако помните о необходимости в какой-то момент уделить внимание этим высоким уровням, чтобы не стать просто более быстрой белкой в колесе.
What are your personal tips for generating good estimates? I invite you to share them in the forums. And remember, this is for posterity, so please… be honest. А что лично вы посоветуете по вопросу качественного оценивания временных затрат? Приглашаю поделиться на форуме. И помните, это послужит потомкам, поэтому… будьте честными.
google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

RSS feed

Комментарии »

Еще нет комментариев.

You must be logged in to post a comment.

Or use your OpenID:

Trackback responses to this post

NLP.Od.Ua рекомендует:
Интересно, как сделать вашу команду более продуктивной? Обратите внимание на мою обучающую систему "AgileProductivity: Утройте продуктивность команды программистов, используя гибкие методологии".