
2.7 项目集成管理
通过第一章的学习,我们已经初步了解客户服务系统项目背景。项目经理通过与公司客户服务人员直接沟通之后,对公司客户服务业务的需求和项目目标有了充分的了解,将该项目分为计划编制和项目实施两个阶段。通过本章前面各小节的学习我们已清楚软件开发项目管理所应具备的基本知识,本节我们将使用MS Project项目管理软件,对客户服务系统项目进行集成管理,以便定期提交项目状态报告。
2.7.1 编制项目计划
问题引入
好的计划是项目成功的一半,项目计划的编制很重要。那么它涉及哪几个方面的内容呢?

扫一扫 看视频
解答问题
项目计划通常会涉及时间计划、资源计划和成本计划等。
分析问题
项目计划包括确定项目工作范围、安排逻辑工作程序、编排工作进度和编制项目预算等。也就是确定实现项目目标要做些什么,将项目中的重要工作列出来,评估各项工作的性质和相互依存关系,估计各项工作所需时间,分析项目的筹备情况,从而测定各项工作的起始日期和完成日期等。项目计划罗列得越详尽,项目成功率就越高。
2.7.2 编制项目的时间计划
问题引入
我们知道构成项目三角形的三要素分别是时间、成本和范围。时间被列在首位,任何项目都是有时效性的,即可以在一定时间范围内被完成的。那么客户服务系统的时间计划是如何编制的呢?

扫一扫 看视频
解答问题
客户服务系统合同文件要求项目任务在2017年6月15日前完成,整个工期不超过65个工作日。鉴于此我们利用Microsoft Project排定时间计划如图2-6所示。

图2-6 客户服务系统时间计划整体视图
由于客户服务系统项目经过任务分解后,包含较多的任务,所以,完整的时间计划内容较多,只能分层次列出这些内容。图2-7是整个项目和一级任务的时间计划情况,图2-8至图2-14是一级任务之下的各个明细任务的时间计划情况。

图2-7 客户服务系统一级任务时间计划情况

图2-8 “调研阶段”时间计划情况

图2-9 “项目启动”时间计划情况

图2-10 “蓝图设计与系统开发建设”时间计划

图2-11 “蓝图设计与系统开发建设”时间计划(续)

图2-12 “系统实施”时间计划

图2-13 “测试”时间计划

图2-14 “集成试运行及验收”时间计划
分析问题
上述客户服务系统的时间计划是如何排定的呢,下面我们分多个步骤来讲述:
(1)项目开始时间和项目日历的设定
使用Project编制项目时间计划,主要是设置项目的计划开始日期以及与实际情况对应的工作日和非工作日时间。
①新建文件。在Microsoft Project中创建新项目时,可以输入项目的开始或结束日期,也可同时输入两个日期。我们建议用户只输入项目的开始日期,然后让Microsoft Project在您输入所有任务并完成了这些任务的日程安排之后计算出结束日期。
如果项目必须在某个日期之前完成,只需输入项目的结束日期。即使您一开始是按项目的结束日期进行日程安排的,在项目的工作开始后,最好按项目的开始日期进行日程安排。
启动Microsoft Project,单击“文件”→“新建”菜单命令,在打开的“新建项目”任务窗格中单击“空白项目”,新建一个空白项目文件,如图2-15所示。

图2-15 空白项目
单击“文件”→“保存”菜单命令,在弹出的“另存为”对话框中选择保存位置,输入文件名“客户服务系统计划与实施.mpp”,如图2-16所示。

图2-16 “另存为”对话框
单击“保存”按钮,将文件另存为“客户服务系统计划与实施.mpp”文件。
②设定项目计划开始日期:
单击“项目”→“项目信息”菜单命令,弹出“‘客户服务系统计划与实施.mpp’的项目信息”对话框,在“开始日期”下拉列表框中输入“2017年4月1日”,如图2-17所示。

图2-17 “‘客户服务系统计划与实施.mpp’的项目信息”对话框
单击【确定】按钮返回项目文档窗口。
③设定项目日历。“客户服务系统”项目日期为2017年4月1日至2017年6月12日,其中4月2日—4月4日为国家规定清明节放假,调整4月1日公休日为工作日;4月29日—5月1日为五一节假期,不需要调整工作日;5月28日—5月30日为国家规定端午节放假,调整5月27日公休日为工作日。由于项目时间较紧,因此每周的周一至周六为工作日,工作时间为8:30—12:00,14:00—18:30,周日为休息日。
单击“工具”→“更改工作时间”命令,弹出【更改工作时间】对话框。
在“例外日期”选项卡的“名称”栏中输入“清明放假”,在“开始时间”栏中输入“2017-4-2”,在“完成时间”栏中输入“2017-4-4”。采用同样的方法输入“名称”为“五一放假”的例外日期,“开始时间”为“2017-4-29”,“完成时间”为“2017-5-1”日。如图2-18所示。同时调整增加“名称”栏中输入“清明调班”,在“开始时间”栏中输入“2017-4-1”,在“完成时间”栏中输入“2017-4-1”。单击“详细信息”在弹出的对话框中“设置以下例外日期的工作时间”中选择“工作时间”选项,如图2-19所示,“端午调班”与“清明调班”的设置方法类似,请读者参照完成。

