1. 为什么要软件项目管理?

软件项目失败,往往不是因为不会写代码,而是因为不会管理。

典型误区有两个:

“三边行动”: 边计划、边实施、边修改。看起来灵活,实际上容易导致目标不清、进度混乱、返工严重。

“六拍运动”: 拍脑门决策 → 拍肩膀鼓励 → 拍胸脯保证 → 拍桌子发火 → 拍屁股走人 → 拍大腿后悔。 这个很可能是考试喜欢让你解释的案例,本质是:缺少可行性分析、计划、风险控制、沟通与过程管理。

项目不成功的常见问题包括:任务不明确、需求变更、新技术风险、成本超支、进度失控、质量问题、开发混乱、用户参与不足。

2. 项目是什么?

项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。

唯一性、临时性、目标性。

目标性、相关性、临时性、独特性、资源约束性、不确定性

项目的特征要记:

  1. 有明确目标
  2. 活动之间有相关性
  3. 有限定周期
  4. 有独特性
  5. 受资源和成本约束
  6. 具有不确定性
活动是否是项目
上课通常不是,是日常运作
野餐活动
集体婚礼
社区保安不是,是日常运作
开发操作系统
每天卫生保洁不是
神州飞船计划

判断标准:是不是临时的、唯一的、有明确目标的活动。

3. 软件项目有什么特殊性?

软件项目不是普通项目,它有几个特殊点:

第一,软件是逻辑实体,不是物理实体。 看不见摸不着,所以进度和质量不容易直观看出来。

第二,需求容易变更。 用户经常一开始说不清楚,做着做着才知道自己想要什么。

第三,渐近明细。 项目细节不是一开始就完全清楚,而是随着开发逐渐清晰。

第四,系统之间相互作用强。 一个模块变化,可能影响其他模块。

第五,依赖用户需求。 软件项目成功不只是“做完”,而是要满足用户真正的业务需求。

一句话记忆: 软件项目特殊在“看不见、变得快、说不清、牵一发动全身”。

4. 项目管理是什么?

课件定义:

项目管理是一系列伴随着项目进行而进行的、目的是为了确保项目能够达到期望结果的管理行为。

考试语言:

项目管理就是在有限时间、有限成本、有限资源下,通过计划、组织、执行、控制等活动,实现项目目标。

5. PMBOK 是什么?

PMBOK 全称:

Project Management Body of Knowledge,项目管理知识体系指南。

它是 PMI 对项目管理所需要的知识、技能、工具和技术的概括性描述。

传统 PMBOK 里重点记两个东西:

五大过程组

  1. 初始
  2. 计划
  3. 控制
  4. 执行
  5. 结束

启动、规划、执行、监控、收尾

十大知识领域

  1. 整合管理
  2. 范围管理
  3. 进度管理
  4. 成本管理
  5. 质量管理
  6. 资源管理
  7. 沟通管理
  8. 风险管理
  9. 采购管理
  10. 相关方管理

速记可以这样理解:

整合是核心,范围进度成本质量是项目目标控制,资源沟通风险采购相关方是支撑。

6. PMBOK 第六版和第七版的变化

课件提到 PMBOK 第七版不是推翻第六版,而是对第六版的延伸。

PMBOK第七版将会长期的与第六版共存,也就是说PMBOK第七版不是对第六版推翻、不是替代第六版,而是对第六版中项目管理核心精髓的延伸,是对第六版知识领域与过程组高层次、高维度的承接,再度续写下个项目管理标准构架的辉煌。

重点变化:

第六版更关注过程和知识领域。 也就是五大过程组 + 十大知识领域。

第七版更关注原则、绩效域和价值交付。 课件中强调了:从传统过程导向,转向价值交付导向。

第七版有一个重点:八大绩效域框架。 课件图里包含:

  1. 干系人
  2. 团队
  3. 规划
  4. 项目工作
  5. 测量
  6. 交付
  7. 生命周期与开发方法
  8. 不确定性

你可以这样记: 人、队、规、工、测、交、生、不。

  1. 传统PMBOK敏捷化
  2. 强调了价值交付
  3. 八大绩效域框架

PMBOK7 更加敏捷化,不再只强调固定过程,而是强调价值交付、项目绩效域和适应复杂不确定环境。

7. 敏捷项目管理

为什么需要敏捷?

因为软件项目处在快速变化的业务环境中,需求变化快,传统开发难以适应。

敏捷开发的定义:

敏捷是一种应对快速变化需求的、迭代式、循序渐进的软件开发方法。

项目管理的传统三角

内部资源为中心

时间,范围,成本

敏捷三角

价值为中心

质量,价值,约束(时间,范围,成本)