博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
敏捷开发绩效管理之六:敏捷开发生产率(中)(功能点分析,FPA,简化的功能点)...
阅读量:4943 次
发布时间:2019-06-11

本文共 1712 字,大约阅读时间需要 5 分钟。

这是敏捷开发绩效管理的第六篇。(,,,,,,)

直接估天数或用故事点估天数,都很“程序员”。如果在项目的甚早期,面临与客户相关的报价问题,或高层领导要统计公司绩效并想进行项目乃至行业间的比较,这两种方法都很难使用。

敏捷开发内部之所以没有进化出来能做项目间比较、行业间比较、用于早期报价的估算方法,是因为敏捷的发明者和后来的实践者多数都不管这些事情。而这三样事情,比天数、故事点,在老板眼中更接近生产率绩效。

这时候就需要功能点估算。

功能点估算


由来

功能点估算是另外一个世界的事情。每100个懂敏捷的人中,可能才有1个懂CMMI;而懂CMMI的人中,可能才有100个懂功能点,而100个懂功能点的人中,也只有1个人懂敏捷……这就是三个世界,但每个世界都和敏捷世界一样热闹,一样有可操作的方法,只是互相不通信而已——结果是,每个世界都不知道别人已经早就解决了自己冥思苦想的问题

用功能点度量软件的目的,是在早期获知软件开发的工作量,进而推算开发成本。 由于这个目的,使得它实际上是与开发工作量的相关性也最强(远远超过Delphi/代码行/故事点/用例点……多个国家的政府使用此估算采购软件,中国大约2年就后采用),而且居然和用户故事还有很好的对应关系。

功能点本身很复杂,大家可以在网上查到一些资料,这里不多说了。标准功能点分析尤其复杂,有一次有一个欧美发包商来到中国,问“我们现在已经有100多页文档,谁看过之后知道这个项目要多少钱才能开发出来,以及为什么,我们就把这个项目给他。”笔者介入了此事,也知道标准功能点能解决这个问题,但是却不能在给定的时间内完成(只有2天的时间解决此问题,而用功能点至少需要10~15天)——国外ISBSG也转发度量Guru Capers Jones的邮件称“只有极少数的项目采用了功能点估算,因为成本太高”。这件事情促使笔者尝试找简单的功能点估计方法,直到后来在另外一个世界发现有人早就解决了大约10年了……那就是NESMA的简化功能点,如果不嫌麻烦请参阅(点击左边 Advanced 下面的 Early&Fast FPA)。

不过建议直接看下面。下面的概念作了很大的调整以便于用有限的文字理解,如果有懂FPA的读者看出破绽不要奇怪(本人是正规做FPA培训和研究的)。

什么是简化的功能点估算

在我们的开发工作中一共有两类东西要开发,一种是数据,一种是操作。

所谓数据,就是比如要编写一个CRM,其中有“用户、角色、权限”这三种东西,就是要管理的数据,这里权且记下用户有“3个数据”要管理。

所谓操作,就是对用户,应该有增、删、改、查、加入角色……这些称之为操作,这里权且记下对用户,用户会做“5个操作”。

倘若角色和权限没有操作(虽然这是不可能的),那么在NESMA简化方法中由于每个数据是7点,而每个操作是4点左右,那么就可以算出来一共有:

3 × 7 + 5 × 4 = 21 + 20 = 41点。

ISBSG/IFPUG包括中国的CSBSG等都有不同行业/不同类型软件的生产率统计,如果你在中国,用C#或Java开发一个类似OA/CRM这样的业务流转软件,那么生产率大约是9小时/功能点(来自于10多个学员的课后数据),也就是上面那个小软件,要用9×41 = 369小时大约是46人天。

“什么?这点内容我不到一星期就能做完。”是,也不是。这一时间的包含了需求分析/设计/编码/测试/集成/上线部署期间的所有时间,还包括开会讨论的时间,和别的功能联调的时间,培训的时间,修改万恶的Bug的时间,提升性能的时间,改善易用性的时间,上网找图标的时间,上班看博客的时间——总之一个真实项目中可能发生的时间全都平摊在这里。

听起来够简单了,但其实还不够。

谁能拿出2页纸的需求文档(假设昨天老板在酒桌上刚从客户那记下来的),就猜出有多少个操作?而且还不遗漏?增删改查好猜,“加入角色”就不好猜了。

怎么办?请看下文。

点击下载免费的敏捷开发教材:《》

转载于:https://www.cnblogs.com/JPAORM/archive/2011/08/26/2510453.html

你可能感兴趣的文章
Asp.Net Core 中利用QuartzHostedService 实现 Quartz 注入依赖 (DI)
查看>>
细说sqlserver索引及SQL性能优化原则
查看>>
一般数据库增量数据处理和数据仓库增量数据处理的几种策略
查看>>
centos6.5适用的国内yum源:网易、搜狐
查看>>
视频直播技术(三):低延时直播经验总结
查看>>
Application failed to start because it could not find or load the QT platform plugin “windows”
查看>>
python合并多表或两表数据
查看>>
第一个python作业题目以及代码
查看>>
Windows Azure 社区新闻综述(#71 版)
查看>>
Windows XP 的最高版本 .net framework 安装
查看>>
本机不装Oracle,使用plsql连接远程Oracle的方法
查看>>
先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。...
查看>>
mysql中间件研究(Atlas,cobar,TDDL)
查看>>
jpa SQL Error: 17006, SQLState: null
查看>>
新的一年来了,先看一看自己的编程能力吧!
查看>>
什么是MVC
查看>>
新建web project不自动生成web.xml解决方案
查看>>
如何快速访问MSDN某一个类或方法的帮助文档
查看>>
SqlServer 删除重复记录
查看>>
win10下sublime text3 使用view in browser的快捷鍵添加方式
查看>>