信息化热点活动

· 2007中国电子政务论坛将于..
· 2007RFID技术应用交流研讨..
· 北京大学第四届CIO班
· e-works发布中国制造业信..
· 中国农业网站百强评选活动..
· 国内远程接入行业首届渠道..
· e-works制造业信息化沙龙..
· 2006金融业全面竞争与创新..
  >>>更多热点活动

信息化精彩专题
直播:2007中国物流企业信息化推进大会
刘思源:中国软件走向成功的两条路
· 十年轮回再演争夺战——SOA市场谁领风骚
· 问鼎2006谁是真英雄——《IT时代周刊》年会
· 王康弘:GIS技术解析以及国内GIS发展现状
· 中小制造企业ERP实施系列专题——选型篇
· 赛迪网直播:行业信息化知识库建设高峰论坛
  >>>更多信息化专题

信息化情报中心

· 中国项目管理软件市场研究报告
>>>更多信息化情报

信息化供需交流

用户名:
密  码:

信息化社区话题


信息化博客导读

用户名:
密  码:

当前位置首页 >> 中国信息化 >> 文章 关键字:项目管理;软件

怎样估算软件项目周期
作者:陈蔚力 PMP 来源:中国计算机用户 字体[放大标准缩小]
 

  编者按:软件开发非常复杂,不仅包含需求分析、设计、编码、测试、实施、维护等不同的子过程,还涉及到开发工具、开发人员、项目管理、风险等众多因素,不同因素对估算产生的影响不尽相同。这里我们对几个常见的因素做一些探讨。

  项目是指以一定的成本在一定时间内取得预期收益的系列活动。项目的“生命期”是管理项目的重要指标,而对项目周期的估算则是管理项目的重要一环。本期“项目管理”介绍对软件项目周期进行估算的技巧。

  估算是软件开发中很重要的一个环节:项目周期估算过短会造成人力低估、成本预算低估、日程安排过短,最终人力资源耗尽,成本超出预算,为完成项目不得不赶工,影响项目质量,甚至导致项目失败;项目周期估计过长表面看来影响不大,但是实际上也会带来成本估计过高、充分效率低下的后果。周期估算如同盖楼房中打地基,是后续工作的基础,它的影响会贯穿整个项目。

  但软件开发是一项非常复杂的工程,不仅包含需求分析、设计、编码、测试、实施、维护等不同的子过程,还涉及到开发工具、开发人员、项目管理、风险等众多因素,不同因素对估算产生的影响不尽相同。在进行软件估算时(包括利用工具辅助估算)必须考虑到这些方面,否则估算结果就会和实际结果有很大的偏差。下面,我们对几个常见的因素做一些探讨。

软件规模是项目估算的基础

  软件规模通常指的是软件的大小,可以通过程序代码行的长度、功能函数的数量、数据库中表的数量、数据库的大小等要素来描述软件规模。一般而言,软件规模越大,所花费的开发周期就越长。但这并不是一个简单的线性函数关系,也要考虑代码重用问题。比如一个模块代码很长,但是可能包含了很多公用函数,那么在估算时就应适当减少代码行数量。

  软件项目中包含的功能模块越多、越复杂(或者说软件越大),开发周期越长。这个时间绝不是模块开发时间的简单叠加,因为模块功能数量的增加直接带来了软件模块间相互关联度、复杂度的成倍增加,这导致了在需求、设计等阶段需要花费更多的时间,比单独考虑一个模块复杂得多。另一方面,对于产品化程度高的项目开发,随着模块数量增加,开发周期的增加却不是特别明显。这是因为相当数量的模块可以完全重用,实际开发量大大减少。

  所以,在实际进行软件开发周期估算的时候,软件规模肯定是首先考虑的因素。具体估算时,在考虑软件规模时要去除可重用的部分。另外,软件功能之间的关联所造成的复杂性也必须足够重视。

风险影响周期

  任何一个项目都或多或少存在风险,软件项目开发过程中也避免不了这种情况而且有自己的特点。最常见的风险来自于:技术、客户、项目人员等方面。开发周期估算时项目风险应该适当考虑,尤其是技术风险和客户风险——

  技术风险 技术风险主要来自于软件本身的技术难度。对于一套成熟的产品,定制开发的技术风险相对非常小,因为重要的技术已经成型,客户也很少有新的、能带来高难度技术问题的需求,这种风险较小。但是对于完全重新开发的项目,或是研发类的项目,技术风险必须特别重视。以开发平台为例,开发平台必须适合本项目所涉及的软件开发、满足最终的需求,平台的错误选择将导致庞大的开发工作量,即便满足了用户需求也可能造成系统效率低下、扩展性差的致命问题,软件可能会很快被淘汰。

  在实际估算中,建议将技术难度分为十级,每一级在初次估算的代码行上增加10%,

  最终估算代码长度=初始估算代码长度×(1+0.1×n)

  假设模块A的初次估计代码行为15000行,但考虑技术难度高的风险,设定技术难度级别为二级,最终代码行的估算数量为15000×(1+20%)=18000。

  由于技术风险的分析是一项技术性很强的工作,要求做技术风险分析的人必须是技术专家,在相关技术领域有着丰富的经验。对重大技术风险的分析结果必须要经过评审,保证准确性。

  客户风险 客户风险存在于客户化项目中,客户行业特点不尽相同,技术、理解水平也相差甚远。在我经历开发的项目中,80%的项目延期是由于客户方的原因,而且这种风险可控性很低,对项目影响超过技术风险。

  在开发周期估算前,项目经理要仔细分析客户的具体状况,包括客户方的计算机水平、管理水平、可沟通程度,在此基础上结合以往的经验综合判断是否会对开发带来明显的影响,可以按照上述的技术风险的方式将客户分级,最终确定开发周期。在这个过程中,项目经理的经验极其重要,对客户的分析基本上要依赖经验做判断,要求管理人员有大量的客户经验和行业分析能力。

