课程大纲
1. What & Why——软件项目和软件项目管理的概念(9:00~10:00)
热身演练:角色扮演游戏
n 3人一个小组在5分钟之内完成一个Mini项目,讲师点评项目执行的过程和效果
n 讲评:通过演练来认识“项目的成功从哪里来”的命题,认识软件项目管理的常见误区——需求不清晰、缺少可视化监控手段以及无限制扩大用户的期望值 ……
l 什么是项目?什么是项目管理?软件项目区别于其他工程类型项目的最大不同是什么?
l 项目的4大要素、项目管理的5大过程与10大领域
l 正确认知软件项目管理的第一要素——我们交付的是价值、不是项目!
n 一个软件系统能够给各个相关方带来的最高价值感知——“帮忙不惹事”(BBR模型)
实际案例剖析
l 准确识别相关方期望/要求/约束的BBR模型
n 四个象限,四种不同类型的相关方
实际案例剖析
l 项目管理全过程其实就是要做好“四件事情”——识别项目的交付价值、识别相关方的期望值、管理相关方的期望值、实现项目的交付价值
l 项目管理面临的重大挑战——高层管理的问题、项目经理的问题、项目组成员的问题
l 你准备好了吗——作为软件项目经理,在项目的整个生命周期中你将承担怎样的角色与职责?
n 你愿意做怎样的项目经理,“包工头”还是“工段长”,“二极管”还是“三极管”?
n 你能讲的清楚吗?你自己项目的“独特性”特征是什么?
n 你能讲的清楚吗?你自己项目的“目标”是什么?注意:不要仅仅只以一句“按时保质的完成任务”作为搪塞,但是并不清楚或者没有关注到自己的项目会给各个相关方(客户、用户、高层管理者、项目团队成员……)所带来的价值。
2. 规矩与方圆——结构化的软件项目管理流程(10:00~12:00)
l 为什么把项目流程结构化——解构与冗余
l 项目管理流程如何做到结构化、分层次(阶段、步骤、活动、任务)
l 最理想情况下,项目流程与项目管理的关系:经验和教训的总结
l 然而现实总是没有理想中那么美好:项目流程结构化容易陷入的两个极端——“一放就乱”与“一管就死”;
l 如何克服流程与效率的矛盾?项目流程的“柔性设计”——快速判断项目场景、组件化流程定义与“拼接”出项目的流程
实例介绍:“面向应用的流程”与“面向应用的文档模板”
3. 未有项目之前——项目启动(13:30~15:30)
l 启动阶段的主要任务:明确项目的目标和范围
l 现实总不如看起来那么美好之一——软件项目过程的两大常态(“用户讲不清楚需求”、“需求总是处于变更当中”)
l 现实总不如看起来那么美好之二——输入项目的“原始需求”通常存在哪些问题:
n “业务流程”与“系统流程”的边界不清晰
n “用户期望”与“系统功能”“的边界不清晰
n 只有“系统能做什么”,没有“系统做的有多好”
n 最容易被忽略的一类用户——Administrator
l 三种不同详细程度的“需求”:白云级需求、风筝级需求和场景级需求
l 不明觉厉——如何从项目的需求中抽象得到项目的目标、识别项目给客户/相关方带来的价值
l 什么是有效的项目目标?如何通过分析和分解相关方的期望值来识别并确认项目的目标?
l “诺兰模型”永放光芒——如何有效的引导客户对于项目目标的期望值?为什么说过高的引导相关
l 方相关方的期望值与“挖个坑把自己埋起来”无异?
l 实例剖析:如何从“相关方期望值”抽象得出项目的“建设目标”
· 实例介绍之一——物流管理信息系统;
· 实例介绍之二——期货交易管理系统;
l 以终为始——从项目的“建设目标”入手、分析项目的关键活动项
l 各方相关方承诺的集合——项目工作任务书(及其实例分析)
l 选择合适的项目生命周期流程、裁剪组织级的项目生命周期流程?或者,更有效的,“拼接”项目的生命周期流程
l 建立项目团队
l 项目开工会——项目组成员一定要聚餐的”两个会议”之一
实例介绍:防止项目需求蔓延范围失控的工作是从这个时候开始的
4. 运筹帷幄——项目策划过程(上)(15:45~17:30)
l 进度、质量、成本、范围——项目的4大目标之间是协调的关系,没有哪个目标天生高人一等
l 完整的项目计划应该包涵哪些内容?
l 项目计划 vs. 项目进度计划
l 什么是一份“好”的项目计划?如何让项目计划更像“项目的”计划(如何避免项目计划千篇一律)
l 是非曲直话估算:估算不是掐指一算,估算其实就是为了寻找合适的“y=f(x)”表达式
n 常用估算技术介绍——概略估算的扑克牌法、精确估算的功能点分析(FPs)
n 还能更好吗——A公司和B公司的企业级估算模型
n 项目估算Vs.项目计划:估算、目标与承诺之间的区别与联系
n 故所以:估算的真正作用,并不单纯在于“拿出一个数值”,而在于“利用多轮估算的结果调整项目的目标”
案例分析与讨论:估算既不是计划,计划也不是估算
l 估算的“不确定性锥”作用、重估算与重计划的阈值
l 进度的估算与制定进度计划
实例介绍:某软件公司基于Webpage的估算方法,以及某软件公司基于Work Unit的估算方法
第二天
5. 运筹帷幄——项目风险管理(9:00~10:30)
l 风险管理的意义与过程
l 风险识别的“一招鲜”——“相关方期望值冲突矩阵”分析风险
l 风险类型,以及实际案例介绍:
· 项目计划阶段的常见风险
· 需求分析活动时的常见风险
· 架构设计活动时的常见风险
· 设计和构建时的常见风险
· 验证与交付时的常见风险
l 描述风险的“三位一体”: 风险的背景、风险发生的必要条件、风险所可能带来的危害
· 案例分析:风险发生的条件、风险的危害以及风险的扩展描述
l 分析风险的“三大禁忌”:不假思索的风险发生的原因归结为1)“项目成员的能力”、2)“客户的原因”、或者3)“沟通不畅“;
案例分析:如何通过风险的持续监控而将风险管理有机的融入项目管理中
· 结论:唯有将风险管理融入项目管理中,风险管理才能真正的发挥作用
l 风险的管控措施,以及风险的规避措施和应急计划是否有“针对性”的检验标准:是否可以将管控措施写在WBS/PB里
l 制定规避措施和应急计划的最大禁忌:无限制加班
实例介绍:风险管理的实践与经验——使用“风险跟踪矩阵”持续监控风险
6. 运筹帷幄——项目策划过程(下)(10:40~12:00)
l 工作任务分解结构(Work Breakdown Structure,简写为WBS)= 规定动作+自选动作——如此让项目的计划更像“项目的”计划
l 关键路径分析——项目经理的管理焦点、项目目标的影响因素
l 制定WBS/PB(WBS,Work Breakdown Structure,工作任务分解结构;Product Backlog,产品待办事项)的“三大纪律八项注意”
· 案例分析与讨论之:WBS/PB要至少要包含“名词”和“动词”两个部分;
· 案例分析与讨论之:WBS/PB要包含“规定动作”与“自选动作”;
· 案例分析与讨论之:WBS/PB要将管理活动和技术活动同时并重;
· 案例分析与讨论之:WBS/PB需要细化到何种程度?
l 项目计划如何分层:客户、高层、项目经理、项目团队成员
实例介绍:案例分析与讨论:象当年写好一篇记叙文一项的写好项目计划——项目计划的“六要素”(时间、地点、任务、起因、经过、结果)
7. 决胜千里——项目执行与监控(13:30~15:30)
l 举例:项目执行过程中常见问题
l 为什么要进行监控?——你知道你负责的项目的状态吗?
l 控制过程——(会议+报告)X用数据说话 = 准确了解项目的状态
l 项目的可视化管理:设计评估项目过程的度量指标、收集和分析参数数据、根据分析结果分层控制和改进项目管理过程
举例说明进度偏差参数的测评方法,其它参数依此类推
l 如何召开一次“有用”的项目例会/站立会议?
n 首先,甄别一下:开会就是为了解决问题吗?
n “可视性”是监控项目状态的不二法门
n So what”是监控项目状态的最关键内容
n 反面实例介绍与研讨
n 正面实例介绍与研讨
l 言之有物——给领导/客户的项目报告(周/双周报、月度报告、阶段报告、里程碑报告)到底应该报告些什么?
n “可视性”是撰写项目报告的唯一目的
n “So what”是报告的最关键内容
实例介绍与研讨:“好”的项目报告所应具备的要素——项目里程碑报告实例展示
· 反面实例介绍与研讨
· 正面实例介绍与研讨
l 里程碑管理:里程碑的特点、如何设置里程碑、如何应用里程碑进行压力与动力管理
l 变更控制:偏差申请、变更跟踪
举例:PMO实施有效的“过程监控”实例介绍
l 项目参数测评:举例说明进度偏差参数的测评方法,其它参数类推
l 决策评审与例外管理
l “国资委”还是“统计局”——PMO在项目监控过程中可以发挥怎样的作用?
举例:PMO实施“人力资源管道管理”实例;
8. 协力同行——多项目管理(15:40~16:30)
l 破解多项目管理的关键——项目间的依赖关系
l 如何识别和管控项目间依赖关系
l 多项目间的进度协调
l 多项目间管理的三大利器:
· “联合需求工作会议”
· “联席例会”
· “联合技术评审”
l 人力资源管道管理
9. 余音绕梁——项目结项过程(16:30~17:15)
l 项目正常关闭
l 项目非正常关闭
l 你的项目应该如何结项:“曲终人散”还是“余音绕梁”?
l Do not punish people, punish process(不要惩罚个人,惩罚流程)——什么是“流程化”的思维方式?
· “系统思考、过程优化”的实际案例剖析::正例——某型仓储物流管理系统从“需求调研”进化为“需求开发”、“需求规划”的过程
· “系统思考、过程优化”的实际案例剖析::反例——某公司系统集成类项目失败后的处置方式
· 他山之石,可以攻玉:某公司关于组织级知识库建设的最佳实践
· 小结:别人吃一堑,我长一智——如何从项目的失败中总结教训,并且使用“流程”这一系统性方式加以推广应用
l 系统思考,过程优化之从项目的成功中总结经验,并且使用“流程”这一系统性方式加以推广应用
l 系统思考、过程优化之 “等待100年获得顿悟” Vs. “利用结构化方法用15分钟解决问题”;
l 系统思考、过程优化之 “为特定的问题寻找特定的答案”Vs.“将特定的问题上升为通用的问题域”
l 系统思考、过程优化之从“发现问题——>解决问题”的应激性思维进化为“发现问题——>分析问题——>解决问题”的系统性思维
实例介绍:项目的经验教训总结以及培样项目管理必须具备的基本思维方式——系统思考、过程优化
10. 培训总结——软件项目管理的真理与谎言(17:15~17:30)
l 本次培训活动讲评
l 总结与串讲::软件项目管理的生命周期——项目管理从相关方期望值的识别到相关方期望值的验证&确认
1) 相关方的期望值构成项目需求的最重要来源
2) 针对相关方期望值的分析和分解形成项目关键目标与关键活动——项目计划的主干要素
3) 计划的协调::估算、目标和承诺——相关方期望值的平衡
4) 项目的可视化监控——相关方期望值达成情况的过程分析
5) 风险管理=相关方期望值的矛盾与冲突的管理
6) 项目总结——如何更好的管理相关方及其期望值
l 软件项目管理的2项真理
l 软件项目管理的7个谎言
后半程(两天):工作坊演练【注:每个演练之后均安排有讲评工作】
1. 讲师宣布演练的内容与规则,各个小组领受各自的演练任务,熟悉演练项目场景(9:00~10:00)
2. 第1演练——各分组根据给定的项目场景,分析项目的相关方,分析相关方的期望,并据此完成项目“立项报告”(局部内容)的文档化工作(10:00~12:00,包含点评时间,下同)
u 本次演练活动需要学员重点操作:
1) 识别项目有哪些相关方;
2) 确定每一个相关方的关注问题重点/维度,并据此确定各个相关方对项目的期望/要求/约束;
3) 尝试用“一句话”抽象地概括项目的“建设目标”,并且以合理的方式向各个相关方沟通项目的目标以求得一致的理解与共通的认识
3. 第2演练(13:30~15:00):继续上一个演练的结果,根据项目已经确定的相关方,定义:
1) 识别项目的关键成功要素与行动项
2) 选择项目的生命周期模型
3) 识别项目的关键活动项和最佳路径
4) 上述内容的文档化
4. 第3 演练(15:10~17:30):综合运用前两个演练的结果,各小组制定本项目的WBS,包括:
1) 为项目选择合适的生命周期模型
2) 确定并定义项目的各个里程碑与交付件;
3) 确定并定义项目的WBS,并且在WBS的内容中体现出前两个演练的成果
4) 确定并定义与各个外部相关方沟通时的方法方式、频率与内容
5) 识别项目的风险,并制定相应的规避措施和/或以及计划
6) 上述内容的文档化
7) 项目计划的评审,由讲师扮演客户、其他小组组长扮演高层管理者
5. 第4 演练(9:00~12:00):假定项目组已经达成按照项目计划中定义的第一个里程碑,请各个小组撰写“阶段总结报告”,召开阶段总结会议,向客户(由讲师扮演)及高层管理者(由其他小组组长扮演)当前项目的进展状况,包括:
1) 使用度量与分析手段评估项目的当前进展状况;
2) 运用可视化手段撰写项目的“阶段总结报告”;
3) 突发事件演练:在撰写报告进行到一半时,项目经理被强制离开项目团队1个小时,各小组依然要求完成既定任务;
4) 召开阶段总结会议
6. 第5 演练(13:30~15:30),突发事件演练:客户——由讲师扮演,在阶段总结会上提出需求变更要求,各个小组演练:
1) 变更的影响度分析;
2) 变更决策,形成书面意见;
3) 与客户等相关方沟通变更决策
7. 第6 演练(15:40~17:00),项目结项:假定项目可以正常结项,请各个小组撰写“项目总结报告”,召开项目总结会议,向客户(由讲师扮演)及高层管理者(由其他小组组长扮演)项目的当前状况,包括:
1) 项目的经验与教训总结;
2) 项目的经验与教训总结哪些可以作为改进组织级管理流程的输入?
8. 培训总结、讲评(17:00~17:30)