图2-18 “更改工作时间”对话框
选择“工作周”选项卡,选择“名称”栏的“默认”单元格,单击“详细信息”按钮,弹出“默认”的详细信息对话框,在“选择日期”列表框中连续选定“星期一”和“星期六”之间的所有选项;选中“对所列日期设置以下特定工作时间”的单选按钮,在其下的“开始时间”和“结点时间”栏分别输入调整后的时间,如图2-20所示。
单击“确定”按钮返回“更改工作时间”对话框,再次单击“确定”按钮即可完成设置。
(2)任务分解
项目时间计划设置完成后,接下来可以对项目中的任务进行分解(任务:一种有开始日期和完成日期的操作。项目计划由任务组成)。项目经理对任务进行分解后,得到了分解结构及任务之间的关系,如本章前面的图2-2所示。

图2-19 更改调班对话框

图2-20 “‘[默认]’的详细信息”对话框
(3)输入任务信息
项目任务分解结束,接下来可根据任务分解结构在Project中输入每个任务。
在“甘特图”视图的“任务名称”栏依次输入第一级任务,如图2-21所示。

图2-21 输入第一级任务的甘特图
选定标识号“2”到“7”之间的所有任务,然后选择“项目”→“大纲”→“降级”菜单命令,使选定的任务降级,如图2-22所示。
使用同样的方法对各个阶段内的任务进行相应的降级操作。结果如图2-23所示。

图2-22 降级选定任务

图2-23 各个阶段内的任务进行相应的降级操作
双击“确认需求”任务所在的单元格,弹出“任务信息”对话框,然后选择“高级”选项卡,选中“标记为里程碑”复选框,如图2-24所示。

图2-24 标记为里程碑任务
单击“确定”按钮返回“甘特图”视图,然后使用同样的方法为“《业务蓝图》评审”“交付业务调研原型系统”“《用户分析应用需求报告》评审”“可测试的客户服务系统正式提交”“上线”等任务设置“里程碑”。
(4)估计工期
项目经理在与项目组成员交流后,在Project中对每项任务的工期进行估算。如果某些任务的工期估计有困难,可以暂不输入,而保持默认的“1d?”(一个工作日)。
通常,项目是由一系列相互关联的任务组成的。一个任务代表了一定量的工作,并有明确的可交付结果;它应当是很短的,以便定期跟踪其进展情况。任务通常应介于一天到两周之间。按照发生的先后顺序输入任务,然后估计完成每项任务所需的时间,将估计值作为工期输入。Microsoft Project利用工期计算完成任务的工作量。
①双击“需求调研”任务所在的单元格,弹出“任务信息”对话框,在“工期”框中输入“4d”,表示4个工作日,如图2-25所示。

图2-25 调整需求调研阶段为4个工作日
②单击“确定”按钮返回“甘特图”视图,可以看到“调研阶段”任务的“工期”已变为“4工作日”。
③使用同样的方法估计其他任务的工期。注意:任务分解得越详细,录入的内容越精确,计划也就越容易实施。
(5)设定任务关联性
任务间的关联性对于排定进度计划很重要。在设定了任务间的关联性之后,大部分任务的开始时间和结束时间都被自动设置。只有个别的和其他任务没有相关性的任务,需要手工进行开始和结束时间的设置。设置任务间的相关性,主要包括:①前置任务的设定;②任务之间延隔时间的设定。比如“数据准确性、稳定性验证”应该在“测试数据准备”完之后才开始,即“数据准确性、稳定性验证”的前置条件是“测试数据准备”,不过实际应用中常常是测试数据准备开始一段时间之后,就可以对部分已做好的数据进行准确性验证了,此时可以通过设置延隔时间为负来表示任务之间的重叠。其步骤如下:
双击“数据准确性、稳定性验证”任务所在的单元格,弹出“任务信息”对话框,选择“前置任务”选项卡,在“前置任务”区域“任务名称”栏下第一个单元格单击,选择下拉列表中的“测试数据准备”任务,或者直接在标识号栏输入“测试数据准备”的任务号20即可。然后在“延隔时间”栏输入“-3d”,如图2-26所示。

