1第九章进度管理主讲人:李新山东大学计算机科学与技术学院个体软件过程作者:WattsS.Humphrey瓦茨·S·汉弗莱人民邮电出版社计算机科学与技术学院2学习目的与要求了解如何制订进度表使用进度表来跟踪作业的进展情况计算机科学与技术学院3内容提要6.用积分跟踪项目的方法4.检查点的概念2.Gantt图1.介绍进度管理的必要性3.如何制订项目进度表5.跟踪项目计划的一个具体实例计算机科学与技术学院4重点与难点重点检查点的概念Gantt图难点跟踪积分计算机科学与技术学院59.1进度管理的必要性思考:什么是进度?你接触过进度管理吗?请举例说明制订作业进度的目的是完成委托。当同一时间内要完成多个委托时,就需要有一份进度表。当任务变得庞大复杂、作业量增加、或者进度受到限制时,就需要更加复杂的时间管理方案。项目越大,时间的安排就越重要计算机科学与技术学院6一个进度管理的实例本学期,同学们学习java编程和PSP两门课,现在java老师要求你在三周内完成一个程序;PSP老师要求你在四周内完成一篇关于PSP的论文,第一周交提纲,第四周交论文。假定你估计编程大约需要5小时,但编程需要特殊系统,每天只能使用该系统1小时。完成PSP论文需要15小时。约束:一周最多有5小时可支配时间。你该怎样安排工作时间?计算机科学与技术学院7任务1(java编程)截止期:21天执行时间:5小时1小时/天任务2(PSP论文)截止期:28天执行时间:15小时约束:前7天5小时,后21天10小时人每周工作5小时问题:怎样安排时间完成任务1和2?计算机科学与技术学院89.2Gantt图进度是按时间顺序计划活动的一个列表,我们称之为甘特(Gantt)图甘特图的组成横跨图顶部排列的是日历表最左边一列是任务ID在图表中,任务条表示各项任务的开始和结束时间在表的左下方是项目名称、进度表的作者和制订日期计算机科学与技术学院9TheGanttchart日历表任务ID任务条:各项任务的开始和结束时间检查点计算机科学与技术学院10Gantt图的作用甘特图是展现项目中各个任务进展状况的一种有用工具,对于协调多种活动特别有用。甘特图还提供了一种按照计划和进度跟踪项目进展情况的有效途径。计算机科学与技术学院119.3制定项目进度表制定进度表的步骤1.任务分解:把作业分成足够详细的若干个子任务2.估计每项子任务的作业量和所需时间3.在甘特图中列出每一项任务及其开始和结束时间计算机科学与技术学院129.3制定项目进度表如果是为有若干人参与的作业制定进度表,还需要几个附加步骤1.确保每个人都知道要完成的任务2.获取每项任务承诺的完成时间3.确定各任务之间的相互依赖关系4.把每一个相互依赖的关系都文档化5.与所有涉及到的人一起复查计划的进度表和任务之间的依赖关系,以确保没有冲突、分歧和误解6.复查进度表,以确保它包含了完成整个作业所需要的全部任务计算机科学与技术学院139.4检查点检查点(checkpoints)是一个项目中能够测量的进度点,又称为里程碑(Milestone)。检查点是项目规划和项目管理中的重要部分检查点必须清晰明确,没有歧义才是有用的不满足可验证性准则的一般陈述不能作为检查点计算机科学与技术学院14检查点示例明确的检查点示例完成并提交了一份学术报告制定了一个计划,并用标准格式写成了文档实现、编译某个程序,没有编译错误不恰当的检查点示例为编写程序制订了一个计划设计了一个程序完成90%的编码工作计算机科学与技术学院159.4检查点(续)关于建立检查点的几点建议尽可能在每周中都找出几个检查点作者发现为大约5个小时的作业建立一个检查点是最有帮助的对于为期几周的任务,每周至少也要设置一个检查点(提醒自己不要忘记已计划的工作)较大的项目需要每个工程师都设置几个中间检查点,以便每个人都能知道其他人的工作状态计算机科学与技术学院169.5跟踪项目计划项目跟踪是项目管理的重要部分,也是软件工程师在实际作业中应掌握的一项关键技能跟踪项目计划可以使你知道项目是否正在按照进度执行,进度超前了还是落后了跟踪计划的另外一个原因,是为了能够在项目出现问题时,及时采取行动做出调整计算机科学与技术学院179.5跟踪项目计划怎样跟踪项目计划?采用甘特图跟踪项目计划甘特图不仅可用用来描述项目进度,还可用用来根据项目进度表公布项目的进展情况计算机科学与技术学院18计算机科学与技术学院199.5跟踪项目计划关于跟踪项目进度的几点建议确保所有检查点的定义是明确的,并已将它们写下来在制订一份全新的计划之前,不要改动进度当按照计划公布项目进展状态时,不要改动计划在给出新评估的项目完成日期时,保留原来估计的日期,然后用虚线注明新的日期保存原始的进度表和所有更新的版本计算机科学与技术学院209.5跟踪积分当工作顺序与原计划不同时,跟踪计划采用积分方法,跟踪进度积分(earnedvalue)的定义:一种时间的百分比通过计算各任务所用时间占计划的项目总时间的百分比,给出个任务的积分通过使用积分,可以用与原计划不同的顺序工作,并且还可以按照计划跟踪工作进展情况计算机科学与技术学院21跟踪积分示例作业计划(小时)计划的积分天数第x天实际积分单元累计计划实际作业12202033作业21103044作业3440709540作业41108011610作业52201001312计算机科学与技术学院22总结主要内容Gantt图:用甘特图跟踪工作进度。如何制定项目进度表1.任务分解:把作业分成足够详细的若干个子任务2.估计每项子任务的作业量和所需时间3.在甘特图中列出每一项任务及其开始和结束时间检查点:能够测量的进度点跟踪项目计划:积分法计算机科学与技术学院23作业Assignment9P109练习9计算机科学与技术学院24第十章项目计划主讲人:李新山东大学计算机科学与技术学院个体软件过程作者:WattsS.Humphrey瓦茨·S·汉弗莱人民邮电出版社计算机科学与技术学院25教学目标与要求扩展对产品计划表的讨论如何制订和使用《项目计划总结表》计算机科学与技术学院26内容提要6.估计的准确性4.程序规模(最大规模和最小规模)2.项目计划总结表1.项目计划的必要性3.项目总结5.开发阶段的时间计算机科学与技术学院27重点与难点重点项目计划总结表无偏估计计算机科学与技术学院2810.1项目计划的必要性项目计划定义:要完成的工作和如何做这项工作内容为每项主要任务做出定义对所需的时间和资源(人、物)进行估计作用:为管理部门的评审和控制提供框架项目计划也是一个强大的学习工具项目计划可以使作计划的人看到估计中的错误,从而改善计划的准确性计算机科学与技术学院2910.2项目计划的总结表定义:用于记录计划和实际的项目数据的表格项目开始之前填写计划部分项目结束之后填写实际部分计算机科学与技术学院3010.2项目计划的总结表表头累计总结程序规模开发时间计算机科学与技术学院3110.3项目总结作用1:用来存放制定计划的效率数据编写一行代码花费的分钟数(Min/LOC)问题:该数据从哪里来?每小时编写的代码行数(LOC/Hour)作用2:完成作业之后记录实际效率数据计算机科学与技术学院3210.4程序规模程序规模(LOC)部分包含了程序规模的估计数据和实际数据以及可能的规模范围。新开发的与更改的这部分只记录实际编写的代码的总行数当估计新程序的规模时,不计算以前开发的代码行例如:程序有两个部分。第一部分从以前的程序中复制了25行代码并且新编写了30行代码;第二部分从以前程序中复制了20行代码并修改了其中的7行。新开发的与更改的代码行数就是37。计算机科学与技术学院3310.4程序规模最小规模和最大规模:在估计程序开发时间时,这些最大和最小规模的数字有助于判断可能的时间范围计算最小规模的主要原因是为了鼓励你去考虑所计划的程序的可能的规模范围平均规模和最大规模的数字是作为计划和委托书的根据最大规模和最小规模完全是根据规模估计的范围得到的,它们不是用统计的方法得来的,不能靠它们来提供统计计算机科学与技术学院3410.5开发阶段的时间为了估计开发一个新程序的总时间,首先估计程序有多少行代码,用计划的Min/LOC乘以估计的规模。这样得到开发某个程序估计的总时间此外,还要计算最小和最大时间并把它们登入计划那一列,得到这些值要用最小和最大的代码行数分别乘以Min/LOC在实际开发程序之前,算出这些计划数据,并把它们登入项目计划总结表,在完成项目之后,把实际数据也登入表计算机科学与技术学院3510.6估计的准确性开始,估计出来的规模和时间可能不是很准确,这是正常的。首要的目标是学会做出无偏估计无偏估计是指高估的次数与低估的次数相同计算机科学与技术学院36总结讲述了如何制定项目计划,描述了制定产品计划的过程,定义了必须的数据和表格,并给出了一个已完成的项目计划的示例。对于项目估计时间,估计规模用项目计划总结表管理项目进展多练习,将程序的实际开发时间和规模与估计的数据进行比较,提高估计的准确性,制定更好的计划计算机科学与技术学院37作业P120练习10