你如何对你从未做过的事情给出有效的时间估计?

Ref*_*din 30 time project-planning project-management

作为一名新的开发人员,他是员工中唯一的软件人员,我遇到了一些挑战,但最困难的可能是时间估计.每次我必须给出一个项目估计时,我都会喋喋不休.

我的问题是; 如果我没有任何经验而且我的环境中没有开发人员,我该如何提供可靠的估算?我已经阅读了Joel Spolsky关于循证调度的文章,但如果我没有任何证据,那该怎么办呢?

我很欣赏有关这个主题的任何建议.

Jon*_*eet 30

您没有提供可靠的估算.你给好答案就可以了,并解释说,这只是一个非常粗略的估计,以及为什么它是如此粗糙.

如果你清楚地表明:

  • 你不能给出准确的估计
  • 您无法给出准确的估计是完全合理的,因为它与您之前所做的工作不同
  • 随着时间的推移,您将更新估算值,并且您可以更好地了解该主题

我觉得你应该没问题.你需要做这些事情非常虽然明确,以书面形式,这样你就不会被后举行的粗略估计.

  • @John:您刚刚发布了在进行估算之前,您通常会完成90%的工作.这真的与你在这里的第一条评论一致吗?如果你几乎没有做出估计,那就非常接近,那就是"它将在完成时完成". (14认同)

Dan*_*man 6

你被允许说"我不知道,我没有足够的证据"

然后做一些原型设计以获得一些证据.

然后回答这个问题.

因此,您实际上可以估计何时能够给出估计值.


Joh*_*ing 5

IMO Joel在他的文章中走的很远,他的结论和建议并非基于任何现实.(对不起,乔尔)从根本上说,他说你应该能够在开始之前将工作安排到几小时或更短的时间单位.但实际情况是,在进入代码之前,你不知道这些工作单元是什么(在非平凡的系统中).因此,在你打开引擎盖之前,你不能想出你要做的事情的每小时细分,并且让细分反映实际发生的任何准确性.

如果您希望估算具有任何价值,那么给出项目估算非常困难.对于程序员来说,提出准确的估计是很困难的,因为在你深入研究之前,你经常没有发现项目的所有复杂性.

因此,解决这个问题的方法是在提出估算时进行讨论.对于较小的项目和错误修复,这非常简单:

  • 复制机器上的错误.
  • 找到导致错误的代码.
  • 弄清楚如何编写将修复bug的代码.
  • 估计编写该代码需要多长时间.

在找到你必须写的代码时,你必然必须发现大部分或者所有复杂性,这些复杂性会抛弃你的估计.

这种方法的有趣之处在于,生成估算所需的时间通常是实际完成工作的总时间的90%.你几乎必须做这项工作才能得出估计数.特别是在修复错误的情况下,解决方案通常只需要一行代码,因此您的估算结果最终为5分钟.这很好,因为截止日期可以设置在这样的估计值附近.

当你练习这个时,你会越来越好"只知道"需要多长时间.起初,您只能"只知道"最小项目需要多长时间.但随着时间的推移,您将能够估计更大和更大的项目.