敏捷开发绩效管理之七:敏捷开发生产率(下)(简化功能点分析,NESMA,两级简化)

敏捷开发绩效管理之七 敏捷开发生产率(下)(简化功能点分析,NESMA,两级简化) 阅读详情

这是敏捷开发绩效管理的第七篇。(之一,之二,之三,之四,之五,之六,之七)

续前文……

 

功能点估算


第一级简化

上次说到只用数据+操作就能准确计算规模,听起来够简单了,但其实还不够。

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

NESMA早就遇到过这个问题了,他们这么解决:通过统计发现每个数据差不多有7个操作,所以刚才咱们找出了3个数据,那么:

3个 × (数据7 + 操作4×7个操作) = 3 × 35 = 105,嘿,把角色和权限的操作问题也给解决了,不用猜了。

如果有几个数据要管理也不知道怎么办?那也太粗糙了吧,再去细化一下吧(别细化报表上有几个按钮,按了按钮后的逻辑是什么……那个和规模无关;只确认是不是数据)。

这样准吗?来自课后的10个数据表明,基于这种功能点作出的工作量估算与实际项目数据相比,最大误差在正负50%左右(本人手里没有详细数据所以没分析,应该取P50就是中值的误差比较好,可能在30%左右)。虽然听起来误差大得乍舌,但是在手里只有2张纸的时候,已经很准确了。某政府部门的要求是到400%以内都可以接受,因为他们在一个项目的招标中,4个供应商报价最大差别是12倍。

总结一下这一级别的简化方法就是:每个内部数据35点。另外如果是外部接口数据(比如要取LDAP),那么每个外部接口数据15点。

第一级简化适合项目合同期/项目初始计划的早期估算。

第二级简化

如果项目已经完成了,不用猜了,就可以数到底有几个操作,就不用猜每个数据有7个了。

不过,到软件界面上面数显的很不专业,如果我们的史诗故事是基于数据写的,用户故事是基于操作写的,数史诗故事+用户故事不就得了?比如图中这个:

图中就是刚才提到的用户/角色/权限的局部,一共3个数据(小课本是史诗故事),外加19个操作(蓝色的是用户故事,其中两个“新建+查看”分别代表两个,要×2),加起来是 3 × 7 + 19 * 4 = 21 + 76 = 97,已经很接近105个了……如果考虑到这个软件还没有编完,我们第一级简化还是蛮准的嘛(归功于NESMA的长期努力)。

完成这些功能需要 105 × 9 = 945 小时 = 118人天。如果我们有一个迭代,正好要完成这些功能并将其部署上线,那么就按118天计算吧(如果只编写出来不测试,大约是70%的工作量)。当然这不是说任何一个人都花相同的时间,而是基于现在业界收集上来的数据,团队人均花费这么多。个体的生产率差异可达5倍,但团队却都差不了太多。

另外单个故事的精度也很差,比如如果某人正好编过某功能,可能一小会就完成了。但是如果很多人编写很多故事,大数定理会起作用。

总结一下这级别的简化方法就是:每个内部文件按7点(每个外部接口按5点),每个操作按4点,加起来就是功能点。

这个级别的简化适合每个迭代确定工作量;还可以在项目完成后,总体计算开发效率作为绩效管理的依据(算是回到绩效管理了)。

 

遗留问题

正如前言,很多敏捷世界的新鲜事,在别的世界早就不是新鲜事了(当然别的世界也有他们的新鲜事),提出和解决下面这些问题的很多前辈都已经去世了。

本文只是指出有这么一种方法,并非这种方法的操作手册,这种方法还是需要培训的(有现成的)。

1. 就这么简单?

不是,简化的功能点大约需要一整天的培训,后续估算(推导工作量/工期/成本)还需要一整天。里边有很多细节。

复杂的功能点大约需要2~3天培训,另外一般5天左右的指导,如果要CFPS证书还有一个3天左右的考前指导。

2. “每个用户操作 = 一个用户故事?那修Bug怎么办?做小的改动怎么办?提升性能怎么办?”

可以记录成不同类型的故事,但是就别计算功能点了。图中三个绿色箭头,就是三个对原有故事的“增强”,其特点就是无法描述为完整的用户操作。