图2-26 调整延隔时间
单击“确定”按钮返回项目文件窗口,然后使用同样的方法设置其他任务之间的关联性。如图2-27所示。
(6)关键路径
关键路径是指一系列必须按时完成的任务,由于这些任务的完成便能确保项目的按期完成。在常规的项目中,大多数任务都有一些时差,因此可以延迟一些时间而不会影响项目的完成日期。而那些延迟后必然会影响项目完成日期的任务则被称之为关键任务。如果关键任务发生延迟,则项目完成日期也可能延迟。当用户修改任务来解决过度分配或日程中的其他问题时,请注意关键任务,对关键任务所做的更改将影响项目的完成日期。一系列关键任务组成了项目的关键路径。在Microsoft Project中处理关键路径的步骤如下所述。

图2-27 设置任务之间的关联性
①设置关键路径。默认情况下,如果任务的可宽延时间(可宽延时间:在不影响其他任务或项目完成日期的情况下,任务可以落后的时间量。可用可宽延时间是在不延迟其他任务的情况下,任务可以落后的时间量。可宽延的总时间是在不延迟项目的情况下,任务可以落后的时间量。)为零天,则Microsoft Project将该任务定义为关键任务。但是,也可以更改该定义,例如,将具有一天或两天可宽延时间的任务定义为关键任务。
在“工具”菜单中,单击“选项”,然后单击“计算方式”选项卡。
在“关键任务定义:任务可宽延时间少于或等于”框中,键入或选择可宽延时间天数。如果任务的可宽延时间天数小于或等于您在此指定的天数,则该任务被视为关键任务。
如果希望该设置成为所有项目的默认设置,请单击“设为默认值”。
②查看关键路径。
在“视图”菜单上,单击“甘特图”;
在“筛选”列表中,单击“关键”。
若要再次显示所有任务,请在“筛选”列表中,单击“所有任务”。
项目实战
针对你自己的软件开发项目所分解的任务,使用MS Project项目管理工具编制项目的时间计划。
2.7.3 编制项目资源计划
问题引入
在明确了项目的时间计划之后,如何才能保证所列的时间计划能认真执行下去呢?答案是为计划分配资源。那么资源是什么,如何编制项目资源计划呢?

扫一扫 看视频
解答问题
资源是指具体执行项目任务的人员、设备以及材料等。项目资源计划就是要确定完成项目所需资源(人力、设备、材料等)的种类,以及每种资源的需要量,从而为项目成本的估算提供信息。制订资源计划实际上就是罗列项目的各项工作在什么时候需要什么样的资源,以及所需资源的数量、质量等一系列信息。客户服务系统的资源分配计划如图2-28所示。

图2-28 客户服务资源分配计划
分析问题
由于本案例是软件项目开发,只涉及人力资源,故不考虑其他资源。分配编制项目的资源计划,需要明确项目所需的资源,以及每项资源的基本费率和加班费率。人力资源的费率采用公司内部的各资源规定的成本核算标准。
(1)团队建设
项目经理余颖经过分析,根据项目的需要及项目规模,从公司各部门抽调了如下人员:系统架构师1人(裴松海),开发人员3人(李耀全、云峰、刘正江),数据库专家1人(黄金钻),系统配置实施工程师1人(蔡龙昂),测试人员2人(李南、张志刚),培训师1人(杨剑南)。这些人与余工程师组成了10人的开发团队。
(2)创建项目资源
在确定了项目所需的资源及费率后,即可在Project中创建项目的资源。
①选择“视图”→“资源工作表”命令,切换到“资源工作表”视图。
②选定“资源名称”域的第一个单元格,输入“余颖”,选定“标准费率”域的每一个单元格,输入“¥100.00/工时”,再选定“加班费率”域的第一个单元格,输入“¥100.00/工时”,如图2-29所示。

图2-29 输入资源信息
③使用同样的方法,设置其他资源信息,如图2-30所示。

图2-30 输入其他资源信息
(3)设置资源日历
如果个别资源的工作时间、非工作时间与项目日历不一致,可以为这些资源设置单独的日历。比如本案例中培训师“杨剑南”只是在后期才加入项目组,完成培训客户使用系统的任务,工作时间从“2017-4-25”到“2017-5-20”。
①双击资源“杨剑南”所在的单元格,弹出“资源信息”对话框,如图2-31所示。

