◆中科院计算所培训中心 高级软件项目管理培训
高级软件项目管理师
高级软件项目管理师
高级软件项目管理师
高级软件项目管理师
Senior Software Project Management
Professionals
中科院计算所培训中心
中科院计算所培训中心
中科院计算所培训中心
中科院计算所培训中心
2014 年年年年 9 月月月月
中科院计算所培训中心企业高端培训网址: http://www.tcict.cn
1
◆中科院计算所培训中心 高级软件项目管理培训
目录目录目录目录
第一章第一章第一章第一章 软件项目管理的
软件项目管理的““““道道道道””””和和和和“术术术术”................................................................................................ 5
软件项目管理的
软件项目管理的
1.1 软件项目与项目管理......................................................................................................... 5
一、项目管理的定义和特点...................................................................................5
二、集成化软件项目管理模型.............................................................................10
1.2 基于规范的软件开发体系............................................................................................... 15
一、软件开发管理规范体系.................................................................................15
二、规范管理存在的问题.....................................................................................20
1.3 基于敏捷的软件开发体系............................................................................................... 22
一、敏捷开发的价值观与方法论.........................................................................22
二、Scrum 软件开发方法 .....................................................................................23
1.4 融合敏捷与规范实现管理创新....................................................................................... 26
一、理性的选择.....................................................................................................27
二、寻求方法改进的途径.....................................................................................28
三、改进软件开发模型.........................................................................................29
第二章第二章第二章第二章 团队建设
团队建设::::打造高效项目团队
团队建设团队建设
打造高效项目团队
打造高效项目团队
打造高效项目团队.............................................................................................. 34
2.1 如何创建高效团队........................................................................................................... 34
一、人的主动性和创造性.....................................................................................34
二、用目标决定团队结构.....................................................................................39
三、角色、职责与开发效率.................................................................................42
2.2 构建团队的进化机制....................................................................................................... 47
一、凝聚团队智慧,形成 1+1>2......................................................................47
二、构建学习型团队以提升竞争力.....................................................................50
三、构建创新型团队以提升进化力.....................................................................52
2.3 项目经理的领导力........................................................................................................... 56
一、提升领导力的关键要素.................................................................................57
二、注意纠正某些错误观念.................................................................................59
第三章第三章第三章第三章 启动阶段
启动阶段::::项目启动与前期决策
启动阶段启动阶段
项目启动与前期决策
项目启动与前期决策
项目启动与前期决策.......................................................................................... 61
3.1 启动阶段必须关注的问题............................................................................................... 61
3.2 建立并优化目标............................................................................................................... 64
3.3 协调利益相关方利益....................................................................................................... 68
3.4 权衡利弊及优劣............................................................................................................... 71
第四章第四章第四章第四章 计划阶段
计划阶段::::如何进行项目策划
计划阶段计划阶段
如何进行项目策划
如何进行项目策划
如何进行项目策划.............................................................................................. 81
4.1 项目策划的范围和内容................................................................................................... 81
一、制定计划的关键因素.....................................................................................81
二、计划必须满足的五个基本要求.....................................................................82
三、项目管理计划的衔接.....................................................................................82
四、项目策划的基本过程.....................................................................................86
4.2 项目初始估计................................................................................................................... 87
一、如何定义项目范围.........................................................................................87
二、如何估算项目规模与工作量.........................................................................88
中科院计算所培训中心企业高端培训网址: http://www.tcict.cn
2
◆中科院计算所培训中心 高级软件项目管理培训
三、如何估算项目的时间与成本....................................................................... 117
4.3 制定项目计划................................................................................................................. 118
一、标识关键里程碑及交付成果....................................................................... 118
二、如何编制项目进度表...................................................................................120
三、如何制定下属计划.......................................................................................123
四、如何制定项目总计划...................................................................................125
4.4 获得对计划的承诺......................................................................................................... 125
一、承诺为什么重要与怎样进行承诺...............................................................125
二、获取承诺的过程...........................................................................................128
4.5 维护项目计划................................................................................................................. 132
一、为什么计划必须得到维护...........................................................................132
二、维护项目计划的过程...................................................................................132
第五章第五章第五章第五章 实施阶段
实施阶段 1::::项目的组织
项目的组织..................................................................................................... 134
项目的组织
项目的组织
实施阶段实施阶段
5.1 项目实施中的协调与指导............................................................................................. 134
5.2 每个里程碑阶段开始时的活动..................................................................................... 136
一、制定里程碑阶段的计划...............................................................................136
二、两种制定阶段计划的过程...........................................................................137
三、制定详细计划的一些技术...........................................................................139
四、需求与技术解决方案的细化.......................................................................144
5.3 在项目中推行四项技术实践......................................................................................... 145
一、测试驱动开发:使测试投资最大化...........................................................145
二、单元测试:了解软件的运行;...................................................................151
三、重构:偿还技术债务;...............................................................................156
四、持续集成:使产品处于生产就绪状态。 ...................................................160
第六章第六章第六章第六章 实施阶段
实施阶段 2::::项目的监控
项目的监控..................................................................................................... 168
项目的监控
项目的监控
实施阶段实施阶段
6.1 利用监控建立反馈系统................................................................................................. 168
一、为什么需要实施项目监控...........................................................................168
二、项目测量面临的三大问题...........................................................................170
6.2 对照计划监督项目......................................................................................................... 171
一、如何监督项目计划执行情况.......................................................................171
二、如何监督其它方面的问题...........................................................................173
6.3 分析监控数据................................................................................................................. 173
一、如何分析执行项目计划状况.......................................................................173
二、如何分析其它方面的问题...........................................................................179
三、如何创建并使用项目看板...........................................................................179
6.4 解决监控中发现的问题................................................................................................. 182
一、分析问题背后的问题...................................................................................182
二、如何理性的决策与决断...............................................................................187
三、如何管理纠正措施.......................................................................................190
6.5 里程碑评审与计划管理................................................................................................. 190
一、如何开好里程碑评审会议...........................................................................190
二、团队对上一阶段工作进行总结...................................................................192
6.6 课程总结:软件开发管理的基本原则......................................................................... 193
中科院计算所培训中心企业高端培训网址: http://www.tcict.cn
3
◆中科院计算所培训中心 高级软件项目管理培训
高级高级高级高级软件项目管
软件项目管
软件项目管
软件项目管理理理理师师师师
中科院计算所培训中心 谢新华谢新华谢新华谢新华
中科院计算所培训中心
中科院计算所培训中心
中科院计算所培训中心
前言前言前言前言
与通用的项目管理相比,软件项目管理有很大的不同。首先,软件项目本身就是一个创作过
程,在过程中充斥了变化和新的想法,这种变化的环境给管理带来了新的难度。另一方面,软件
项目团队是由一群具有独特领域能力的人组成的,他们的思维方式不同,反而不容易相互协调,
这就需要更优秀的指挥艺术。我们如何以深思熟虑的思考抓住重点寻求解决方案,从而在动态的
变化环境中,把项目引向成功?
1,在软件开发方法论上,目前存在着规范和敏捷之争。很多人把规范和敏捷对立起来看,
非此即彼的思维定式扼杀了自己的创新能力。规范和敏捷各有优势,也各有软肋。高明的做法是
把两种方法论融合起来,取长补短且相互支持。本课程将把融合敏捷与规范作为一条主线,以形
成更好的项目管理方法。
2,无数事实证明,团队是决定项目成败的最重要因素。那么,如何激发团队成员的主动性、
积极性和创造精神?如何根据项目和人员特点的不同,来组建不同特征的团队,从而把效率最大
限度的发挥出来?这些都是把项目引向成功的关键引擎。
3,软件项目是由团队协调完成的,因此良好的计划是关键。在制定计划的时候,经常困惑
人们的问题是:这个项目有多大?需要多少工作量?需要多少人?需要多少时间?需要多少成
本?这一切都源自于对项目规模的正确估算,那么我们如何进行估算并由此制定可行的计划呢?
4,软件项目的演化特点,使初始计划会被后期不断发生的新情况而打破,为此需要寻找解
决方案。如何在项目中制定具有动态特征的计划?如何确保尽管项目是在动态中演进的,但最终
仍然能够按照时间、成本和质量的要求完成项目?这是需要更高的管理艺术。
5,在项目实施的过程中,项目经理需要推行一些行之有效的技术实践,以最大限度的保证
产品质量与开发效率双双达到要求。这些实践包括:测试驱动开发、单元测试、重构以及持续集
成。为此,项目经理需要关注一些什么问题呢?
6,项目监控是建立反馈系统的重要管理行为,而监控需要以可度量的方式提供项目状态信
息。那么,如何对监控数据进行统计分析?如何在变化的环境中使反馈控制系统顺畅有效?如何
在监控中发现问题背后的问题并采取正确对策?这都是确保项目成功的关键。
课程将全面探讨“道”和“术”这两方面的问题:从“道”的角度,我们希望做到知其然更
要知其所以然,懂得了才可能变化。从“术”的角度,在这些理念和思想的指导下,会形成什么
样的方法和实践?把两个方面完美结合,才能得到关于现代软件项目管理的新领悟,形成一个有
深度的课程,希望所有学员都在这个课程中受益。
谢新华
2014 年 9 月 北京
中科院计算所培训中心企业高端培训网址: http://www.tcict.cn
4
◆中科院计算所培训中心 高级软件项目管理培训
第一第一第一第一章章章章 软件项目管理的
软件项目管理的““““道道道道””””和和和和““““术术术术””””
软件项目管理的
软件项目管理的
软件项目成功最重要的要素是什么?大型软件项目是依靠一个组织来完成的,如果这个组织
在管理上是无序的,开发过程是非正式和混乱的,计划期限和成本目标通常超限,项目的成功取
决于个人英雄式的行为,在人员发生变动时项目往往陷入灾难,那么很难说这个项目会获得成功。
从这个意义上说,软件项目管理是项目成功的关键因素。软件项目管理既有“道”的问题(思想),
又有“术”的问题(方法),这两者都是需要我们认真研究的。
1.1 软件软件软件软件项目与项目管理
项目与项目管理
项目与项目管理
项目与项目管理
要理解什么是软件项目管理,首先需要理解软件项目应该用什么思想理念去管理。
一一一一、、、、项目管理的定义和特点
项目管理的定义和特点
项目管理的定义和特点
项目管理的定义和特点
1,,,,什么是项目
什么是项目
什么是项目
什么是项目
项目项目项目项目((((Project))))一般性的定义如下:项目是一个(临时的)唯一的唯一的唯一的唯一的、复杂的复杂的复杂的复杂的和关联的关联的关联的关联的具有同同同同
按照规格说明的要求完成的活动序列
在预算内、按照规格说明
特定时间内、在预算内
一目标一目标一目标一目标或者目的,并且在特定时间内
活动序列。简而言
活动序列活动序列
按照规格说明
在预算内在预算内
特定时间内
特定时间内
按照规格说明
之,项目是必须按时、在预算内并且遵循规格说明完成的一系列活动。
项目可以有千差万别,但是至少应该包括下面这些属性:
一次性一次性一次性一次性::::所有的项目都有明确的开始与结尾,并且以实现特定的目标为宗旨,而这个目
标也就成为衡量项目成功还是失败的客观标准。不论成功还是失败,项目都不应该无休
止的继续下去。成功项目应该转入下一个目标(比如运营),失败的项目也可能终止。
独特性独特性独特性独特性::::项目的可交付成果(产品或者服务)具有非重复的特点,即使名义上相同的项
目,其内容也不可能完全重复。
渐进性渐进性渐进性渐进性::::项目实施过程是一个向目标推进逐步完善的过程。这个过程不但包括可交付成
果本身的不断完善,也牵涉到项目组织的经验积累、管理方法的不断完善以及学习曲线。
不确定性
不确定性::::导致项目不可重复性的主要原因,是外部条件和实施过程的不确定性,也来
不确定性不确定性
自于人们对事物认识的局限性,人们需要在一个渐进过程中不断突破自己的局限性,当
然这种不确定性也自然给项目带来了风险。
综上所述,在面对一个软件项目的时候,我们需要关注如下要点:
系统开发的方法学问题,定义了一个强制的或者可选的序列。
构成系统开发的活动是相对复杂的,它要求你能够灵活应用各种概念和技能,来适应变
化的条件和未予期的事件。
虽然开发活动一般是顺序的,但一些任务可以重叠,也可以迭代,很多任务的完成依赖
于其它的任务完成,这无疑增加了管理上的复杂性。
一个系统的开发代表了一个目标目标目标目标,为了实现这个目标,开发过程可以由多个任务任务任务任务组成。
信息系统的开发一般具备明显的时间期限,但很多情况下会远比计划延迟完成,这对于
高层管理人员来说是不可接受的,他们往往通过组织施压来减少业务过程的周期,但是,
开发周期大概到底多少才是科学的呢?
信息系统的开发往往会突破预算,这对高层管理人员来说是不可接受的。
信息系统必须符合规格说明的要求,要符合企业、用户和管理上的期望(或者说需求)。
正是项目的这些特征,使时间、预算和质量都能够满足客户的要求,有效地项目管理
项目管理是必须
项目管理项目管理
的。还需要着重提出的问题是:项目经理
项目经理是组织者,只有懂得了它才可能组织好它,只有理解了
项目经理项目经理
中科院计算所培训中心企业高端培训网址: http://www.tcict.cn
5
◆中科院计算所培训中心 高级软件项目管理培训
它才可能灵活变化。因此作为项目经理思维空间要大,对于市场、经济、业务、技术都需要有理
解,对其中的困难和问题要看的清楚而透彻,思考问题的逻辑性要强,对项目管理的知识结构要
全面。仅仅凭经验进行所谓“项目管理”并不可能成为好的项目管理者,尤其是在软件领域。
2,,,,项目管理
的缘起与特点
项目管理的缘起与特点
项目管理项目管理
的缘起与特点
的缘起与特点
项目管理(project management):是在指定时间内,用最少的费用开发可接受系统的管理过
项目管理
项目管理项目管理
程,内容包括定范围、计划、人员安排、组织、指导和控制。
项目管理的理念诞生于第二次世界大战末期,第一个成功的案例是美国研究原子弹的曼哈顿
工程,此后,美国各项工程都开始遵循项目管理的规范进行操作,并且把项目管理理念与企业管
理理念相融合,大大丰富了项目管理知识体系。
项目管理在各行各业中都在发挥作用:
项目管理从一开始就与战争结下不解之缘,战争最集中地体现了一次性、独特性、不确定性
等特点,因此,项目管理的很多理念和方法,不可避免的会从军事中吸取营养。
最先引入项目管理规范的就是建筑业,因为建筑具有典型项目的特征,因此很多项目的概念
与工具(甘特图、箭图等)在初期都不可避免的带有建筑业的烙印。
电影电视制作最淋漓尽致的体现了现代项目的所有特点,每部作品都具有个性,为了表现独
特的场面,导演必须极具创新精神,这也是新思维、新方法、新工具层出不穷的一个领域。
软件项目管理是项目管理家族的新军,它具有很多普通项目管理所没有的特点,也是近年来
在管理理念上不断发生变革的领域。如果不从根本上理解到这一点,那么是很难实施正确而有效
的项目管理的。
3,,,,项目的层次与分解
项目的层次与分解
项目的层次与分解
项目的层次与分解
项目本身有大有小,大项目可以分解成很多层次。单独的项目也可以集合成为项目集或者项
目组合。
1))))项目集项目集项目集项目集
这是一组相互依赖关联,需要协调管理的项目。协调管理是为了获得单独项目管理无法获取
的利益与控制效果。例如,一个大系统分为若干子系统,每个子系统可以认为是一个单独的项目,
由单独的项目团队完成。这些项目互相依赖、互相影响,需要时间上协调,成本上统筹,质量和
采购供应链上共同保证,以便协调各方利益,动员各方资源。
2))))项目组合
项目组合
项目组合项目组合
指的是一组共享资源和战略目标的项目,项目之间不一定具有依赖性。它们的联系可能是由
于共同的客户、共同的原料、共同的技术等。例如,面对不同最终客户要求的不同项目,可以利
用共同的技术和业务平台,这就形成产品线系统(Product Line System)。产品线定义为:共享一
个公共的、可管理的特性集,以规定的方式使用公共核心资产集开发,来满足不同市场或者任务
的具体需要。
项目集与项目组合分解结构如下图所示。
中科院计算所培训中心企业高端培训网址: http://www.tcict.cn
6
◆中科院计算所培训中心 高级软件项目管理培训
管理科学中的一个最重要的原则就是把复杂的事情简化,而简化一个事情最有效的手段就是
分解。如何进行项目的工作分解,是项目管理的基本功。
4,,,,项目管理的
项目管理的三三三三个任个任个任个任务务务务
项目管理的
项目管理的
任何项目最基本的约束就是时间、成本、质量。这也是在项目管理中必须把握的三个问题。
为了达成最基本的三个约束,项目需要一系列的活动组成,最基本的活动包括三个任务:
1))))团队团队团队团队::::
无数事实证明:团队是决定项目成败的最重要因素。那么,如何提升项目经理的领导力?如
何激发团队成员的主动性、积极性和创造精神?如何根据项目和人员特点的不同,来组建不同特
征的团队,从而把效率最大限度的发挥出来?这些都是把项目引向成功的关键引擎。
2))))计划计划计划计划::::
计划是为了达到预定的目标事先确定的途径。在团队协调的项目中,计划非常重要。在制定
计划的时候,经常困惑人们的问题是:这个项目有多大?需要多少工作量?需要多少人?需要多
少时间?需要多少成本?这一切都源自于对项目规模的正确估算。没有正确的估算,就没有正确
的计划和监控,那么我们如何进行估算并由此制定可行的计划呢?
软件项目的演化特点,使初始计划会被后期不断发生的新情况而打破,为此需要寻找解决方
案。如何在项目中制定具有动态特征的计划?如何确保尽管项目是在动态中演进的,但最终仍然
能够按照时间、成本和质量的要求完成项目?这是需要相当高的理解与管理艺术。
3))))监控监控监控监控::::
在实施阶段要达到项目目标,不可能严丝合缝的与原始计划完全吻合,我们将会根据每个里
程碑完成计划的状况进行评估,特别是当偏移严重指向一边的时候,我们将会采取修正行动,让
实际路线回归正确轨道。通过制定若干备选方案,以保证最后能够达到我们预计的目标, 这就是
项目监控。
在项目实施阶段,必须做到计划与控制如影相随,以可度量的方式提供控制信息并实施控制
行为。那么,如何对综合数据进行统计分析?如何在变化的环境中使反馈控制系统顺畅有效?如
中科院计算所培训中心企业高端培训网址: http://www.tcict.cn
7
◆中科院计算所培训中心 高级软件项目管理培训
何在监控中发现问题背后的问题并采取正确对策?这都是确保项目成功必须抓住的关键。
5,,,,如何研究软件项目管理
如何研究软件项目管理
如何研究软件项目管理
如何研究软件项目管理
谈到项目管理,人们自然而然的会问:如何做计划呀?如何做监控呀?如何写文档呀?如何
管团队呀?也就是说人们更多地关注“怎么做”,而不是关注“为什么”,更不关注在软件这样的
特定环境下,如何实现管理创新,这种思维特征严重阻碍着我们的发展。
管理的高明之处在于迅速抓住重点的能力。什么是重点?抓住了风险就抓住了项目管理最本
质的东西,从某种意义上说,项目管理就是不断发现风险并解决问题的过程。依据风险制定管理
策略,就更容易在动态的变化环境中,把项目引向成功。
本课程与通用的项目管理(例如 PMP)相比有什么特点呢?
首先,我们针对的是有技术背景的人。目前大部分项目经理都是由技术人员成长起来的,他
们如何在已有技术背景的条件下,增加管理能力,并且把技术知识与管理知识很好的结合,形成
1+1>2 的效果?其次,我们关注的是软件项目管理。软件有自己的特点,它是一个创作,中间充
斥着不可预知的变化,在这个背景下项目管理该如何去想?该如何去做?怎样才能真正发挥项目
管理的威力?最后,我们不会泛泛的说项目管理的一般知识结构,而是抓住实践中的问题,有重
点有针对性地深入讨论相关问题,抓住重点才能取胜。
人们常说管理出效益,但内心深处不一定认为如此,这很大程度上是我们管理能力不足造成
的。因此,我们不希望课程所传递的项目管理知识像工业产品一样,按照规定的工序,遵照一个
固定的模式,抛出一个结论,你照着做就行了,这是“术”,仅仅依靠“术”是不会成功的。而
是唤醒潜藏于我们内心的知识,使之达到意识的层面,摸索出其中的规律,培育我们在原有基础
上成长的能力。就象种子种到地里一样,只要给它充分的合适的条件(水、阳光、空气、肥料),
它就能发芽生长、开花结果,来满足不同环境的需要,这就是“道”。
今天我们经常面对的困惑是:项目管理人员都具有一定的工作资历,这是好事,但工作时间
一长,知识是增长了,但做起事来却刻板了。我们不需要摆在橱窗里做装饰的项目管理,管理应
该破解企业困惑的难题,从而为企业带来更大的价值。
从“道”的角度,我们在长期的项目管理实践中,已经有了很多经验,也有很多困惑,这中
间的问题出在什么地方?软件项目管理一路走来,发生了很多变化,为什么会发生这些变化?这
些变化的科学和哲学的依据是什么?它们形成了哪些理念和思想?我们希望能从逻辑上说清楚,
做到知其然更要知其所以然,懂得它才可能变化。
从“术”的角度,在这些理念和思想的指导下,会形成什么样的方法论?人们总结出了什么
技巧?把两个方面完美结合,并对实践进行深入思考,才能得到关于现代软件项目管理的新领悟,
形成一个有深度的课程。
如果用一句话来概括项目管理体系的宗旨,就是指导人们用正确的方法去做正确的事情。作
为软件项目管理人员,在具体项目管理的工作中需要关注一些什么问题呢?
6,,,,变化的环境与变化的思想
变化的环境与变化的思想
变化的环境与变化的思想
变化的环境与变化的思想
由于软件开发的独特特点,突破了很多由当初建筑业所奠定的项目管理传统观念。例如,建
筑业大部分资源都消耗在施工阶段,而软件开发的测试和后期维护可能将消耗绝大部分资源。建
筑业的产品是相对固定的,而软件产品却充斥着变化。软件开发与影视制作是相通的:在过程中
极其强调创新精神,强调“变化”这个这个几乎琢磨不定的要素。但又与影视制作不同,软件毕
竟是一种产品,具有大规模生产的特征,对英雄(明星)的理解也不同,因此不可避免的引入制
造业的思想,这都带来了软件项目管理思想与工具的的极大变革。
这就提出了一个问题,在软件项目管理中,我们到底需要什么样的思想、方法和实践?很多
人喜欢把问题对立起来,非此即彼,结果今天跟着人家这样,明天跟着人家那样,最后陷入迷茫。
中科院计算所培训中心企业高端培训网址: http://www.tcict.cn
8