他们不计数,但是在统计时已经被平摊到计数的故事里边了。

我自己实践的时候发现,有些故事为了开发方便,极有可能包含两个操作(如上面的“角色首页”包含新建和查询两个操作),建议可以当作一个故事,怎么舒服怎么来不要太生硬,但是加个记号知道是2个操作,防止数错。

3. 每个数据都是/才能是史诗故事吗?

不一定,我有一个史诗故事叫做“性能优化”,它就不是,也不计算它。

4. 每个动词都是操作?

不一定。简单而言就是只有”主语是用户“的动词才是操作。”。

暂时还没有遇到有些Backlog Item不是用户操作但是很想当成用户故事的情况,如果有,可以在史诗故事/用户故事上设置一个字段,如果是才计数。

5. 非功能性需求怎么办?

最早提出来也最早被解决的问题,标准功能点的非功能性调整因子是1970左右(天啊……)提出的有点老了多数都不适用了;个人最喜欢的是韩国标准中的调整因子,大致可以理解为普通的乘1,科学计算之类的乘1.3左右,运营计费乘1.5左右,生死攸关的乘2左右。

非功能性调整因子一般包括规模因子、领域因子(韩国标准包括8大类约50小类)、质量因子(韩国标准包括4个质量因子,每个三个等级)、开发语言因子这几个。有时候不会觉得他们考虑不周,反而是多虑了……

6. 准吗?

不准。因为这种方法虽然很准,但是那个”9小时/功能点”是业界数据,最好用自己的数据重新回归一下。

本人正在回归自己的,可惜只有一个项目在做,所以不得不每个迭代都当作项目来看待。一般稍微大点的企业有一年时间积累20个(子)项目数据就可以了。

7. 有前途吗?

有。芬兰,澳大利亚,韩国,日本……的政府采购均采用这种方法计算价格。中国的国标预计在明年出台,即政府采购项目均将使用这种方法报价(或指导报价)。

8. 有的项目好坏可不是光看开发的功能多少,还要看创意和……

是的,用这种方法度量绩效的目的,是为了提升开发绩效,加快开发速度,而不是计算工资奖金或评价项目好坏。在之四里边已经提到,必须在赚来钱的时候才能发奖金,它是由外部目标驱动的。

在产品开发中,往往收入与功能多少的关系不很直接甚至完全没有关系,但在一些直接由功能点报价的政府项目、外包项目里边,这个可以直接作为外部目标考核。


 

本人正在参加优快云博客之星评选,如果读完并喜欢这篇文章,欢迎投票: http://vote.blog.youkuaiyun.com/item/blogstar/cheny_com



点击下载免费的敏捷开发教材:《火星人敏捷开发手册》



NESMA三种场景的功能点估算方法详解及分析 例如,某项目识别出8个ILF、4个EIF、15个EI、10个EO和12个EQ,可快速计算得266功能点(7×8+5×4+4×15+5×10+4×12)。例如,某高复杂度ILF(RET≥6,DET≥51)权重为15,而低复杂度EQ(FTR=0-1,DET=1-5)权重为3。: 此方法通过简化数据功能与事务功能的映射关系,牺牲精度换取效率,适合需求模糊的项目初期。NESMA方法定义了三种功能点估算场景,分别适用于软件项目不同阶段的需求完善程度,通过逐步细化的方式实现规模估算的灵活性和精准性。 阅读详情

相关推荐

使用功能点法管理敏捷活动

在已建立的敏捷开发的团队中引入标准功能点法应谨慎处理。就团队而言,可以将故事点用于评估下一次迭代的工作量,但是故事点的“规模”并不适合个体团队以外的绩效评价和任务评估,也就是说,不适合管理“大规模敏捷”。在评估系统、发布或迭代级別的工作量时,首先需要在该级別上评估要交付的软件产品规模,并结合同一级别的以前交付的相似软件的“实际”生产率(而不是“速度”)数据。为了更准确的管理开发任务,一个组织需要一种客观的、标准化的方法进行评估和度量,这种方法对所有类型项目都应该是有效的并且独立于开发技术和开发人员的效率。

csbmk_com中基数联的博客 847

NESMA功能点估算法(一)

