软件项目管理


1 总论

1.1 项目管理实施过程的四大挑战

  1. 项目定义中的问题
  2. 项目组织实施中的问题
  3. 项目控制中的问题
  4. 项目评价中的问题

1.2 项目起源

  • 有组织活动的分类:
  1. 连续不断、周而复始的活动——运作(operation)
  2. 临时性、一次性的活动——项目(project)

1.3 项目定义

  • 项目是独特的
    • 即使是同一张图纸盖两栋i相同的楼房也是两个项目,原因是有可能盖房的人变了,低级构造变了,或者盖房的时间变了等。
  • 第一个把项目作为一个系统来进行管理的是曼哈顿原子弹计划。

1.4 项目管理

  • 项目管理(project management)就是把知识、技能、工具和技术应用于项目各项工作之中,实现或超过项目利害关系者对项目的要求和期望。
  • 项目管理是一种管理方法体系,是一种已获得公认的管理项目的科学的管理模式,而不是任意的一次管理过程。

1.5 软件项目管理的特性

  • 首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。
  • 其次,软件系统的复杂性也导致了开发过程种各种风险的难以预见和控制。

1.6 如何区分项目性质的特征

  1. 涉及非常规任务
  2. 需要策划
  3. 要满足特定的目标或要创造特点的产品
  4. 项目有预先确定的时间跨度
  5. 为别人工作而不是为自己工作
  6. 工作涉及到几个学科
  7. 工作分几个阶段进行
  8. 可用于项目的资源是受到限制的
  9. 项目庞大或者复杂
  • 与其他项目产品相比,软件项目的产品具有某些不同的特征:不可见性、复杂性、一致性、灵活性。

2 软件项目计划

  • 编制进度计划的三部曲
    • 任务分解(WBS)——范围基准
    • 成本估算
    • 资源、进度安排

2.1 工作分解结构(WBS)

2.1.1 WBS含义

  • 面向成果的项目元素的分组,组织并定义了整个项目范围
  • 建立和确认项目范围,以便达成共识
  • 工作元素经常被收集在WBS词典种,一般包括工作描述和其他项目信息

2.1.2 WBS用途

  • 确定工作范围
  • 配备人员
  • 编制资源计划
  • 监视进程
  • 明确阶段里程碑
  • 具体内容的验证

2.1.3 WBS作用

  1. 项目认知:WBS的层次结构为我们认识、把握复杂项目的逻辑关系提供了良好的工具;
  2. 良好协同:复杂的项目会遵循自上而下后自下而上的计划指定过程。两种计划的粒度和范围都是不一样的,但二者需要有机地结合起来行成统一的计划,WBS结构为这些信息提供了一个结构框架。
  3. 有效控制:WBS结构有助于界定范围。

2.1.4 WBS划分方法

  • 按专业划分
    • 优点是容易让人接收
    • 缺点是不易协调
  • 按系统划分
    • 优点是容易界定项目范围
    • 缺点是有时候不那么直观
  • 按照项目的不同阶段划分
    • 优点是有利于项目管理者控制中间结果

2.1.5 WBS分解过程

  1. 确认并分解项目的组成元素
  2. 确定分解标准
  3. 确定分解是否详细
  4. 确定项目交付成果
  5. 验证分解的正确性(建立编号)

2.1.6 检验分解结果的标准

  • 最底层的要素是否是实现目标的充分必要条件
  • 最底层要素是否有重复的
  • 每个要素是否清晰完整定义
  • 最底层要素是否有定义清晰的责任人,是否可以进行成本估算和进度安排

2.1.7 WBS意义

  • 提供了项目范围基线,是范围变更的重要输入
  • 为评估和分配任务提供具体的工作包
  • 进行估算和编制项目进度的基础
  • 对整个项目成功的集成和控制起到非常重要的作用

2.1.6 PMI定义WBS

  • 是面向可交付成果的对项目元素的分组,它组织并定义了整个项目范围,不在WBS种包括的工作就不是该项目的工作。
  • 它是一个分级的树型结构,是对项目由粗到细的分解过程。工作结构每细分一个层次表示对项目元素更细致的描述。

2.1.7 PMI定义工作包

  • WBS的最低层次的可交付成果。
  • 工作包应当由唯一一个部分或承包商负责。
  • 这一交付成果可以分配给另外一位项目经理进行计划和执行,或者通过子项目的方式完成。
    • 工作包可进一步分解为子项目的WBS或各个活动

2.1.8 WBS类型

  • 清单

image-20210520153447645

  • 图表

image-20210520153527722

3 软件工作量估算

  • 要估算的内容包括:软件工作产品的规模、软件项目的工作量和成本、软件项目的进度、项目所需要的人员、计算机等资源。

3.1 软件项目的规模

3.1.1 什么是软件项目的规模

  • 现在常用的办法,是通过对软件程序的规模进行估算的办法,来间接反映软件项目的规模。
  • 规模是工作量的一个方面,并不能说规模大,工作量就大。在这方面,并不一定是完全等同的。

3.2 软件项目规模估算方法

3.2.1 LOC法

