软件项目进度计划

软件项目进度计划

    • 进度的基本知识
      • 任务定义
      • 任务关系
      • 历时估算
        • 历时估算的基本方法-传统
          • 定额估算法
          • 经验导出模型
          • 工程评估评审技术(PERT)
          • 预留分析
          • Jones的一阶估算准则
          • 类比估算
          • 专家判断
          • 基于承诺的进度估算
        • 历时估算的基本方法-敏捷
          • 敏捷历时估算
      • 进度计划编排
        • 进度编制的基本方法
          • 超前(Lead)与滞后(Lag)
          • 关键路径法
          • 时间压缩法
            • 应急法-赶工
            • 平行作业法-快速跟进
          • 资源优化
          • 敏捷计划(Agile Planning)

进度的基本知识

进度的定义: 进度是对执行的活动和里程碑制定的工作计划日期表

进度计划基本概念: 即任务与任务之间的关系

进度计划的重要性

  • 按时完成项目是项目经理最大的挑战之一
  • 时间是项目规划中灵活性最小的因素
  • 进度问题是项目冲突的主要原因

项目进度计划过程
软件项目进度计划_第1张图片

任务定义

确定为完成项目的各个交付成果所必须进行的诸项具体活动(WBS定义了交付成果)

任务关系

项目各项任务之间存在一定的关联关系根据这些关系安排任务之间的顺序

任务之间的关系
软件项目进度计划_第2张图片
任务之间关联关系的依据

  • 强制性依赖关系:任务之间固有的依赖关系,不以人的意志转移,硬逻辑,例编写设计说明书与设计评审
  • 软逻辑关系:不是固有的,是主观的安排,安排者有一定逻辑考虑的关系
  • 外部依赖关系:依赖于项目之外因素的关系,例如用户环境测试要依赖于用户环境准备好
  • 内部依赖关系:内部的强制性依赖关系

关系依赖矩阵
软件项目进度计划_第3张图片
关系依赖矩阵举例
软件项目进度计划_第4张图片
进度管理图示:

  • 网络图
  • 甘特图
  • 里程碑图
  • 资源图
  • 燃尽图
  • 燃起图

网络图
是活动排序的一个输出,可以展示项目中各个活动以及活动间的逻辑关系。

常用的网络图:
软件项目进度计划_第5张图片
PDM:

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

PDM图例
软件项目进度计划_第6张图片
ADM

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

ADM图例
软件项目进度计划_第7张图片
ADM图例-虚活动
虚活动

  • 为了定义活动
  • 为了表示逻辑关系
  • 不消耗资源的
    软件项目进度计划_第8张图片

甘特图实例
软件项目进度计划_第9张图片
里程碑图示
软件项目进度计划_第10张图片
资源图
软件项目进度计划_第11张图片
燃尽图–进度图
软件项目进度计划_第12张图片
燃起图–进度图
软件项目进度计划_第13张图片

历时估算

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

历时估算的基本方法-传统

  • 定额估算法
  • CPM(关键路径法估计)
  • PERT(工程评估评审技术)
  • 预留分析
  • 其他(例如Jones的一阶估算准则,类比估算,专家判断,基于承诺的估计)
定额估算法

适合规模小的项目或某任务的历时估算
软件项目进度计划_第14张图片
一般情况下,S=1或S>1表示工作效率高,加班。S<1表示工作效率低,兼职。

经验导出模型

是一个参数模型的方法,与成本参数模型一样,根据项目数据统计分析得出来的,不同的研究机构根据不同的研究对象得出的模型不同。尽管形式不同,但基本模式如下:
软件项目进度计划_第15张图片
建议掌握模型
软件项目进度计划_第16张图片
基本COCOMO举例
软件项目进度计划_第17张图片
CPM(关键路径法估计)
关键路径方法主要体现在进度编排上,这里的历时估算主要是针对路径的估算

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

关键路径法估计实例
软件项目进度计划_第18张图片
关键路径为A路径,项目完成的最短时间为100天