项目团队影响速度

  对于软件开发项目来说,人力资源是核心力量。人力资源对估算的影响表现在技术水平、理解能力、沟通能力等几个方面。项目技术人员编程水平、工作效率、团队适应性、沟通能力等素质,都会对开发进度产生影响,其中技术水平是最关键的因素。评价程序员的技术水平可以从编程熟练程度、编程速度、解决技术问题的能力等几个因素考虑:编程熟练程度指的是程序员使用编程工具实现软件的功能的熟悉程度;编程速度指的是完成某个功能的速度;解决技术问题的能力可以反映程序员的技术功底—如果以100%作为总和,这三个因素分别占的合适比例为70%、15%和15%。

  软件开发周期估算前,应对开发人员定级,建议按新手、初级程序员、中级程序员、高级程序员来划分,每一级人员再评定上述三个因素。初次估算时可以假定开发人员为中级程序员,然后依据项目组实际人员的水平做修正,这样结果的准确度能大大提高。

宝贵的经验

  依据历史数据估算软件开发周期是一种比较常见的方法,这种方法以历史软件开发周期为依据,在估算时把当前软件项目的情况与历史数据加以对比,从而得出最终结果。

  按照历史数据估算开发周期的准确度还是相当高的,但这种方法只适用于对某类软件的开发,比如某个行业业务系统的开发。当要估算的软件与历史软件相差太多,比如开发工具完全不同、或者项目类型完全不同,就不能再依赖这种方法,最起码应该辅助使用其它估算法。如果没有历史数据或是开发一种新领域软件,可以使用代码行或功能点估算法,在此基础上再通过其它方法校正。

  在实际使用历史数据估算法时,建议项目经理建立一个历史项目数据库。在库中包含以前所有项目的开发周期、项目规模、开发人员状况、客户状况等详细数据。当估算时根据当前项目的状况在库中寻找最类似的历史项目,然后再比较两个项目之间在项目规模、项目风险、人力资源之间的区别,我们假定历史项目开发周期为A,当前项目的周期可以依据下列公式得出:

  估算项目周期 = A×(2×S+R+P+2×C)/6

  S:代表软件规模 R:代表风险 P:代表人力资源 C:代表客户

  (以上值均指当前项目与历史项目的比率)

  实际的比较因素应该不止这些,但软件规模、风险、人力资源及客户状况是其中最重要的,对软件开发的影响也最大,所以这个公式中只考虑了这些因素。其中软件规模和客户两项占的权重最大,这也是根据项目管理经验得出的,在实际使用历史数据估算法时还可以灵活加入其它因素。

请察看更多信息化精彩专题!
请进入“管理体验”栏目查看更多文章

(责任编辑 丝丝


 
你会解决问题吗?
信息化案例库

投稿信箱:industry@staff.ccidnet.com 信息化热线:010-88558930
打印】 【发给朋友】 【将本文用短信转发给好友
·相关文章· ·成功案例·
· 抢鲜体验:《豪杰超级解霸3000·英雄版》..
· 02年集成电路产量大增 软件销售破1100亿
· 迈好软件开发规范管理第一步:软件配置管..
· 走进我国IT业的项目管理培训
· 项目需求阶段的监理角色和方法论
· 软件企业如何赢取亚太区ISV市场?
· 长春烟草物流中心:适用的才是最好的
· ERP实施案例:耐德山花业务优化五步曲
· 新奥集团:10个月让大象起舞
· 50万美元换来的CRM噩梦
· 浙江财经学院打造数字校园成功案例
· 走近中国本土制造业的ERP系统
·技术新闻· ·IT商业导购·
· 绿盟科技首家通过ISO 27001国际认证
· Vista又现严重漏洞 保持警觉采取措施
· 金蝶Apusic全国铺开渠道战略
· 评测:聪明的万能 暴风影音2.0全新体验
· 黑客正在利用微软漏洞大规模入侵电脑
· 中国万网推出国内首家域名交易中心
· 相当超值 宏基AG促销加一元还送电视棒
· Acer PC进驻宏图三胞 开展特惠促销
· 比激打价更低 2千以下激光一体机推荐
· 心跳价 夏普强悍便携机跌破万元大关
· 明基中端商务投影机售价7888元还送礼
· PD925双核配17英寸LCD整机 仅售6849元

*姓  名: 更多资料 了解方案 认识厂商
*单位名称:
*联系电话:
*电子邮件: