当前位置: 首页 > 科技观察

项目时间估算:项目将开发多长时间?

时间:2023-03-22 15:05:24 科技观察

这个问题是我遇到最多的一个,也是我最难回答的一个。回答这个问题最好的方法是用全职员工来计算天数。很简单,你只要弄清楚有多少个不重叠的特征,每个人负责一个。一旦将各种功能块划分为无法进一步划分的任务,您就可以计算需要多少人日,这就是您的答案。无论如何,您不可能在比这更短的时间内开发该项目。“一个女人生一个孩子需要10个月,不管你增加多少女人来做这件事,都不会缩短这个时间。”人和月可以在协作完成时相互替代。”“将程序员添加到已经延迟的项目只会进一步延迟项目”(因为项目中的现有人员需要培训新人)-《人月神话》Go不幸的是,大多数人们只想知道一个项目需要多长时间才能完成。这其实是一个伪命题,因为90%的软件成本都发生在软件发布之后,这些费用可以用于修复bug、添加缺失的功能、提高性能,支持新平台(安卓是个大债主)或者重写质量差的旧代码来减少技术债。即使在项目发布之前,也不可能提前预估如何正确处理每种错误情况。在某种程度上,你曾经有人问过这样的问题:“我遇到了问题,我想解决它,但我不知道问题出在哪里。修复这个问题需要多长时间?”虽然估计很难,但程序员最终还是要找到估计的方法。虽然我不知道确切的答案,但我有3种方法可以粗略地估计一个软件项目需要多长时间willtake:,similaritems。对于一些简单的网站和应用,或者那些使用标准CRUD的项目非常有效。这种方法在项目小而简单的时候效果最好。这种方法可以在软件的1.0版本中使用,但是它以后的版本就不行了,因为这时候你和引用的项目开始慢慢产生差异,你这时候写的代码是你以前没有写过的。我的好朋友和前同事JohnWalker(不是这个JohnWalker)喜欢使用这种方法。将项目分解为最小的任务。然后记录您认为完成每项任务可能需要多少小时、几天、几周和几个月。按照这个原则,一个任务用几个小时算一天,用几天算一周,用几个星期算一个月。如果超过一个月,那你就不知道要花多少时间,或者根本不知道要做什么。我有自己的估算方法,但它实际上与约翰将任务分解为最小的子任务的方法非常相似。我以最坏情况下每个最小单元的完成时间为标准。求和,然后乘以4。然后四舍五入到最接近的质数,哪怕是对我不合理的方法的讽刺。对于大型、独特的项目,程序员几乎无法知道开发需要多少时间。这就像问“找到治愈癌症的方法需要多长时间?”然而,大多数管理部门拒绝接受这个答案,所以程序员只好耍花招,弄清楚老板们想听什么。时间,然后添加一些回旋余地。我还可以做些什么?通常这是一个超级捷径,而且都是为了追逐一个不应该设定的截止日期。您需要了解预测是困难的,并且需要对计划进行更改。除非您的程序员可以将任务分解为不到一个月的子任务,否则不要围绕软件发布时间计划任何营销活动。最后要注意的是,当你给一个现有的软件添加新功能时(比如2.0版,3.0版....),你需要增加20%的时间来重写现有的代码(程序员称之为重构)。这是为了偿还技术债务,或者为未来的行动铺平道路。人们认为谷歌将20%的时间花在创新上,但我敢打赌,其中大部分时间都在偿还技术债务。估计一件东西要花多少钱是非常困难的,而且通常是不可能的。虽然你在一些小项目上有过成功的预测,但是随着项目的发展,你会感觉越来越难。一个好的方法是给程序员额外的时间。许多年轻的程序员通常没有这方面的经验,因此项目经理必须将他们的估计时间乘以4。英文原文:这个项目需要多长时间?翻译链接:http://www.vaikan.com/how-long-would-this-project-take/