LOC指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL: Job Control Language) 语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。

单位编码行(1LOC) 的价值和人月均编码行数可以体现一个软件生产组织的生产能力。组织可以根据对历史项目的审计来核算组织的单行编码价值。

  • 例如,某软件公司统计发现该公司每一万行C语言源代码形成的源文件(. c和. h文件)约为250K。某项目的源文件大小为3.75M,则可估计该项目源编码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利、办公费用公摊等),则该项目中单位LOC的价值为:

image-20210520154831483

3.2.2 Delphi法

Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别,但专家“专”的程度及对项目的理解程度是工作中的难点,尽管Delphi技术可以减轻这种偏差,专家评估技术在评定一个新软件实际成本时通常用得不多,但是,这种方式对决定其它模型的输入时特别有用。

Delphi法的步骤是:

  1. 协调人向各专家提供项目规格和估计表格;
  2. 协调人召集小组会各专家讨论与规模相关的因素;
  3. 专家匿名填写迭代表格;
  4. 协调人整理出一个估计总结,以迭代表的形式返回专家;
  5. 协调人召集小组会,讨论较大的估计差异;
  6. 专家复查估计总结并在迭代表上提交另一个匿名估计;
  7. 重复4 6,直到达到一个最低和最高估计的一致。

3.2.3 类比法

类比法适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。类比法估计结果的精确度取决于历史项目数据的完整性和准确度。因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。

类比法的基本步骤是:

  1. 整理出项目功能列表和实现每个功能的编码行数;
  2. 标识出每个功能列表与历史项目的相同点和不同点,特别要注意历史项目做得不够的地方;
  3. 通过步骤1和2得出各个功能的估计值;
  4. 产生规模估计。

3.2.4 功能点技术

3.2.4.1 信息域特性

产品信息域的5个特性:

  • 输入项数(Inp, EI)
  • 输出项数(Out, EO)
  • 查询数(Inq, EQ)
  • 主文件数(Maf, ILF)
  • 外部接口数(Inf, EIF)

3.2.4.2 功能点技术基本原理

image-20210520155840237

3.2.4.3 估算功能点的步骤

  1. 计算未调整的功能点数CT

image-20210520160008182

  1. 计算技术复杂因子TCF

image-20210520160105425

image-20210520160145086

3.2.4.4 评价功能点技术

功能点技术没有涉及系统本身的算法复杂性。因此,它仅仅适合算法比较简单的事务处理软件的规模度量;对算法较复杂的大型软件系统并不适应。

3.2.5 工作量估算

软件估算模型使用由经验导出的公式来预测软件开发工作量,其中,工作量是软件规模(L0C或FP)的函数,工作量的单位通常是人月(pm)。

3.2.5.1 静态单变量模型

image-20210520160718950

  • 面向KLOC的估算模型举例

image-20210520160813478

  • 面向FP的估算模型举例

image-20210520160851955

3.2.5.2 动态多变量模型

image-20210520161045931

image-20210520161152242

3.2.5.3 COCOMO模型

COCOMO模型给出了3个层次的工作量估算模型。这3个层次的模型在估算工作量时,对软件细节考虑的详尽程度逐级增加。这些模型既可以用于不同类型的项目,也可以用于同一个项目的不同开发阶段。这三个层次的估算模型分别是:

  • 基本COCOM0模型
  • 中间COCOMO模型
  • 详细COCOMO模型
  1. COCOMO模型基本原理

image-20210520161348780

  • 每个成本因素根据它的重要程度和影响大小赋予一定的值,可以把这些成本因素划分为:产品因素、计算机因素、人员因素、项目因素。
  1. 基本COCOMO模型

image-20210520161910939

  1. 中间COCOMO模型

image-20210520162025095

  1. 详细COCOMO模型

image-20210520162132691

4 质量管理

4.1 质量与质量特性

4.1.1 质量的含义

  • 美国质量管理学家朱兰(J. M. Juran)博士认为:“质量就是产品的适用性,即产品在使用时能够满足用户需要的程度。“
  • 国际标准化组织(ISO)在其《质量管理与质量保障术语》中对于质量的定义是:“ 质量是反映实体(产品、过程或活动等)满足明确的和隐含的需要的能力特性总和。”

4.1.2 质量的特性

质量特性就是产品或服务为满足人们明确或隐含的需要所具备的能力、属性和特征的总和。

  • 内在质量特性
  • 外在质量特性
  • 经济质量特性
  • 商业质量特性
  • 环保质量特性

4.1.3 质量管理

质量管理是确定质量方针、目标和职责,并在质量体系中通过诸如质量计划、质量控制、质量保障和质量改进使质量得以实现的全部管理活动。

  • 最高管理者的质量管理决策(“质量方针、目标和职责”的制定);
  • 中层管理者对于质量管理的实施(“质量计划、质量控制、质量保障”等);
  • 基层管理者对于质量管理方针政策的贯彻执行(“质量改进”等)。

4.1.4 质量方针

质量方针是由组织的最高管理者正式发布的一个组织总的质量宗旨和质量方向,是质量管理的核心和出发点

4.1.5 质量体系

