您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第六章软件项目的时间管理
第六章软件项目的时间管理学习目标:1、软件项目时间管理概述2、如何估算软件开发周期3、掌握关键路径法4、如何安排软件项目的进度5、如何有效地控制软件开发周期6、软件项目进度延期的关键因素与应对措施第一节项目时间管理概述案例1:请朋友回家吃“工作餐”拌凉菜5分钟红烧鱼30分钟炒青菜10分钟(任务)鸡蛋汤15分钟米饭20分钟4:30下班(制约条件)7:00—10:00加班电饭煲,双头煤气灶最长工作流程:•无项目管理经验——拌凉菜→洗鱼→烧鱼→洗米→煮饭→洗菜→炒菜→做汤。•有项目管理经验——合理的工作程序使任务提前至35分钟完成,而不是70分钟!课堂练习:请您设计一下工作流程学习目的:怎样合理的利用时间,按计划或者提前完成任务?80分70分60分50分40分30分20分10分闷米饭鸡蛋汤炒青菜红烧鱼拌凉莱6:10至6:20-6:00至6:10-5:50至6:00-5:40至5:50-5:30至5:405:20至5:305:10至5:20-5:00至5:10-时间项目1)学习项目管理前(时间坐标在上的甘特图)2)实施项目管理后--从WBS到前导图(流程图)Start010030040Finish050晚餐WBS020010WBSNetwork050040030020拌凉菜红烧鱼炒青菜鸡蛋汤焖米饭510153020035000关键路径?80分70分60分50分40分30分20分10分闷米饭鸡蛋汤炒青莱红烧鱼拌凉莱6:10至6:20-6:00至6:10-5:50至6:00-5:40至5:50-5:30至5:405:20至5:305:10至5:205:00至5:10时间项目3)实施项目管理后--快速跟进法(时间坐标在上的甘特图)项目时间管理常被引述为项目冲突的主要根源。大多数IT项目超过了时间估计。时间管理涉及的主要过程包括活动定义、活动排序、活动历时估算、进度计划制定和进度控制。1、活动定义涉及确定为产生项目可交付成果而必须进行的具体活动2、活动排序确定活动之间的关系或依赖关系,为了应用关键路径分析,必须进行活动排序。3、活动历时估算对完成各项活动所花费的时间进行估算。这些时间估算包括实际工作时间加间歇时间。4、尽管进度计划制定技术很重要,但是大多数项目的失败是由于人的问题,而不是没有画出一幅漂亮的PERT图。第二节软件项目开发周期的估算一、概述软件开发周期估算是IT人员经常提到的一个概念,那么究竟什么是软件开发周期估算呢?我们可以把它定义如下:根据软件的开发内容、开发工具、开发人员等因素对需求调研、程序设计、编码、测试等整个开发过程所花费的时间做的预测。二、国内外软件估算比较国内软件开发的管理目前正逐步向规范化发展,但是在开发周期的估算上绝大部分还是处于手工作坊的状态。所谓的手工作坊指两个方面,一方面是管理人员意识上没有认识到估算的重要性,另一方面也没有专门的工具来辅助估算,或者说没有专门对它进行研究。国外发达国家在软件估算上比国内要成熟的多,不仅有很多先进方法比如代码行估算法、功能点估算法、人力估算法,而且形成了专业化的估算工具来辅助这项工作,比如微软公司开发的项目管理工具软件Project,加拿大SoftwareProductivityCenterInc.公司开发的Estimate,都是比较成熟的估算辅助工具。三、软件估算中的因素探讨软件开发是一项非常复杂的工程,不仅包含需求分析、设计、编码、测试、实施、维护等完整的过程,还涉及到开发工具、开发人员、项目管理、风险等众多因素,不同因素对估算产生的影响不尽相同,在进行软件估算时(包括利用工具辅助估算)必须考虑到这些方面,否则最终结果就会和实际结果有很大的偏差,影响项目控制,以下对其中几个常见的因素做一些探讨。1、估算与软件规模软件规模通常指的是软件的大小,这可以通过不同的方式来描述,比如程序代码行的长度、功能函数的数量、数据库中表的数量、数据库的大小等等。表一从表一中可以看出,模块的代码行越长,开发周期就越长,对同一开发工具而言基本是一个线形关系,但其中也要考虑代码重用问题,比如一个模块代码很长,但是可能包含了很多公用函数,那么在估算时就应适当减少代码行数量表二表二是软件项目的实际开发周期(不考虑系统实施),从普通意义上说软件项目中包含的功能模块越多、越复杂,或者说软件越大开发周期增长的就越快,这个时间绝不是模块开发时间的简单叠加,因为模块功能数量的增加直接带来了软模块间相互关联度、复杂度的成倍增加,这就直接导致了在需求、设计等阶段需要花费更多的时间,这比单独考虑一个模块复杂的多。2、估算与项目风险任何一个项目都或多或少存在风险,软件项目开发过程中也避免不了这种情况而且有这类项目自己的特点,最常见的风险有以下几种:技术风险,项目技术难度很大,花费的时间超过原先的估计;客户风险,客户需求不定,增加需求,组织协调不畅;人员风险,开发人员突然更换、离职;管理风险,项目经理管理不善、决策失误。软件项目的潜在风险对于开发周期的影响在很多情况下是非常大的,当然好的项目控制会最大限度的减少这种影响,绝对避免是不可能的,所以在开发周期估算时项目风险应该适当考虑,尤其是技术风险和客户风险。技术风险技术风险主要来自于软件本身的技术难度,如果对于一套成熟的产品,定制开发的技术风险相对非常小,因为重要的技术已经成型,客户也很少有新的能带来高难度技术问题的需求,这种风险可以不予考虑。但是对于完全重新开发的项目,或是研发类的项目,技术风险必须特别重视。客户风险客户风险存在于客户化项目中,不同行业的客户特点不尽相同,技术、理解水平也相差甚远,在开发的项目中,大约80%的项目延期属于客户方的原因,而且这种风险可控性很低,对项目影响超过技术风险。3、估算与人力资源对于软件开发项目来说,人力资源是核心力量,因为软件开发不同于其它类型的项目,除了电脑它不需要利用其它工具,最终结果的产生完全取决于人脑中的知识,这也是知识经济的最大特点。软件开发周期估算前,应对开发人员定级,建议按新手、初级程序员、中级程序员、高级程序员来划分,每一级人员再评定上述三个因素,初次估算时可以假定开发人员为中级程序员,然后依据项目组实际人员的水平做修正,这样结果的精确度能大大提高4、历史数据估算法的运用依据历史数据估算软件开发周期是一种比较常见的方法,这种方法以历史软件开发周期为依据,在估算时把当前软件项目的情况与历史数据加以对比,从而得出最终结果。在实际使用历史数据估算法时,建议项目经理建立一个历史项目数据库,在库中包含以前所有项目的开发周期、项目规模、开发人员状况、客户状况等详细数据,当估算时根据当前项目的状况在库中寻找最类似的历史项目,然后再比较两个项目之间在项目规模、项目风险、人力资源之间的区别,我们假定历史项目开发周期为A当前项目的周期可以依据下列公式得出:B=A×(2×S+R+P+2×C)/6S:代表软件规模R:代表风险P:代表人力资源C:代表客户四、模块的分配一、在分配模块时,需要把握的原则和目标:1、保证项目整体的进度。2、有助于确保开发编码的质量。3、有助于提高开发编码的速度。二、模块分配和开发时间估算的步骤:1、作为项目经理划分好模块后,应先估算一下每个模块所需要的开发时间。2、召集所有开发人员,讨论模块分配和开发时间估算。3、模块分配完后,开发人员评估自己负责开发的模块所需要的时间。在此过程中应比较详细的讨论每个模块的技术实现,以便使时间的估算更加准确。4、项目经理对开发人员估算的时间进行确认。第三节进度管理的基本概念进度管理的主要过程:首先根据任务分解的结果(WBS)再进一步分解出主要的活动,确立活动之间的关联关系,然后估算出每个活动的历时,最后编制出项目的进度计划,在项目跟踪控制的时候以此为基准进行进度控制。进度的定义进度是对执行的活动和里程碑制定的工作计划日期表进度管理定义进度管理是为了确保项目按期完成所需要的过程.软件项目进度(时间)管理过程活动定义(Activitydefinition)活动排序(Activitysequencing)活动历时估计(Activitydurationestimating)任务资源估计制定进度计划(Scheduledevelopment)进度控制(Schedulecontrol)-项目跟踪活动定义(DefiningActivities)确定为完成项目的各个交付成果所必须进行的诸项具体活动活动定义活动1活动2功能1软件产品功能2-子功能2功能2功能3功能2-子功能1功能2-子功能3项目活动排序项目各项活动之间存在相互联系与相互依赖关系,根据这些关系进行适当的顺序安排前置活动(任务)---〉后置活动(任务)任务(活动)之间的关系ABAB结束-开始结束-结束AB开始-开始AB开始-结束任务(活动)之间排序的依据强制性依赖关系软逻辑关系外部依赖关系里程碑Youmustdeterminedependenciesinordertousecriticalpathanalysis第四节进度管理图示进度管理图示网络图甘特图里程碑图资源图网络图网络图是活动排序的一个输出展示项目中的各个活动以及活动之间的逻辑关系网络图可以表达活动的历时网络图图例常用的网络图PDM(PrecedenceDiagrammingMethod)优先图法,节点法(单代号)网络图ADM(ArrowDiagrammingMethod)箭线法(双代号)网络图PDM图例开始活动1活动3活动2结束PDM(PrecedenceDiagrammingMethod)构成PDM网络图的基本特点是节点(Box)节点(Box)表示活动(工序,工作)用箭线表示各活动(工序,工作)之间的逻辑关系.可以方便的表示活动之间的各种逻辑关系。在软件项目中PDM比ADM更通用PDM(PrecedenceDiagrammingMethod)-优先图法图例开始需求获取项目规划需求确认项目计划评审总体设计详细设计系统测试集成测试编码结束ADM图例总体设计需求确认需求获取系统测试集成测试编码详细设计计划评审项目规划123698754ADM(ArrowDiagrammingMethod)ADM也称为AOA(activity-on-arrow)或者双代号项目网络图,在ADM网络图中,箭线表示活动(工序\工作),节点Node(圆圈:circle)表示前一道工序的结束,同时也表示后一道工序的开始.只适合表示结束-开始的逻辑关系ADM图例-虚活动虚活动为了定义活动为了表示逻辑关系不消耗资源的12AB231AB甘特图-实例甘特图显示基本的任务信息可以查看任务的工期、开始时间和结束时间以及资源的信息。只有时标,没有活动的逻辑关系里程碑图示SpecificationDesign08/9811/98Testing02/995/99AvailableCoding9/0011/00Announce里程碑图示里程碑图示里程碑显示项目进展中的重大工作完成里程碑不同于活动活动是需要消耗资源的里程碑仅仅表示事件的标记资源图资源图05010015020025013579111315时间(周)资源(工时)系列2系列1第五节进度编制的基本方法关键路径法编制项目进度计划确定项目的所有活动及其开始和结束时间计划是三维的,考虑时间,费用和资源监控项目实施的基础,它是项目管理的基准编制项目进度计划步骤1.进度编制2.资源调整3.成本预算4.计划优化调整5.计划基线关键路径法CPM:CriticalPathMethod根据指定的网络图逻辑关系和单一的历时估算,计算每一个活动的单一的、确定的最早和最迟开始和完成日期。计算浮动时间计算网络图中最长的路径。确定项目完成时间网络图中任务进度时间参数说明最早开始时间(EarlyStart)最晚开始时间(LateStart)最早完成时间(EarlyFinish)
本文标题:第六章软件项目的时间管理
链接地址:https://www.777doc.com/doc-736545 .html