高茜gq@qlu.edu.cnSPS进度计划管理P软件项目进度计划概念1软件项目的活动2进度计划编制的计划和方法3进度计划的表达方式及进度计划编制4进度计划控制5SP凡事预则立,不预则废。据有关资料统计,在不成功的软件项目中,有50%以上是由于没有计划或计划不周密造成的。对软件开发项目,制定科学周密、切实可行的计划,并严格按照计划进行管理,才能真正发挥计划的作用。确定将要开发的软件产品。估计软件产品的规模和对软件产品的更改。软件项目的意图、范围、目的、目标。软件生命周期模型的选择。为开发、维护软件确定工作程序、方法和标准。软件项目工作量和费用的估计。重要计算机资源的使用估计。软件项目日程,包括重要事件和审查的确定。软件项目风险的确定和估计。项目的软件工程设施和支持工具计划。进度是对执行的活动和里程碑制定的工作计划日期表,以决定是否达到预期目的,是跟踪和沟通项目进展状态的依据,也是跟踪变更对项目影响的依据。进度安排一般有两种情况:一是交付日期确定,然后安排计划;二是使用资源确定,然后安排计划。跟踪检查计划的依据32作用向客户的履行承诺进度保障14管理依据个人工作指南5项目相关人员执行软件开发计划规定的任务,执行软件质量保证,检查软件质量报告。同时进行项目的跟踪和监控,为确保计划完成,项目经理应对计划进行跟踪和监控,随时掌控进度计划执行情况,解决执行过程中存在的问题。项目计划负责人与项目风险承担者一起对软件开发计划草稿进行严格的技术检查,对查出的问题提出解决方案,并对草稿做进一步的修改和更新,确定无误后,提交给部门经理,由部门经理审查后再进行修改。如果是大型项目,进度报告还要提交给总经理和技术总监审查,根据审查意见进行修改。计划初始阶段:确定一位项目经理,由项目经理对可行性研究报告、招标投标文件、合同等初期材料进行分析,明确初始需求,对规模、成本、时间、质量等需求进行初步估计,指明项目的初始风险和限制,收集初始计划数据,成立计划组并且制定计划负责人,计划负责人通常由项目经理担任。制定进度计划阶段:开发过类似项目,选择制定计划的样本,分析案例存在的问题,提出修改意见,把开发计划样板修改成适合本项目的软件开发进度计划;未开发过类似项目,选择进度计划的编制方法,根据编制规程进行编制,提交软件进度计划草稿。必须严格执行进度计划,如果确实因计划不合理而不能执行,要及时向项目经理提出意见。项目经理根据开发人员提出的意见,找出进度计划和执行情况的差距,找出造成差距的原因,对计划提出修改意见,估计改进后的效果,为重新修订软件进度计划提供根据。根据进度计划修改意见,分析过程改进后的影响,决定是否需要对进度进化进行修改,提交进度计划问题报告和修改意见。主管人员同意修改后,项目经理根据修改意见进行修改,并提交给相应的主管人员。软件项目进度计划概念1软件项目的活动2进度计划编制的计划和方法3进度计划的表达方式及进度计划编制4进度计划控制5SP项目范围通常指项目产品的规模和产生该产品要做工作的规模。在产品范围保持不变的情况下,三角形的三条边,资源、时间、质量相互依赖,相互牵制。确定工作范围,就是根据划定的产品功能,分配资源并制定详细的工作计划。完成一个软件项目,无论规模大小,都必须完成一些特定的内容和工作,需要开展一系列具体工作—活动(一个具体的任务)定义活动的输入工作分解结构。范围描述。历史资料。约束条件。假设条件。定义活动的方法分解。WBS细分参考模板。(活动清单)定义活动的输出活动目录。(活动清单)细节说明。WBS的更新。活动排序过程就是确定活动间的相关性,某个活动的执行必须依赖于某些活动的完成。指活动之间本身存在、无法改变的逻辑关系,也称为硬逻辑关系。这种逻辑关系是活动之间存在的内在关联,是由客观规律或物质条件的限制造成,确定起来较为容易,通常由技术人员和管理人员交流即可完成。是指人为组织确定的,两项活动可先可后的组织关系,也称为软逻辑关系。通常取决于项目管理人员的知识和经验是指本项目活动与非本项目活动之间的依赖关系(制约和影响)。例如软件项目测试活动依赖与外部提供的硬件环境设备活动排序:是通过识别项目活动清单中各项活动的相互关联与依赖关系,并据此对项目各项活动的先后顺序进行合理安排与确定的项目时间管理工作。通常采用网络图的形式来表示活动间的依赖关系前导图法,或者结点图,单代号网络图结点表示活动(工序,工作)箭线表示各活动(工序,工作)之间的逻辑关系可以方便的表示活动之间的各种逻辑关系虚活动是为了表明相互依存的逻辑关系,消除活动与活动之间含混不清的现象而设置的,它既不消耗资源,也不占用时间。用一个虚箭头表示。仅仅表示工作的优先次序,所以被称为“虚活动”。前导图法箭线图法项目网络图—表明活动及其依赖关系的示意图。对于大型项目,可以只画出主要活动,也可以画出分层网络图;对于小型项目,可在一张图上表明全部活动及其关系。更新的活动清单—通过对活动之间依赖关系进行分析和确认,对系统认识进一步加深,可能要对某些活动重新分解和定义。活动紧前活动工期估计:天1需求分析计划—32流程优化173编写需求规格词汇表224绘制业务流程225抽象业务类426建立数据模型527将分析图示加入规格说明文档3,618需求规格测试739需求规格确认83软件项目进度计划概念1软件项目的活动2进度计划编制的计划和方法3进度计划的表达方式及进度计划编制4进度计划控制5SP通过条状图来显示项目进度,以及其它与时间相关的、系统进展的内在关系随着时间进展的情况。横轴表示时间,纵轴表示活动。线条表示在整个期间上计划和实际的活动完成情况。可以直观地表明任务计划在什么时候进行,以及实际进展与计划要求的对比。管理者可以方便地弄清楚每一项任务还剩下哪些工作要做,并可评估工作提前、滞后还是正常进行。明确项目牵涉到的各项活动、任务。创建甘特图草图。确定项目活动依赖关系及时序进度。计算单项活动任务的工时量。确定活动任务的执行人员及适时按需调整工时。计算整个项目时间。根据软件工程的原理和方法,按照需求分析、软件设计、编码、调试以及试运行的各个步骤安排进度计划,各个步骤的工作通常是交叉进行的。调研。需求分析。设计、代码编写、试运行等阶段时间较长,因为系统涉及多个子系统,要逐个实施。培训与试运行同时进行。三房装修设计主卧客卧婴儿房施工主卧客卧婴儿房现在要装修这三间房,施工队吃住在你家。装修标准还是多快好省(暂不考虑厅、厨、卫)这两周怎么办?施工队吃住在你家,用你的水电煤气,不干活还要白拿工钱啊!还有没有好办法?让设计师加班,提前两周完成设计,以保证不耽误施工队连续作业(注意支付加班费的合理性问题)让施工队晚两周进驻你家开始干活现实中的项目大多非常复杂,尤其是任务存在复杂的逻辑关系时难以有效地运用甘特图来表达和展示。甘特图部分地反映了项目管理的三重约束,但其主要关注进度管理。甘特图并不能准确反映项目规模及各活动的相对规模。软件不足。如果改变进度,整个图形的形状就改变了,必须重新绘制。PERT(ProgramEvaluation&ReviewTechnique)PERT可以估计出整个项目在某个时间段内完成的概率。构造PERT图,需要明确三个概念:事件、活动和关键路线。事件表示主要活动结束的点;活动表示从一个事件到另一个事件的过程;关键路线是PERT网络中花费时间最长的时间和活动的序列。开发一个PERT网络为五个步骤:确定完成项目必须进行的每一项有意义的活动,完成每项活动都产生事件或结果。确定活动完成的先后次序。绘制活动流程从起点到终点的图形,结果为一幅箭头线流程图,称为PERT网络。估计每项活动的完成时间。制定每项活动开始日期和结束日期的全部工作的日程计划。事件活动活动内容PERT对各个项目活动的完成时间按三种不同情况估计:乐观时间——任何事情都顺利的情况下,完成某项工作的时间。最可能时间——正常情况下,完成某项工作的时间。悲观时间——最不利情况下,完成某项工作的时间。假定三个估计服从β分布,由此可算出每个活动的期望值:作业:指任何消耗时间或资源的行动。逻辑关系:也称依赖关系,表明作业之间的先后顺序关系。路线:指PERT网络图中,从最初作业到最终作业,由各项作业通过逻辑关系连贯组成一条路。紧前作业紧后作业紧后作业路的长度是指完成该路中的各项作业持续时间的长度之和紧前作业最早结束时间紧后作业最迟开始时间机动时间6-57-4最早开始时间最早结束时间在PERT网络图中,两种作业需要特别注意:一种是大量作业都依赖的作业,这类作业延期会造成后续很多作业开始时间延迟,甚至无法进行。如本例中作业C。另一种是依赖于大量作业的作业,这类作业的开始取决于很多作业如期完成,风险较大。本例中作业M。对于网络图上有较大延迟时间的作业,并不一定是越早开工越好,有时却是越晚开工越好。软件项目进度计划概念1软件项目的活动2进度计划编制的计划和方法3进度计划的表达方式及进度计划编制4进度计划控制5SP甘特图或条型图带有日历的项目网络图时间坐标网络图里程碑事件表难以表达任务间错综复杂的关系。通常作为高层管理人员掌握项目的进展情况项目任务列表软件项目进度计划需要安排所有与该项目有关的活动,但在软件项目开发中,所有活动并不是完全独立、顺序进行的,有些活动是可以并行的。制定项目进度计划时,必须协调这些并行的任务并且组织这些工作,以使资源的利用率达到最优化,同时还必须避免由于关键路径上的任务没有完成而导致整个项目推迟。注重对项目的了解注重项目计划的层次性注重历史数据的运用和积累注重用过程化的思想指导开发注重综合性及互相影响性掌握所在组织信息:包括组织结构图、各部门职能、各关键部门经理和部门成员,并尽可能认识这些人掌握市场信息:包括本行业新产品和新技术发布、竞争对手情况、竞争对手的主要客户群信息掌握历史项目信息,尤其需要注意以往项目实施过程中出现的问题记录和解决方法掌握客户信息:特别要清楚客户对时间、进度和效果等方面的要求。高级计划是项目的早期计划,主要进行项目的阶段划分,包括人、财、物等三个要素。大的阶段交替之前要做好下一阶段的详细计划,称为分段计划。阶段计划要确定各项任务负责人、开始和结束时间、设备资源、任务之间的依赖关系、里程碑等。开发人员的个人计划是最低计划可由开发人员根据自己的任务自行制定要充分利用以往类似软件项目的历史数据。成功项目的数据具有参考价值,失败项目的数据具有借鉴作用。5个级别的软件过程成熟度:初始级、可重复级、已定义级、已定量管理级、优化级。当前大多数企业都难以达到2级及以上等级的能力水平,但至少要具备过程化的思想。软件项目计划制定的参与者应是项目所有干系人,包括客户、公司高层领导和项目组成员。审查计划最好让客户代表参与,以便于及时解决问题。工作分解建立网络图估算活动持续时间为任务分配资源并进行平衡确定管理支持性任务约束条件提前或滞后要求其他准备项目管理软件计划编制模板法关键路径法持续时间压缩法项目进度计划制定项目进度计划依据说明更新的项目管理资料软件项目进度计划概念1软件项目的活动2进度计划编制的计划和方法3进度计划的表达方式及进度计划编制4进度计划控制5SP软件项目的不确定性项目内容的隐蔽性和分散性不能处理好计划与变化的关系没养成按计划工作的习惯项目经理的权力过小需要对大量信息进行正规化收集和管理,这些信息包括谈话、信件、电话、电传、电子邮件、设计说明等。所有会议都应有正式记录文件、备忘录、会议记录中的事项必须说明由谁处理所有重要问题必须有书面材料所有来往信件和电函都应编号存档保存完整档案工作报告应是由底向上逐层汇总而成,各成员汇报给组长,组长汇总后汇报给执行业务经理(如软件经理、评审经理、测试经理等),执行业务经理汇总后汇报给项目经理,项目经理汇总后在汇报给项目总监和总经理工作报告应