图2-31 “资源信息”对话框
②单击“更改工作时间”按钮,弹出“更改工作时间”对话框,在“例外日期”选项卡的“名称”域中输入“文档编写及培训”,在“开始时间”域输入“2017-4-25”,在“完成时间”域输入“2017-5-20”。
③单击“确定”按钮返回“资源信息”对话框,然后单击“确定”按钮,即可完成对资源日历的修改。
(4)为任务分配资源
为项目创建资源之后,即可为项目中的任务分配相应的资源。分配时应注意资源分配单位的使用。该项目中资源为真实的人员,因此资源的分配单位不能超过100%。在本开发项目中,对于“调研阶段”任务,分配资源“余颖”和“裴松海”的单位各为50%。
①选择“视图”→“甘特图”命令,切换到“甘特图”视图。
②双击“调研阶段”任务所在单元格,弹出“任务信息”对话框,选择“资源”选项卡,在“资源”区域“资源名称”域单击第一个单元格,并在下拉列表中选择“余颖”,选定“单位”并输入50%,然后使用同样的方法,为该任务分配“裴松海”资源,如图2-32所示。
③单击“确定”按钮返回“甘特图”视图,在“资源名称”域可以看到选定任务已被分配的资源。使用同样的方法为其他任务分配资源,结果如图2-33所示。

图2-32 为调研阶段分配资源

图2-33 为其他任务分配资源
项目实战
针对你自己的软件开发项目,在前面所编制的时间计划的基础上,继续编制项目的资源计划。
2.7.4 编制项目成本计划
问题引入
项目三角形的第二个要素是成本,可见成本的变动对项目也会产生影响。在实际工作中,各软件企业非常重视资源成本计划,毕竟能赚钱才是硬道理。那么,如何编制项目成本计划呢?
解答问题
成本计划是为实现项目的目标,根据项目资源计划所确定的资源需求,以及市场上各种资源的价格信息,对项目所需资源的成本所进行的估算。
分析问题
项目成本计划是项目执行和比较的一个依据。使用Project编制项目成本计划,首先应明确项目中成本的计算方法。默认的成本计算公式是:
成本=固定成本+资源成本
资源成本=工时资源成本+材料资源成本
本软件开发项目中,没有固定成本,只涉及人力资源成本,故只需在“甘特图”视图插入一个“成本”域,便可查看Project自动为每项任务计算的成本预算,其步骤如下:
(1)选择“视图”→“甘特图”菜单命令,切换到“甘特图”视图,然后在“工期”域上右击,在弹出的快捷菜单中选择“插入列”菜单命令,如图2-34所示。

图2-34 在“工期”列弹出右键菜单
(2)在弹出的“列定义”对话框的“域名称”下拉列表中选择“成本”选项,如图2-35所示。

图2-35 添加成本列定义对话框
(3)单击“确定”按钮返回“甘特图”视图,即可在“成本”域中看到项目的成本,如图2-36所示。

图2-36 添加成本列的视图
项目实战
针对自己的软件开发项目,在前面所编制的时间计划和资源计划的基础上,继续编制项目的成本计划。
2.7.5 项目监控管理
问题引入
在项目实施过程中,对于发生变更的项目需要重新制订项目计划,项目实施结束时需要总结经验,保存项目成果。所谓“运筹帷幄之中,决胜千里之外”,项目监控管理担负的就是此项重任。如何进行项目监控管理呢?
解答问题
项目监控管理是为了确保项目的顺利进行,需要跟踪项目的实际运行状态,包括设置比较基准,更新进度,查看项目进度等。
分析问题
项目在执行过程中都会或多或少地出现问题,最突出的就是进度延误和费用超支。为了有效地规避风险,实现项目的最终目标,项目经理必须实时监控项目的执行情况,以期及时发现问题并解决问题。
(1)设置比较基准
在项目计划编制完毕,项目实施之前,通常都要为项目保存一个比较基准计划,以此作为项目实施的依据和项目变化的参照。
①选择“工具”→“跟踪”→“设置比较基准”命令,如图2-37所示。

图2-37 “设置比较基准”子菜单
②弹出“设置比较基准”对话框,保持默认设置不变,如图2-38所示。

图2-38 “设置比较基准”对话框
③单击“确定”按钮即可将当前项目计划保存为比较基准。
(2)更新项目进度
在项目执行过程中,项目经理通过每周召开项目例会的方式,可以及时了解项目组各成员完成任务的进展情况。在项目开始两周后,项目经理需要更新项目进度,需求“调研阶段”,“项目启动”和“蓝图设计”阶段均已按时完成。
①在“甘特图”中双击“调研阶段”任务的“任务名称”域,显示“任务信息”对话框,在“完成百分比”域输入100%,如图2-39所示。

