作为开发者,在承接项目时应怎样预估工作量

世界难题。我说一种通用的软件预估方法吧。PSP提供一种方法讲的是proxy based estimation。简单来说就是把软件分解成小块(proxy),然后去估算每一小块的时间。一个小块可以是一个类,一个模块等等。然后你要不停地收集你的历史数据,然后根据历史数据来对proxy做预估,最后汇集出一个总的预估。举个例子,即使你非常粗粝度的划分proxy,那么至少你也知道“用熟悉的编程语言做一个带验证码的登录模块”需要多久——比如大概20个小时,或者实现一个复杂/简单业务流程的代码要多少,一个框架级别的模块要多久,然后用这些历史数据来做预测,才可以得到一个差不多精确的数字。这样一来当你坚持做了很久,你就有了很多数据,这样预估就更精确。所以进行这个的前提是要进行系统设计,基本上细化到类级别,这样会花很多时间没错,可是如果你连自己要做什么都不知道,那你自己敢信自己预估出的结果吗?具体的流程大概是:需求分析系统设计根据系统设计划分proxy做预估开发测试收集数据这种看似瀑布的方法同样可以应用到敏捷增量开发的每一个迭代中。如果你没有历史数据,对着一个“功能点”,这么大而虚幻的东西,做预估,那你要记得,you are just making a guess.不过如果没有历史数据,那也只能从guess开始。可以参考http://book.douban.com/subject/1837616/
■网友
需求写好了,找功能点,给功能点分类,把每类功能点时间往里一代,就结束了。这个时间可以是你的历史记录,也可以是随便找来的默认值


    推荐阅读