工程评估评审技术(PERT)
  • (Program Evaluation and Review Technique)利用网络顺序图逻辑关系
  • 项目中某项单独的活动,存在很大的不确定性
  • 加权算法估算任务历时
  • 利用网络图逻辑关系,确定路径,项目历时

工程评估评审技术(PERT)-加权算法
软件项目进度计划_第19张图片
PERT加权算法例子
软件项目进度计划_第20张图片
PERT的风险性
软件项目进度计划_第21张图片
PERT的风险指标
软件项目进度计划_第22张图片
PERT估算举例
软件项目进度计划_第23张图片
利用标准差来评价结果
软件项目进度计划_第24张图片
PERT估算评价举例
软件项目进度计划_第25张图片
软件项目进度计划_第26张图片

预留分析
  • 应急预留(是包含在进度基准中的一段储备时间,用来应对已经接受的已识别风险,以应对进度方面的不确定性)
  • 管理预留(是为管理控制的目的而特别留出的项目预算,用来应对项目范围中不可预见的风险)
Jones的一阶估算准则

软件项目进度计划_第27张图片
Jones的一阶估算准则实例
软件项目进度计划_第28张图片

类比估算

以过去类似项目的实际持续时间为依据,来估算当前项目的持续时间.

专家判断

根据下面专业知识而做出的历时估算

  • 进度计划
  • 有关估算
  • 学科或应用知识
基于承诺的进度估算
  • 要求开发人员做出进度承诺
  • 不进行中间的工作量(规模)估计

优点:有利于开发者对进度的关注

历时估算的基本方法-敏捷

敏捷历时估算

分开发速度稳定前和开发速度稳定后

开发速度稳定前–举手表决
项目经理组织举手表决:

  • 举拳头表示不支持
  • 伸五个手指表示完全支持
  • 伸出三个以下手指的团队成员有机会与团队讨论其反对意见
  • 不断进行举手表决,直到整个团队达成共识(所有人都伸出三个以上手指)或同意进入下一
    个决定。

开发速度稳定后
可以采用基于故事点生产率的估算或基于迭代生产率的估算

基于故事点(story point)生产率的估算 (前提是有稳定的故事点生产率)
软件项目进度计划_第29张图片
基于迭代生产率的估算 (前提是要求每个迭代开发的故事点是稳定的)
软件项目进度计划_第30张图片

进度计划编排

进度编制的基本方法

  • 超前与滞后
  • 关键路径法
  • 时间压缩法
  • 资源优化
  • 敏捷计划
超前(Lead)与滞后(Lag)

任务滞后
软件项目进度计划_第31张图片
任务滞后举例
软件项目进度计划_第32张图片
表示A完成后3天,B开始,延迟的时间为3天

任务超前
软件项目进度计划_第33张图片
软件项目进度计划_第34张图片
表示任务A完成之前3天,B开始,B提前开始的时间为3天

作用:

  • 解决任务的搭建
  • 对任务可以进行合理的拆分
  • 缩短项目工期
关键路径法

基本概念:

  • 最早开始时间(Early start)
  • 最晚开始时间(Late start)
  • 最早完成时间(Early finish)
  • 最晚完成时间(Late finish)
  • 总浮动(Total Float)
  • 自由浮动(Free Float)
    软件项目进度计划_第35张图片
    浮动时间(Float): 是一个任务的机动性,它是一个任务在不影响其他任务或者项目完成的情况下可延迟的时间量(如上图:ES=1,LS=5则Folat=4)

总浮动(Total Float): 在不影响项目最早完成时间的前提下,一个任务可以延迟的时间

