上海交通大学计算机集成技术开放实验室2019/9/71第二讲项目计划总览上海交通大学计算机集成技术开放实验室2019/9/72Poorplanningisprojectmanagementmistakenumberone上海交通大学计算机集成技术开放实验室2019/9/73内容项目计划概述项目计划的步骤每一个步骤需要的技术对每一个活动如何细化上海交通大学计算机集成技术开放实验室2019/9/74项目计划的作用指导项目的实施记载项目计划的前提假设记载根据选择的方案作出的决策促进项目涉及人员之间的沟通确定项目管理的内容、范围和时间作为度量和控制项目进程的基准上海交通大学计算机集成技术开放实验室2019/9/75项目计划回答……什么:工作的具体内容,一定时期的工作重点怎样:如何完成这些工作和任务谁:确定具体人员或部门何时:各项工作需要多少时间多少:每项工作需要多少经费哪里:各项工作进行的环境上海交通大学计算机集成技术开放实验室2019/9/76项目计划必须满足……动态性要求:项目计划要有弹性职能性:从总体出发,涉及到各相关部门相关性:子计划相互影响系统性:子计划的合理性目标性:目标是灵魂经济性:技术经济分析上海交通大学计算机集成技术开放实验室2019/9/77项目计划模型有多种项目计划模型StepWiseProjectPlanningPRINCE2【CentralComputingandTelecommunicationsAgency(CCTA)foruseonBritishgovernmentITprojects.】(荷兰和澳大利亚也采用)我们讲以StepWiseProjectPlanning方法为例上海交通大学计算机集成技术开放实验室2019/9/78例子Brigette是一位在政府的管理服务部门工作的工程师。她看到了Brightmouth学院招聘信息系统开发部门负责人的广告。她被这样一个在小型部门中工作,从头开始建立一个合适的信息系统,“当自己的老板”的机会吸引了。她发出了申请并且得到了这个职位。她面临的第一个任务就是实现一个独立的工资处理系统。上海交通大学计算机集成技术开放实验室2019/9/79例子Amanda在一家国际办公自动化设备公司(IOE)工作,该公司生产各种高技术的办公设备并承担维护服务。目前,公司的一项拓展的业务就是对IT设备进行维护。他们现在开始对那些并非购买他们产品的客户提供维护服务。公司原来采用的发票打印系统是针对每一项任务单独进行打印的。这样,其它公司可能需要多次使用该系统才能完成打印工作。现在公司决定对系统进行扩展,以使系统能够每月打印出财务信息的系统。Amanda作为项目管理者,承担了该项任务她们如何办?上海交通大学计算机集成技术开放实验室2019/9/710计划过程(1)0:选择项目1:确定项目范围和目标确定目标和这些目标的衡量方法选择项目的责任人确定项目所有的涉及人员和他们的兴趣根据对项目涉及人员的分析修改目标建立各方通信的渠道上海交通大学计算机集成技术开放实验室2019/9/711计划过程(2)2.确定项目结构建立项目和策略计划的关系建立标准和过程建立项目团队组织上海交通大学计算机集成技术开放实验室2019/9/712计划过程(3)3.分析项目特征分析项目是目标驱动的还是产品驱动的分析其它项目特征确定高层次的项目风险考虑用户有关实现方面的需求选择一般的生命周期方法检查估计的资源上海交通大学计算机集成技术开放实验室2019/9/713计划过程(4)4.确定项目产品和活动确定和描述项目产品(或交付物)写出一般性的生产流程确定产品实例定义理想的活动网络考虑阶段和检查点,修改理想的活动网络上海交通大学计算机集成技术开放实验室2019/9/714计划过程(5)5.估计每个活动的工作量自底向上估计对计划进行修改以生成可控的活动6.确定活动风险识别和量化活动风险制定风险降低方法和紧急处理手段在考虑风险的基础上调整计划和估计7.分配资源确定和分配资源在考虑资源约束的情况下修改计划上海交通大学计算机集成技术开放实验室2019/9/715计划过程(6)8.检查、公布计划检查项目计划中的质量因素计划书面化并上报批准9.执行计划10.更细层次上的计划上海交通大学计算机集成技术开放实验室2019/9/716上海交通大学计算机集成技术开放实验室2019/9/7171.识别项目范围和目标(1)确定目标和这些目标的衡量方法Brightmouth学院工资系统的目标我们已经讨论过了IOE的Amanda的目标是已经被IOE管理部门批准的可行性分析中规定的那些目标。主要的目标是允许将详细的月帐单寄给每个客户,并将客户按月支付的钱分配到各项工作上。当然还有一些其它目标,如项目的时间、所用的资源等。上海交通大学计算机集成技术开放实验室2019/9/7181.识别项目范围和目标(2)选择项目的责任人Amanda发现她的经理和那些主要的用户已经建立了一个项目委员会来负责项目的方向。她发现不同部门使用不同的设备,而且各个部门也有不同的意见。这就需要委员会中的用户代表来解决他们的意见冲突。Brigette发现她有两类客户:财务和职员部门。为了解决两个部门之间的不一致,他们同意两个部门每个月与该项目小组中的一位副主任来进行讨论。上海交通大学计算机集成技术开放实验室2019/9/7191.识别项目范围和目标(3)确定项目所有的涉及人员和他们的兴趣我们已经在第一章中讨论了这一问题Brightmouth学院工资系统中的涉及人员已经讨论过了那么,IOE公司中的维护帐务系统项目涉及人员有哪些?当然是客户,通过咨询那些客户代表显然有助于系统的开发上海交通大学计算机集成技术开放实验室2019/9/7201.识别项目范围和目标(4)根据对项目涉及人员的分析修改目标为了使所有参与人员能够完全合作,有必要对项目目标进行修改。这就有可能需要为系统添加新特征以使某些人员满意。这有可能存在潜在的危险性,因为这样的话系统的规模越来越大,而原来的目标被模糊化了。因此该方法应该小心对待。IOE维护人员现在增加了一个额外的任务:他们在完成任务后,需要将数据输入。他们又没有从中获益。因而为了给他们一些好处,系统加了一个功能:系统将自动记录余下的零部件。而对于Brightmouth学院,人力资源部门为了准备工资细节需要大量工作。那么我们可以加上一个功能就是为该部门产生管理信息报表上海交通大学计算机集成技术开放实验室2019/9/7211.识别项目范围和目标(5)建立各方通信的渠道对于内部人员,是很直接的。但是对于开发工资系统的项目管理者需要与银行建立一个接触点。上海交通大学计算机集成技术开放实验室2019/9/7222.确定项目结构(1)建立项目和策略计划的关系组织需要确定实施各个项目的顺序。同时,我们也需要建立新系统可符合的框架。例如为了使系统能够通信所需的软硬件标准Amanda发现她从事的项目符合IOE的战略规划,由于该项目是对原系统的扩展,因此系统运行的软硬件平台是确定的。从事Brightmouth学院项目的Brigette发现学院的战略规划中描述了需要开发新课程等内容,并且提到了“合适的管理过程”。在一份咨询公司的报告中提到了“财务独立”,并且建议开发独立的工资系统。尽管学院里有了很多教学用的IT设备,但是却没有专门为工资系统准备的硬件,因此在考虑软件时也需要考虑硬件。上海交通大学计算机集成技术开放实验室2019/9/7232.确定项目结构(2)建立标准和过程开发软件的组织必须定义开发过程。在最简单的情形下,在定义产品的同时,需要对软件生命周期的每个阶段进行定义。这些标准和过程可能有:变更控制和配置管理标准质量标准和过程手册度量程序项目计划和控制标准上海交通大学计算机集成技术开放实验室2019/9/7242.确定项目结构(2)IOE的Amanda发现企业里有很多开发标准,其中规定了分析和设计方法将采用SSADM方法。她发现有一个单独的文档规定了质量过程。它规定了何时开展检查工作并且详细规定了如何开展检查工作。Amanda还发现了一套项目管理指南。Brigette没有发现任何现成的规范,只有某些教师指导学生做的建议上有一些相互矛盾的叙述。Brigette写了一个简单的文档,规定了项目中的主要阶段。她强调每增加一个新功能或对功能进行修改都必须首先写一个详细的说明;而在每一项功能进行实现前,都必须得到用户的确定。同时,她对用户需求的修改过程规定了一个流程。上海交通大学计算机集成技术开放实验室2019/9/7252.确定项目结构(2)Brigette当然手头也没有质量管理过程方面的规定。但是她规定小组中的每个人(包括自己)每次完成工作后,都需要交给另外一个人进行检查;而在软件交给用户前,其它人需要对系统进行测试。她建立了一个系统来记录每一个错误和它们的解决方法。Brigette并没有制定严格的时刻表。但是她每周星期一早晨都将和她的同事开会来讨论事情的进展。同时她也会每月去找副主任(她的上司),以及财务和人力资源部门的头来讨论进度。上海交通大学计算机集成技术开放实验室2019/9/7262.确定项目结构(3)建立项目团队组织项目领导在大型项目中经常需要定义一个组织结构。在组织结构中,可能会将人员分成若干组。IOE中,系统分析员构成了一个团队,他们每一个人与那些用户直接接触。因此,一旦用户有问题,他们能够与信息系统部中的联系人进行沟通。编码人员构成了一个“池”,他们根据需要被分配到各个项目中。Brightmouth学院中,Brigette任命了一个曾经作为学院中计算课程支持技术员的软件开发人员作第二负责人,她也被允许再招一个分析员/编程人员。上海交通大学计算机集成技术开放实验室2019/9/7273.分析项目特点(1)分析项目是目标驱动的还是产品驱动的分析其它项目特征确定高层次的项目风险在IOE中,Amanda发现可能存在新系统不被维护人员接受的危险,特别是当需要建立一个新的中央帐务管理机构时。Amanda认识到需要先到各个部门进行一些咨询工作,然后新的流程逐渐引入,以使职员们慢慢适应。Brigette认为应用领域已经定义的很清楚了。但是也存在一个风险就是可能市场上没有类似的系统,因此她决定项目中安排一个早期任务就是对主要的工资系统进行调查上海交通大学计算机集成技术开放实验室2019/9/7283.分析项目特点(2)考虑用户有关实现方面的需求客户经常会有他们自己的有关过程方面的要求。例如要求你采用面向对象技术等。选择一般的生命周期方法项目生命周期将根据上面讨论的一些内容来确定。例如如果用户的需求不明确,我们可能就需要用原型法。检查估计的资源一旦我们确定好主要的风险和项目的大致方法,我们就可以重新估计项目的工作量和所需的资源。如果信息足够,我们可以采用功能点方法来进行估计。上海交通大学计算机集成技术开放实验室2019/9/7294.确定项目产品和活动(1)此时,我们可以对马上要去做的活动尽心更详细的计划。长期的计划可以粗一点,而近期的活动则要详细一些。确定和描述项目产品(或交付物)没有活动,就没有产品,反过来说,如果不产生产品,也就没有活动。因此,确信我们已经完全确定了项目中生成的所有产品是保证我们确定了所有必要活动的前提。产品包括:技术产品(如训练材料和操作指令),但是也包括管理和质量方面的材料,例如计划书就是管理方面的产品产品将形成一个层次结构。主要的产品有一些子产品构成,子产品又有更小的产品构成。该关系可以用产品分解结构来记载。(ProductBreakdownStructure,PBS)上海交通大学计算机集成技术开放实验室2019/9/7304.确定项目产品和活动(1)PBS的描述方法产品的名字/标识产品的功能产