质量体系是为实施质量管理所需的组织结构、程序、过程和资源的总称。

4.1.6 质量计划

质量计划是确定质量的目标和要求,以及确定采用质量体系要素的目标和要求的活动的过程。

4.1.7 质量控制

质量控制是为达到质量要求所采取的作业技术与活动,其内容包括:确定控制对象、规定控制标准、制定控制方法、选用检验技术、处理事故(失控)等等。

4.1.8 质量保障

质量保障是为了保障实体能够满足质量要求,并提供足够的证明以表明实体保障能够满足质量要求,而在质量体系中实施,并根据需要进行证实的、全部有计划和有系统的活动。

4.1.9 质量改进

质量改进是为向本组织及其顾客提供更多的收益,在整个组织内所采取的旨在提高活动和过程的效益和效率的各种措施。

image-20210520233625716

4.2 项目的全面质量管理

image-20210520233717881

4.2.1 全面质量管理的指导思想

  • 一是整个组织要以质量为核心;
  • 二是组织的每个员工要积极参与全面质量管理。

4.2.2 全面质量管理的核心观念

  1. 质量是由客户定义的
  2. 质量是干出来的,不是检验出来的
  3. 质量管理是全体员工的责任
  4. 质量管理的关键是不断地改进和提高

4.3 戴明环——PDCA循环

image-20210520234142201

  • P(plan)——计划
  • D(do)——执行
  • C(check)——检查
  • A(action)——处理

4.4 项目质量计划的编制

4.4.1 项目质量计划的编制依据

image-20210520234446432

4.4.2 项目质量计划编制的方法和技术

  1. 成本/收益分析法,这也叫经济质量法
  2. 质量标杆法
  3. 流程图
  4. 实验设计法

4.5 项目质量、成本、进度之间的关系

4.5.1 项目质量、成本、进度之间的关系

image-20210520234730637

  • 成本、质量、工期是项目管理的三大基本目标,这三个要素之间存在相互制约的关系。

4.5.2 项目质量成本的构成及相互关系

高质量对项目成本的影响:

  • 一方面表现为更详细更多的活动和任务,从而需要更多的任务预算或成本;

  • 另一方面,项目的高质量也意味着需要更高的质量成本。

    这里的质量成本包括为了预防质量问题发生而采取相应措施支付的费用,以及质量问题发生后采取相应措施的费用。前者叫质量保障成本,后者叫质量故障成本

image-20210520235125320

4.6 项目质量保障内容

image-20210520235213556

4.7 项目的质量控制

4.7.1 项目质量控制概念

项目的质量控制主要是监督项目的实施结果以决定它们是否符合相关的质量标准及确定排除不满意结果原因的方法。

这项工作的主要内容包括:

  • 项目质量实际情况的度量
  • 项目质量实际与项目质量标准的比较
  • 项目质量误差与问题的确认,
  • 项目质量问题的原因分析和采取纠偏措施去消除项目质量差距与问题的一系列活动

4.7.2 质量控制与质量保障的区别

  • 项目质量保障是一种从项目质量管理组织、程序、方法和资源等方面为项目质量保驾护航的工作,是一种预防性、提高性和保障性的质量管理活动;
  • 项目质量控制是直接对项目质量进行把关的工作,是一种过程性、纠偏性和把关性的质量管理活动。

4.7.3 项目质量控制的依据

  1. 工作结果
  2. 质量管理计划
  3. 操作定义
  4. 检查表:用于核实一系列要求的步骤是否已经实施的结构化工具。

4.7.4 项目质量控制的方法

  1. 检查
  2. 新老7种控制工具
  3. 统计抽样
  4. 趋势分析

4.7.5 项目质量控制的结果

  1. 产品或服务的质量获得提高;
  2. 做出验收决定;
  3. 对不符合要求的项目或工作包返工;
  4. 得到完成的检查表;
  5. 根据客户的要求,对项目进行调整等等。

4.8 质量控制的7种工具

  • 利用数理统计方法控制质量的步骤

image-20210521000039830

  • 数理统计方法的7种工具:
  1. 统计分析法
  2. 数据分层法
  3. 散布图
  4. 帕累托图
  5. 因果分析图
  6. 直方图
  7. 控制图
  • 质量管理的新7种工具:
  1. 关联图法
  2. 系统图法
  3. 矩阵图法
  4. 数据矩阵分析法
  5. 网络图法
  6. PDPC(过程决策程序图)法
  7. KJ(川西田二郎)法

“新7种工具”,不是对前述老7种工具”的替代,而是对它的补充。老7种工具强调用数据说话,重视对过程的质量控制;新7种工具基本上是用来分析语言文字资料(非数据)的,着重解决全面质量管理(TQM)中PDCA循环的P(计划)阶段的有关问题。

4.9 因果图和控制图

image-20210521000628055

5 项目沟通管理

5.1 项目沟通的作用

  1. 项目决策和计划的基础
  2. 项目组织和控制的依据和手段
  3. 建立和改善人际关系是必不可少的条件
  4. 项目经理成功领导的重要手段

5.2 项目沟通计划的编制

5.2.1 项目沟通计划

沟通计划就是确定项目利害关系者的信息交流沟通的要求。

5.2.2 项目沟通计划的编制

  1. 沟通需求
  2. 沟通技术
  3. 制约因素和假设

5.2.3 项目沟通计划内容

  1. 信息收集渠道的结构
  2. 信息分发渠道的结构
  3. 分发信息的形式
  4. 日程表
  5. 更新和细化的方法

5.3 项目沟通过程

  1. 确定想法
  2. 编码
  3. 选择渠道
  4. 传送信息
  5. 接收信息
  6. 解码
  7. 理解
  8. 反馈

5.4 正式沟通的5种类型

image-20210521025043609

5.5 非正式沟通4种模式

image-20210521025143348

戴维斯的研究结果表明,小道消息传播的最普通形式是集束式。

5.6 会议沟通的类型及内容

项目沟通中最常用的会议有3种:

  • 项目情况评审会议
  • 项目问题解决会议
  • 项目技术评审会议

5.7 项目沟通存在的主要障碍

image-20210521025530908

5.8 有效沟通的方法

沟通是否成功,取决于发信者想要表达的意义与接信者通过理解而获得的意义是否一致。

  • 改善沟通的一般思路:
  1. 重视双向沟通
  2. 多种沟通渠道并用
  3. 正确运用文字语言

5.9 沟通术语的规范化

在沟通信息时,应该尽量注意信息的完整性、正确性、可检验等特征。

6 软件开发中人员管理

6.1 信息系统开发人员分类与其职责

  1. 项目投资人:高层领导,批准并支持系统的管理人员;
  2. 项目经理:负责系统总体职责的管理人员;
  3. 项目领导:技术队伍的协调者;
  4. 技术人员:所有指派到项目中的开发人员和技术职员:
  5. 最终用户:那些作为他们的日常工作来操作该系统的人:
  6. 最终用户开发者:来自最终用户组参加开发队的非系统人员;
  7. 系统设计师:总体技术设计人 员;
  8. 应用分析员:复审最终用户需求并定义系统说明的人;
  9. 数据库管理员:数据库的管理人员;
  10. 数据管理员:负责命名和控制数据元素名和内容的人;
  11. 界面设计者:决定最佳人一机接口方法和风格的专业技术人员;
  12. 网络设计师:负责通过数据通讯工具和协议把所有系统成份集成起来的专业技术人员;
  13. 文档人员:开发用户手册、帮助程序和系统的技术说明的专业技术人员;
  14. 系统测试人员:进行系统单元测试和联合测试的人员。

6.2 软件项目组

  • 软件工程小组的组织方式:
    • 民主分权式(Democratic Decentralized, DD)
    • 控制分权式(Controlled Decentralized, CD)
    • 控制集权式(Controlled Centralized, CC)
  • 软件工程小组的组织范型:
    • 封闭式范型(类似CC小组)
    • 随机式范型
    • 开放式范型
    • 同步式范型

7 软件项目进度计划

7.1 进度管理基本概念

7.1.1 进度与任务的定义

  • 进度是对执行的活动和里程碑制定的工作计划日期表。
  • 任务是完成项目的各个交付成果所必须进行的诸项具体活动。

7.1.2 项目任务的关联关系

image-20210520163654745

7.1.3 任务之间关联关系的依据

  • 强制性依赖关系
  • 软逻辑关系
  • 外部依赖关系

7.1.4 进度管理图示

7.1.4.1 网络图

  • PDM(Precedence Diagramming Method),优先图法,节点法(单代号)网络图

image-20210520164131077

构成PDM网络图的基本特点是节点(Box),节点表示活动(任务),用箭线表示各活动(任务)之间的逻辑关系,可以方便的表示活动之间的各种逻辑关系。

  • ADM(Arrow Diagramming Method),箭线法(双代号)网络图

image-20210520164342154

ADM也称为双代号项目网络图,在ADM网络图中,箭线表示活动(任务),两个代号唯一确定一个任务,代号表示前一任务的结束,同时也表示后一任务的开始。

7.1.4.2 甘特图

image-20210520164840222

7.1.4.3 里程碑图

image-20210520164906879

7.1.4.4 资源图

image-20210520164926205

7.2 任务历时估算

估计任务、路径、项目的持续时间。

7.2.1 历时估算的基本方法

7.2.1.1 定额估算法

image-20210520165133550

7.2.1.2 经验导出模型

image-20210520165257261

  • 建议掌握模型

image-20210520165406346

7.2.1.3 CPM关键路径法估计

  1. 确定项目网络图
  2. 每个任务有单一的历时估算
  3. 确定网络图中任务的逻辑关系
  4. 关键路径是网络图中最长的路径
  5. 关键路径可以确定项目完成时间

image-20210520165755434

100天

7.2.1.3 PERT工程评估评审技术

  • 加权算法估算任务历史
  • 采用加权平均得到期望值 E = ( O +4M +P) / 6,
    • O是最小估算值:乐观Optimistic
    • P是最大估算值:悲观Pessimistic
    • M是最大可能估算:Most Likely
  • PERT的风险指标

