游戏邦在:
杂志专栏:
gamerboom.com订阅到鲜果订阅到抓虾google reader订阅到有道订阅到QQ邮箱订阅到帮看

开发团队如何做出合理的时间估算

发布时间:2013-08-20 12:00:32 Tags:,,,

作者:Steve Pavlina

很多人都不能有效估算一个任务需要花费多长时间。也许你估算需要1个多小时,但事实上却花了3至4个小时才完成任务。或者也许你分配了30分钟去执行一个任务,但是你却在5分钟内便完成了该任务。所以该如何做才能做出更精确的估算呢?

以下是帮助你更好地估算时间的技巧:

time estimate(from ux.stackexchange.com)

time estimate(from ux.stackexchange.com)

计算你的蒙混概率

一开始你最好能够衡量当前的估精度。

为即将到来的任务创造一个任务清单,并记下你所期待的每个任务花费时间的随意估算值。当你完成每个任务时,记录下你真正花费的时间。然后加起来算出总共花费的时间,除以你所估算的可能花费的时间。最终得出的便是你的蒙混概率。

举个例子来说,如果你估算一个任务列表需要花费12个小时才能完成,但实际上它们花费了你15个小时,那么你的蒙混概率便是15/12=1.25。这便意味着你比预期值多花了25%的时间去完成任务。

如果你为各种任务测量了蒙混概率,你将会发现对于每一个任务,你的蒙混概率都会发生很大的变化,也许这种范围会在0.1至10.0之间。然而对于那些需要好几天时间才能完成的任务群组来说,你便会发现蒙混概率的范围波动较小。当你面对的是适当的任务时,你的互查概率的数值便较为集中。

我的平均蒙混概率是1.5。这便意味着当我随意估算自己完成任务所需要的时间时,结果往往都会过于乐观;任务最终完成的时间通常都会比我最初估算的长50%。对于任何特殊的独立任务而言,我们的估算也许会更加不精确。但是如果我算准一组任务需要2天时间的话,那么实际上它们便需要3天的时间。

当你清楚了自己的蒙混概率后,你便可以利用它更准确地估算出任务群组所需要的时间。你只需将随意估算值相加,然后乘以蒙混概率。最后得出的便是相对精确的估算值。

在估算特定任务时我通常都会较为乐观。所以知道蒙混概率也并不能帮助我让最初的估算更加精确。我的随意估算值一直都是不准确的。但是当我将估算值乘以蒙混概率后,最终得出的结果便非常接近现实所需要的时间。这能帮助我更合理地安排时间。

基于蒙混概率,我知道如果我想要在一天内花8个小时完成工作,那么基于随意估算值我需要5个小时20分钟去完成任务(5:20=8小时/1.5)。尽管每天计算这种补偿值看起来很愚蠢,但实际上这却是非常有效的——远比列出8个小时的任务然后强迫自己一天工作12个小时或因为只能在预期时间内完成2/3的任务而沮丧好多了。当我意识到自己不可能完成任务时,自我糟蹋只会让一切变得更糟糕。

我们最好能够制定一份合理的任务清单,即能够帮助我们即时完成任务而不是因为错误的估算不断自责。即使乍看之下我的每日任务清单很短,但是我却能够有效地在一天结束后划掉相应任务。因为每天的变化,这份列表并不是绝对的准确,但这总比我们胡乱尝试的好,并且能够鼓励我们按照每日节奏做事,而不会超负荷工作。

我建议你们将蒙混概率用于至少10至20个小时的任务中。如果你估算的只是几个小时的任务,你的蒙混概率便不会精准。

当然了,如果能够每隔一段时间重新计算蒙混概率的话就再好不过了。一个季度一次最好了。在工作属性改变时重新估算也是必要的,如当你开始一个新项目,跳槽或换职业。

如果你想要获得更多细节,你可以为不同类型的工作估算不同的蒙混改良。不过我就没这座,但是如果你认为不同的任务具有完全不同的蒙混概率的话,这便是个不错的注意。例如,你是一名学生并发现数学作业的蒙混概率是0.9,但学期论文的蒙混概率为1.7,那么你便需要区分不同的蒙混概率才能进行更精确的估算。

如果你管理的是一个团队的衣服,你便可以为团队中的每个成员估算蒙混概率。询问每个成员完成一组任务的时间估算,策略实际所需时间,从而为他们估算蒙混改良。不管何时当你为即将到来的任务估算这些团队成员的全新时间数值时,你便可以将他们的估算除以个人蒙混概率。这将帮助你为团队项目创造更精准的时间表。你将会发现人们往往会在相同的方式上犯错。

划分合理的大小

为了做出精确的估算。你必须将任务划分成一些合理的大小。如果你的任务组块太大,你便会忽视过多细节。而如果你的组块过小,你便会深陷一些低级别的细节中,并且你估算任务的时间将长于完成任务的时间;这都会消耗大量的日常开支。

举个例子来说吧,“彻底检修我的网站”听起来是个复杂且多任务项目。但这却并不是足以做出合理估算的大足快。你只需要列出完成该项目所需要的个体任务。

另一方面,“在信封上写邮寄地址”便太过于细分了。你应该能够按照估算的时间完成这一任务。但是太过细节化只会浪费你的时间而不能提高效能。

你应该找到最合适的任务大小,从而才能做出最精确的估算。我将基于自己的经验列出一些方法:

