用户名 密码 联盟服务 关于我们 联系方式 收藏本站
返回网站首页 PgMP认证,美国项目管理协会高端项目管理认证!大型项目与项目群管理Program Management全球权威认证


网站登录:会员 企业 专家 服务商
企业服务:PMP培训  内训课 公开课
工 具 箱:发表文章 提问题 发案例
首页动态 | 文库 | 下载 | 书架 | 访谈 | 专栏 | 专题 | 人才 | 培训 | 软件 | PMC 互动:活动 | 案例 | 问答 | 论坛 | 博客 | 圈子 
应用:基础工程软件制造活动研发  认证:PMPNPDPACPPgMPIPMPP2ISPMPIMCP建造师MPM  特色:热点奖项

PMI-ACP®认证

适合敏捷开发项目
敏捷项目管理最佳实践

网络课程

PMI-PBA®认证

重视项目商业分析
商业价值与需求分析能力

网络课程

NPDP®认证

产品管理国际认证
全球产品管理最佳实践

网络课

PMP®认证

单项目管理经典指南
年轻项目经理首选

北京 | 直播 | 录播

PgMP®认证

大型复杂项目全球标准
定位高级项目管理层

网络班

PfMP®认证

链接战略与项目
实现组织资源投资回报

全球直播

软考项目管理

信息系统项目管理师
系统集成项目管理工程师

计划 | 报名 | 经验

敏捷项目管理ACP认证培训
国际产品经理NPDP认证

软件开发周期估算及探讨

作者:陈蔚力   提交人:grhy-chenweili[陈蔚力]   属性:提交人转载   发布时间:2003/4/9   点击:16852   【收藏本文
1.概述

www.mypm.net

    软件开发周期估算是IT人员经常提到的一个概念,那么究竟什么是软件开发周期估算呢?我们可以把它定义如下:根据软件的开发内容、开发工具、开发人员等因素对需求调研、程序设计、编码、测试等整个开发过程所花费的时间做的预测。在这个定义中,“预测”两个字非常关键,它突出体现了估算的含义,同时也隐含表明了结果的不确定性。有效的软件开发周期估算在软件开发中是非常困难的工序之一,之所以说困难,是因为软件开发所涉及的因素不仅多而且异常复杂,即便是及其类似的软件项目也不能完全照搬,在估算的把握上有一定难度。估算也是软件开发中很重要的一个环节,如果低估项目周期会造成人力低估、成本预算低估、日程过短,最终人力资源耗尽,成本超出预算,为完成项目不得不赶工,影响项目质量,甚至导致项目失败。项目周期估计过长表面看来影响不大,但是实际上也会带来成本估计过高,人力资源利用不充分效率低下的后果。无论哪种情况对于项目经理控制整个项目都会带来很大影响,周期估算如同盖楼房中打地基,是后续工作的基础,它完成质量的好坏所带来的影响会贯穿整个项目,由此可见开发周期正确估算的重要性。 项目管理者联盟