image-20210520175530545

  • PERT评估存在多个活动的一条路径

image-20210520175619588

  • PERT举例

image-20210520175835161

image-20210520175852187

image-20210520175946058

image-20210520180008543

84.2%

7.2.1.4 基于承诺的进度评估

要求开发人员做出进度承诺,不进行中间的工作量(规模)估计

优点:

  • 有利于开发者对进度关注
  • 有利于开发者在接受承诺后士气高昂

缺点:

  • 易于产生大的估算误差

7.2.1.5 Jones的一阶估算准则

  • 幂次表
    • 系统软件
    • 商业软件
    • 封装商品软件
  • 估算项目功能点
  • 从幂次表中选择合适的幂次将功能点升幂

7.3 进度计划编排

7.3.1 关键路径法

7.3.1.1 基本概念

  • 最早开始时间Early start
  • 最晚开始时间Late start
  • 最早完成时间Early finish
  • 最晚完成时间Late finish

image-20210520183343038

  • 浮动时间:浮动时间是一个任务的机动性,它是一个任务在不影响其他任务或者项目完成的情况下可以延迟的时间量。
  • 总浮动Total Float:在不延误项目完成日期或违反进度制约因素的前提下,一个可以推迟的总时间量。
    • 总浮动时间 = 最晚开始时间-最早开始时间 = 最晚完成时间-最早完成时间
  • 自由浮动Free Float:在不影响后置任务最早开始时间的前提下,一个任务可以延迟的时间。
    • 后续活动的最早开始时间 - 本活动的最早完成时间

浮动时间示例:

image-20210520192325398

  • 滞后Lag

image-20210520192505245

  • 超前Lead

image-20210520192539660

7.3.1.2 关键路径Critical Path

  • 时间浮动为0(Float=0)的路径(ES=LS, EF=LF)
  • 网络图中最长的路径
  • 关键路径是决定项目完成的最短时间
  • 关键路径上的任何活动延迟,都会导致整个项目完成时间的延迟
  • 关键路径可能不止一条

image-20210520192839609

7.3.1.3 正推法

按照时间顺序计算最早开始时间和最早完成时间的方法,称为正推法。

  1. 确定项目的开始时间
  2. 从左到右,从上到下
  3. 计算每个人物的最早开始时间ES和最早完成时间EF:
    • 网络图中第一个任务的最早开始时间是项目的开始时间;
    • ES+DUration=EF(本任务)
    • EF(前任务)+Lag=ES(后任务)
    • 当一个任务有多个前置任务时,选择前置任务中最大的EF加上Lag作为其ES

image-20210520195749243

7.3.1.4 逆推法

按照逆时间顺序计算最晚开始时间和最晚结束时间的方法,称为逆推法。

  1. 确定项目的结束时间
  2. 从右到左,从上到下
  3. 计算每个任务的最晚开始时间LS和最晚完成时间LF:
    • 网络图中最后一个任务最晚完成时间是项目的结束时间;
    • LF - Duration=LS(本任务)
    • LS(本任务) - Lag = LF(前任务)
    • 当一个任务有多个后置任务时,选择其后置任务中最小LS减Lag作为其LF

image-20210520200254610

7.3.1.5 小练习

image-20210520200828970

image-20210520200902062

image-20210520200926766

7.3.2 时间压缩法

时间压缩发是在不改变项目范围的前提下缩短项目工期的方法。

7.3.2.1 应急法——赶工(Crash)

  • 在最小相关成本增加的条件下,压缩关键路经上的关键活动历时的方法。
  • 赶工也称为时间-成本平衡方法。

image-20210520202139502

  • 进度压缩单位成本 = (压缩成本 - 正常成本)/ (正常进度 - 压缩进度)

image-20210520202422055

  • 时间压缩例题

image-20210520202807153

image-20210520202823345

image-20210520202858494

image-20210520203005953

image-20210520203022662

image-20210520203057560

  • Charles Symons方法

image-20210520203255137

7.3.2.2 平行作业法——快速跟进

改变活动间的逻辑关系,并行开展某些活动。

image-20210520203541690

  • 任务超前(Lead):
    • 解决任务的搭接
    • 对任务可以进行合理的拆分
    • 缩短项目工期

image-20210520203710435

7.3.3 管理预留

管理预留是一项加在项目末端的人为任务。

  • 安全时间与缓冲时间

image-20210520203823714

7.3.4 资源平衡法

资源优化配置,形成最有效的利用资源。

  • 使资源闲置的时间最小化
  • 尽量避免超出资源能力
  • 工期不能加长

8 软件项目风险计划

8.1 风险管理过程

8.1.1 风险的定义

  • 损失发生的不确定性
  • 对潜在的、未来可能发生损害的一种度量

8.1.2 项目风险的三要素

  • 一个事件
  • 事件发生的概率
  • 事件的影响

8.1.3 风险类型

  • 预测角度
    • 已知风险
    • 可预测风险
    • 不可预测风险
  • 范围角度
    • 项目风险
    • 技术风险
    • 商业风险

