如何做好一个项目计划
王斌耀 PMP 2004年4月 [email protected]
课程内容
• • • • • • • 编写项目计划的目的 编制项目计划的时机 项目计划应包含的内容 编制项目计划前的准备工作 编制项目计划的步骤 编制项目计划应注意的问题 编制项目计划的人员
• 如何评价一个项目计划?
为什么要做计划?
• • • • 行动指南 明晰工作分派 跟踪控制目的 评价(项目绩效、人员绩效)
项目计划要回答的问题
什么时候做? 谁去做?
如何做?
成本是多少?
必须做什么?
应该达到什么质量?
在什么时间做计划?
• 计划贯穿整个项目 • 一些可能的时间点:
– 项目立项之后 – 项目的控制点(里程碑)
• 编制项目计划前的准备工作
– – – – 项目小组主要成员碰头 对范围进行明晰 对目标进行明晰 分派项目计划的工作
谁来做计划?
项目经理
负责制定项目计划,并确保在整个项目生命周期中始终 提供计划文档的最新版本。
项目组所有成员(包括SQA)
都要参与计划的制定
SQA、高级管理者、委托方(用户、用 户代表)
要参与项目计划的评审
SME(估算)
计划些什么?
• 计划内容
– 工作(WBS) – – – – 进度 成本及预算 质量 其他(沟通、风险、SCM、SPTO、人力资 源、采购等)
软件项目计划的作用
它说明了项目工作的方法,是一种高级的计 划,生成后供经理们指导开发工作所用。 为高级管理者提供监督项目的依据。 包括:
项目经理——以制定项目时间表和资源需求,并按 照时间表跟踪项目的进展。 项目团队成员——以了解他们的工作任务、工作时 间以及他们所依赖的其他活动。 高级管理者——据此来监督项目的费用、进度以及 对人员的绩效考核等等。
项目计划的内容
项目概述 项目组织结构 项目管理流程 项目技术流程 项目支持流程 其它专题计划
项目计划的内容(Cont. 1)
项目概述
项目的目标以及规模 项目中的假设与约束条件 项目应该交付的工件 项目计划的演进 (如涉及开发模型)
项目计划的内容(Cont. 2)
项目组织结构
项目角色的划分与职责的定义 人力资源的配置 人员沟通计划(内部与外部)
项目计划的内容(Cont. 3)
项目管理流程
估算项目(规模、工作量、费用、预算) 划分项目开发阶段与迭代 安排项目开发时间表(进度) 分配项目资源(人员、计算机软、硬件资 源以及项目参与人员的培训等) 计划迭代(软件项目) 计划项目的风险管理 对所有影响项目的因素的跟踪与控制计划 计划项目的收尾
项目计划的内容(Cont. 4)
项目技术流程
项目生命周期模型 开发案例 描述项目开发中使用的
方法、工具与技术 产品验收计划
项目计划的内容(Cont. 5)
项目支持流程
配置管理计划 质量保证(SQA)计划 问题解决计划 文档编写计划 评审计划 测试计划 流程改进计划(可选)
项目计划的内容(Cont. 6)
其它专题计划
合同或法规所要求的其他计划。
制作项目计划的流程
估算项目的 规模、工作量、开发周期 估算项目的 规模、工作量、开发周期 Estimate project size,effort, time Estimate project size,effort, time 定义项目的生命周期模型模型 定义项目的生命周期模型模型
Define project lifecycle model Define project lifecycle model Develop Additional Plan Develop Additional Plan
制作专题计划 制作专题计划
制作项目计划文档 制作项目计划文档
Documentes project plan Documentes project plan
Determine phases Determine phases
计划项目的阶段 计划项目的阶段
计划评审 计划评审
Review the project plan Review the project plan
Plan schedule and resources Plan schedule and resources
计划项目的时间表、资源 计划项目的时间表、资源
通过? 通过? 通过? 是 是
Pass? Pass?
Confirm the key developing activities and Confirm the key developing activities and milestones milestones
确定关键的项目活动以及里程碑 确定关键的项目活动以及里程碑
否 否 修改计划 修改计划
Update the project plan Update the project plan
制作子计划 制作子计划
Develop Sub Plan Develop Sub Plan
结束 结束
做计划的步骤
• • • • • • • • • • • • • • • 范围定义 工作分解 工期估算 活动排序 成本估算 资源计划 进度计划 预算建立 质量计划 组织计划 沟通计划 风险识别 风险分析 风险计划 采购计划
计划制定的目标、流程和驱动因素
客户的目标
目标
•怎样执行项目-项目策略 •需要执行哪些任务 •需要什么时候执行任务 •任务的输入条件和输出结果 是什么 •谁来执行任务 •团队和任务的相互关系 •关键路径是什么 •怎么管理风险 •需要采取什么关键措施 •需要采取何种控制系统
管理层的目标 项目目标 团队互动 实施计划 团队承诺
流程
•确定项目交付物和里程碑 •定义中间交付物和里程碑 •定义生产交付物所需执行的工作任务 •定义工作任务间的顺序,建立项目网络图 •识别关键路径 •定义和评估风险 •制定风险管理任务和项目网络图相联系 •制定进度,建立应急措施 •再评估关键路径 •物理资源计划 •人力资源计划 •计算所需预算,把储备值考虑进去 •如需要,重复上述工作 •取得同意和承诺 •授权工作
定义项目的组织结构
项目沟通计划
项目组内部的沟通 项目组与外部的沟通
制作子计划
预算控制计划
说明以何种方法监控项目
预算开支,以及如何在 需要时采取纠正措施
进度控制计划
说明以何种方法按照设定的时间表监控项目进 展,以及如何在需要时采取纠正措施
项目报告计划
说明将生成的内部和外部报告,以及报告发布的 频率和范围
制作子计划(Cont. 1)
资源获取计划
说明您将如何发现并招募项目所需的人员
培训计划
列出项目团队成员所需的所有特殊培训,以 及完成这些培训的预定日期
制作子计划(Cont. 2)
风险管理计划(风险列表) 问题解决计划
制作子计划(Cont. 3)
文档编写计划
说明项目文档的编写方式、时间进度安排、资 源的分配
评审计划 产品验收计划
制作子计划(Cont. 4)
配置管理计划
配置经理负责完成
需求管理计划
系统分析员负责完成
每个迭代的迭代计划
项目经理负责完成
制作项目专题计划
SQA计划
独立于项目组的SQA组负责制定
测试计划
项目测试组
其它专题计划
用户培训计划 维护计划 ……
制作项目计划文档
遵照组织定义的软件开发计划模版格式
对项目计划的建议
对项目计划的建议-1
认识到信心来自规划过程,而不是计划 本身
创建项目计划会迫使您早在编写一行代码之前 就考虑如何构建您的系统——减少项目的风险,因 为您已经考虑了各种策略和方法并且已经选择了最 有意义的一项。您的目的不应该只是不花气力产生 一个计划;它应该是一个实际可行的计划,您可以 根据它来成功管理您的项目。
对项目计划的建议-2
项目业务过程推动计划的开发
每个项目业务过程都有一个不同的集合,它 包括组织团队的活动方法以及规划项目常用的技 术。不同的过程有不同的计划。
对项目计划的建议-3
从粗粒度的计划开始
在项目将要开始时,应该制定一个粗粒度 的、确定项目高级活动和预期里程碑的计划。粗 粒度的计划将组织成迭代——根据项目的大小和 性质,每次迭代通常在三周到八周之间发生(四 周到六周为更佳)。其中一些迭代将集中在项目 初期,而很多迭代将集中在整个应用的功能部分 开发,还有一些迭代集中在将您的系统转变成产 品。
对项目计划的建议-4
实施者应该是计划人员
创建项目计划的最佳人员是负责实施该计 划的人员。当规划由一个人创建而由另一个人 实施时,如果项目不能按时完成或超出预算, 他们不太会相信计划,而很有可能会责备它。 也就是说,参与项目的每个人都应该投入到项 目计划的开发和进展中。
对项目计划的建议-5
不要忘记“不该忘记的事”
计划不仅要反映需求设计、建模、编程和测试 的“真实”工作,而且还应该反映辅助活动(然而仍是 重要的),它
包括:
休假和法定假日 培训和教育 项目管理活动,如规划和人员管理 开销,如系统当机时间、会议和回复电子邮件 体系结构定义 测试之后的系统返工 系统交付 与重用相关的活动,如普遍化
对项目计划的建议-6
将任何设想和约束编入文档
规划时您总要作一些假设,如能够及时获 得应用程序服务器的新发行版,或可以得到熟悉 您正在应用的技术和技巧的开发人员。同时,您 将在一些约束下工作,如影响计划的强制截止期 限或资源限制。将这些假设和约束编入文档,这 样,当您实施项目的任何时候更新计划时,都可 以记起您先前做出的一些“不寻常”决定。
对项目计划的建议-7
认识到不同的资源意味着不同的计划
十名有经验的开发人员组成的团队创造 出的成效要远远多于十名初学者组成的团队所 创造的成效。要想更加实际的话,您的计划必 须反映项目可使用的资源的真实情况。
对项目计划的建议-8
创建现实的计划
项目组必须相信其项目的目的、估价和 时间表。要做到这点,您必须真实地规划,避 免规划超出您能理解的范围。仅当您打算研究 未知事项时,才能容忍无知。
对项目计划的建议-9
只规划有价值的事
更多的参考资料提供了许多可应用于您项 目的最佳实践。然而,根据项目的性质,不是所 有这些技术都将适合于您的独特情况。要将这些 最佳实践简单地看作是您放置在“项目管理工具 箱”中的工具,您可以根据需要适当使用这些工 具。
对项目计划的建议-10
适当使用项目管理工具。
一些项目管理工具,如 Microsoft Project,提供了重要功能, 如 Gantt 图表(活 动时间表)的开发、规划与实际结果的比较、 PERT 图表(网络图表)的开发、任务的定 义、任务之间相关性的定义、对任务的资源分 配和资源平衡。所有这些事情似乎象是一个好 主意,并且它们通常是好主意——但它们还需 要许多精力来创建和维护,而且很少为项目组 提供实际价值。的确,它让一些项目管理人员 感到富有成效。的确,高级管理喜欢看见您有 一个计划。但是,没有一行代码是由所有这个 活动产生的。规划是有价值的活动;但投入大 量的时间来创建规划图表通常不是有价值的活
计划过程中要注意的问题
• • • • • • • • 做事的先后顺序 底层活动的粒度的大小 底层活动的粒度均匀性 控制点的设定 要以业务为主导安排进度计划 顺排和倒排要结合 计划工作贯穿整个项目 要留有余量(应急和管理)
如何评价项目计划
Q&A?
Thank you!
如何做好一个项目计划
王斌耀 PMP 2004年4月 [email protected]
课程内容
• • • • • • • 编写项目计划的目的 编制项目计划的时机 项目计划应包含的内容 编制项目计划前的准备工作 编制项目计划的步骤 编制项目计划应注意的问题 编制项目计划的人员
• 如何评价一个项目计划?
为什么要做计划?
• • • • 行动指南 明晰工作分派 跟踪控制目的 评价(项目绩效、人员绩效)
项目计划要回答的问题
什么时候做? 谁去做?
如何做?
成本是多少?
必须做什么?
应该达到什么质量?
在什么时间做计划?
• 计划贯穿整个项目 • 一些可能的时间点:
– 项目立项之后 – 项目的控制点(里程碑)
• 编制项目计划前的准备工作
– – – – 项目小组主要成员碰头 对范围进行明晰 对目标进行明晰 分派项目计划的工作
谁来做计划?
项目经理
负责制定项目计划,并确保在整个项目生命周期中始终 提供计划文档的最新版本。
项目组所有成员(包括SQA)
都要参与计划的制定
SQA、高级管理者、委托方(用户、用 户代表)
要参与项目计划的评审
SME(估算)
计划些什么?
• 计划内容
– 工作(WBS) – – – – 进度 成本及预算 质量 其他(沟通、风险、SCM、SPTO、人力资 源、采购等)
软件项目计划的作用
它说明了项目工作的方法,是一种高级的计 划,生成后供经理们指导开发工作所用。 为高级管理者提供监督项目的依据。 包括:
项目经理——以制定项目时间表和资源需求,并按 照时间表跟踪项目的进展。 项目团队成员——以了解他们的工作任务、工作时 间以及他们所依赖的其他活动。 高级管理者——据此来监督项目的费用、进度以及 对人员的绩效考核等等。
项目计划的内容
项目概述 项目组织结构 项目管理流程 项目技术流程 项目支持流程 其它专题计划
项目计划的内容(Cont. 1)
项目概述
项目的目标以及规模 项目中的假设与约束条件 项目应该交付的工件 项目计划的演进 (如涉及开发模型)
项目计划的内容(Cont. 2)
项目组织结构
项目角色的划分与职责的定义 人力资源的配置 人员沟通计划(内部与外部)
项目计划的内容(Cont. 3)
项目管理流程
估算项目(规模、工作量、费用、预算) 划分项目开发阶段与迭代 安排项目开发时间表(进度) 分配项目资源(人员、计算机软、硬件资 源以及项目参与人员的培训等) 计划迭代(软件项目) 计划项目的风险管理 对所有影响项目的因素的跟踪与控制计划 计划项目的收尾
项目计划的内容(Cont. 4)
项目技术流程
项目生命周期模型 开发案例 描述项目开发中使用的
方法、工具与技术 产品验收计划
项目计划的内容(Cont. 5)
项目支持流程
配置管理计划 质量保证(SQA)计划 问题解决计划 文档编写计划 评审计划 测试计划 流程改进计划(可选)
项目计划的内容(Cont. 6)
其它专题计划
合同或法规所要求的其他计划。
制作项目计划的流程
估算项目的 规模、工作量、开发周期 估算项目的 规模、工作量、开发周期 Estimate project size,effort, time Estimate project size,effort, time 定义项目的生命周期模型模型 定义项目的生命周期模型模型
Define project lifecycle model Define project lifecycle model Develop Additional Plan Develop Additional Plan
制作专题计划 制作专题计划
制作项目计划文档 制作项目计划文档
Documentes project plan Documentes project plan
Determine phases Determine phases
计划项目的阶段 计划项目的阶段
计划评审 计划评审
Review the project plan Review the project plan
Plan schedule and resources Plan schedule and resources
计划项目的时间表、资源 计划项目的时间表、资源
通过? 通过? 通过? 是 是
Pass? Pass?
Confirm the key developing activities and Confirm the key developing activities and milestones milestones
确定关键的项目活动以及里程碑 确定关键的项目活动以及里程碑
否 否 修改计划 修改计划
Update the project plan Update the project plan
制作子计划 制作子计划
Develop Sub Plan Develop Sub Plan
结束 结束
做计划的步骤
• • • • • • • • • • • • • • • 范围定义 工作分解 工期估算 活动排序 成本估算 资源计划 进度计划 预算建立 质量计划 组织计划 沟通计划 风险识别 风险分析 风险计划 采购计划
计划制定的目标、流程和驱动因素
客户的目标
目标
•怎样执行项目-项目策略 •需要执行哪些任务 •需要什么时候执行任务 •任务的输入条件和输出结果 是什么 •谁来执行任务 •团队和任务的相互关系 •关键路径是什么 •怎么管理风险 •需要采取什么关键措施 •需要采取何种控制系统
管理层的目标 项目目标 团队互动 实施计划 团队承诺
流程
•确定项目交付物和里程碑 •定义中间交付物和里程碑 •定义生产交付物所需执行的工作任务 •定义工作任务间的顺序,建立项目网络图 •识别关键路径 •定义和评估风险 •制定风险管理任务和项目网络图相联系 •制定进度,建立应急措施 •再评估关键路径 •物理资源计划 •人力资源计划 •计算所需预算,把储备值考虑进去 •如需要,重复上述工作 •取得同意和承诺 •授权工作
定义项目的组织结构
项目沟通计划
项目组内部的沟通 项目组与外部的沟通
制作子计划
预算控制计划
说明以何种方法监控项目
预算开支,以及如何在 需要时采取纠正措施
进度控制计划
说明以何种方法按照设定的时间表监控项目进 展,以及如何在需要时采取纠正措施
项目报告计划
说明将生成的内部和外部报告,以及报告发布的 频率和范围
制作子计划(Cont. 1)
资源获取计划
说明您将如何发现并招募项目所需的人员
培训计划
列出项目团队成员所需的所有特殊培训,以 及完成这些培训的预定日期
制作子计划(Cont. 2)
风险管理计划(风险列表) 问题解决计划
制作子计划(Cont. 3)
文档编写计划
说明项目文档的编写方式、时间进度安排、资 源的分配
评审计划 产品验收计划
制作子计划(Cont. 4)
配置管理计划
配置经理负责完成
需求管理计划
系统分析员负责完成
每个迭代的迭代计划
项目经理负责完成
制作项目专题计划
SQA计划
独立于项目组的SQA组负责制定
测试计划
项目测试组
其它专题计划
用户培训计划 维护计划 ……
制作项目计划文档
遵照组织定义的软件开发计划模版格式
对项目计划的建议
对项目计划的建议-1
认识到信心来自规划过程,而不是计划 本身
创建项目计划会迫使您早在编写一行代码之前 就考虑如何构建您的系统——减少项目的风险,因 为您已经考虑了各种策略和方法并且已经选择了最 有意义的一项。您的目的不应该只是不花气力产生 一个计划;它应该是一个实际可行的计划,您可以 根据它来成功管理您的项目。
对项目计划的建议-2
项目业务过程推动计划的开发
每个项目业务过程都有一个不同的集合,它 包括组织团队的活动方法以及规划项目常用的技 术。不同的过程有不同的计划。
对项目计划的建议-3
从粗粒度的计划开始
在项目将要开始时,应该制定一个粗粒度 的、确定项目高级活动和预期里程碑的计划。粗 粒度的计划将组织成迭代——根据项目的大小和 性质,每次迭代通常在三周到八周之间发生(四 周到六周为更佳)。其中一些迭代将集中在项目 初期,而很多迭代将集中在整个应用的功能部分 开发,还有一些迭代集中在将您的系统转变成产 品。
对项目计划的建议-4
实施者应该是计划人员
创建项目计划的最佳人员是负责实施该计 划的人员。当规划由一个人创建而由另一个人 实施时,如果项目不能按时完成或超出预算, 他们不太会相信计划,而很有可能会责备它。 也就是说,参与项目的每个人都应该投入到项 目计划的开发和进展中。
对项目计划的建议-5
不要忘记“不该忘记的事”
计划不仅要反映需求设计、建模、编程和测试 的“真实”工作,而且还应该反映辅助活动(然而仍是 重要的),它
包括:
休假和法定假日 培训和教育 项目管理活动,如规划和人员管理 开销,如系统当机时间、会议和回复电子邮件 体系结构定义 测试之后的系统返工 系统交付 与重用相关的活动,如普遍化
对项目计划的建议-6
将任何设想和约束编入文档
规划时您总要作一些假设,如能够及时获 得应用程序服务器的新发行版,或可以得到熟悉 您正在应用的技术和技巧的开发人员。同时,您 将在一些约束下工作,如影响计划的强制截止期 限或资源限制。将这些假设和约束编入文档,这 样,当您实施项目的任何时候更新计划时,都可 以记起您先前做出的一些“不寻常”决定。
对项目计划的建议-7
认识到不同的资源意味着不同的计划
十名有经验的开发人员组成的团队创造 出的成效要远远多于十名初学者组成的团队所 创造的成效。要想更加实际的话,您的计划必 须反映项目可使用的资源的真实情况。
对项目计划的建议-8
创建现实的计划
项目组必须相信其项目的目的、估价和 时间表。要做到这点,您必须真实地规划,避 免规划超出您能理解的范围。仅当您打算研究 未知事项时,才能容忍无知。
对项目计划的建议-9
只规划有价值的事
更多的参考资料提供了许多可应用于您项 目的最佳实践。然而,根据项目的性质,不是所 有这些技术都将适合于您的独特情况。要将这些 最佳实践简单地看作是您放置在“项目管理工具 箱”中的工具,您可以根据需要适当使用这些工 具。
对项目计划的建议-10
适当使用项目管理工具。
一些项目管理工具,如 Microsoft Project,提供了重要功能, 如 Gantt 图表(活 动时间表)的开发、规划与实际结果的比较、 PERT 图表(网络图表)的开发、任务的定 义、任务之间相关性的定义、对任务的资源分 配和资源平衡。所有这些事情似乎象是一个好 主意,并且它们通常是好主意——但它们还需 要许多精力来创建和维护,而且很少为项目组 提供实际价值。的确,它让一些项目管理人员 感到富有成效。的确,高级管理喜欢看见您有 一个计划。但是,没有一行代码是由所有这个 活动产生的。规划是有价值的活动;但投入大 量的时间来创建规划图表通常不是有价值的活
计划过程中要注意的问题
• • • • • • • • 做事的先后顺序 底层活动的粒度的大小 底层活动的粒度均匀性 控制点的设定 要以业务为主导安排进度计划 顺排和倒排要结合 计划工作贯穿整个项目 要留有余量(应急和管理)
如何评价项目计划
Q&A?
Thank you!