图2-39 调整“调研阶段”百分比为100%
②单击“确定”按钮,可以看到调研阶段的所有子任务都被设置为完成状态,如图2-40所示。因此当一个任务的所有子任务全部都完成时,可以直接设置上级任务的完成状态为100%,而不用每个子任务分别设置。

图2-40 设置“调研阶段”的所有子任务为完成状态
③按照同样的方法可以设置“项目启动”和“蓝图设计”的完成比为100%。如果要为多个任务输入相同的信息,可以先选中要编辑的行或者域,单击工具栏的信息按钮,然后在对话框中输入要更改的值就可以了,如图2-41所示。

图2-41 多任务信息调整对话框
④如果要设置某一个任务的跟踪信息,例如:“系统各子模块用户界面及操作流程设计”任务,选择“工具”→“跟踪”→“更新任务”命令,在弹出的“更新任务”对话框中的“实际”区域,在“开始”下拉列表中输入“2017年4月5日”,完成百分比设为“80%”,如图2-42所示。

图2-42 更新“系统各子模块用户界面及操作流程设计”完成百分比
⑤在“工期”域上右击,在弹出的快捷菜单中选择“插入列”菜单项,在弹出的“列定义”对话框的“域名称”下拉列表中选择“完成百分比”选项,如图2-43所示。

图2-43 新增列定义对话框
⑥单击“确定”按钮,可以看到插入的“完成百分比”域,如图2-44所示。

图2-44 添加完成百分比的视图
(3)监控项目进度计划
项目经理为了更好地对项目进度计划进行监控,可以自定义一个“进度计划监控视图”,比如可以包含“名称”“工期”“比较基准日期”“工期差异”“开始时间”“比较基准开始时间”“开始时间差异”“完成时间”“比较基准完成时间”和“完成时间差异”等。其定义步骤如下:
①选择“视图”→“表:项”→“其他表”命令,如图2-45所示。

图2-45 选择“其他表”子菜单
②弹出“其他表”对话框,保持默认设置不变,如图2-46所示。

图2-46 “其他表”对话框
③单击“新建”按钮,弹出“客服系统计划与实施.mpp”对话框,在“名称”域中输入“进度计划监控表”,在“域名称”列表中依次选择定义新视图所需要的列,如图2-47所示。

图2-47 “‘客服系统计划与实施.mpp’中的表定义”对话框
④单击“确定”按钮返回“其他表”对话框,可以看到“表”列表框中多了“进度计划监控表”项,如图2-48所示。

图2-48 增加了进度计划监控表
⑤单击“应用”按钮返回“甘特图”视图,然后选择“视图”→“其他视图”命令,如图2-49所示。

图2-49 选择[其他视图]子菜单命令
⑥弹出“其他视图”对话框,单击“新建”按钮,弹出“定义新视图”对话框,保持默认设置不变,如图2-50所示。
⑦单击“确定”按钮,弹出“‘客服系统计划与实施.mpp’的视图定义”对话框,在“名称”域中输入“进度计划监控视图”,在“表”下拉列表中选择“进度计划监控表”选项,在“分组”下拉列表中选择“不分组”选项,在“筛选器”下拉列表中选择“所有任务”选项,然后选中“显示在菜单中”复选框,如图2-51所示。

图2-50 定义新视图对话框

图2-51 进度计划监控视图定义对话框
⑧单击“确定”按钮返回“其他视图”对话框,然后单击“应用”按钮即可看到自定义的“进度计划监控视图”,如图2-52所示。
定义了该视图之后,项目经理可以在更新项目进度之后,随时观察该表了解进度计划的变化情况。

图2-52 进度计划监控视图
(4)监控项目成本计划
在项目执行过程中,成本计划的监控也是项目管理人员非常重视的内容。因为成本计划的变化往往与进度计划的变化有着内在的联系。为了更好地对项目成本计划进行监控,项目经理可以自定义一个“成本计划监控视图”,包含了项目中能够反映成本信息的列:“成本”“比较基准成本”和“成本差异”等。
使用定义“进度计划监控视图”的方法定义“成本计划监控视图”,如图2-53所示。

图2-53 定义成本计划监控视图
软件项目管理最早介入到软件开发过程中,管理过程贯穿于软件开发过程的始终。在需求分析与设计之前我们还需了解生命周期、软件开发模型以及软件开发技术等方面的知识,以便于我们在正式开发之前确定合适的软件开发模型和软件开发技术,减少软件开发的盲目性,提高项目的成功率。在接下来的第3章中我们将学习软件系统开发方法。
项目实践
针对自己的软件开发项目,在项目的实施过程中,对你所编制的进度计划和成本计划进行监控,根据需要不断调整计划,以适应各种变化。