8.1.4 风险的基本性质

  • 客观性
  • 不确定性
  • 不利性
  • 可变性
  • 同利益的对称性

8.1.5 风险管理的四个过程

  • 风险识别
  • 风险评估
  • 风险规划
  • 风险控制

8.2 风险规划

风险规划,即决定采用什么方式方法、如何计划项目风险的活动。指导对于特定项目如何进行风险管理。

8.3 风险识别

风险识别是试图通过系统化地确定对项目计划的威胁,识别已知和可预测的风险。

  • 风险识别过程

image-20210521005458802

方法及工具

  • 德尔菲方法
  • 头脑风暴法
  • 情景分析法
  • 面谈法
  • 风险条目检查表
    • 检查表法是利用检查表作为风险识别的工具
    • 检查表法是根据风险要素建立软件项目的风险条目列表
    • 列表中列出所有与风险因素有关的提问
    • 可以使管理者集中识别常见的类型中的已知和可预测的风险

8.4 风险评估

确定风险发生概率的估计和评价,项目风险后果严重程度的估计和评价,项目风险影响范围的分析和评价,以及对于项目风险发生时间的估计和评价。

8.4.1 分析

  • 风险发生的概率,确定发生的可能性(P)
  • 风险后果,发生后对项目目标的影响(I)
  • 风险值,风险的严重程度R=F(P, I)
  • 按风险的严重性排序确定优先次序,确定最需要关注的TOP 10风险

8.4.1 风险评估的方法——定性风险评估

  • 风险概率及后果估计——矩阵图

image-20210521010220083

8.4.2 风险评估的方法——定量风险评估

8.4.2.1 盈亏平衡分析

8.4.2.2 模拟

8.4.2.3 访谈

  • 确定概率分布模型
  • 领域专家访谈,信息采集

8.4.2.4 决策树分析

  • 损失期望值(Expected Monetary Value, EMV)是决策树的一种计算值

  • 根据风险发生的概率计算出一种期望的损益。

  • 决策树分析例子

image-20210521010756538

8.4.2.5 量化风险条目检查表

image-20210521010855257

8.5 风险规划

针对风险分析的结果,为提高实现项目目标的机会,降低风险的负面影响而制定风险应对策略和应对措施的过程,即制定一定的行动和策略来对付、减少、以至于消灭风险事件。

8.5.1 风险规划的主要策略

8.5.1.1 回避风险

回避风险是对所有可能发生的风险尽可能的规避,采取主动放弃或者拒绝使用导致风险的方案。

8.5.1.2 转移风险

转移风险是为了避免承担风险损失,有意识将损失或与损失有关的财务后果转嫁出去的方法,例如:

  • 出售
  • 分包
  • 开脱责任合同
  • 保险

8.5.1.3 损失控制

  • 损失预防
  • 损失抑制

8.5.1.4 自留风险

  • 由项目组织自己承担风险事故所致损失的措施。
  • 类型:
    • 主动自留风险和被动自留风险
    • 全部自留风险和部分自留风险

9 软件项目配置管理计划

9.1 软件项目配置管理基本概念

9.1.1 配置管理简述

  • 记录软件产品的演化过程
  • 得到精确的产品配置
  • 最终保证软件产品的完整性、一致性、追溯性、可塑性

9.1.2 配置管理的主要功能

  • 版本管理
  • 变更管理
  • 其他

9.1.3 软件配置项

  • SCI: Software configuration item

  • 受控于软件配置管理的款项

  • 配置项例子

image-20210521001342982

9.1.4 基线定义

  • 基线提供了软件生存期中各个开发阶段的一-个特定点
  • 一个(些)配置项形成并通过审核,即形成基线
  • 基线标志开发过程一个阶段的结束和里程碑
  • 基线修改需要按照正式的程序执行

9.1.5 软件配置控制委员会(SCCB)

  • 评估变更
  • 批准变更申请
  • 在生存期内规范变更申请流程
  • 对变更进行反馈
  • 与项目管理层沟通

9.2 软件项目配置管理过程

9.2.1 配置项标识、跟踪

  • 将软件项目种需要进行控制的部分拆分成SCI,配置项被唯一标识
  • 配置项标识示例

image-20210521001827812

  • 建立配置项的对应关系,以便于进行跟踪和版本控制。

image-20210521001937881

9.2.2 配置管理环境的建立

  • 建立配置管理库

软件配置管理库是用来存储所有基线配置项及相关文件的等内容的系统,是在软件产品的整个生存期中建立和维护软件产品完整性的主要手段。

  • 受控操作

image-20210521002139796

9.2.3 基线变更管理过程

基线修改应受到控制,这种变化要经SCCB授权,按程序进行控制并记录基线修改的过程。

  • 配置控制内容

image-20210521002501558

9.2.4 配置管理审计

  • 配置管理过程审计
  • 基线审计

9.3 软件项目配置管理计划

9.3.1 配置管理计划大纲——举例

  • 人员职责(确定SSCB等)
  • 配置项定义
  • 基线定义
  • 版本控制(说明配置管理工具)
  • 定义变更控制系统

