34 项目进度安排¶
说明
本文档由 AI 生成
这一章(Chapter 34: Project Scheduling)是项目管理知识体系中的“落地”环节。如果说上一章(Ch.33)解决了“需要多少资源(估算)”的问题,那么这一章就是解决“如何在时间轴上安排这些资源(进度计划)”的问题。
这一章的逻辑非常清晰,遵循了从**问题识别**到**原则确立**,再到**具体方法**和**监控手段**的递进关系: 1. 首先**分析了项目延期的常见原因,强调了进度计划的重要性。 2. **其次**提出了进度安排的6大原则,并探讨了工作量与交付时间的非线性关系。 3. **核心部分**详细介绍了如何定义任务集(Task Sets)、精化任务(Refinement)、构建任务网络(Network),以及如何使用甘特图(Timeline Charts)进行可视化。 4. **最后**重点讲解了两种高级监控技术:**关键路径法 (CPM) 的概念(隐含在任务网络中)和**挣值分析 (EVA)** 的具体计算方法。
以下是为你整理的详细笔记(Markdown格式),专有名词后均已附上英文对照,非常适合用来复习备考。
📅 软件工程 Chapter 34: 项目进度安排 (Project Scheduling)¶
1. 项目延期的常见原因 (Why Projects Are Late?)¶
- 不切实际的截止日期 (Unrealistic deadline):由软件开发组外部人员制定。
- 需求变更 (Changing requirements):且未反映在进度变更中。
- 诚实的低估 (Honest underestimate):低估了所需的努力或资源。
- 未考虑的风险 (Unconsidered risks):可预测或不可预测的风险。
- 技术/人为困难 (Technical/Human difficulties):无法提前预见。
- 沟通不畅 (Miscommunication):导致延误。
- 管理失职 (Management failure):未能识别项目落后并采取纠正措施。
2. 进度安排的六大原则 (Scheduling Principles)¶
- ** compartmentalization (分解/分隔)**:定义明确的任务。
- Interdependency (相互依赖性):标明任务之间的关系。
- Effort validation (工作量验证):确保资源可用。
- Defined responsibilities (职责明确):必须指派人员。
- Defined outcomes (结果明确):每个任务必须有输出。
- Defined milestones (里程碑明确):用于质量评审。
3. 工作量与交付时间的关系 (Effort and Delivery Time)¶
- 公式 (Formula):\(E_{a} = m(t_{d}^{4} / t_{a}^{4})\)
- \(E_{a}\):实际工作量 (Actual effort)。
- \(t_{d}\):名义交付时间 (Nominal delivery time)。
- \(t_{a}\):实际期望交付时间 (Actual delivery time desired)。
- 含义:试图缩短交付时间会导致所需工作量呈指数级增长 (Exponential increase)。
- 最优时间 (Optimal time):\(t_{0}\) 是成本最低的开发时间。
- 不可能区域 (Impossible region):时间过短则项目无法完成。
4. 工作量分配 (Effort Allocation)¶
- 前端活动 (Front-end activities):40-50%
- 客户沟通 (Customer communication)、分析 (Analysis)、设计 (Design)、评审与修改 (Review and modification)。
- 构建活动 (Construction activities):15-20%
- 编码 (Coding)。
- 测试与安装 (Testing and installation):30-40%
- 单元测试、集成测试、白盒/黑盒测试、回归测试。
5. 定义任务集 (Defining Task Sets)¶
- 步骤 (Steps):
- 确定项目类型 (Determine type of project)。
- 评估所需严谨程度 (Assess degree of rigor)。
- 确定适应性标准 (Identify adaptation criteria)。
- 选择合适的软件工程任务 (Select appropriate tasks)。
6. 任务集精化 (Task Set Refinement)¶
- 目的:将高层任务分解为可执行的子任务。
- 示例 (Example):
- 任务 1.1 概念范围 (Concept scoping):
- 1.1.1 识别需求、利益和潜在客户。
- 1.1.2 定义期望的输出/控制/输入 (OCI)。
- FTR (Formal Technical Review):与客户评审 OCI。
- 1.1.3 定义功能/行为。
- 1.1.4 隔离软件元素。
- 1.1.5 研究现有软件可用性。
- 1.1.6 定义技术可行性。
- 1.1.7 快速估算规模。
- 1.1.8 创建范围定义 (Scope Definition)。
- 任务 1.1 概念范围 (Concept scoping):
7. 定义任务网络 (Define a Task Network)¶
- 目的:展示任务之间的依赖关系 (Dependency) 和并行性 (Parallelism)。
- 示例:
- 任务 1.3 技术风险评估 (Technical Risk Assessment) 和 任务 1.5 概念实现 (Concept Implementation) 可能针对不同的概念功能并行执行。
- 最终整合 (Integrate) 所有并行任务的结果。
8. 时间线图 (Timeline Charts / Gantt Charts)¶
- 用途:可视化项目进度。
- 结构:
- 横轴 (X-axis):时间 (Time)。
- 横条 (Bars):表示任务的持续时间。
- 里程碑 (Milestones):如“产品说明定义完成”。
- 自动化工具 (Automated tools):可用于生成更详细的甘特图。
9. 进度跟踪与监控 (Schedule Tracking)¶
- 定期会议 (Periodic meetings):团队成员报告进度和问题。
- 评审结果 (Review results):评估所有评审的结果。
- 里程碑检查 (Milestone check):确定正式里程碑是否按时完成。
- 实际 vs 计划 (Actual vs Planned):比较任务的实际开始日期与计划开始日期。
- 非正式沟通 (Informal communication):与从业者非正式会面。
- 挣值分析 (Earned Value Analysis, EVA):定量评估进度。
10. 面向对象项目的进度 (Progress on an OO Project)¶
- 里程碑 1:OO 分析完成 (OO analysis completed)
- 定义并评审所有类 (Classes)、属性 (Attributes)、操作 (Operations) 和类关系 (Relationships)。
- 创建并评审行为模型 (Behavioral model)。
- 里程碑 2:OO 设计完成 (OO design completed)
- 定义子系统 (Subsystems) 并将类分配给子系统。
- 确立任务分配 (Task allocation)、职责 (Responsibilities) 和协作 (Collaborations)。
- 里程碑 3:OO 编程完成 (OO programming completed)
- 实现新类和提取的可复用类。
- 构建原型或增量 (Increment)。
- 里程碑 4:OO 测试 (OO testing)
- 完成类级测试 (Class-level tests) 和集群测试 (Cluster testing)。
- 完成系统级测试 (System level tests)。
11. 挣值分析 (Earned Value Analysis, EVA)¶
- 定义:一种衡量进度的指标,通过定量分析评估项目的“完成百分比”,而非依赖直觉。
- 核心指标 (Core indicators):
- BCWS (Budgeted Cost of Work Scheduled):计划工作预算成本。
- 到目前为止计划完成的任务的预算总和。
- BCWP (Budgeted Cost of Work Performed):已完成工作预算成本。
- 到目前为止实际完成的任务的预算总和。
- BAC (Budget at Completion):完工预算。
- 所有任务的 BCWS 总和。
- BCWS (Budgeted Cost of Work Scheduled):计划工作预算成本。
12. EVA 计算公式 (Computing Earned Value)¶
- 进度绩效指数 (Schedule Performance Index, SPI):
- \(SPI = BCWP / BCWS\)
- 含义:衡量项目利用计划资源的效率。
- 进度偏差 (Schedule Variance, SV):
- \(SV = BCWP - BCWS\)
- 完成百分比 (Percent complete):
- 计划完成百分比 = \(BCWS / BAC\)
- 实际完成百分比 = \(BCWP / BAC\)
- 成本绩效指数 (Cost Performance Index, CPI):
- \(CPI = BCWP / ACWP\) (ACWP: Actual Cost of Work Performed)
- 成本偏差 (Cost Variance, CV):
- \(CV = BCWP - ACWP\)
💡 复习重点总结 (Key Takeaways for Exam)¶
- 进度安排原则 (Principles):记住那6个关键词(Compartmentalization, Interdependency, Effort validation, Responsibilities, Outcomes, Milestones)。
- 工作量分配 (Effort Allocation):这是一个非常具体的考点。请记住**前端 (40-50%)、**构建 (15-20%)、测试 (30-40%) 的大致比例。这反驳了“编码最重要”的错误观点。
- 任务精化 (Task Refinement):理解如何将一个大任务(如概念范围)分解为具体的子任务(如定义 OCI, FTR 评审等)。
- 挣值分析 (EVA):这是本章最硬核的计算考点。
- 必须分清 BCWS (计划做的预算) 和 BCWP (实际做的预算)。
- 必须掌握 SPI 和 CPI 的计算公式及其含义(>1 代表好,<1 代表差)。
- 工作量与时间的关系:记住公式中的四次方关系,意味着压缩时间会指数级增加成本。
评论区
欢迎在评论区指出文档错误,为文档提供宝贵意见,或写下你的疑问