- 1、本文档共103页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章软件项目的时间管理 学习目标: 1、软件项目时间管理概述 2、如何估算软件开发周期 3、掌握关键路径法 4、如何安排软件项目的进度 5、如何有效地控制软件开发周期 6、软件项目进度延期的关键因素与应对措施 第一节 项目时间管理概述 案例1:请朋友回家吃“工作餐” 拌凉菜 5分钟 红烧鱼 30分钟 炒青菜 10分钟 (任务) 鸡蛋汤 15分钟 米饭 20分钟 ? 4:30 下班 (制约条件) 7:00—10:00加班 电饭煲,双头煤气灶 项目时间管理常被引述为项目冲突的主要根源。大多数IT项目超过了时间估计。 时间管理涉及的主要过程包括活动定义、活动排序、活动历时估算、进度计划制定和进度控制。 1、活动定义涉及确定为产生项目可交付成果而必须进行的具体活动 2、活动排序确定活动之间的关系或依赖关系,为了应用关键路径分析,必须进行活动排序。 3、活动历时估算对完成各项活动所花费的时间进行估算。这些时间估算包括实际工作时间加间歇时间。 4、尽管进度计划制定技术很重要,但是大多数项目的失败是由于人的问题,而不是没有画出一幅漂亮的PERT图。 第二节 软件项目开发周期的估算 一、概述 软件开发周期估算是IT人员经常提到的一个概念,那么究竟什么是软件开发周期估算呢?我们可以把它定义如下:根据软件的开发内容、开发工具、开发人员等因素对需求调研、程序设计、编码、测试等整个开发过程所花费的时间做的预测。 二、国内外软件估算比较 国内软件开发的管理目前正逐步向规范化发展,但是在开发周期的估算上绝大部分还是处于手工作坊的状态。 所谓的手工作坊指两个方面,一方面是管理人员意识上没有认识到估算的重要性 ,另一方面也没有专门的工具来辅助估算,或者说没有专门对它进行研究。 国外发达国家在软件估算上比国内要成熟的多,不仅有很多先进方法比如代码行估算法、功能点估算法、人力估算法,而且形成了专业化的估算工具来辅助这项工作,比如微软公司开发的项目管理工具软件Project,加拿大Software Productivity Center Inc.公司开发的Estimate,都是比较成熟的估算辅助工具。 三、软件估算中的因素探讨 软件开发是一项非常复杂的工程,不仅包含需求分析、设计、编码、测试、实施、维护等完整的过程,还涉及到开发工具、开发人员、项目管理、风险等众多因素,不同因素对估算产生的影响不尽相同,在进行软件估算时(包括利用工具辅助估算)必须考虑到这些方面,否则最终结果就会和实际结果有很大的偏差,影响项目控制,以下对其中几个常见的因素做一些探讨。 1、估算与软件规模 软件规模通常指的是软件的大小,这可以通过不同的方式来描述,比如程序代码行的长度、功能函数的数量、数据库中表的数量、数据库的大小等等。 表一 从表一中可以看出,模块的代码行越长,开发周期就越长,对同一开发工具而言基本是一个线形关系,但其中也要考虑代码重用问题,比如一个模块代码很长,但是可能包含了很多公用函数,那么在估算时就应适当减少代码行数量 表二 表二是软件项目的实际开发周期(不考虑系统实施),从普通意义上说软件项目中包含的功能模块越多、越复杂,或者说软件越大开发周期增长的就越快,这个时间绝不是模块开发时间的简单叠加,因为模块功能数量的增加直接带来了软模块间相互关联度、复杂度的成倍增加,这就直接导致了在需求、设计等阶段需要花费更多的时间,这比单独考虑一个模块复杂的多。 2、估算与项目风险 任何一个项目都或多或少存在风险,软件项目开发过程中也避免不了这种情况而且有这类项目自己的特点,最常见的风险有以下几种:技术风险,项目技术难度很大,花费的时间超过原先的估计;客户风险,客户需求不定,增加需求,组织协调不畅;人员风险,开发人员突然更换、离职;管理风险,项目经理管理不善、决策失误。 软件项目的潜在风险对于开发周期的影响在很多情况下是非常大的,当然好的项目控制会最大限度的减少这种影响,绝对避免是不可能的,所以在开发周期估算时项目风险应该适当考虑,尤其是技术风险和客户风险。 技术风险 技术风险主要来自于软件本身的技术难度,如果对于一套成熟的产品,定制开发的技术风险相对非常小,因为重要的技术已经成型,客户也很少有新的能带来高难度技术问题的需求,这种风险可以不予考虑。但是对于完全重新开发的项目,或是研发类的项目,技术风险必须特别重视。 客户风险 客户风险存在于客户化项目中,不同行业的客户特点不尽相同,技术、理解水平也相差甚远,在开发的项目中,大约80%的项目延期属于客户方的原因,而且这种风险可控性很低,对项目影响超过技术风险。 3、估
文档评论(0)