9.3.2 常用配置管理工具

  • Harvest、Perforce
  • ClearCase、PVCS
  • CVS\SVN、VSS

10 未来企业管理的三大支柱

  • 战略管理
  • 项目管理
  • 影响管理

10.1 为什么成功的项目很少

10.1.1 项目成功的标准(IPMA)

  1. 三个基本标准
    • 赞助的机构满意
    • 传统或经典的项目管理目标:按时、符合预算、达到质量要求
    • 项目参与者获利

10.1.2 影响项目成功的因素

  • 人员
  • 项目领导
  • 技术/工具
  • 产品
  • 项目过程

10.2 项目的分类

  • 有按项目规模、复杂程度、项目结果、所属行业、用户状况等5种分类依据
  • 大型项目(program)
  • 项目(project)
  • 子项目(subproject)
  • 活动或任务(activity or task)
  • 工作包(work packages)
  • 工作单元(work units)

10.3 项目成功的因素

  • 高层领导层的支持
  • 明确的目标和范围
  • 优秀的项目经理
  • 项目团队积极参与
  • 客户的全称参与
  • 分包商的良好沟通
  • 严密而灵活的计划
  • 随时监控和反馈
  • 正确的技术

10.4 项目管理的六要素

  • 工作范围(scope)
  • 时间(time)
  • 成本(cost)
  • 质量(quality)
  • 组织(organization)
  • 客户满意度(customer)

10.5 如何看待项目管理

  • 项目管理被看作完整的一套工作流程。
    • 项目管理包括项目启动、项目计划编制、项目实施、项目控制和控制首尾等一整套工作流程。
  • 项目管理被看作是一种整体工作
  • 项目管理被看作是为解决实际问题而创建的工作氛围
  • 项目管理被看作是一套完整的技能和手段的合集
  • 项目管理是一种管理方法体系

10.6 PMBOK规定的项目管理体系

  • 项目整体管理
  • 项目范围管理
  • 项目时间管理
  • 项目成本管理
  • 项目质量管理
  • 项目人力资源管理
  • 项目沟通管理
  • 项目风险管理
  • 项目采购管理

11 软件项目执行控制

11.1 项目集成管理

11.1.1 项目跟踪控制过程

image-20210521012139702

11.1.2 项目跟踪控制的关系

image-20210521012212103

11.1.3 项目控制的范围-集成管理

image-20210521012236052

11.1.4 跟踪控制的程度

  • 建立偏差的接受准则
  • 注意力放在解决特殊问题上

11.1.5 控制标准

image-20210521012440622

11.1.6 项目控制的步骤

  1. 建立标准
  2. 采集项目信息,观察项目的性能
  3. 将项目的实际结果与计划进行比较
  4. 如果实际的项目同计划有误差时,采取必要的修正措施
  5. 修正计划,通知有关人员和部分

11.1.7 建立控制标准

主要的三个基准计划:

  • 范围(质量)

image-20210521012710424

  • 进度

image-20210521012643372

  • 成本

image-20210521012729835

11.1.8 采集过程

  • 跟踪采集主要是在项目生存期内根据项目计划中规定的跟踪频率按照规定的步骤对项目管理、技术开发和质量保证活动进行跟踪。
  • 监控项目实际过程,记录反映当前项目状态的数据
  • 项目度量实施过程

11.1.9 项目性能分析的对象

  • 项目范围监控
  • 项目成本监控
  • 项目进度监控
  • 项目资源监控
  • 项目质量监控
  • 项目风险监控

11.2 范围管理

  • 项目范围控制

image-20210521012956683

11.3 时间/成本管理

11.3.1 进度、成本、资源控制

image-20210521013039700

11.3.2 跟踪项目进度

跟踪项目进度重要的是及时更新项目信息,这样及时反映项目的比较基准计划与实际运行状
况的差异,以便于及时调整项目,达到项目跟踪的目的。

11.3.3 跟踪实际成本

  • 计算任务的实际成本
  • 每天更新实际成本
  • 查看任务成本是否与预算相符

11.3.4 跟踪项目资源状况

  • 资源完成的总实际工时
  • 每天更新资源的实际工时
  • 查看资源计划工时与实际工时之间的差异

11.3.5 性能分析的主要技术

11.3.5.1 图解控制法

  • 进度——甘特图

  • 成本——累计费用曲线图

  • 人力物力资源——资源载荷图

图解控制法——图例

image-20210521013713750

11.3.5.2 挣值分析法(盈余分析法、已获取价值分析法)

  • 挣值分析模型

image-20210521013756148

  • 挣值分析原理

image-20210521014150538

  • 输入:

    • BCWS (Budgeted cost of work scheduled),计划工作成本
    • ACWP (Actual cost of work performed),实际工作成本
    • BAC (Budget At Completion),预算总值(估算结果)
    • BCWP (Budgeted cost of work performed),已获值(Earned Value)
  • 挣值分析(已获取价值)概念

    • 利用成本会计评估项目进展的一种方法
  • 挣值分析法定义

    • 是计算实际花在一个项目上的工作量,以及预计该项目所需成本和完成该项目的日期的一种方法。
  • BCWP的计算

    • 方法一:自下而上-很麻烦
    • 方法二:公式计算方法
      • 50/50规则,当一项工作开始时,假定已获得一半的价值
      • 0/100规则,当一项工作开始时,没有产生价值,直到结束获得全部的价值
      • 经验加权法
    • 挣值(已获取价值)实例

    image-20210521015157427

