- 浏览: 2876694 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
用2的幂进行估算
开始的时候,我会将故事的规模估算为1点、2点、3点、4点,或是小、中、大、特大。人们总是觉得:中等大小的故事,其工作量是小型故事的两倍;而 大型故事是中等大小故事的两倍(诸如此类)。但到后来,发现这样的想法总是很难跟实际规划吻合起来。后来有人推荐我使用2的幂来估算。这一下,业务人员就 能理解我们的表达方式了。他们会知道8点的故事要远超过1点的故事。我认为1点、2点、4点、8点这样的规模估算要更加合适。故事越大,其中包含的未知因 素和风险也就越多。用2的幂进行估算,可以让人们对于大型故事所关联的风险更加注意。
使用4个数值
我参与过一个项目,他们用1、2、4、8作为估算值。前两次估算会议结束后,不到5%的故事只有1点,大约30%的故事是2点。项目经理决定去掉 “1”这个估算值,因为他觉得这样做太容易了。此后的每次估算会议中,有趣的事情发生了:突然只有5%的故事变成了2点,相当多的故事变成了4点。开发人 员改变他们的估算规模,我认为这不是有意的,只是开发人员总是会想得多一些。没几个开发人员愿意确定表明:用户故事非常简单,估算允许的最小数值就是它的 工作量。在多次项目过程中见过类似行为后,我选择估算的最小数值为4点。不过我觉得用4点作为最大估算数值也不错。无论如何,这只不过就是估算而已。如果 放太多精力在估算的准确度上,到后来就得负责说明为什么没能按照估算完成任务。估算的目的是要对项目规模和工作量有一个大致的概念,而不是要得到一个需要 严格遵循的工作计划。
不能取平均数,不能使用不在估算取值范围中的数字
使用数字4,可以让你得到一个粗略的估算,而不必在精确程度上花费太多时间。有的故事感觉比2点大一点,但是又比4点小一点。这样的故事不能估算为 3点。也没有理由使用3点进行估算。类似的故事隐含的风险或是未知因素让人觉得它不是2点,因此,它很有可能是一个4点的故事。如果使用平均数、或是不在 估算取值范围中的数字,有可能给团队成员或是项目干系人造成暂时的(也是不必要的)困惑。同时,从项目整体的角度来看,偶尔不太确定的估算也不会影响大 局。要保持简单,坚持使用取值范围中的数字。
独立投票
受他人影响是人的本性。如果一个技术leader说一个故事大小是两点,很可能其他团队成员都会随声附和。因此,在我负责的估算过程中,我会让每个 团队成员独立做出自己的选择。要想达到这样的目的,可以为每个成员发一张纸,让他们在上面写上自己的估算,等到每个人都写好之后,大家可以一起展示各自的 估算。另外一种方式,也是我喜欢的方式,是用“石头-剪子-布”(译注:英文名rock-paper-scissors,简称RPS)进行估算。在估算会 议上,我们会一直讨论某个故事,直到大家都准备好估算为止,然后我们会一起“抛出”自己的估算,就像是同时伸手出石头、剪子、布一样。我所说的“抛出估算 ”就是:伸出一个手指头表示1点,两个手指头表示2点,四个手指头就是4点。要是表示8点,那就得双手并用了。
选取最大的估算值
即使反复提醒过了,开发人员们还是很难估算,因为他们仍会受到团队的影响。如果某个开发人员认为可以在一天内做完某个故事,他会伸出一个手指头。然 而,这个故事也许不由该开发人员负责,另外的团队成员会接手,可是他可能会认为这个故事应该是2点甚至是4点。我总是选择团队成员给出的最大估算数值。也 许有人认为这是小题大做,可实际上每个团队成员对于风险的认知不同,也许给出最大估算的成员想到的风险要比其他人更完备。选择最大的估算值还有其他好处。 如果必须要同意一个较低的估算,那么做出最大估算的团队成员就得说明原因。对于团队中不那么资深的成员来说,这样的讨论可能让他觉得窘迫。对开发语言和工 具相关经验的匮乏,他们可能不知道怎么样快速完成某项工作。他们的担心是由自己的技能水平决定的。如果因为不想讨论为什么估算值那么高而不愿意给出自己真 正的估算,这对团队可无甚裨益。
对于取值高低的讨论,有可能使得整个团队提升估算值,或是让开发人员不甚情愿地降低自己的估值。不管怎样,你都要花更多时间来讨论,而这些讨论可能 一无所获。到最后,最重要的还是保持一致。通过跟踪团队开发速度(注),团队在一个迭代中可以完成多少故事,这总是可以知道的。因此,即使估算有所“膨胀 ”,速度也会随之变化,对于规划来说没有影响。
最后,选取最大的估算值可以节省估算会议的时间。如果团队中有人认为一个故事应该是8点,在讨论这个故事时,他可以大声说出来,宣称自己将抛出8点这个估算值。除非有人认为在团队成员的估算之间有很大差距,既然这个故事必将成为8点,那就没有必要再针对它讨论下去了
讨论大估算差
对于估算,经常会有误解,以为整个团队都同意某个故事的大小。如前所述,我会选择更大的指来解决估算不一致的问题。然而,有时很大的估算差距意味着存在某 些误解。因此,如果有两个估算的值差距大于2,总是会引发讨论(比如,如果一个成员抛出1点,而另一个认为是4点,大家就得澄清一下了)。讨论这些大的差 距,还可以减少给出最大估算的人被轻视的机会。
提防信息不足
有时会发生估算会议结束时还有故事未被估算的状况。与其匆忙给出一个让人不舒服的估算,不如去征询更多信息。估算为8点,暗示着这是一个很大的故事,但也 意味着你觉得它会占用两倍于4点故事所用的时间。因此,不要随便将不清楚的故事估算成8点。估算会议的目标不是要得到所有故事的估算值,而是要为提供了足 够信息的故事给出估算。
必要的投入
没人喜欢参加估算会议(好吧,就我所知的都不喜欢)。在我经历过的项目中,语速快的人负责将故事大声念出来,开发人员会问领域专家各种问题,然后他 们会进行估算。当没人向领域专家发问时,他们会在自己的笔记本上做其他的事情。一开始,我觉得这是利用时间的好方法,但是他们却会因此而错过一些东西。后 来我参加了这样一个项目,经理要求每个人轮流念一个故事。这样领域专家就参与进来了,因为他们害怕轮到自己念时看起来很愚蠢。由于每个人的全情投入,整个 会议也变得更有价值了。
猪和鸡
在供应火腿和鸡蛋的餐馆里面,猪是全身心投入,而鸡只是参与而已。
我经常听到这样的话:业务人员不应该干扰开发人员的估算,因为开发人员属于“猪”的角色,而业务人员都是“鸡”。我真觉得这个类比很不好。一个坏的产品出来,更有可能被解雇的是业务团队,而不是技术团队。然而,让业务人员干扰估算是会引发利益冲突的。
这个问题也很容易解决。业务人员想知道他们在下个迭代后能得到哪些功能,他们需要估算。由于业务人员不写代码,他们的估算都不大准确。在实际的估算 过程中,业务人员参与得越多,由此而对开发人员产生影响,也就有可能使业务人员得到的估算越不准确。在会议上,最好的领域专家只回答问题,而不会去干扰故 事开发过程的一丝一毫。
估算小组人数
团队的大小各有不同。在小于等于6个人的小型团队中,我建议整个团队都参与估算会议。不同的观点有助于夯实项目远景,并对估算产生正面效果。不过, 我相信是存在收益递减效应的。如果是大团队,就不一定全都参与针对每个故事的估算了。再说,这就是一个估算,6个人跟15个人的准确性不会有太大差别。如 果你的团队多于6个人,我建议分成不同的估算小组。一般来说,我希望最少能有3个人参与故事估算,但是不要超过6个人。
新故事
新故事的出现有两种形式:新功能需求和既有故事的切分。一般我会根据新故事的优先级考虑何时进行估算。如果一个故事要在下个迭代中完成,那就得对它 马上估算。不过,要是新故事在接下来几个迭代中都不会出现,再等等也无妨,直到有了足够的故事来证明召开估算会议的必要性。我发现估算会议上得到的估算值 更为可靠,因为在那个环境中,大家都将精力放在估算之上。通过切分得到的故事有其复杂性:它们可能已经估算过了。我强烈建议在估算新故事时,不要考虑之前 的估算值。如果一个故事因为其风险或不确定性需要切分,很有可能之前的故事是不靠谱的——忽略原先的估算吧。
不要用笔记本电脑
至少不要给开发人员提供笔记本电脑。把故事列表打印出来分发给大家,或者用投影仪投放在屏幕上,但是不要让开发者从自己的笔记本上读故事列表。笔记本总是从某些方面吸引开发人员的注意力,因此使得他们偏离会议的目标:得到有价值的估算。
必要的参与
这个建议非常重要。理论上说,除团队之外的开发人员都不能参与估算会议。也就是说参与会议的每个程序员都有可能要去开发被估算的故事。如果一个开发人员不 喜欢估算某个故事,那我就不希望他们开发这个故事。当然,凡事有例外。对于新成员来说,我会给他们一周的时间来适应,之后再参与估算会议。不过,一般来 说,拒绝参加估算会议的开发人员应该说明:有什么样更严重的问题等着他解决。
过时的估算
团队会改变,项目会变化,天有不测风云。不管是什么原因,估算都有可能过时。过时的估算毫无用处。要跟上过时估算,开发团队会有压力,而业务人员根 据之前了解的进度,希望故事可以及时完成。估算过时与否并不重要,重要之处在于估算不再可行了,由之产生的计划也不再可靠。我参加过的项目中,所有的估算 在 12-24周内都会过时。承认估算过时,而不要用不准确的信息安排计划。因此,我建议重新过一遍已经过了12周的故事估算。虽然这些估算可能没有问题,但 是开发人员有机会提供新的信息,这对于整个业务来说肯定有所裨益。
小恩小惠
这个建议最容易做到了。为估算会议购买各种好吃的零食。科学证明:甜食会让人产生幸福感,而幸福感会带来协作。想让估算会议按照既有方向进行,这是 最简单、最便宜的方式。不过要注意:好吃是关键。如果拿出来的零食在团队房间中已经存在,那就索然无味了。在最近参与的项目中,一想起来要开会了,我就会 去面包店买刚出炉的什锦饼干。
感谢
我想特别感谢:Brent Cryder, Dennis Byrne, Fred George, Joe Zenevitch, Mike Ward, Sean Dora。他们帮我把这些想法固定下来而且不断改进,跟别人一样,我也肯定遗漏了一些做出贡献的人,请原谅我的疏漏。
关于作者
Jay Fields在ThoughtWorks工作,负责软件开发和相关的顾问工作。他热衷于发现和改进创新的解决方案。最近,他的主要精力放在领域特定语言 (DSL)之上,而且已经交付了很多应用,使得领域专家可以顺利地编写业务逻辑。对于开发人员通过软件测试提升软件设计的成熟度,他也很感兴趣。
阅读英文原文 :User Story Estimation Techniques
发表评论
-
前端与后端的测试工具组合
2015-01-15 13:03 2187在Java领域,Apache, Spring, JBoss ... -
Design Pattern Categorization
2014-12-12 15:44 669Learning JavaScript Design P ... -
Java Design Patters Details
2014-12-05 14:10 710By Jason McDonald ABOUT DESIG ... -
单例模式(singleton)的一种写法
2014-12-05 11:26 608public class ModbusDetai ... -
Use Builder pattern to avoid method has too many parameters
2014-01-21 09:44 816sometimes, we have a class ... -
函数和方法的迪米特法则
2013-06-28 10:39 1037有一个方法M,它存在于对象O中。对象O的M方法只引用下面几种 ... -
Java编程中“为了性能”尽量要做到的一些地方
2012-03-09 19:07 1169最近的机器内存又爆满了,除了新增机器内存外,还应该好好re ... -
软件天才都是训练出来的
2011-01-03 11:15 1200长期以来,“软件业 ... -
Quest JProbe最佳实践指南
2010-11-25 17:42 18521. 介绍 在Java的广泛 ... -
2010年大规模技术架构的思路
2010-03-21 18:16 972相比其他行业,IT技术由于信息流动便捷,新技术更新非常频繁。架 ... -
领域驱动设计和开发实战
2009-06-05 13:20 1613背景 领域驱动设计(DDD)的中心内容是如何将业务领域概念映 ... -
基于Zigbee协议的OSGi无线家庭网关设计
2009-03-16 10:23 32191 引言 随着internet的 ... -
软件性能问题的几点分析
2009-01-19 15:52 1399【IT168技术分析】 2008年已经过去了,忙忙碌碌的 ... -
怎样成为优秀的软件架构师
2008-12-13 12:39 1741【IT168 评论文章】 近来读了一篇《怎样成 ... -
写给我的团队-代码篇
2008-11-30 23:16 1391看了neora的大作写给我 ... -
各大型网站架构分析收集
2008-11-26 23:24 24971. PlentyOfFish 网站架构学 ... -
domain object模型探讨(robbin原创)
2008-11-05 09:57 2343有兴趣可看此处原文及相关讨论:总结一下最近关于domain o ... -
一次性能调优的实战
2008-09-02 15:42 1474【IT168技术文档】 项目 ... -
ie和firefox中img对象区别的困惑
2008-08-20 16:45 2433在调试js时遇到一些恶心的问题,于是做了一个测试程序,放到网上 ... -
UML我拿什么来用你?
2008-08-04 09:59 1367【IT168分析评论】或许我这样评价不是很公正! 因为UML ...
相关推荐
3. **评估故事的质量**:使用INVEST原则(独立性、可协商性、有价值、可估算性、小规模、可追踪性)来评估用户故事的质量。 4. **优先级排序**:根据业务价值和技术难度等因素对用户故事进行优先级排序,确保团队...
书中详细解释了用户故事的编写技巧,如何确保它们简洁明了且易于理解。 2. 用户故事卡:用户故事通常写在卡片上,用于团队讨论和跟踪。这些卡片包含故事的基本信息,如故事描述、估计的工作量以及相关讨论点。Mike ...
相比代码行数(LOC)估算,功能点法不受开发技术影响,更注重用户视角,同时可以转换为代码行数。 功能点分析通常包括以下几个步骤: 1. **识别功能点类型**:根据IFPUG的V4.1.1标准,功能点分为五类:内部逻辑...
在软件开发过程中,准确的成本估算和...这个PPT文档可能详细讲解了这些步骤和方法,并给出了实例分析,帮助读者更好地理解和应用成本估算技巧。通过深入学习和实践,可以提升项目管理的精确度和效率,降低超支风险。
在IT行业中,对数据库的空间占用进行预估是一...通过对给定的信息进行深入分析,我们不仅了解了如何进行基本的估算,还学习到了一些实用的技巧和注意事项。这将有助于我们在实际工作中更加有效地管理和优化数据库资源。
使用FTPRush,用户可以查看FTP服务器的剩余空间,只需在连接后按`Ctrl+R`,输入`ALLO 1`命令并查看结果,即可估算剩余空间。此外,FTPRush还提供了防止在下载文件时生成".m-missing"临时文件的设置,以优化下载体验...
用户可以参考此例子,理解如何将UKF应用到实际电池系统中,通过输入电池的实时测量数据(如电压、电流、温度等),不断更新并估计出精确的SOC值。 学习和掌握UKF在电池SOC估计的应用,不仅需要理解卡尔曼滤波的基本...
通过这份"焊条、焊丝、焊剂消耗估算表",用户可以依据具体的工程需求,快速查找合适的焊接材料及其预计消耗量,为项目规划提供可靠的数据支持。 总的来说,理解和运用这份压缩包内的资料,有助于提升焊接项目的管理...
### IFPUG功能点估算方法使用指南 #### 1. 引言 ##### 1.1 目的 本文档旨在详细介绍IFPUG(International Function Point Users Group)功能点估算方法,这是一种衡量软件规模的有效手段。通过本指南,读者可以...
它包括故事点估算、燃尽图和迭代计划。 11. **自我组织团队**:敏捷团队通常是自我组织的,成员共同决定如何完成工作,增强了团队的责任感和创新力。 12. **持续学习和改进**:敏捷强调团队应持续学习和反思,通过...
- **故事点估算**:根据故事的复杂度和工作量分配故事点,用于计划和跟踪进度。 - **迭代规划**:基于用户故事,规划每次迭代的工作内容,确保持续交付价值。 ### 第9章 用CRC卡协助设计 #### CRC卡的应用 CRC卡...
19. **预估和管理项目时间**:掌握时间估算技巧,避免项目延期。 20. **持续学习和改进**:时间管理是一门持续学习的艺术,PPT可能鼓励用户不断探索新的方法和技巧。 21. **设立个人边界**:设定工作与生活的界限...
3. **估算技巧**:通过近似值进行估算,可以帮助快速得到答案的大致范围,尤其在处理大数值时。 4. **分配律与结合律**:在进行复杂计算时,利用分配律(a(b+c) = ab + ac)和结合律((a+b)+c = a+(b+c))可以简化...
《MAPGIS实用方法及技巧详解》 MAPGIS(Map Geographical Information System)是一款广泛应用于地理信息系统领域的专业软件,尤其在资源管理和地质勘查方面具有显著优势。本文将详细讲解MAPGIS的一些核心功能,...
4. 自定义函数:编写用户自定义函数,封装太阳方位角和高度角的计算逻辑,便于复用和维护。 五、实际应用 1. 太阳能资源评估:计算不同地点和时间的太阳位置,评估太阳能电池板的最佳朝向和倾斜角度。 2. 光伏系统...
能量损耗计算器能帮助用户估算出电力系统在运行中的能量损耗,该部分包含计算器显示和仪表的使用方法。逆变器效率的测量能帮助评估逆变器的转换效率,确保设备的最佳运行性能。 不平衡分析是检测电力系统三相电压不...
《敏捷估计与规划》是Mike Cohn的一本经典著作,主要探讨了在敏捷开发环境中如何有效地进行项目估算和规划。...通过理解和应用书中的理念和技巧,团队能够提升生产力,提供更符合用户需求的高质量软件。