我正在从事一个有许多未知数的项目,例如将应用程序从一个平台移动到另一个平台。
我最初的估计还差得很远,我无法真正确定何时结束。
我该如何处理无法估计这样一个项目的问题。这并不是说我要在屏幕上添加按钮或设计网站,或创建应用程序甚至修复错误。这些不是有错误的方法,这些是在整个代码中做出的假设,这些假设不再正确,并且是逐步发现的,并且每个都通过更多未知数进行分析和缓解。
我正在从事一个有许多未知数的项目,例如将应用程序从一个平台移动到另一个平台。
我最初的估计还差得很远,我无法真正确定何时结束。
我该如何处理无法估计这样一个项目的问题。这并不是说我要在屏幕上添加按钮或设计网站,或创建应用程序甚至修复错误。这些不是有错误的方法,这些是在整个代码中做出的假设,这些假设不再正确,并且是逐步发现的,并且每个都通过更多未知数进行分析和缓解。
我碰巧写了一篇关于软件估计的硕士论文,我学到了一些教训:
-1st Count, 2nd compute, 3rd Judge - 这意味着:首先尝试识别您工作中可数的项目,例如文件、类、LOC、UI 等。然后使用这些数据计算工作量(以人/天为单位)。使用判断作为最后的手段。
- 记录您的估计!显示数字。这最大限度地降低了您的风险,因此您将不会以您的意见呈现结果,而是以或多或少的客观数字形式呈现结果。(一般来说,纸越多背面越干净)
-估计不是承诺。承诺是一个数字,估计总是一个范围 - 所以把你的估计作为一个范围(使用不确定性锥来正确选择范围http://www.construx.com/Page.aspx?hid=1648 )
-划分:使用WBS,将您的工作分成小块并分别估算。粒度取决于整个长度,但一个工作包最多不超过整个工作量的 10%。
-首先估算工作量,然后是进度,然后是成本。
- 将估算视为对规划的支持,重新估算每个项目阶段(s. 不确定性锥)。
我会推荐这本书http://www.stevemcconnell.com/est.htm它涉及所有这些要点,特别是如何与老板打交道,他们试图从你那里得到承诺。
问候, 瓦伦丁·海尼茨
提出准确的估计没有真正正确的答案,因为没有办法知道它。
至于估计工作本身,考虑如何将每个步骤分成单独的子步骤,并将它们分解得更小,直到您可以对尽可能多的工作有一个公平的了解,其中的块小而谨慎足以给出合理的估计。如果可以的话,想出一个预期时间和一个最坏情况的时间,以获得你可以降落的范围。
解决此问题的另一种方法是忽略旧系统。听起来很头疼。估计刮掉旧系统并从头开始实施新系统,或集成第 3 方,现成的解决方案。如果要为此做一个案例,至少值得调查一下。
听起来像是postsecret的帖子,而不是 SO。:)
我会告诉他,当它完成时,它会完成,如果这还不够好,他可以学习编程并帮助你。再说一次,我认为你可能会被解雇,但嘿,听起来可能会更好。
或多或少地告诉他你告诉我们的事情。这个项目太不稳定了,也不能给出准确的估计,你能做的最好的就是对给定的任务给出一个估计。只要任务数量未知,估计也会如此。如果他完全值得他的薪水,他宁愿听到这个,也不愿听到一些捏造的数字。在处理大型遗留代码库时,这种情况并不少见。