2.国内外软件估算比较
    国内软件开发的管理目前正逐步向规范化发展,但是在开发周期的估算上绝大部分还是处于手工作坊的状态。所谓的手工作坊指两个方面,一方面是管理人员意识上没有认识到估算的重要性,认为估算就是一个大概的估计,很多还受限于商业行为,比如为了签订合同而不惜减少开发工作量却未经任何评审;另一方面也没有专门的工具来辅助估算,或者说没有专门对它进行研究。一个软件开发周期究竟要多长基本上是依靠经验来判断,不同经验的人估算出的周期相差很大,而更糟糕的是这种开发周期的判断由于完全凭借经验使得不同意见的人之间很难沟通,因为谁都没有确切的量化标准来支持自己的判断,最终的结果往往是以“专家”的估算为准。这就有些类似于中式烹调,放多少作料没有依据,一般都是“少许”,这个“少许”靠的就是经验,高级厨师和新手根据这个量炒出的菜味道可能差得很远;实际上国内的软件开发需要的正是定量估算,这样做不仅规范而且精确,十分有助于软件事业的健康发展以及与国际接轨。项目管理者联盟

    国外发达国家在软件估算上比国内要成熟的多,不仅有很多先进方法比如代码行估算法、功能点估算法、人力估算法,而且形成了专业化的估算工具来辅助这项工作,比如微软公司开发的项目管理工具软件Project,加拿大Software Productivity Center Inc.公司开发的Estimate,都是比较成熟的估算辅助工具。Project采用了自下而上的估算法,Estimate更是属于专业化工具,包含常用的各种估算方法、校正方法,使用了Putnam Methodology、Cocomo II和 Monte Carlo Simulation几种成熟算法,估算结果除了项目花费时间、人力,还包括十几种分析报告以及模拟发散图、计划编制选项图、人力图、预计缺陷图、缺陷方差图等等,从各种不同角度辅助管理人员进行分析。bbs.mypm.net

    采用辅助工具对软件开发周期进行估算具有明显的优势,这些辅助工具是在大量不同类型项目数据研究的基础上总结开发出来的,采用的算法、估算的方法已经很成熟,估算结果的准确性有保障,由于这种估算是可以量化的,并非依据个人经验直接得出一个结果,在结果的评审上有据可依。长期依靠工具辅助估算可以将大量项目的数据和估算结果积累形成历史经验库,知识成果得以保存,便于以后利用。项目管理者联盟

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


3.1估算与软件规模
    软件规模通常指的是软件的大小,这可以通过不同的方式来描述,比如程序代码行的长度、功能函数的数量、数据库中表的数量、数据库的大小等等。一般而言软件规模越大,所花费的开发周期就越长,但这并不是一个简单的线形函数关系,下表详细列举了实际开发中的一些数据,开发平台为Lotus Domino/Notes。www.mypm.net

表一
单个模块的开发周期training.mypm.net

序号 模块 开发周期(中级程序员) 代码行长度 数据库大小(无数据)
1. 办事指南 0.25人月 300 1170K
2. 名片簿 0.25人月 300 1039K
3. 合同管理 0.25人月 460 2110K
4. 物控管理 0.5人月 850 2560K
5. 组织机构 0.5人月 900 1318K
6. 流程管理 0.8人月 1000 2304K
7. 公告板 0.5人月 1400 2560K
8. 人事管理 1人月 1800 3840K
9. 公文管理 1.8人月 2500 2304K
10. 事务审批 1.5人月 3750 2110K
11. 考勤管理 1.8人月 4800 3840K
12. 资源管理 1.8人月 5800 3840K
13. 会议管理 2.5人月 11000 4608K项目管理者联盟

表二
软件项目的开发周期项目管理者联盟

软件项目 开发周期 包含的模块 备注
某政府客户 3个人月 10个 定制开发量较小
某媒体客户 6个人月 17个 有3个模块完全重新开发
某金融客户 10个人月 14个 80%完全重新开发
某保险客户 16个人月 18个 完全重新开发项目管理者联盟

     从表一中可以看出,模块的代码行越长,开发周期就越长,对同一开发工具而言基本是一个线形关系,但其中也要考虑代码重用问题,比如一个模块代码很长,但是可能包含了很多公用函数,那么在估算时就应适当减少代码行数量,表中会议管理就是个例子,这个模块的代码行超过一万行,但其中公共函数很多,去除此因素,真正的代码行在9000行左右。service.mypm.net

     表二是软件项目的实际开发周期(不考虑系统实施),从普通意义上说软件项目中包含的功能模块越多、越复杂,或者说软件越大开发周期增长的就越快,这个时间绝不是模块开发时间的简单叠加,因为模块功能数量的增加直接带来了软模块间相互关联度、复杂度的成倍增加,这就直接导致了在需求、设计等阶段需要花费更多的时间,这比单独考虑一个模块复杂的多。在表二中随着模块数量增加,开发周期增加不是特别明显,这是因为产品化程度高所引起的,由于相当数量的模块可以完全重用,实际开发量大大减少,最后一个例子完全重新开发,开发周期就长的多。项目管理者联盟

    在实际进行软件开发周期估算的时候,软件规模肯定是首先考虑的因素,根据我们上面所讨论的情况,在考虑软件规模时一定要去除可重用的部分,由于当今软件在设计上很重视这点,所以这部分会占相当的比重。另外软件功能之间的关联所造成的复杂性必须足够重视,这样在估算上就不会产生重大偏差。PgMp.mypm.net