如上图,截至今天,仅有任务D没完成,前三个任务皆已经完成,即可按照规则计算。(数据表格里表示的是按照50/50规则表示的各任务的完成进度,可得任务D未完成)

  • 挣值分析导出量-1

    • 进度差异:SV ( Schedule Variance) =BCWP-BCWS

      • =0:按照进度进行
      • <0:落后于进度
      • >0:超前于进度
    • 费用差异:CV (Cost Variance )=BCWP-ACWP

      • =0:按照预算进行
      • > 0: 低于于预算
      • < 0:超出预算
  • 挣值分析导出量-1计算示例

image-20210521020046320

  • 挣值分析导出量-2

    • 成本效能指数: CPI (Cost Performance Index) = BCWP/ ACWP

      • 费用的支出速度
      • =1:按照预算进行
      • >1:低于预算
      • <1:超出预算
    • 进度效能指标: SPI (Schedule Performance Index) = BCWP/BCWS

      • 已完成工作百分比
      • =1:按照进度进行
      • >1:超前于进度
      • <1:落后于进度
  • 性能指标图示

image-20210521021812417

  • 挣值分析导出度量-3

    • 工作完成的预测成本:
      • EAC (Estimate At Completion) =BAC/CPI
    • 工作完成的成本差异:
      • VAC (Variance At Completion) = BAC- EAC
    • 项目完成的预测时间:
      • SAC (Schedule At Completion )=完成时的进度计划/SPI
    • 未完工指数
      • TCPI =剩余工作/剩余成本= (Budget-BCWP) / (Goal-ACWP),Budget=BAC,如果Goal=EAC,TCPI与CPI等同。
  • 挣值分析例题

    image-20210521022910277

image-20210521022429485

image-20210521022445876

image-20210521022503336

11.4 质量管理

11.5 团队管理

11.5.1 人员选择

  • 选择合适的项目人员
  • 高中低三类人员
    • 明确项目需要的人员技能
    • 验证需要的技能

11.5.2 人员培训

项目培训的特点:

  • 短期培训
  • 片段式培训
  • 针对性强
  • 见效快

11.5.3 人员激励

  • 马斯洛的需求层次理论
  • 海兹伯格的激励理论
  • 麦克勒格的 X-理论和Y-理论
  • 期望理论

11.5.4 团队管理建设

  • 创建有确实存在感的项目队伍
  • 建立奖励机制
  • 建立良好人际关系

11.6 沟通管理

11.6.1 项目沟通的基本原则

  • 及时性
  • 准确性
  • 完整性
  • 可理解性

11.6.2 项目沟通的方式

  • 书面沟通和口头沟通
  • 语言沟通和非语言沟通
  • 正式沟通和非正式沟通
  • 单向沟通和双向沟通
  • 网络沟通

11.6.3 项目评审

  • 准备过程

  • 评审过程

  • 评审报告

  • 评审类型(时间):

    • 定期评审
    • 阶段评审
    • 事件评审

11.7 风险管理

11.7.1 风险控制

  1. 实施和跟踪风险管理计划
  2. 确保针对风险策略正在合理使用
  3. 监视剩余的风险和识别新的风险
  4. 收集可用于将来的风险分析信息

11.7.2 风险控制过程

image-20210521024142374

11.7.3 风险控制的方法

  • 建立项目风险监控体系
  • 项目风险审核-Top 10风险列表控制
  • 挣值分析:分析进度、成本等风险
  • 项目风险评价-例如项目中期检查

11.8 合同管理

11.8.1 甲方合同管理

  • 对采购对象的验证和检验过程
  • 违约事件处理过程

11.8.2 乙方合同管理

  • 合同执行跟踪管理过程
  • 合同修改控制
  • 违约事件处理过程
  • 产品提交过程
  • 产品维护过程

12 项目结束过程

12.1 合同结束

项目终止的条件:

  • 项目计划中确定的可交付成果已经出现。
  • 由于相关原因,项目无法继续进行。

合同的生存期:

  • 合同准备
  • 合同签署
  • 合同管理
  • 合同终止

12.2 项目结束

项目结束过程:

  • 项目最后评审
  • 项目总结

12.2.1 项目最后评审

  • 是否实现项目目标
  • 是否遵循项目进度
  • 是否在预算成本内完成项目
  • 项目进度过程中出现问题以及解决措施是否合适
  • 从该项目的实践中可以得到哪些经验和教训

12.2.2 项目总结

  • 项目总结是一个把实际运行情况与项目计划不断比较以提炼经验教训的过程。
  • 通过项目总结,项目过程中的经验和教训将得到完整的记录和升华,成为“组织财富“。

文章作者: fdChen
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fdChen !
评论
  目录
加载中...