如何估算编程时间

估算创建软件需要多长时间的精美技巧

我真的很想告诉大家我如何估算构建软件项目所需的时间。

在过去的十年中,我被问过数百遍了。

  • “我们需要实现此功能。您需要多长时间?”
  • “就时间而言,请给我详细概述该项目将花费多少时间。 1个月? 2个月?”
  • “我希望您发货。 50小时的计费时间就足够了吗?”

这些问题的答案要么是赌注,在最乐观的情况下。或一个信仰的飞跃,知道如果我答应了电话号码,那可能是我的薪水,而与实际花费的时间无关。

有时,对于长期客户,我可以用比我预期更早完成工作的项目来摊销超出我的估计的项目,并告知客户。

最终我最终说出“我无法估计”。

因此,“我真的想告诉所有人我如何估算构建软件项目所需的时间”的答案是:我不

但我可以估计没有人真正能够估计在构建软件时,由于该领域可能对您不利。

“真正的工程师”将很难被接受,但是我从来都不是您典型的真正的工程师类型。

作为开发人员工作时,估算可能是最困难的事情。

这是一个很酷的参考表,可以在您需要估算任务时使用

任务 你估计 你忘了 实际所需时间
一个小错误修正 2分钟 我们需要在源代码中找到存在错误的函数git pull,检查是否没有破坏任何其他函数,我们需要添加一些测试,运行测试,修复我们破坏的测试,部署,更新错误追踪器 2小时
次要功能 2小时 您需要修复要编辑的函数中代码中遗留的TODO,并查看为什么会有一个//don't touch this评论。您需要仔细进行手动测试以及浏览器测试,并检查为什么Edge不能正常运行。哦,我们需要更新文档中的所有屏幕截图 10个小时
改善端点的性能 10个小时 您需要精确的基准测试,可以用来证明您的新实现正常工作,并添加之前不存在的其他10个测试,否则您就有可能破坏10000个客户使用的生产代码 5天
重写整个前端代码 3周 您只是从新开始更具可扩展性您在不接触UI的情况下尝试使用的框架,但是遇到了一系列全新问题,但是这次没有StackOverflow或Google可以提供帮助,因为该框架太新了。您遇到了独特的问题,您需要聘请图书馆维护人员与您合作,但是他已经着手进行下一件伟大的事情。在您使用它时,UI团队决定对界面进行两次完整的重写。中段时间的产品经理希望转向稍有不同的产品 12个月

这可能是对我们缺乏估计的一个很好的估计,但是当然事情也可以相反:您估计的一件事情可能需要5天,可能只需要1天,因为您发现已经添加了一切,并且已经添加花费比预期少得多。

有些人可能高估了,预测他们可能会遇到困难,他们的想法增加了30%。

团队项目估算更加困难,我什至不会尝试。

那该怎么办呢?

我建议不与客户或老板或委托您工作的人进行持续沟通,而不是进行详细估算,并每周对项目进度进行检查。无需预定义过程何时结束。

因为毕竟这个过程永远不会结束。


更多实验教程: