Project management 在开始一个web开发项目之前,您如何估计您将花费的时间?

Project management 在开始一个web开发项目之前,您如何估计您将花费的时间?,project-management,Project Management,当你告诉你的客户或经理这项工作可以在10天内完成,但你花了20天的时间才得到一个积分,甚至还没有部署到live上时,你会感觉非常糟糕 关于你是如何估计在一个提议的项目上花费的时间的,有什么经验可以和我分享吗 谢谢提供时间估算是你只有凭经验才能做得更好的事情 利用您上次的经验修改您下次的时间估算 有关更多信息,请参见 我发现,你能做的最糟糕的事情之一就是第一次浏览需求,然后在初次会议上进行猜测。总是说你需要回到他们那里,然后去分析需求并给出一个有教育意义的回答。尽可能在开始时把事情分解成小块。我以

当你告诉你的客户或经理这项工作可以在10天内完成,但你花了20天的时间才得到一个积分,甚至还没有部署到live上时,你会感觉非常糟糕

关于你是如何估计在一个提议的项目上花费的时间的,有什么经验可以和我分享吗


谢谢

提供时间估算是你只有凭经验才能做得更好的事情

利用您上次的经验修改您下次的时间估算

有关更多信息,请参见


我发现,你能做的最糟糕的事情之一就是第一次浏览需求,然后在初次会议上进行猜测。总是说你需要回到他们那里,然后去分析需求并给出一个有教育意义的回答。

尽可能在开始时把事情分解成小块。我以前读过这样一篇文章,人们无法准确估计任何超过几天的事情的持续时间,因此要解决这个问题,你唯一能做的就是尝试识别所有的部分,并分别估计每个部分。

经验将帮助你更好地进行估计,而不是其他任何事情

但要记住的最重要的事情是让人们随时了解情况

如果任务预计在10天内完成,而你在第5天,显然不打算在10天内完成,那么你应该在那一点上让人们知道,而不是在第11天


随着时间的推移,有三种选择:你承担风险,无论如何都要完成工作;你从系统中删除内容;或者你要求更多的钱来完成工作。越早决定越好。

你不知道自己要做什么就无法估计;你需要将任务分解成你可以合理估计的小块——每小时(不少于1小时,四舍五入)

e、 g.“为我创建一个登录页面”

HTML登录表单-1小时 用户数据库表-2小时 等等等等

然后,拿出日历,试着填上时间——好的,周一我可以工作大约5个小时,这样就可以完成一项任务了。你能合理地多任务处理吗?可能吧,但不要说你一天可以完成3 x 4小时的任务,即使你确实有12小时的“空闲时间”(太多了)


看看周末;你会为他们工作吗?可能不会,所以包括在内。要换机油吗?婚礼快到了?一定要考虑到这一点。如果你有几天不能工作(孩子生病、停电),请加上一些软糖时间。

我实际上制作了非常详细的网站地图,然后估计每件作品的小时(分钟)

我向客户展示站点地图,并告诉他们这将是我实际期望的两倍

然后我们详细说明每个页面将做什么,这样就没有关于网站是否“完成”的争论


在承诺之下,过度交付。我通常比我告诉客户的要早很多,他们总是很高兴我“早”完成了工作。

有一件事需要考虑,那就是测试时间。如果某个东西需要10天才能开发出来,那么最好允许至少7-8天的测试。提前掌握需求有助于估计时间。当/如果需求发生变化,您必须让客户知道,这将增加交付日期的额外时间


总而言之,正如扎克所说,你获得的经验越多,你对时间的估计就越准确。仅仅为了得到一份工作而给出一个不切实际的时间估计只能是一件坏事。当然,我不是说你就是这么做的。我只是说这是一个良好实践的观点

我最喜欢的一位编程老师每次得到零钱时都会重复这句话:“花你认为需要花的时间,把它乘以3。即使那样,这也将是一个千钧一发的机会。”

起初,由于缺乏更好的做事方式,我实际上是这样做的。我还是这样!主要是在那些你能感觉到有一个客户存在的项目中:)


它对我有用。这不科学,但确实有效。

你在这方面花了多少时间?有什么干扰?每次当你集中注意力时,有人打破了这种专注(我工作时的正常状态),你可能会失去30分钟的时间恢复到那种专注状态。每天有四到五次这样的情况,而且(处理中断的原因)你已经损失了半天。每天

我们都这样做。在我们本应该学得更好的很久之后,我们仍然这样做。我们认为“这不可能超过几个星期”,我们立即说出来,而不是聪明和思考。在这里,我一直在自言自语


如果我们这样说怎么可能:“我认为在一个理想的世界里,我可以在10天内完成这件事,但你和我都知道事情会发生,需要处理,这会产生影响。我们对这些功能进行优先排序,然后我将按顺序处理它们,并在每个功能完成后报告,并更新剩余时间的估计值。”

我将项目分解为最小的不同任务。然后我将列表翻了三遍

当我第一次浏览清单时,我会寻找一些我有很多经验的东西。这些东西基于我以前的经验,我可以非常精确地估计所需的时间

然后我翻阅清单,寻找我不确定的东西,我担心它们会花费很长时间。我花一些时间研究其中的每一项,并将它们分解为更小的任务。这让我能够更好地了解具体涉及的内容,并使以后更容易处理

上一次我浏览这个列表时,我假设每个任务都需要一个程序员一天的工作才能完成。有时候一个人可以在一天内完成一大堆工作。这很好。但是有时候