自由浮动(Free Float): 在不影响后置任务最早开始时间的前提下,一个任务可以延迟的时间
软件项目进度计划_第36张图片
关键路径(Critical Path)

  • 网络图中最长的路径

  • 关键路径是决定项目完成的最短时间

  • 时间浮动为0(Float=0)的路径

  • 关键路径上任何活动延迟,都会导致整个项目完成时间的延迟

  • 关键路径可能不止一条
    软件项目进度计划_第37张图片
    项目网络图
    软件项目进度计划_第38张图片
    软件项目进度计划_第39张图片
    软件项目进度计划_第40张图片
    软件项目进度计划_第41张图片
    软件项目进度计划_第42张图片
    软件项目进度计划_第43张图片
    正推法(Forward pass)
    按照时间顺序计算最早开始时间和最早完成时间的方法,称为正推法

  • 确定项目的开始时间,网络图中第一个任务的最早开始时间是项目的开始时间

  • ES+Duration=EF

  • EF+Lag=ES(s),当一个任务有多个前置任务时,选择前置任务中最大的EF加上Lag作为其ES

  • 依次类推,从左到右,从上到下,计算每个路径的所有任务的ES和最早完成时间EF

正推法实例
软件项目进度计划_第44张图片
逆推法(Backward pass)
按照逆时间顺序计算最晚开始的时间和最晚结束时间的方法,称为逆推法

  • 首先确定项目的结束时间,网络图中最后一个任务最晚完成时间是项目的结束时间
  • LF-Duration=LS
  • LS-Lag=LF§,当一个任务有多个后置任务时,选择其后置任务中最小LS减Lag作为其LF
  • 依此类推,从右到左,从上到下,计算每个任务的最晚开始时间LS和最晚结束时间LF

逆推法实例
软件项目进度计划_第45张图片

时间压缩法

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

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

赶工时间与赶工成本关系图
软件项目进度计划_第46张图片
应急法-赶工

  • 进度压缩单位成本方法线性关系
  • 进度压缩因子方法非线性关系

进度压缩单位成本方法
压缩范围:正常值与可压缩值之间
例如:
任务A:正常进度7周,成本5万
压缩到5周的成本是6.2万
压缩范围:7周- - ->5周

项目活动的正常值:正常历时和正常成本
项目活动的压缩值:压缩历时和压缩成本

公式:
进度压缩单位成本=(压缩成本-正常成本)/(正常进度-压缩进度)
软件项目进度计划_第47张图片
时间压缩例题
软件项目进度计划_第48张图片
计算单位压缩成本
软件项目进度计划_第49张图片
软件项目进度计划_第50张图片
软件项目进度计划_第51张图片
软件项目进度计划_第52张图片
时间压缩答案
软件项目进度计划_第53张图片
项目存在一个可能的最短进度
软件项目进度计划_第54张图片
进度压缩因子方法(Charles Symons(1991)方法)

公式:
进度压缩因子=压缩进度/正常进度
压缩进度的工作量=正常工作量/进度压缩因子

软件项目进度计划_第55张图片

平行作业法-快速跟进

改变活动间的逻辑关系,并行开展某些活动,提前量方法

平行作业法例子
软件项目进度计划_第56张图片
软件项目进度计划_第57张图片

资源优化

根据资源供需情况,调整活动的开始和完成日期
资源优化配置,形成最有效的利用资源

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

资源优化有两个方法:资源平衡和资源平滑

资源平衡

  • 为了在资源需求与资源供给之间取得平衡,根据资源制约因素对开始日期和完成日期进行调整的一种技术
  • 通过调整任务的时间来协调资源的冲突
  • 资源平衡往往导致关键路径改变,可能延长任务时间

一个资源在同一时间内被分配给多个活动,这就需要资源平衡
资源平衡法
软件项目进度计划_第58张图片
资源平滑法

  • 是在项目编排中进行资源的优化配置,保证资源最优化,最优效
  • 资源平滑不会改变项目关键路径,完工日期也不会延迟,活动只在其自由和总浮动时间内延迟
    软件项目进度计划_第59张图片
    软件项目进度计划_第60张图片
    软件项目进度计划_第61张图片
敏捷计划(Agile Planning)

Release planning -发布计划,远期计划-粗计划
Iteration planning -迭代计划,近期计划-细计划

通过将概要的项目整体规划和详细近期计划接待计划的有机结合,可以提高项目准确度和项目按时交付的能力

采用远粗近细的双重计划模式

你可能感兴趣的:(软件项目管理,项目管理)