3.2估算与项目风险
    任何一个项目都或多或少存在风险,软件项目开发过程中也避免不了这种情况而且有这类项目自己的特点,最常见的风险有以下几种:技术风险,项目技术难度很大,花费的时间超过原先的估计;客户风险,客户需求不定,增加需求,组织协调不畅;人员风险,开发人员突然更换、离职;管理风险,项目经理管理不善、决策失误。对于风险控制,在项目管理中通常是提前做风险分析和预测,制定风险应对措施,这样在风险真的来临时不至于措手不及,提高整个项目的可控性。项目管理者联盟

    软件项目的潜在风险对于开发周期的影响在很多情况下是非常大的,当然好的项目控制会最大限度的减少这种影响,绝对避免是不可能的,所以在开发周期估算时项目风险应该适当考虑,尤其是技术风险和客户风险。项目管理者联盟

    技术风险主要来自于软件本身的技术难度,如果对于一套成熟的产品,定制开发的技术风险相对非常小,因为重要的技术已经成型,客户也很少有新的能带来高难度技术问题的需求,这种风险可以不予考虑。但是对于完全重新开发的项目,或是研发类的项目,技术风险必须特别重视,其中应该考虑的细节主要包括下面几个。项目管理者联盟

    开发平台,是否能适合本项目所涉及的软件开发、能否满足最终的需求,平台的错误选择将导致庞大的开发工作量,即便满足了用户需求也可能造成系统效率低下,扩展性差的致命问题,软件可能会很快被淘汰。功能实现难度,在切实了解需求的基础上要仔细分析采用的开发工具能否实现其中的难点,是否会耗费大量时间。项目管理者联盟

    在实际估算中,建议技术难度分为十级,每一级在初次估算的代码行上增加10%,最终估算代码长度=初始估算代码长度×(1+0.1×n)。假设模块A的初次估计代码行为15000行,但考虑技术难度高的风险,设定技术难度级别为二级,最终代码行的估算数量为15000X(1+20%)=18000。项目管理者联盟

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

    客户风险存在于客户化项目中,不同行业的客户特点不尽相同,技术、理解水平也相差甚远,在我经历开发的项目中,80%的项目延期属于客户方的原因,而且这种风险可控性很低,对项目影响超过技术风险。在开发周期估算前,项目经理要仔细分析客户的具体状况,包括客户的计算机水平、管理水平、可沟通程度,在此基础上结合以往的经验综合判断是否会对开发带来明显的影响,可以按照上述的技术风险的方式将客户分级,最终确定开发周期。在这个过程中,项目经理的经验极其重要,对客户的分析基本上要依赖经验做判断,要求管理人员有大量的客户经验和行业分析能力。项目管理论坛


3.3估算与人力资源
     对于软件开发项目来说,人力资源是核心力量,因为软件开发不同于其它类型的项目,除了电脑它不需要利用其它工具,最终结果的产生完全取决于人脑中的知识,这也是知识经济的最大特点。项目管理者联盟

     人力资源对估算的影响表现在技术水平、理解能力、沟通能力等几个方面,编程水平的高低、速度的快慢、能否适应团队、能否与各成员保持良好的沟通都会对开发进度产生影响,其中技术水平是最关键的因素。评价程序员的技术水平可以从编程熟练程度、编程速度、解决技术问题的能力几个因素考虑,编程熟练程度指的是程序员能否很顺畅的使用编程工具实现软件的功能,编程速度指的是完成某个功能的时间,解决技术问题的能力可以反映程序员在遇到技术难点时表现出的技术功底,如果以100%作为总和,这三个因素分别占70%、15%和15%这样的比例。项目管理者联盟

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

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


