引言PgMp.mypm.net
作为软件开发项目经理的你,是否真正了解项目当前的状态?作为软件外包项目的甲方,你是否真正了解项目的实际规模?是否了解项目的进度情况?要正确的回答以上问题,并不是一件容易的事情。一般情况下,这些对项目的评估往往是来自于项目经理的判断,缺乏客观依据。而比较合理的做法是应用一套科学的方法,对软件开发各个阶段的数据进行有效的度量和监控。软件(项目)的度量可以说不是一个很新的话题,但是在实际开发项目中,却鲜见应用成功的案例。在这里,我们就结合自身的经验,和汉星天公司所倡导的“面向需求的项目管理”,谈谈如何建立以需求为中心的软件开发项目度量体系;简要介绍一些针对软件规模、工作量、软件质量的常用度量方式,以及如何对软件项目进行有效的监控。转自项目管理者联盟
2 度量的重要意义www.mypm.net
建立一套科学的、可视化的软件生产度量和监控体系,对于软件开发组织具有十分重要的意义。想象一下,在一个软件外包项目中,发包方和接包方是如何就开发工作量达成一致的?如果没有客观的方法,进行科学的度量,双方很可能就工作量问题无法达成一致协议,最终导致项目失败。项目管理者联盟
再举一例,面对即将发布的软件产品,是什么能够使得项目经理认为产品质量满足发布的要求?这绝对不能是项目经理和测试经理拍脑门来决定的,而需要有量化的指标支持。比如:需求测试的覆盖率是否达到了100%,系统的缺陷密度是否满足发布的要求?转自项目管理者联盟
综上所述,软件项目的度量和监控对于开发组织具有重要的意义,归纳如下:blog.mypm.net
对于软件项目的状态、进度具有客观的评估和了解;PgMp.mypm.net
在和客户进行交流的过程中,就软件开发工作量达成一致;项目管理者联盟
对于软件质量具有科学合理的认识;项目管理培训
对于项目的成本和开发进度具有合理的认识。项目管理培训
3 需求驱动的项目度量和监控项目管理者联盟
国内现有的软件开发项目管理,主要是面向任务、计划的,所采用的度量和监控方式一般就是甘特图(这也和国内的开发现状基本相符,目前国内的开发团队一般都是赶任务,被要求按时交付产品)。但是这种单纯面向任务的管理方式,仅能展现项目的进度视图,不能提供项目其它维度的信息(需求、测试用例等)。所造成的结果就是,软件可以按时交付,但是埋藏了很多的Bug在里面,然后再去投入大量人力去改Bug。这事一种非常不科学的开发方式。项目管理者联盟
在汉星天公司所遵循的理论架构和开发的产品中,强调以需求为驱动的软件项目开发,因为实现需求是一个软件项目的开发目标,需求也是软件产品存在的原因和项目的起点,总结一句话:需求是软件项目的核心。从需求的角度进行项目的管理和度量,不仅可以轻松掌控项目进度,保证产品质量,还可以做到和项目利益相关者(Stakeholder)的有效沟通。所以在这里,我们也是紧紧围绕着软件需求来建立我们的度量体系。在汉星天公司的协同开发管理工具和软件生命周期管理(ALM)工具中,主要包含以下几方面的度量内容:training.mypm.net
需求的量化项目管理者联盟
以需求为视角的项目进度视图项目管理者联盟
以需求为视角的生产率视图项目经理圈子
面向需求的软件质量视图项目管理者联盟
4 度量的方式项目管理论坛
4.1 需求的量化项目管理者联盟
需求的量化不仅对软件外包行业中的发包方和接包方具有重要的意义,使得双方对于软件的规模有一个客观的估算。在一般的开发组织中,也可以用它来做为绩效考核和工作量估算的重要参考指标。传统的需求量化方法是代码行(LOC:Line of Code),该方法简单易用,但是客观约束不强。该方法是在事后进行估算,或是根据以往的经验值进行估算。往往会受到开发语言,开发人员安排等等的影响。项目管理者联盟
目前,国际上比较流行的软件规模度量方法是“功能点分析法(Function Point Analysis)”。该方法基于IFPUG(国际功能点用户组)提供的计算方法。这种计算方法通过计算对用户有用的功能,能够在项目需求阶段就完成规模估算,并且以量化的方法衡量软件规模,而且避免了SLOC方法受到实现技术、平台、人员素质影响的问题,具有较强的客观性,从而在世界范围内被越来越多的开发组织所接受。项目管理者联盟
该方法主要是从系统的规模和技术复杂度两个方面来衡量需求的规模。在衡量系统规模时,需要鉴定需求的五种不同功能类型的复杂度(五种功能类型分别是:内部逻辑文件-ILF、外部接口文件-EIF、外部查询-EQ、外部输入-EI、外部输出-EO),并与相应的权值相乘,从而得到“未调整功能点数(UFP:Unadjusted Function Points)”。之后,对整个软件系统的14个系统特征值(GSC)进行评估,将各个评估值相加,得到总的影响度(TDI)。之后,依照以下公式计算功能点:training.mypm.net
FPC = UFP × (0.65 + 0.01×TDI)项目经理圈子
公式1: 功能点计算公式项目经理博客
得到系统的功能点总数之后,也就相当于知道了系统的规模。再根据开发团队的工作效率(单位是:功能点/人月,该值为一经验值)就可以估算出软件项目开发需要的时间。参见公式2。club.mypm.net
|