Why manage a software project? - The Constraints of Time, Budget, Staff, Tools
项目计划
Project Planning
定义项目活动
将项目拆分为较小的活动(任务),从而方便
- 为每个任务估计时间和资源
- 并行组织任务以优化人员利用率
Organise tasks concurrently to optimise staff
- 最小化任务之间的依赖关系(减少等待其他任务造成的延迟)
每个活动有以下因素
- 持续时间 - Duration (e.g. in calendar days/months)
- 截止日期 - Deadline
- 工作量估计 - Effort estimate (e.g. person days/months)
里程碑
Milestone
- an end-point of a process activiy which allow us to assess the progress
- a predictable state where a progress it produced
需要伴随着一个可交付的产出 (Deliverable, Project results delivered to customers)
e.g. a security report or an event/meeting
可视化时间表
Visualize project schedule
活动网络
Activity network,使用箭线图,能够更方便:
- Adjust milestones to match the deadline
- Adjust tasks by changing/adding people
Identify the critical path (the longest path)
活动时间线
Activity timeline,使用 甘特图 / 条形图
计划问题
Scheduling problems
- 软件是抽象的,估算困难 (Estimating is hard),
- 生产力与人员数量并不成比例 (Productivity is not proportional to number of staff)
- 在一个延迟的项目中增加人员只会使其更加延迟(导致沟通问题)
- 意外总会发生,因此要在计划中始终留出余地 (allow for contingency)
风险管理
Risk management
风险分析
Risk analysis: 判断风险的可能性和严重性
风险计划
风险监控
Risk monitoring,使用风险指标 (Risk indicators) 识别可能导致项目出现问题的风险因素。
总结
良好的项目管理 → 项目成功
Project management success criteria:
- Deliver in time
- Costs within budget
- Meet customer's expectations
- Keep team happy (!)