在get到成本计划后,我们便要着手开始对项目的进度进行计划,即这次的核心计划之一进度计划。
进度计划的重要性:按时完成项目是项目经理最大的挑战之一,时间是项目规划中灵活性最小的因素,进度问题是项目冲突的主要原因。
1.进度的定义:进度是对执行的活动和里程碑制定的工作计划日期表。
2.我们知道wbs是面向交付成果的,所以任务就是确定完成项目的各个交付成果所必须进行的诸项具体活动。
3.项目各项活动(任务)之间存在相互联系与相互依赖关系,根据这些关系安排任务之间的顺序,任务的关系一般包括四种
任务之间关联关系的依据:强制性逻辑关系,软逻辑关系,外部依赖关系
4.进度管理的图示:包括以下
网络图:网络图是活动排序的一个输出,展示项目中各个活动以及活动之间的逻辑关系 ,常用的网络图:PDM(优先图)和ADM(箭线法)
PDM图例:构成PDM网络图的基本特点是节点(Box),节点(Box)表示活动(任务),用箭线表示各活动(任务)之间的逻辑关系.可以方便的表示活动之间的各种逻辑关系。
ADM图例:ADM也称为双代号项目网络图,在ADM网络图中,箭线表示活动(任务),两个代号唯一确定一个任务,代号表示前一任务的结束,同时也表示后一任务的开始。
甘特图:
资源图:
里程碑图:
5.任务历时估算:估计任务、路径、项目的持续时间
定额估算法:T=Q/(R*S) T:活动历时 Q:任务工作量 R:人力数量 S:工作效率(贡献率) 仅适用于小规模或投入量很小的项目
经验导出模型:D=a*(E^b) D:进度(以月单位) E:工作量(以人月单位) a:2—4之间 b:1/3左右:依赖于项目的自然属性
关键路径估计(CMP):确定项目网络图;每个任务有单一的历时估算;确定网络图中任务的逻辑关系;关键路径是网络图中最长的路径。关键路径可以确定项目完成时间
工程评估评审技术(PERT):它是基于对某项任务的乐观,悲观以及最可能的概率时间估计,采用加权平均得到期望值E=(O+4m+P)/6,O是最小估算值:乐观(Optimistic), P是最大估算值:悲观(Pessimistic),M是最大可能估算(Most Likely)。其中还有两个重要的风险评估标准:方差和标准差,标准差δ =(最大估算值-最小估算值)/6;方差δ^2 = [(最大估算值-最小估算值)/6]^ 2
基于承诺的进度估计:要求开发人员做出进度承诺,不进行中间量的工作量估计。主要优点:有利于开发者关注进度,和激发士气。主要缺点:易于产生较大误差。
jones的一阶估算准则:幂次表,估算功能点,从幂次表中查找相应幂次将功能点进行升幂。
6.进度计划编排:
关键路径:
正推法从左往右从上往下求最早时间,逆推法从右往左从上往下求最晚时间。
时间压缩:时间压缩法是在不改变项目范围的前提下缩短项目工期的方法,eg:
应急法–赶工(Crash):在最小相关成本增加的条件下,压缩关键路经上的关键活动历时的方法,赶工也称为时间-成本平衡方法;
平行作业法–快速跟进:改进活动间的逻辑关系,并行开展某些活动。
管理预留:管理预留是加在项目末端的人为任务。(缓冲)
资源平衡:资源优化配置,形成最有效的利用资源,使资源闲置的时间最小化,尽量避免超出资源能力,工期不能加长
敏捷计划:迭代周期,两层计划:product backlog 和 sprint backlog
7.项目进度规划模型
把握好进度后我们就需要考虑软件的质量,于是便有了软件质量计划
首先,什么是质量:软件质量就是软件满足明确说明或隐含的需求的程度。
人们通常把影响软件质量的特性用软件质量模型来描述。
常见的质量模型有1976年 boehm模型 1979年 mccall模型 1985年 iso 模型
质量形成于产品和服务的开发过程中,而不是通过事后的检查把关等。
质量成本(CoQ):质量成本是由于产品第一次工作不正常而衍生的附加花费,包括两部分,预防成本和缺陷成本。
想要管理好软件质量,首先要知道质量管理的对象:过程质量、产品质量
然后是质量管理的过程:软件质量的计划、保证、控制
软件质量的计划:确定项目应达到的质量标准,确定完成质量标准的计划安排和方法
软件质量的保证:对项目进行评测,估测项目能否达到预期的质量指标,建立信心。常用的活动有项目执行过程审计、项目产品审计
软件质量的控制:检查工作结果、按照标准跟踪检查、确定措施消灭质量问题
质量计划的方法:
试验设计:试验设计是一种统计学的方法,确定哪些因素可能会对特定变量产生影响。
基准对照:基准对照是一种寻找最佳实践的方法,是利用其它项目的实施情况作为当前项目性能衡量的标准
质量成本分析:质量成本的综合分析,以便确定质量活动
流程图方法:可显示系统的各种成分是相互的关系,帮助我们预测在何处可能发生何种质量问题。
因果分析图:描述相关的各种原因和子原因如何产生潜在问题或影响,将影响质量问题的“人员、设备、参考资料、方法、环境”等各方面原因进行细致的分解,方便在质量计划中制定相应的预防措施。
敏捷开发的质量管理:pair programming 、TDD(test driven development)、refactor、customer test