软件项目管理
计算机科学· 45 分钟阅读
1. 核心原则与关键术语★★☆☆☆⏱ 15 min
软件项目管理是对软件开发进行规划、监控和控制的实践,旨在在约定的时间、成本和质量约束下交付满足利益相关者需求的产品。所有项目都受范围、时间、成本三重约束的限制,必须平衡这三者才能获得成功的结果。
软件项目管理
为实现特定目标和成功标准,启动、规划、执行、监控和结项软件开发工作的过程
例:
开发学生考勤应用的团队管理开发工时、截止日期和客户不断变化的功能需求,以在预算内交付可用产品。
范围:项目必须交付的功能和需求集合
利益相关者:所有受项目结果影响的个人或群体
风险:任何会对项目产生正面或负面影响的不确定事件
可交付成果:项目过程中产生的有形或无形产出
请为当地小型企业开发新电商网站的项目找出4项关键约束。
- 1
步骤1:定义项目约束:任何限制项目交付的因素。
- 2
步骤2:找出前两项约束:范围(所需功能:结账、用户账户、库存追踪)和时间(假日购物季前的截止日期)。
- 3
步骤3:找出剩余两项约束:成本(小型企业用于支付开发工时的预算有限)和质量(必须满足处理客户支付数据的安全标准)。
2. 项目管理方法论★★★☆☆⏱ 20 min
CIE 9618经常要求对比两种最常见的项目管理方法论:瀑布模型和敏捷开发。方法论是一种组织和完成项目工作的结构化方法。
以下是考试中考查的两种核心方法论的对比:
瀑布模型
线性顺序方法,每个开发阶段完成后才进入下一个阶段。需求在项目启动时就已固定并完整记录。
+ 优点: 易于管理和规划进度; 清晰完整的文档; 适用于需求稳定的小型项目
− 缺点: 对需求变化的适应性差; 测试阶段靠后,会导致代价高昂的返工; 完整产品仅在项目结束时交付
敏捷开发
迭代增量方法,将工作拆分为固定长度的短冲刺。需求随时间演变,每次冲刺后都会收集利益相关者的定期反馈。
+ 优点: 轻松适应需求变化; 早期即可获得可工作产品进行测试; 发生代价高昂的大规模返工的风险更低
− 缺点: 发生不受控范围蔓延的风险更高; 文档完整性较低; 最终成本和工期很难提前预测
某项目要开发新的社交应用,需求未完全定义,客户需要定期更新来调整功能,请为该项目推荐合适的方法论。
- 1
步骤1:分析场景的关键特征:初始需求不明确,需要客户定期输入意见和进行变更。
- 2
步骤2:排除瀑布模型:瀑布模型要求所有需求在项目启动时就固定,若项目中期发生变更,会带来重大干扰和额外成本,因此无法适应。
- 3
步骤3:论证敏捷开发的合理性:敏捷开发将工作拆分为2-4周的冲刺,每次冲刺后客户都可以审核可工作产品并调整需求,完全符合该场景的需求。
3. 进度规划与风险管理★★★☆☆⏱ 20 min
项目进度规划包括将工作拆分为任务、识别任务之间的依赖关系,并对照截止日期跟踪进度。风险管理是识别潜在问题并制定缓解策略以降低其影响的过程。
关键路径
决定整个项目最短完工时间的最长依赖任务序列。关键路径上任何任务的延误都会推迟项目的整体完工日期。
例:
如果数据库设计必须在编写应用后端代码之前完成,那么这两个任务都是关键路径的一部分。
常见的软件项目风险包括范围蔓延、人员流动、不切实际的截止日期和未经验证的技术复杂度。每种风险都有对应的缓解策略来降低影响。
某软件项目因客户经常要求添加新功能而面临范围蔓延风险,请解释一种应对该风险的有效缓解策略。
- 1
步骤1:先定义范围蔓延:项目范围发生不受控、未获批准的变更,会导致工期延误和成本增加。
- 2
步骤2:描述正式变更控制流程:所有新功能需求都需要书面记录,评估其对项目时间、成本和范围的影响,在任何工作开始前,只能由项目指导小组批准或拒绝该需求。
- 3
步骤3:解释该策略的有效性:它可以防止在不调整截止日期和预算来适应变更的情况下,将未计划工作添加到项目中,保证项目按计划推进。
4. 团队角色与利益相关者管理★★☆☆☆⏱ 10 min
CIE考试经常考查软件项目团队中关键角色的职责。以下是你需要牢记的核心角色:
项目经理:整体负责规划、进度安排、预算和按时交付
业务分析师:从利益相关者处获取并记录需求
开发人员:编写、测试和维护产品代码
测试人员:独立验证产品是否符合需求,并识别缺陷
客户/最终用户:定义需求并验收最终产品
开发团队不清楚客户对产品的需求,哪个角色负责解决这个问题,为什么?
- 1
步骤1:确定正确角色:业务分析师。
- 2
步骤2:解释该角色的核心职责:业务分析师直接与客户和利益相关者沟通,为开发团队获取、澄清并清晰记录需求。
- 3
步骤3:论证:业务分析师编写的清晰需求文档可以消除歧义,确保团队开发出符合客户需求的产品。
5. 常见陷阱
错误做法:
无论场景背景如何,都默认敏捷开发是正确答案
原因:
许多学生知道敏捷开发是更现代的方法,因此会自动选择它,即使场景描述的是固定需求。
正确做法:
始终将方法论与场景匹配:需求固定稳定时使用瀑布模型,需求变化不明确时使用敏捷开发。
错误做法:
声称任何任务的任何延误都会延误整个项目
原因:
学生忘记只有关键路径上的任务会影响项目整体完工日期。
正确做法:
只有关键路径上的任务的松弛/浮动时间为零。非关键任务可以在不改变项目完工日期的前提下,延误不超过其松弛时间的时长。
错误做法:
将所有范围变更都称为范围蔓延
原因:
受控的、已批准的范围变更是任何项目的正常部分。范围蔓延专门指不受控的变更。
正确做法:
只有未获批准、未计划的项目范围变更,即在不调整时间或成本的情况下增加工作量,才被定义为范围蔓延。
错误做法:
声称敏捷项目没有文档
原因:
敏捷开发优先考虑可工作软件而非完整文档,这经常被误解为完全不需要文档。
正确做法:
敏捷项目仍然包含足够的文档用于维护和后续开发,只是完整性低于瀑布模型。
错误做法:
将需求收集工作分配给项目经理
原因:
学生经常混淆项目经理和业务分析师的职责。
正确做法:
业务分析师负责获取和记录需求;项目经理专注于规划、进度安排和预算。
6. 速查表
概念 | 瀑布模型 | 敏捷开发 |
|---|---|---|
开发方法 | 线性顺序 | 迭代增量 |
需求 | 启动时固定 | 随时间演变 |
适用场景 | 需求稳定、重监管项目 | 需求变化、创新型项目 |
文档 | 完整全面 | 足够即可、及时更新 |
范围蔓延风险 | 低 | 高(若不受控) |
交付 | 项目结束交付完整产品 | 每个冲刺交付可工作增量 |
变更灵活性 | 低 | 高 |
7. 常见问题
浮动时间(松弛时间)和关键路径的区别是什么?
关键路径是决定项目最短完工时间的任务序列,该路径上的任务浮动时间为零。浮动时间(松弛时间)是非关键任务在不延迟项目整体完工日期的前提下可以延误的最长时间。
真题中的出现
AI 根据考纲规律估算的考点位置,请对照官方真题核实准确性。仅作复习重点参考。
- 2022 · 12
比较瀑布模型和敏捷开发方法论
- 2023 · 11
解释关键路径分析
- 2024 · 12
范围蔓延风险的缓解措施
深入阅读
下一步
软件项目管理是所有后续软件工程学习的核心基础,为理解复杂项目的系统开发、需求收集和质量保证奠定基础。本子主题在CIE 9618试卷1中占比很高,经常出现6-8分的扩展回答题,考查你将概念应用到特定场景的能力。专注练习方法论对比和风险缓解示例才能得满分。点击下方链接拓展你对相关概念的知识。