<<上一页 1 2 下一页>>
项目管理者联盟PMP认证中心
[发表评论]
本站热点
· 华师大CTO学院:科创生态建设与创新项
·宏发电声江玫瑰谈PgMP:“下好一盘棋”
·PgMP:交付能力与创造未来的项目管理方
·开放讲座|《项目组合管理与PfMP认证》
·开放讲座|项目组合管理与PfMP认证
·开放讲座|PgMP:项目管理思维与方法论
·开放讲座|《项目组合管理与PfMP认证》
·网络讲座|《项目组合管理与个人职业发展》
·开放讲座|《项目组合管理与PfMP认证》
栏目说明
    《文库》栏目为项目管理者联盟网站核心栏目,收录了十大行业项目管理文章5000余篇,囊括了项目管理五个阶段、九个知识领域的相关文章,是广大项目管理爱好者学习的知识库,欢迎大家发表原创文章、转贴文章,或直接发给编辑。须联盟会员且登陆后才能发表文章。
敏捷项目管理ACP培训
项目管理活动
活动QQ群:531390275
免费积累PDU,仅500人

2022年项目管理活动计划
2021活动精彩回顾
原创排行榜
 项目管理评论杂志 311 高扬 106
 乔东 100 项目管理 84
 高国伟 61 人月神话 60
 张为 59 郭致星 52
 蒋昕炜 46 肖杨 38
 曾伟强 37 潘德有 36
搜索文章
关键词:
行  业:
团 队   成 本   风 险   进 度
沟 通   采 购   质 量   合 同
更多>> 专题集锦

企业项目化管理

PMO实践与应用

如何处理项目客户关系

更多:
经理访谈
更多:
个人专栏

王树文

赵春明

高国伟

更多:
项目管理者联盟特刊
联盟特刊是对网站会员发行的内部刊物,刊物内容包括:案例及分析等,得到了会员好评。
电子期刊:
特刊下载:
2017合刊  2016合刊  2015合刊 
2014合刊  2010合刊  2009合刊 
2008合刊  2004合刊  2005合刊 
2006合刊  2007合刊       
施工企业管理
《施工企业管理》创刊于1986年1月,中国施工企业管理协会主办,是反映施工企业管理杂志。
浏览往期:
建造师杂志
《建造师》杂志由清华国际工程项目管理研究院主办,是中国面向建设企业管理人的高端杂志。
浏览往期:
更多>> 推荐文章
09-02·项目集管理:构想一种不同.
08-17·项目经理“催活儿”的正确.
08-17·建筑工程项目管理中施工现.
08-17·进阶项目经理必备的复盘方.
08-17·项目管理协会PMI发布新人才
08-17·互联网大厂项目经理面试的.
08-17·项目经理要如何提高自己的.
08-17·管理改进中几个确实有用的.
08-17·项目经理提升职场能力的20.
06-14·项目经理搭建团队,需要看.
06-14·5A学员董雏:PMP取证重要,
06-14·成功管理能源项目的技巧和.
06-14·拥抱敏捷—计划发布与冲刺
06-14·从PMP到PgMP :不畏浮云遮.
06-14·这30+项目管理工具,优秀项
06-14·深度剖析项目管理五大痛点.
关于联盟 | VIP会员 | 培训服务 | PMP认证 | PgMP认证 | 刊物出版 | 沙龙会议 | 人才服务 | 广告投放 | 联系我们 | 友情链接

项目管理者联盟 版权所有 | 京ICP备10055250号-11 | 京公网安备 11010202009440号

如转载本站文章,必须于文章开头处注明转自“项目管理者联盟”,并注明原作者
PMI,Project Management Professional, OPM3, PMBOK, PMP,PgMP,PfMP,PMI-ACP,PMI-PBA
and the PMI Registered Education Provider logo are registered trademarks of the Project Management Institute, Inc.