NESMA方法是1989年由荷兰软件度量协会提出的,最新版本为2018年发布的2.3版本。该版本中,使用高级别功能点分析(High Level Function Point Analysis)代替估算功能点计数(Estimated Function Point Count);使用外部逻辑文件(External Logic File,ELF)代替外部接口文件(External Interface File,EIF)。NESMA估算法由IFPUG而来。

anderolujun的专栏 1万+

(高清版)SJT 11619-2016 软件工程 NESMA 功能规模测量方法版本2.1 使用功能点分析的定义和统计准则.pdf

功能点规模测量方法,适用于所有类型的软件开发。

软件工程造价实战:从入门到实战——功能点分析、成本估算与项目管理

 依据NESMA和国家标准《软件工程 软件开发成本度量规范》研发,系统阐述:1. 如何基于行业成本估算模型对项目的功能点规模、工作量、成本进行合理的估算;2. 所学的成本估算方法可用于信息化规划、预算立项、招投标、项目计划等各个阶段,在项目早期合理制订预算,科学地估算成本和预测利润,为项目的成功实施奠定基础。3. 方法易学易用,0基础培训后可直接用于实际工作。4.软件造价得到业界广泛认可。截至2024年,2万余人学习了造价知识。

EWF写保护功能详解:从安装到实战操作指南

本文详细介绍了EWF写保护功能的安装与实战操作指南。EWF(Enhanced Write Filter)通过重定向写入操作保护硬盘分区,特别适合需要长期稳定运行的系统场景。文章涵盖从安装准备、图形界面操作到命令行高级管理的全流程,并提供了常见问题的解决方案,帮助用户轻松掌握这一实用工具。

weixin_28710999的博客 446

UWB灵犀遥控器方案介绍

UWB灵犀指向遥控器的技术原理和方案介绍

xiongdauwb的博客 3898

Nesma软件功能点估算

Nesma功能点分析(FPA)是一种测量信息系统功能大小的方法。FPA通过查看与业务中用户相关的(功能性的)事务和(逻辑的)数据文件来测量功能大小。衡量单位是“功能点”;信息系统的功能大小由一定数量的功能点表示。功能点是衡量信息系统功能大小的良好方法;衡量单位“功能点”可以以各种方式利用。FPA通常用于预算系统开发项目。信息系统的开发成本与其大小有关:系统越大,开发成本就越高。根据过去项目的经验,组织知道实现一个功能点需要多少小时(平均值):生产率。

wywbli的专栏 5354

【迁移学习综述】

迁移学习的目标是将某个领域或任务上学习到的知识应用到不同的但相关的领域或问题中。迁移学习的研究来源于一个观测:人类可以将以前的学到的知识应用于解决新的问题,更快的解决问题或取得更好的效果。迁移学习被赋予这样一个任务:从以前的任务当中去学习知识(knowledge)或经验,并应用于新的任务当中。换句话说,迁移学习目的是从一个或多个源任务(source tasks)中抽取知识、经验,然后应用于一个目标领域(target domain)当中去。

afadgas的博客 4319

敏捷开发绩效管理之七:敏捷开发生产率(下)(简化功能点分析,NESMA,两级简化)...

这是敏捷开发绩效管理的第七篇。(之一,之二,之三,之四,之五,之六,之七) 续前文……功能点估算第一级简化上次说到只用数据+操作就能准确计算规模,听起来够简单了,但其实还不够。谁能在刚拿出2页纸的需求文档时(假设昨天老板在酒桌上刚从客户那记下来的),就猜出有多少个操作?而且还不遗漏?增删改查好猜,“加入角色”就不好猜了。NESMA早就遇到过这个问题了,他们这么解决:通过统计发现每个数据...

weixin_30736301的博客 219

单端反激电源的RCD钳位电路吸收设计

反激电源尖峰电压和特点: 反激开关电源主要适用于中小功率<100W的电源设计中,特点是电路简单、成本低、可靠性高、宽稳压范围、转换效率PF高。但是由于本身变压器的漏感和其他参数的影响,变压器在高速开关关断瞬间会产生很大的尖峰电压,截止时产生的尖峰电压是由电路中的储能元件释放的电流引起的突变,过高的尖峰电压会影响开关管的正常工作,需要对尖峰电压采取措施抑制尖峰电压。 如上图所示,尖峰电压的钳位抑制方式有很多种。 TVS成本偏高,属于硬件导通,元件的可靠性较差,在低电压工作效果不理想。 RCD回路吸收

qq_31687191的博客 8488

时序基础模型Timer-S1:十亿参数如何革新时间序列预测

时间序列预测是数据分析与机器学习中的核心任务,旨在基于历史数据预测未来趋势。其原理在于捕捉数据中的趋势、周期性和季节性等时序依赖关系。这项技术的价值在于赋能业务决策,广泛应用于金融风控、能源管理、物联网监控和供应链优化等关键场景。传统方法依赖针对特定任务的专用模型,面临泛化能力弱和开发成本高的挑战。本文聚焦的时序基础模型,通过在海量跨领域数据上进行预训练,学习时序通用模式,并结合十亿级参数带来的强大容量,实现了性能的显著突破。这种范式转变,使得模型能够像“全科医生”一样,通过少量数据微调即可快速适应新任务,

weixin_29164843的博客 269

敏捷开发绩效管理之六:敏捷开发生产率(中)(功能点分析,FPA,简化的功能点)...

这是敏捷开发绩效管理的第六篇。(之一,之二,之三,之四,之五,之六,之七) 直接估天数或用故事点估天数,都很“程序员”。如果在项目的甚早期,面临与客户相关的报价问题,或高层领导要统计公司绩效并想进行项目乃至行业间的比较,这两种方法都很难使用。敏捷开发内部之所以没有进化出来能做项目间比较、行业间比较、用于早期报价的估算方法,是因为敏捷的发明者和后来的实践者多数都不管这些事情。而这三样事情,...

diaogan4202的博客 504

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南

在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。

PeterPan的博客 586

敏捷开发绩效管理之六:敏捷开发生产率(中)(功能点分析,FPA,简化的功能点)

这是敏捷开发绩效管理的第六篇。(之一,之二,之三,之四,之五,之六,之七) 直接估天数或用故事点估天数,都很“程序员”。如果在项目的甚早期,面临与客户相关的报价问题,或高层领导要统计公司绩效并想进行项目乃至行业间的比较,这两种方法都很难使用。敏捷开发内部之所以没有进化出来能做项目间比较、行业间比较、用于早期报价的估算方法,是因为敏捷的发明者和后来的实践者多数都不管这些事情。而这三样事情,比天数、故

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 1万+

笔试题-2023-乐鑫-数字IC设计【纯净题目版】

笔试题-2023-乐鑫-数字IC设计【纯净题目版】

w0shishabi的博客 1777

Qt软件开发: 开发MQTT客户端软件,模拟硬件登录各大主流MQTT平台完成通信

此软件是使用QT编写MQTT客户端(根据mqtt官方文档3.1.1,自己实现过程代码,没有使用其他库,稳定,方便移植),模拟硬件登录各大主流的MQTT物联网服务器,完成主题订阅、发布等操作,实现数据通信交互。 已经测试OneNET、阿里云IOT、华为云IOT、百度IOT、电信IOT、原子云IOT等等常用的物联网云平台,都可以正常实现数据通信,只要云平台支持标准MQTT协议都可以使用此软件进行登录测试。 特别是大家没有硬件,想测试与MQTT物联网云服务器通信的,此软件是非常的方便。使用简单,比官方的软件操作

1万+

本博客中关于功能点分析FPA的文章索引

本博客中有不少篇幅是关于功能点分析的(也称功能点度量),不过都是分散在各自的系列中,因整个开发过程的需要而存在。最近不少人问到哪里有功能点度量的内容,所以做一个索引,来总体说一下本博客的相关内容。基本介绍类文章敏捷开发绩效管理之五:敏捷开发生产率(上)(故事点估算) 及同系列的之六、之七(在文章的第一行有链接).之五主要提到故事点(一种尝试使用功能、历史数据进行绝对规模度量的敏捷方法)及其局限性,

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 8949

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 敏捷开发绩效管理之六:敏捷开发生产率(中)(功能点分析,FPA,简化的功能点)
下一篇: Marty Cagan:怎样寻找出色的产品经理
火星人陈勇
博客等级 码龄18年 4899粉丝 381原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值