老谷"项目管理MSN群"暂定每周二中午12:30,进行项目管理专题讨论
项目管理MSN群:[email protected],交流纪要参考http://www.pmbar.net/thread.php?fid=36。
主讲:敏捷 专家陈勇老师
陈勇-咨询师-北京 说:
估算肯定大家都做过
但是估算有个问题:基本上是走形式。为什么呢
因为项目经理和项目组开始很关心,但是当我们把估算结果告诉老板是12个月时
老板说:No,必须6个月。
可想而知,下次大家再也不用新估算了,反正你说了算,我估算有什么用。
剩下一个问题:那为什么老板会不尊重我们的估算呢?
既然不尊重,为什么老板又经常来找我们要工期要工作量估算呢?
说到点子上,就是我们和老板没有共同语言。FP就是功能点,是设计来当作这个共同语言的。
当然我们下面会看到,FP有很大的局限。
FP有人用过学过吗?
谷雨霖【pharos】-CTO-BJ 说:
学过,没具体实际用
要培养几个固定专家,老板比较考虑成本
陈勇-咨询师-北京 说:
太好了,这个就是当前FP的状态。
本来大家认为FP是基于功能的,老板甚至客户都能看懂
只要基于FP,万事大吉。结果是……
FP似乎要求太高了,很难学,也很难用
用起来还很慢
比如,要知道一个内部文件,要理解边界,要弄清楚这个算不算一个独立的文件,要知道有多少列,有几种列的组合方式……
当我们能知道这一切的时候,多半项目已经走到概要设计附近了
这时候,无论老板还是项目经理,都对估算已经不感兴趣了,大家现在感兴趣的是赶紧干活。
合同都签署并且执行到一半了……
现在,我们就希望有一种方法,在更短的时间内,在更早的时间点,以更容易的方法让大家得到估算
一天上班早上,老板摇摇晃晃走进办公室,手里拿着沾着菜汤的几张A4纸
他问你这上面说的东西咱们能不能做,用多久做出来
上面写着什么呢?
一共5页纸,一个大致的产品要求是做一个会议管理系统
要有会议室,会议主题,系列会议,会议参与人,会议通知,会议签到,会议结论……
会议来源,会议附件,会议统计,会议……
现在,我们能不能告诉老板一个数字,说出我们的估算呢?
有企业 大致能在这个时候给出什么估算吗?拍脑袋的除外
估计现在没有,过一年就有了,呵呵
一定有人说这也太早了,需求还不清楚,就要估算。但是这个时候是老板最想要知道估算的时候
如果这个时候能给出估算,就能抓住老板的心
下面提到的方法,就基于刚才这几张纸
学过功能点估算 的朋友请回答:如果让你简化功能点,想保留的是什么?(不说想去掉的了)
想去掉的太多了,我个人要去掉FTR,DET,RET
还有调整因子
想保留的呢?
SPR(美国的一个很有影响力的咨询公司)的一群人决定:只留下7个东西:
2个文件ILF/EIF,3个业务EI/EO/EQ,2个调整因子:产品的,开发的
所有ILF等,取中间值,不在判断复杂程度了
这样工作量就下来了很多
荷兰的一群人决定(世界第二大的功能点组织NESMA):只留下ILF和EIF,连EI什么也不要了,调整因子也扔了
Fp=ILF×35+EIF×15荷兰公式
我决定: (当年的)为什么不留下EI/EO/EQ而扔掉ILF/EIF呢?
因为业务比文件好理解一些。
后来实际操作了几个早期项目估算后发现,EI/EO/EQ在早期经常是说不全的,而ILF/EIF好一点
忘了一件事情,大家知道ILF/EIF什么的吗?
谷雨霖【pharos】-CTO-BJ 说:
FP功能点估算法将功能点分为以下5类:
1. ILF:Internal Logical File内部逻辑文件
2. EIF: External Interface File外部接口文件
3. EI: External Input外部输入
4. EO: External Output外部输出
5. EQ: External Inquiry外部查询
陈勇-咨询师-北京 说:
通俗说,ILF/EIF分别是内部数据和外部数据,EI/EO/EQ是操作
谷雨霖【pharos】-CTO-BJ 说:
其中ILF和EIF属于数据类型的功能点,EI、EO、EQ属于人机交互类型的功能点。
陈勇-咨询师-北京 说:
比如客户说:要对会议室进行登记和管理,并能与会议关联。
登记,管理,关联……并不是很完整的对会议室的操作
要统计有多少会议室吗?要查询哪个会议室空着吗?要删除会议室吗?客户往往说不清楚。
但客户在早期至少可以告诉我们:他要对会议室进行管理。所以,对ILF(会议室)的识别是准确的,但对其操作的识别是模糊的,在初期就是这样。
所以荷兰人对了,我错了(废话,呵呵)
陈勇-咨询师-北京 说:
好了,结论是:在初期那几张纸上,我们几乎能识别出所有的数据(内部和外部的),但说不清楚对这些数据的操作,特别是操作的全集。因此,早期功能点应该给予数据进行,先别管操作
荷兰人有理:ILF×35+EIF×15,记住这个
谷雨霖【pharos】-CTO-BJ 说:
补充说明:
以外贸订单系统项目为例:
• 录入订单、修改订单、删除订单是EI;
• 查询订单是EO
• 统计订单是EQ
• 汇率查询转换系统为EIF
• 订单和客户是ILF
陈勇-咨询师-北京 说:
剩下的是:刚开始你说了,要识别一个ILF要看边界……什么的,很多条件,怎么刚才你凭空就说会议室是一个ILF呢?分析了没有?
ILF也就是内部逻辑文件(说内部数据好理解一些),不是一个我们数据库 中的物理表,而是逻辑上存在的东西
比如会议室,用多少张表存储,都是一个会议室,客户是不关心内部结构的。
但是“邮政编码”就不一样了
邮政编码多半一次写到软件 里边(有人甚至直接写道代码 里边),再也不动了,这些都不算是文件。
真正的文件是(快速识别):如果一个数据对客户有价值,客户会对他进行增删改查,就是一个ILF
或许客户会用两种方式查(统计报告/检索/搜索有无空闲等),或许三种,都先不管了,算一个文件
没有人会对邮政编码进行增删改查(除非邮局的软件),所以邮政编码就不是。
EIF类似,他是我们系统需要从外部调用的数据,别的系统的数据
(快速识别)如果对一个外部数据进行读写各一次,就可以认为是EIF
两种读,两种写,两读一写,两写一读也凑合,都算
现在总结我们的快速方法
ILF:如果一个数据对客户有价值,客户会对他进行增删改查,就是一个ILF
EIF:统需要从外部调用的数据,差不多进行一次读写就可以
FP=ILF×35 + EIF×15
规模估算就出来了
回到开始的例子
一天上班早上,老板摇摇晃晃走进办公室,手里拿着沾着菜汤的几张A4纸
他问你这上面说的东西咱们能不能做,用多久做出来
上面写着什么呢
一共5页纸,一个大致的产品要求是做一个会议管理系统
要有会议室,会议主题,系列会议,会议参与人,会议通知,会议签到,会议结论……
会议来源,会议附件,会议统计,会议……
现在,我们能不能告诉老板一个数字,说出我们的估算呢?
是不是凑合能说出来点什么了?
先不说EIF,似乎会议室,会议主题,系列会议,会议参与人,会议通知,会议记录,至少这些是ILF
陈勇-咨询师-北京 说:
有些比如会议签到什么的,之后增加不会删除,似乎要查询,可能要统计,也算一个
附件嘛,应该只会增加,不算。
会议来源,说不清楚,要对它做什么吗?还有疑问。
我们拿着这几张纸给和老板昨天一起喝酒的客户打了个电话,终于确认有10个ILF和2个EIF
所以FP=10×35+2×15=380FP
老板肯定会问:这什么意思?
简单说,一个人一天能生产0.5~2个FP,所以这是190~760人天的活
8.5~34个人月的活
如果能考虑更多背景,比如这是一个MISS系统,用Java编写……我们能查到一些生产率数据(等等说在哪查)
就更精确了。
ISBSG已经为我们搜集了4000个项目的数据了,每个项目有多达200多个字段可以筛选
全部基于FP的,当然人家基于的是高精度的FP,我们就不管了,先用我们的近似FP
谷雨霖【pharos】-CTO-BJ 说:
ISBSG是国际基准比对组织
陈勇-咨询师-北京 说:
ISBSG上有个报告是政府项目的生产率报告,大家可以给我写邮件来拿一下[email protected]
他们其实是“卖数据”的,一套数据几千块钱好像也不贵,会用的话,一个项目就赚回来好几个了
规模估算方法介绍到这里,剩下的,有了生产率,就有了工作量
有了工作量,就有了成本
只有工期是个未知数,当然不能工作量/人数
在很早的时候就有工作量-工期方法了,比如COCOMOII
COCOMOII是数学方法,只要把工作量带入函数,就能得到工期,大家可以上网查。
可惜,国外的公式中的常数不适合我们,一是太老,一是太怪(国外喜欢用COBOL)
还好,中国 有自己的数据,就是CSBSG
谷雨霖【pharos】-CTO-BJ 说:
非常精简的FPA功能点介绍
大家对FPA是否有些感性认知了
陈勇-咨询师-北京 说:
我现在正在参与的一个项目,目的就是建立完整的上述方法。因为虽然我们刚才似乎介绍完了
但是其实还是有问题的:FP生产率到底是多少?你说的COCOMOII公式我能直接用网上的吗?不同语言开发速度一样吗?等等
我们正在编写一个潜在的行业标准
谷雨霖【pharos】-CTO-BJ 说:
功能点是规模估算的一股新势力,与之对抗的就是代码行估计和拍脑袋估计,目前使用的频度在提升。
陈勇-咨询师-北京 说:
这个标准将规范这一切,给出可操作的方法,甚至一个Excel工具,你只要“傻傻地”在里边把该填写的东西填写好就可以了
其实,我们的灵感来自于紧邻韩国,他们政府招标全部使用他们的一套方法,非常简单快速
谷雨霖【pharos】-CTO-BJ 说:
大家除了拍脑袋估计外,FPA提供了准科学估计方法,可以在项目中尝试
国家建立了这样的标准很重要
陈勇-咨询师-北京 说:
可惜,他们有一些“奇怪的法律”,能直接查到每个功能点的标准价格(有点像物价局),但我们没有,所以我们要走功能点-规模-单价-价格这条路,而人家直接-功能点-价格
好了这就是近期工作汇报
这个标准的技术方案我已经快写好了,可惜必须等到工作组公开发布才能给大家
陈勇-咨询师-北京 说:
如果大家在做CMMI,需要做估算
我觉的,无论是否用这个完整的标准,但真的可以在早期使用快速FP方法来获取项目规模
Q1:
chinamath(海茶)-Sr.SE-北京 说:
正在按陈老师的方法算FP,但是数来数去只有9个ILF,不知道下面的理解是否正确:
ILF(9个): 会议室,会议主题,系列会议,会议参与人,会议通知,会议记录,会议签到,会议结论,会议统计
EIF(2个): 会议附件,会议来源
陈勇-咨询师-北京 说:
呵呵没事上面例子我瞎写的,我也没数有几个,蒙的没想到和你的如此接近。
谷雨霖【pharos】-CTO-BJ 说:
大家很认真的,陈老师
陈勇-咨询师-北京 说:
对了,客户的几页纸因为是乱写的,虽然包含有很多信息,但必须和客户沟通。
chinamath(海茶)-Sr.SE-北京 说:
这样,我以为是完全真实的案例。
陈勇-咨询师-北京 说:
未来我们的技术方法中,每个招标项目必须有一个附件,里边写着识别出了多少个ILF/EIF,双方可以讨论判断到底哪个是哪个不是
Q2:
susan-pm-湖北 说:
我查了CSBSG,按380FP来估算,工作量为6.47 工期为1.12,不太明白为什么
单位为人/月
陈勇-咨询师-北京 说:
CSBSG?里边全是LOC数据把?
susan-pm-湖北 说:
我选的是FP
susan-pm-湖北 说:
为什么工期和工作量差那么大呢,不太明白这两者什么关系?
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
内幕,这个组的工作暂停中
陈勇-咨询师-北京 说:
工作量差别不大,如果你选了极端的状态,会得到比我说的还小的 情况
susan-pm-湖北 说:
可能我没说明白,工作量是6个月,工期是1个月,怎么算出来的
陈勇-咨询师-北京 说:
因为在统计学里边大/小不是上下限,而是50%的项目处于两者之间,外面的还有一半呢
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
建议FP暂不要对照CSBSG
陈勇-咨询师-北京 说:
不过我不觉得会有人在这个项目上投入10个人啊,工作量6个月最好是3个人干2个半月
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
那个系统还不完善,不必较真
陈勇-咨询师-北京 说:
对,FP别用CSBSG
susan-pm-湖北 说:
那怎么换算到工作量呢
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
有了工作量380fp,1人天能开发1个fp,你投10个人
陈勇-咨询师-北京 说:
我们的确打算用CSBSG数据,但是只用工作量-工期关系公式,而且只用政府项目的。CSBSG里边有对日外包项目,那个数据……
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
就算出进度了
陈勇-咨询师-北京 说:
有一个标准生产率
陈勇-咨询师-北京 说:
4.2 9.7 17.3,ISBSG政府项目的P25 50 75
9.7小时/FP
大约就是1天一个FP
陈勇-咨询师-北京 说:
好了,整体就是如此
Q3:
lmeteorcyy-pm-sh 说:
学了很多!之前没用过这种方法,一直都是细分功能点后凭经验去估计。。。刚才还一直在考虑那个会议系统怎么花了这么多工作量
陈勇-咨询师-北京 说:
今天先掌握这个思路啊,就是:简单就是胜利!
陈勇-咨询师-北京 说:
奇特的是一周前我刚刚收到ISBSG的一个邮件,说SPR的Capers Jones要改造FP
CJ说,现在FP估算速度是每天500FP,对于100万级产品代价太高
他要把速度提升到每天10000FP
我把去年我做的一个项目试点数据回归了一下,大概是6000每天,差不多。
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
不懂,每天10000fp
陈勇-咨询师-北京 说:
当然他还提到,要把一些难以计算的工作比如“架构改造”也用FP数出来。
就是一个人一天能数1W个FP
Q4:
北溟鱼逍遥游 说:
可以几个人分块一起估算吗,就是估算小组的概念
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
当然
陈勇-咨询师-北京 说:
每人年人们能完成250个FP,所以1W就是40人年的项目
可以分块
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
FP师也是一个职业规划方向
陈勇-咨询师-北京 说:
40人年的项目一天估算完成,精度达到20%~50%
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
荷兰软件行业在这方面的工作更实际些
陈勇-咨询师-北京 说:
原来的复杂方法是要20天数完,精度10%。关键是,他要求输入是非常详细的需求,因此这个40人年的项目可能进行了大半年了,那个人才能开展计数工作。
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
简单是硬通货
陈勇-咨询师-北京 说:
更早,更快,更好学,这个是特点。
未来会推出培训
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
不过有个很特别的现象
国内人用功能点的越来越多,
Q5:
北溟鱼逍遥游 说:
可以先概算,然后再求精吗
陈勇-咨询师-北京 说:
1天项目级估算:方法1小时,实际操作2小时,实际项目+工具使用4小时
谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 说:
但大多都自己积累原则,用IFPUG等标准方法的很少
陈勇-咨询师-北京 说:
可以,不过一般老板就开始要估算,后来就不要了,因为他希望签订合同之前得到估算值。
北溟鱼逍遥游 说:
是的
陈勇-咨询师-北京 说:
1天企业级估算:历史数据回归,基准比对,企业数据管理
就2天,全部学完。
原来的FP到出了 FP规模就结束了,但我们的培训将到达工作量/价格/工期
Q6:
susan-pm-湖北 说:
估算速度怎么提高啊,还是要硬数啊
陈勇-咨询师-北京 说:
另外 还会教会大家如何在发生变化的时候找客户追加要钱,呵呵
没有啊,刚才我们会议管理那个项目多快啊,因为只数ILF/EIF了。
FPA要数很多东西的
以前项目变更客户之所以不给钱,是因为:你怎么证明工作量增加不是因为你们笨或者懒?
现在好了,我们能告诉他FP的真实变化,而且行业是有标准的,你看……
老板很喜欢这个,甲方也不太在意。
甲方告诉我们:他们其实不太缺钱,但他们不愿意企业一延期就来追加,又不能证明延期的原因是什么。
谷雨霖【pharos】-CTO-BJ 说:
好了,时间差不多了。非常感谢陈老师的FP入门级讲解。学以致用,我们在实际工作中慢慢尝试用,会影响到周围人的。
今天的讲解有些深入,需要些数学计算,PM要掌握的