一坐规则。我的估算更适合那些能够坐一段时间便完成的任务。这便意味着每个任务组块需要2至4个小时。当我面对的是更大的组块时,我便会错失更多任务并低估了所需时间。而当我面对的是更小的组块,我则可能列出过多细节,高估了所需时间,从而浪费太多时间。

经验补充。如果我在之前多次完成了同样的任务,那么我的估算便会更加精确,从而我的蒙混概率便会降至1.2,甚至是1.0.举个例子来说吧,我已经写了700多篇的文章,所以我非常擅于估算每篇文章所需要花费的时间(通常是3个小时)。如果我需要做一些从未做过的事,那么蒙混概率便有可能是2.0甚至更高。面对一个任务经验越少的话,那么我的蒙混概率便会越高。

定义明确的任务界限

确保你的任务拥有明确的定义。模糊的任务将很难进行时间估算。

如果我的一个任务是“更新账单,”我便不清楚这其中包含什么。这是否意味着去平衡我的活期存款?支付工资?填写纳税申报表?记录收入?如果我想要做出可靠的估计,我便需要清楚自己将要做些什么。

你可能会发现为一个并不明确的任务的组件列出一些关键字将非常有帮助。你无需为每个部分估算时间。你只需设想自己将要做些什么。关键字将帮助你进行想象,从而也将推动你做出更合理的估算。

你应该能够快速明确每个任务的最初和最后的步骤。举个例子来说,当我看到标记为“编写新的博客条目”的任务时,我知道第一步便是选择一个主题。而最后一步则是点击“发行”按键。如果你不能在列表上为任务的第一步和最后一步命名,那么你的任务便不可能拥有明确的界限。这时候你将需要花些时间去定义这些步骤,或者你需要更清楚地定义任务,可能的话将其划分成一些小组块。准确的估算通常都需要明确的开始/结束界限。

仔细考虑100%完成任务需要哪些元素。如果你的任务是“支付账单”,那么当你写下支票,完成在线支付,将付费账单储储存在文件柜中,或平衡了支付簿时,一切都算结束了吗?不要忘记考虑整理与储存资料所需要花费的时间。即使你只是在做晚餐,你在之后也需要清洗碗碟。

在周期性任务中重新使用估算数值

当你完成了一个周期性任务时,你需要记录下所花费的时间,如此你便能在今后再次使用这一数值。当任务重新出现在你的任务列表上时,你便可以回头查阅之前的估算。因为它们都是基于之前的结果而非之前的估算,所以只写估算值将非常精确。

我建议你可以为一些较常出现的周期性任务创造一个估算列表。以下便是关于这一点的2种方法:

方法1(简单版本)。对于一个非常基本的估算列表,你只需要为每个任务记录一个数字。即只记下你上次执行这一任务花了多少时间。

你的估算列表样本将如下:

购买生活必需品—-55分钟

做晚饭与吃碗饭—-42分钟

清扫屋子—-83分钟

洗衣服,折衣服,收好—-75分钟

等等

当你为周期性任务创造了一个事件估算列表时,你便可以通过在时间表上添加任务而为自己的一天创造一个非常合理的计划。

方法2(细节版本)。对于更复杂的版本,你可以为每个任务记下4个数字:(1)从开始记录算起你完成任务的次数,(2)完成任务的最短时间,(3)完成任务的最长时间,(4)完成任务的平均时间。你可以使用这些数值在未来的任务中做出合理的估算;最小与最大间的范围将呈现出你的估算的合理性。不管何时当你再次完成每个任务时,你需要花些时间去更新数值。实际上,这并不需要花费太多时间,但却能够帮助你创造出一份非常精准的估算列表。

为了使用这一方法去更新你的平均任务时间,你可以将(1)乘以(4),添加所需时间去完成最新的反复,然后将结果除以(1)+1。举个例子来说,如果你之前完成了某一任务10次,每次反复时间平均为30分钟,而第11次反复花费了35分钟,然后你的新的平均数便是(10×30+35)/(10+1)=30.45分钟。这一方法将让你能够无需记录所有之前任务所需要的时间而更新平均值。

如果你记下了完成一个任务的最短时间,你便能够使用该数值去挑战自己。打破之前的记录能够推动你更快速地执行任务。最起码你会想办法去打破平均时间值。定时能够有效地推动着自己快速前进,特别是在面对那些较乏味的重复任务时。

对于大多人来说我会建议他们使用方法1。方法2的威力过于强大,除非你真的想要优化时间的使用。

结论

学习如何有效地估算时间是一种很有帮助的技能。而上述所列出的各种方法也很容易执行。

成为一名优秀的估算者能够通过帮助你更好地进行日常时间管理,从而更好地完善自己的生活。你是否曾花时间去定义自己的生活目标?你是否设定了一个合理的目标?你是否致力于一个正确的职业?如果你的整体生活策略毫无意义,那么精通较低级别的策略将不可能给你带来任何帮助。

虽然如此,精确的估算则能够让你在多个领域受益,所以这是你需要尽早掌握的一项技能。你也能在明确更高级别的生活目的和长期目标前发展这项技能。但是你必须确保在某些情况下记得去应对那些更高级别的技能,如此你才不会变成跑步机上盲目快速奔跑的老鼠。

本文为游戏邦/gamerboom.com编译,拒绝任何不保留版权的转载,如需转载请联系:游戏邦

How to Make Accurate Time Estimates

By Steve Pavlina

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. 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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…

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) 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.

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.

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.

Conclusion

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 comments. And remember, this is for posterity, so please… be honest. (source:gamedev)

 


上一篇:

下一篇: