nbsp; 软件项目的潜在风险对于开发周期的影响在很多情况下是非常大的,当然好的项目控制会最大限度的减少这种影响,绝对避免是不可能的,所以在开发周期估算时项目风险应该适当考虑,尤其是技术风险和客户风险。
技术风险主要来自于软件本身的技术难度,如果对于一套成熟的产品,定制开发的技术风险相对非常小,因为重要的技术已经成型,客户也很少有新的能带来高难度技术问题的需求,这种风险可以不予考虑。但是对于完全重新开发的项目,或是研发类的项目,技术风险必须特别重视,其中应该考虑的细节主要包括下面几个。
开发平台,是否能适合本项目所涉及的软件开发、能否满足最终的需求,平台的错误选择将导致庞大的开发工作量,即便满足了用户需求也可能造成系统效率低下,扩展性差的致命问题,软件可能会很快被淘汰。功能实现难度,在切实了解需求的基础上要仔细分析采用的开发工具能否实现其中的难点,是否会耗费大量时间。
在实际估算中,建议技术难度分为十级,每一级在初次估算的代码行上增加10%,最终估算代码长度=初始估算代码长度×(1+0.1×n)。假设模块A的初次估计代码行为15000行,但考虑技术难度高的风险,设定技术难度级别为二级,最终代码行的估算数量为15000X(1+20%)=18000。
由于技术风险的分析是一项技术性很强的工作,要求做技术风险分析的人必须是技术专家,在相关技术领域有着丰富的经验,对重大技术风险的分析结果必须要经过评审,保证准确性。
客户风险存在于客户化项目中,不同行业的客户特点不尽相同,技术、理解水平也相差甚远,在我经历开发的项目中,80%的项目延期属于客户方的原因,而且这种风险可控性很低,对项目影响超过技术风险。在开发周期估算前,项目经理要仔细分析客户的具体状况,包括客户的计算机水平、管理水平、可沟通程度,在此基础上结合以往的经验综合判断是否会对开发带来明显的影响,可以按照上述的技术风险的方式将客户分级,最终确定开发周期。在这个过程中,项目经理的经验极其重要,对客户的分析基本上要依赖经验做判断,要求管理人员有大量的客户经验和行业分析能力。
3.3估算与人力资源
对于软件开发项目来说,人力资源是核心力量,因为软件开发不同于其它类型的项目,除了电脑它不需要利用其它工具,最终结果的产生完全取决于人脑中的知识,这也是知识经济的最大特点。
人力资源对估算的影响表现在技术水平、理解能力、沟通能力等几个方面,编程水平的高低、速度的快慢、能否适应团队、能否与各成员保持良好的沟通都会对开发进度产生影响,其中技术水平是最关键的因素。评价程序员的技术水平可以从编程熟练程度、编程速度、解决技术问题的能力几个因素考虑,编程熟练程度指的是程序员能否很顺畅的使用编程工具实现软件的功能,编程速度指的是完成某个功能的时间,解决技术问题的能力可以反映程序员在遇到技术难点时表现出的技术功底,如果以100%作为总和,这三个因素分别占70%、15%和15%这样的比例。
软件开发周期估算前,应对开发人员定级,建议按新手、初级程序员、中级程序员、高级程序员来划分,每一级人员再评定上述三个因素,初次估算时可以假定开发人员为中级程序员,然后依据项目组实际人员的水平做修正,这样结果的精确度能大大提高。
4. 历史数据估算法的运用
依据历史数据估算软件开发周期是一种比较常见的方法,这种方法以历史软件开发周期为依据,在估算时把当前软件项目的情况与历史数据加以对比,从而得出最终结果。按照历史数据估算开发周期准确度还是相当高的,但这种方法只适用于对某类软件的开发,比如某
项目经理胜任力免费测评PMQ上线啦!快来测测你排多少名吧~
http://www.leadge.com/pmqhd/index.html