有时,有些研发项目事先对技术,概念和客户一无所知。但是,经理仍然需要时间估计。我该怎么做才能得出有用的估算值?
有时,有些研发项目事先对技术,概念和客户一无所知。但是,经理仍然需要时间估计。我该怎么做才能得出有用的估算值?
Answers:
老实说,就像纳西姆·尼古拉斯·塔勒布(Nassim Nicholas Taleb)在他的《黑天鹅》一书中写道:“我们无法预测”。主要是由于未知数。通常最好传达这一事实,即您无法预测的事实,而不是传达估计值。
正如塔勒布(Taleb)所说:大致上是正确的,而不是完全是错误的。因此,请务必传达您估计困难的事实,并使用诸如“学习新技术中的曲线”之类的观点作为论点之一。这意味着您的估算范围将很大:“此项目的成本在10万到50万之间。”
通过说这样的话,要求您估计某件事的人意识到,事情并不是那么简单。
您需要的绝对第一件事是对范围有所了解。越具体越好,但是可以使用任何形式的需求来生成初始估计。客户需求,愿景和范围以及概念文档可以尽早使用。随着需求和操作环境变得越来越清晰,估计值将有所提高。对客户(尤其是客户与开发组织之间的接口),执行工作的团队,要使用的技术,系统架构以及详细的设计的更深入的了解将有助于做出更准确的估算。这在不确定性锥中可见。
如果您使用的是诸如SLIM或COCOMO(仅限于中级或高级,因为基本不考虑成本动因)之类的参数化建模工具,则应针对该技术的不熟悉性进行调整。例如,COCOMO有大量的成本动因,包括一些专门用于熟悉目标平台以及用于开发系统的语言和工具的成本动因。SLIM还考虑了开发团队的整体经验,其中应包括对所用工具和技术的考虑。
使用这种技术,通常可以验证建模工具的输出,因为在许多组织中,建模工具的输出多年来已成功用于估算先前的软件项目。但是,输出仅与工具的输入一样好。
如果您没有使用参数模型进行估算,那么在估算时就必须简单地考虑这些因素。这更像是一种判断,但是您可以考虑进行一些活动,例如阅读文档,设置新的开发环境以及在目标平台或目标语言上开发示例应用程序。
在这些情况下,您将需要按任务细分估算,并能够使用专业判断来进行备份。希望您有历史数据和其他具体证据来进行估算。否则,这将是一场艰苦的战斗。
取决于,我大部分时间都使用FPA(功能点分析),但是我们是从事“企业网络开发”的,我的意思是,您知道,福布斯500强网络公司。
在那里,任务总是可以分为两部分:一,非常适合FPA:您具有输入接口,输出接口,内部逻辑文件(也就是要导出的数据库表/类型),并且具有这些复杂的未知系统。
在简单版本中,复杂任务是已经编写的组件,很难与它交互。
硬版本是什么时候需要编写,然后是基于飞行员的估算,即COCOMO。
但是,有两点很重要:
每种估算系统都必须为您的组织指定一个校准时间。您永远不会一个人开发,至少会有一个客户在等待您的代码(或者您不会为此而孤注一掷,只为自己编写代码)。问题不是“开发速度有多快?”,而是“与大家一起开发有多快?”
有一次,我有一个经理读过《黑天鹅》这部小说,对此很疯狂。他告诉我们这是无法估计的,而我正在不懈地对+ -10%的估计进行精确的估算...
估算使用熟悉的技术完成类似项目所需的时间。乘以4。增加一些学习时间。
如果估算值太短,您会显得幼稚而傲慢。如果估算值太大,您将显得无知和无能。做出明智的选择。