1、上海交通大学计算机系上海交通大学计算机系1上海交通大学计算机系上海交通大学计算机系2w项目监控的内容项目监控的内容w项目监控框架项目监控框架w项目监控方法与工具项目监控方法与工具w变更控制变更控制w项目修复项目修复上海交通大学计算机系上海交通大学计算机系3w监控项目的进展监控项目的进展w比较实际进度与计划的差别比较实际进度与计划的差别w修改计划使项目能够返回预定修改计划使项目能够返回预定“轨道轨道”上海交通大学计算机系上海交通大学计算机系4上海交通大学计算机系上海交通大学计算机系5w项目指导委员会(项目指导委员会(Project Steering CommitteeProject Steeri
2、ng Committee,Project BoardProject Board)负责整个项目进度)负责整个项目进度w报告项目情况的组织结构报告项目情况的组织结构上海交通大学计算机系上海交通大学计算机系6w项目情况报告的内容项目情况报告的内容上海交通大学计算机系上海交通大学计算机系7w基础:定期信息收集或者发生的特定事件基础:定期信息收集或者发生的特定事件w这些信息必须是客观的和可度量的这些信息必须是客观的和可度量的w但是并非每一次都能够得到符合要求的信息,因但是并非每一次都能够得到符合要求的信息,因而通常需要项目成员进行主观判断而通常需要项目成员进行主观判断上海交通大学计算机系上海交通大学计算
3、机系8w检查点检查点(Checkpoints)(Checkpoints)包括:包括:n定期的(如一星期一次,一月一次)定期的(如一星期一次,一月一次)n与特定的事件绑定的,如生成一份报告或者交付部分与特定的事件绑定的,如生成一份报告或者交付部分产品产品上海交通大学计算机系上海交通大学计算机系9w监测的频率依赖于项目的大小和风险情况监测的频率依赖于项目的大小和风险情况n团队领导,可能需要每天都了解一下进度团队领导,可能需要每天都了解一下进度n项目经理需要每星期或每月了解情况项目经理需要每星期或每月了解情况w管理层次越高,频率越低,信息越抽象管理层次越高,频率越低,信息越抽象w许多公司利用星期一早
4、晨的短会来激励员工实现许多公司利用星期一早晨的短会来激励员工实现短期目标短期目标上海交通大学计算机系上海交通大学计算机系10w尽管整个过程被分成了容易管理的活动,但是项尽管整个过程被分成了容易管理的活动,但是项目执行中仍然需要在活动中对任务完成的比例进目执行中仍然需要在活动中对任务完成的比例进行评估,这种评估通常是困难的。行评估,这种评估通常是困难的。w思考:某一软件开发者完成了一个需要思考:某一软件开发者完成了一个需要500500行代行代码的软件的码的软件的250250行,请解释一下为什么不能认为行,请解释一下为什么不能认为他的工作已经完成了一半?他的工作已经完成了一半?上海交通大学计算机系
5、上海交通大学计算机系11w许多因素决定了不能用完成的代码行的比例来衡许多因素决定了不能用完成的代码行的比例来衡量进度:量进度:n对整个软件的代码行的估计可能不准确对整个软件的代码行的估计可能不准确n写完的代码可能相对容易,或者相对容易写完的代码可能相对容易,或者相对容易n一个软件如果没有通过测试就不能算完成,因而即使一个软件如果没有通过测试就不能算完成,因而即使代码全部写完了,如果没有测试也不能算完成。代码全部写完了,如果没有测试也不能算完成。w对所需完成内容的深入的了解有助于判断进度,对所需完成内容的深入的了解有助于判断进度,如将整个工作细分为子任务,如设计,编码,单如将整个工作细分为子任务
6、,如设计,编码,单元测试等。元测试等。上海交通大学计算机系上海交通大学计算机系12w许多组织采用财务系统中的每周时刻表来记录每许多组织采用财务系统中的每周时刻表来记录每个职员在每项工作中花费的时间,但是该表无法个职员在每项工作中花费的时间,但是该表无法告诉项目经理目前产出了什么,进度是否满足要告诉项目经理目前产出了什么,进度是否满足要求。求。w因而可以对每周时刻表进行扩展,以包含完成的因而可以对每周时刻表进行扩展,以包含完成的工作内容工作内容上海交通大学计算机系上海交通大学计算机系13w询问小组成员完成计划的可能性询问小组成员完成计划的可能性w交通灯方法:交通灯方法:w识别评价某项工作中的关键
7、元素识别评价某项工作中的关键元素w将这些关键元素分解为组成元素将这些关键元素分解为组成元素w对于每一元素:对于每一元素:n如果符合计划要求:如果符合计划要求:绿灯绿灯n目前已经拖后,但是可以恢复,目前已经拖后,但是可以恢复,黄灯黄灯n已经拖后,恢复很困难,已经拖后,恢复很困难,红灯红灯上海交通大学计算机系上海交通大学计算机系14wGantt图图上海交通大学计算机系上海交通大学计算机系15w滑动图滑动图(slip chart)弯曲的越厉害,说明偏离计划越明显上海交通大学计算机系上海交通大学计算机系16w球图:计划开始,计划结束作为两个球,每次计球图:计划开始,计划结束作为两个球,每次计划改变后,
8、日期添加到球中,如果时间是按计划划改变后,日期添加到球中,如果时间是按计划的,球被填为绿色,否则被填为红色。的,球被填为绿色,否则被填为红色。w每次更新后,图不需重画。每次更新后,图不需重画。上海交通大学计算机系上海交通大学计算机系17w前面的方法不能表示出项目生命周期中偏离计划前面的方法不能表示出项目生命周期中偏离计划的情况。的情况。w对计划偏离的趋势分析能够避免将来的项目偏离。对计划偏离的趋势分析能够避免将来的项目偏离。w时间线图(时间线图(timeline)上海交通大学计算机系上海交通大学计算机系18实际的时间计划的时间第二个星期评估时发现,任务2需要延期,其它任务也相应延期第四个星期评
9、估时发现,任务4需要延期,任务5也相应延期第五个星期评估时发现,任务3需要延期上海交通大学计算机系上海交通大学计算机系19w监控的意义监控的意义n成本本身是项目中的重要元素成本本身是项目中的重要元素n成本监控也能展示已经花费了多少劳力成本监控也能展示已经花费了多少劳力w简单的监控方法:累积消耗图简单的监控方法:累积消耗图不能说明项目进展情况上海交通大学计算机系上海交通大学计算机系20w对普通的累积消耗图上加上项目时间信息对普通的累积消耗图上加上项目时间信息上海交通大学计算机系上海交通大学计算机系21w盈余量(盈余量(Earned Value):Earned Value):建立在对每个任务或工建
10、立在对每个任务或工作包的消耗预测的基础上。作包的消耗预测的基础上。w对每一项内容的原始预算成本被称为预算基线或对每一项内容的原始预算成本被称为预算基线或计划工作的预算成本(计划工作的预算成本(budgeted cost of work budgeted cost of work scheduled,BCWS)scheduled,BCWS)。w未开始的任务被赋予值未开始的任务被赋予值0 0,当它被完成后,将被,当它被完成后,将被赋值。在项目中的一点上,全部的值将被成为盈赋值。在项目中的一点上,全部的值将被成为盈余量或完成工作的预算成本(余量或完成工作的预算成本(budgeted cost of
11、budgeted cost of work performed,BCWP)work performed,BCWP)上海交通大学计算机系上海交通大学计算机系22w当任务未完成时,需要分配一个盈余量给该任务,当任务未完成时,需要分配一个盈余量给该任务,方法为:方法为:n0/1000/100技术:任务被分配值技术:任务被分配值0 0直到任务完成后,被分配直到任务完成后,被分配预算值的预算值的100100n50/5050/50技术:任务一开始后,就赋予技术:任务一开始后,就赋予50%,50%,直到项目结直到项目结束后赋值束后赋值100%100%n里程碑方法:对任务中的一系列里程碑赋予特定值。里程碑方法
12、:对任务中的一系列里程碑赋予特定值。n建议用建议用0/1000/100方法,因为方法,因为50/5050/50方法由于活动开始后报方法由于活动开始后报告的值过高,容易给人一种错误的安全感,而里程碑告的值过高,容易给人一种错误的安全感,而里程碑方法最好将该任务细分为多个子任务。方法最好将该任务细分为多个子任务。上海交通大学计算机系上海交通大学计算机系23w建立盈余量分析的第一步是为项目建立一个预算建立盈余量分析的第一步是为项目建立一个预算基线基线(baseline budget)(baseline budget)w预算基线是建立在项目计划的基础上的,它是根预算基线是建立在项目计划的基础上的,它是
13、根据时间对盈余量值的预测。据时间对盈余量值的预测。w盈余量可以用货币单位来衡量,也可以用人员工盈余量可以用货币单位来衡量,也可以用人员工作量来衡量。作量来衡量。上海交通大学计算机系上海交通大学计算机系24采用了0/100方法上海交通大学计算机系上海交通大学计算机系25w随着项目的进行,可以不断进行盈余量监控,判随着项目的进行,可以不断进行盈余量监控,判断项目的进度。断项目的进度。?通过分析该图是否可以判定项目中发生的情况上海交通大学计算机系上海交通大学计算机系26w每一项任务的真正成本消耗为(每一项任务的真正成本消耗为(Actual Cost Actual Cost work performe
14、d,ACWP)work performed,ACWP)预算变动调度变动(成本)调度变动(时间)成本变动上海交通大学计算机系上海交通大学计算机系27w性能比例:性能比例:n成本性能指数:成本性能指数:CPICPIBCWPBCWP(盈余量)(盈余量)/ACWP/ACWP(真正的(真正的成本消耗)成本消耗)n调度性能指数:调度性能指数:SPI=BCWP/BCWS(SPI=BCWP/BCWS(预算成本预算成本)n值越大,工作完成得越好值越大,工作完成得越好上海交通大学计算机系上海交通大学计算机系28上海交通大学计算机系上海交通大学计算机系29w你被指定负责一个软件项目,此项目由四个部分(你被指定负责一
15、个软件项目,此项目由四个部分(A,B,C,D)组成,项目)组成,项目总预算为总预算为53000元,其中元,其中A任务预算为任务预算为26000,B任务预算为任务预算为12000,C任务预算为任务预算为10,000,D任务预算为任务预算为5000,截至到,截至到8月月31日,日,A已经全部已经全部完成,完成,B过半,过半,C刚开始,刚开始,D还没有开始还没有开始w采用采用50/50规则计算截至到规则计算截至到8月月31日的日的CV,SV,CPI,SPIwCV=BCWP-ACWPwSV=BCWP-BCWSwCPI=BCWP/ACWPwSPI=BCWP/BCWS任务BCWS(计划费用):元ACWP(
16、实际花费):元A26,00025,500B9,0005,400C4,8004,100D00截至到8月31日的计划成本和实际成本上海交通大学计算机系上海交通大学计算机系30w关键:计算关键:计算BCWPw采用采用50/50原则原则nB任务过半,任务过半,BCWP=6,000nC任务开始,任务开始,BCWP=5,000nD任务未开始,任务未开始,BCWP0任务BCWS(计划费用):元ACWP(实际花费):元BCWP(盈余量):元A26,00025,50026,000B9,0005,4006,000C4,8004,1005,000D000Total39,80035,00037,000上海交通大学计算
17、机系上海交通大学计算机系31w截至到截至到8月月31日日nBCWS=39,800nACWP=35,000nBCWP=37,000nCV=37,000-35,000=2,000nSV=37,000-39,800=-2800nSPI=93%nCPI=106%wSPI小于小于1说明截至到说明截至到8月月31日没有完成计划的工作量,日没有完成计划的工作量,即进度落后即进度落后wCPI大于大于1说明截至到说明截至到8月月31日费用节省了,完成工作量日费用节省了,完成工作量的价值大于实际花费的价值的价值大于实际花费的价值上海交通大学计算机系上海交通大学计算机系32w盈余量概念还没有被软件界全面接受,原因可
18、能盈余量概念还没有被软件界全面接受,原因可能在于建了一半的房屋可以有反映人力和材料消耗在于建了一半的房屋可以有反映人力和材料消耗的记录,而完成一半的软件项目却没有任何数据。的记录,而完成一半的软件项目却没有任何数据。这是对盈余量分析的误解。实际上盈余量分析是这是对盈余量分析的误解。实际上盈余量分析是一项跟踪项目进度的方法。一项跟踪项目进度的方法。上海交通大学计算机系上海交通大学计算机系33w通过一定的方式对项目进行评价和审核通过一定的方式对项目进行评价和审核w评审活动的类型评审活动的类型n商务评审商务评审n技术评审技术评审n管理评审管理评审n质量评审质量评审n产品评审产品评审w评审时间评审时间
19、n定期评审定期评审n阶段评审阶段评审n事件评审事件评审上海交通大学计算机系上海交通大学计算机系34w定期评审定期评审准备评审要素确定评审方式依据采集数据统计项目性能评审管理/质量/技术等问题对评审作出结论计划修改到达定期评审时间上海交通大学计算机系上海交通大学计算机系35w阶段评审阶段评审准备评审要素组织相关评审评审本阶段关键任务完成情况确认产品提交情况阶段评语对下阶段计划调整到达阶段评审时间统计报告数据上海交通大学计算机系上海交通大学计算机系36w事件评审事件评审按评审过程组织评审报告事件的情况对事件处理方案的讨论确定事件影响的范围计划修改事件报告被批准对评审做出结论上海交通大学计算机系上海
20、交通大学计算机系37w关键路径活动关键路径活动w没有自由浮动的活动没有自由浮动的活动w小自由浮动时间活动的监控小自由浮动时间活动的监控w高风险的活动高风险的活动w使用关键资源的活动使用关键资源的活动上海交通大学计算机系上海交通大学计算机系38w几乎所有的项目都会遇到延误和意外事件。项目几乎所有的项目都会遇到延误和意外事件。项目经理的一项任务就是识别这些事件发生的时间,经理的一项任务就是识别这些事件发生的时间,在最小延迟时间和对项目团队有最小的影响的情在最小延迟时间和对项目团队有最小的影响的情况下,消除问题的影响。况下,消除问题的影响。上海交通大学计算机系上海交通大学计算机系39w要求项目组人员
21、要求项目组人员“Work harder”Work harder”有一些效果,有一些效果,但是不能轻易使用。但是不能轻易使用。w分配额外的资源可以加快进度,但是并不总是奏分配额外的资源可以加快进度,但是并不总是奏效,例如分配给某一人员的小模块,再增加一个效,例如分配给某一人员的小模块,再增加一个人员并不一定能够缩短时间。人员并不一定能够缩短时间。w将非关键路径上的资源调整到关键路径上将非关键路径上的资源调整到关键路径上w注意:缩短关键路径可能使其它路径成为关键路注意:缩短关键路径可能使其它路径成为关键路径。径。上海交通大学计算机系上海交通大学计算机系40w网络计划考虑的是理想情况和普通工作情况,
22、因网络计划考虑的是理想情况和普通工作情况,因而在无法缩短关键路径时,可以重新考虑任务优而在无法缩短关键路径时,可以重新考虑任务优先关系。先关系。w另一种方法是另一种方法是将活动再进行划分将活动再进行划分,从而一部分可,从而一部分可以与其它活动并行。以与其它活动并行。w重新考虑任务优先关系可能带来重新考虑任务优先关系可能带来风险或者质量上风险或者质量上的影响的影响。上海交通大学计算机系上海交通大学计算机系41w用户的需求可能变化,项目内部可能变化用户的需求可能变化,项目内部可能变化w变更需要仔细考虑,因为一个部分的变化可能会变更需要仔细考虑,因为一个部分的变化可能会对另外部分的造成影响对另外部分
23、的造成影响w问题:对程序描述的改变将引起软件的设计和代问题:对程序描述的改变将引起软件的设计和代码的改变,还有什么其它产品可能需要修改?码的改变,还有什么其它产品可能需要修改?w答案:测试数据,期待结果和用户手册等答案:测试数据,期待结果和用户手册等上海交通大学计算机系上海交通大学计算机系42wConfiguration LibrarianConfiguration Librarianw责任:责任:n识别所有需要变更控制的内容识别所有需要变更控制的内容n建立一个保存所有项目文档和代码的中央库建立一个保存所有项目文档和代码的中央库n建立一套管理变更的正式过程建立一套管理变更的正式过程n维护读取库
24、中内容的记录和库中每一项的状态维护读取库中内容的记录和库中每一项的状态上海交通大学计算机系上海交通大学计算机系43w用户意识到需要对系统进行修改,考虑将修改请用户意识到需要对系统进行修改,考虑将修改请求提交给开发人员求提交给开发人员w用户端的管理者考虑是否将该修改请求提交给项用户端的管理者考虑是否将该修改请求提交给项目承担者目承担者w项目承担端的管理者将该任务指派给一个成员,项目承担端的管理者将该任务指派给一个成员,该成员将判断该修改的成本以及修改的影响,并该成员将判断该修改的成本以及修改的影响,并提交一个报告提交一个报告w该报告被提交给用户,用户将考虑是否能够承受该报告被提交给用户,用户将考
25、虑是否能够承受额外的成本额外的成本上海交通大学计算机系上海交通大学计算机系44w用户同意后,一个获多个开发者被授权从主产品用户同意后,一个获多个开发者被授权从主产品上取出要修改的部分的拷贝上取出要修改的部分的拷贝w拷贝被修改。拷贝被修改。w新版本开发出来后,将通知用户,用户进行接受新版本开发出来后,将通知用户,用户进行接受测试测试w当用户满意后,产品的配置项被新版本所代替。当用户满意后,产品的配置项被新版本所代替。上海交通大学计算机系上海交通大学计算机系45w需要修复的项目需要修复的项目n没有人对项目何时结束有一点点概念没有人对项目何时结束有一点点概念n产品满目疮痍。产品满目疮痍。n开发组人员
26、工作超时,每周多于开发组人员工作超时,每周多于6060小时小时n管理层已经无法控制进度,而评估项目状态的准确性管理层已经无法控制进度,而评估项目状态的准确性丧失殆尽丧失殆尽n客户对开发组能否按承诺交付软件不再抱有信心客户对开发组能否按承诺交付软件不再抱有信心n开发人员,市场人员,项目经理,客户之间关系紧张开发人员,市场人员,项目经理,客户之间关系紧张n开发组士气低落开发组士气低落n上海交通大学计算机系上海交通大学计算机系46w问题:如何挽救项目问题:如何挽救项目n缩减项目规模,以便在计划的时间与工作量内完成项缩减项目规模,以便在计划的时间与工作量内完成项目目n把注意力放在短期的改善上,以提高过
27、程的生产率把注意力放在短期的改善上,以提高过程的生产率n面对现实,放弃计划面对现实,放弃计划w有没有其它方法?有没有其它方法?上海交通大学计算机系上海交通大学计算机系47w第一步第一步w评估你的处境评估你的处境w应用应用W-W-理论分析理论分析w作好修复项目的思想准备作好修复项目的思想准备w向开发组成员探问拯救项目的方法向开发组成员探问拯救项目的方法w变得现实一些变得现实一些上海交通大学计算机系上海交通大学计算机系48w采取一切措施恢复开发组的士气采取一切措施恢复开发组的士气n采取一个象征性的行动,如给他们特许的条件(允许采取一个象征性的行动,如给他们特许的条件(允许他们上班晚些,提供更好的工
28、作环境),也可以放一他们上班晚些,提供更好的工作环境),也可以放一次假次假w确保为开发组创造了条件确保为开发组创造了条件n如去掉了过多的进度压力,改善了恶劣的工作条件,如去掉了过多的进度压力,改善了恶劣的工作条件,剔除了管理上的不当做法剔除了管理上的不当做法w消除重大的人员问题消除重大的人员问题n勇敢地面对问题,该调整的要调整勇敢地面对问题,该调整的要调整上海交通大学计算机系上海交通大学计算机系49w消除重大领导问题消除重大领导问题n更换子项目经理更换子项目经理n为经理配备助手为经理配备助手w增加新手一定要慎重增加新手一定要慎重w充分利用开发人员的时间充分利用开发人员的时间n减轻他们其它的负担
29、减轻他们其它的负担n为他们处理一些日常工作为他们处理一些日常工作w允许开发组人员各有不同允许开发组人员各有不同n绝不允许破坏士气绝不允许破坏士气w观察开发人员的节奏观察开发人员的节奏n不断根据修复的情况来调整安排不断根据修复的情况来调整安排上海交通大学计算机系上海交通大学计算机系50w修正软件开发过程中出问题的环节修正软件开发过程中出问题的环节n出问题的环节必然是项目有意或无意忽略了软件开发出问题的环节必然是项目有意或无意忽略了软件开发的基本原则的基本原则w创建详细的小型里程碑创建详细的小型里程碑n小型的(一、两天规模的)小型的(一、两天规模的)n二元性(要么完成,要么没有完成)二元性(要么完
30、成,要么没有完成)n彻底性(所有里程碑完成,项目就完成了)彻底性(所有里程碑完成,项目就完成了)w依据里程碑的完成来安排进度依据里程碑的完成来安排进度n为每个里程碑设置完成的时间,里程碑的设置必然是为每个里程碑设置完成的时间,里程碑的设置必然是考虑了人员正常的工作时间考虑了人员正常的工作时间上海交通大学计算机系上海交通大学计算机系51w细致地最终进度进展情况细致地最终进度进展情况n每天检查小型里程碑的完成情况每天检查小型里程碑的完成情况n误了某个里程碑,就要求他加班加点完成误了某个里程碑,就要求他加班加点完成w记录里程碑未完成的原因记录里程碑未完成的原因w短期后再调整短期后再调整一周或两周一周
31、或两周w慎重提交进度计划慎重提交进度计划n经过一两周的实际检验经过一两周的实际检验w严格的风险管理严格的风险管理上海交通大学计算机系上海交通大学计算机系52w稳定需求稳定需求w修正特性集修正特性集w删除优先级低的需求删除优先级低的需求w评估你的政治地位评估你的政治地位n是否本身产品就是不重要的?是否本身产品就是不重要的?n目前比产品更重要的是什么?目前比产品更重要的是什么?w去除产品中没用的去除产品中没用的“垃圾垃圾”w降低缺陷数目,并要持续降低降低缺陷数目,并要持续降低n公开缺陷图公开缺陷图上海交通大学计算机系上海交通大学计算机系53w项目监控的内容项目监控的内容w项目监控框架项目监控框架w项目监控方法与工具项目监控方法与工具w项目评审项目评审w变更控制变更控制w项目修复项目修复