什么是敏捷开发中的Spike?

Spike,如果需要翻译的话,中文可以翻译成“探针”,但是一般不会翻译而直接使用Spike这个词。

Spike可以理解为:以回答问题或收集信息为目的的任务,而不是生产非专业产品的任务。有时编写User Story时,无法很好地对其进行估算User Story Point,直到开发团队做一些实际工作来解决技术问题或设计问题为止。解决这一问题的方法是创建一个“Spike”,这代表要做一些工作,其目的是提供解决问题的方法或者寻找解决问题的答案。

英文解释:

A task aimed at answering a question or gathering information, rather than at producing shippable product. Sometimes a user story is generated that cannot be well estimated until the development team does some actual work to resolve a technical question or a design problem. The solution is to create a “spike,” which is some work whose purpose is to provide the answer or solution.

Spike这个术语来自极限编程(XP)。一个Spike指的是一个用来探索/寻找潜在的解决问题的方法(探针)。XP大师Ward Cunningham 解释了这个术语是如何在C2.com的wiki上被创造的。

Ward Cunningham说:“我经常问Kent[Beck],我们能做的最简单的事情是什么,它能让我们相信我们在正确的轨道上?” 这种走出目前困难的做法常常使我们能够找到更简单和更有说服力的解决办法。Kent称之为Spike。“我发现这种做法在维护大型框架时特别有用。”

其实在Scrum中,常常会用到下面的三个术语(或者其中的一个):

  • Spike – a quick and dirty implementation, designed to be thrown away, to gain knowledge – indicator: unable to estimate a user story effectively
  • Research – broad, foundational knowledge-gaining to decide what to spike or give the ability to estimate – indicator: don’t know a potential solution
  • Tracer Bullet – very narrow implementation in production quality of an epic/large user story – indicator: user story is too large in estimation

了解了什么是Spike,Research和Tracer Bullet之后,我们在Scrum中就可以使客户和团队能够确定何时以及如何实施这些活动。我们决定与客户一起开展一个有时间限制的Spike和Research活动。这些是在一次迭代中完成的,用于帮助定义即将到来的User Story 的估算和在下一次迭代中开始的起点。

虽然估算是Spike和Research的指标(indicator),但它们不是最终目标。Spike或Research还包括:

  • 了解“如何”实现业务价值(Understand “how” to implement a piece of business value)
  • 提出帮助客户做出商业价值决策的解决方案(Propose a solution to help the customer make business value decisions)
  • 最小化实现业务价值的成本中隐藏的风险 (Minimize risk hidden in the cost of implementing a piece of business value)
  • 运用投资模型控制研发成本 (Control the cost of R&D through the use of an “investment” model)

Tracer Bullet用于将Epic或大的User Story拆分成较小的Epic或者User Story,并对软件产品的Backlog或者New Features产生一定的影响。假设团队在讨论一个User Story时,引入了新的架构元素,那么Tracer Bullet可以实现引入这种新的架构元素到软件产品中,而不需要过度详细的用户接口/UI。例如,如果与我们的Peoplesoft和Siebel 实例,并且希望显示来自两个系统的客户信息,那么我们可以有Tracer Bullet类型的User Story,例如:

  • 作为客户服务代表,我想查看客户的姓名和多个系统的标识符

在实现这个用户故事时,我们可能还有许多其他的Backlog/User Story,这些User Story必须从其中一个或两个系统中检索额外的客户信息。这个团队把这些定义和指标放在墙上,作为一个大而漂亮的信息共享单元以供团队成员参考。其他团队也开始在自己的项目中使用这些描述,以帮助阐明与客户的基本工作。

可能有人会写下这样的User Story:

  • 作为客户服务代表,我想查看客户的姓名和账号ID
  • 作为客户服务代表,我想查看客户的姓名和所在区域、电子邮件、联系电话等
  • ……

虽然在前端,每个“作为客户服务代表”的角色希望查看到客户的姓名和其它多种不同的信息;但是在系统设计和实现的后端,可以通过良好的设计(或者接口设计)来实现功能。这就是Tracer Bullet的作用。

[敏捷开发培训] 什么是敏捷开发中的Spike?相关推荐

  1. 洛阳php编程培训,洛阳PHP开发培训分享提高PHP开发效率的四个编程习惯

    养成一些良好的编程习惯可以让php开发开发人员工作效率提高10%~20%,这些良好的编程习惯不仅能提高工作效率,还能让你不容易出现bug.下面洛阳IT培训网PHP开发培训总结了四个良好的编程习惯,能够 ...

  2. 手机游戏开发培训: 手机游戏开发培训渐入成熟 、技术培训打造IT金领

    手机游戏开发培训越来越成熟,手机游戏在中国的市场份额也是越来越大,自3G发牌以来中国手机游戏开发培训渐成热门,由于手机软件开发培训是非手机软件开发人员快速进入市场的唯一途径,正是由于手机游戏人才的短缺 ...

  3. 天津php二次开发培训,天津PHP后台开发培训短期班

    PHP开发入门需要学习什么知识?该怎么准备? 想要找一份满意的PHP开发开发工作,首先需要你掌握丰富的PHP开发知识.现在由于PHP开发行业的就业前景广阔,所以很多零基础对PHP开发一点也不了解的人也 ...

  4. linux内核驱动开发 培训,嵌入式Linux驱动开发培训 - 华清远见教育集团官网

    9.LINUX下USB驱动开发基础 9.1 USB规范介绍 9.2 USB主机控制器 9.3 USB HUB 9.4 USB设备状态 9.5 USB描述符 9.6 USB请求 9.7 USB通讯数据格 ...

  5. 嵌入式软件开发培训笔记——C高级 开发环境

    (1)GNU工具: a)编译工具--GCC.G++: b)调试工具--GDB: c)软件工程工具--make.makefile: d)其他工具--多个目标文件链接成可执行文件的链接器 e)GNU资源: ...

  6. 合肥php开发培训费用,合肥PHP开发培训之PHP文件基础操作

    文件的基本操作:(更多) fopen():文件打开 $file = fopen("file.txt","r+"); fopen()函数的参数是目标文件的路径和文 ...

  7. android培训总结范文,android开发培训心得总结

    1/2ANDROID开发培训心得总结ANDROID开发培训心得总结在我大学毕业后的大段时光里,曾经有过四个月的时间,这四个月里有很多辛苦的瞬间,亦有欢笑,都很充实,我学到了很多ANDROID开发方面的 ...

  8. 零基础学ios开发培训要培训多久

    零基础学ios开发培训要培训多久     想参加ios开发培训,不知道ios开发培训需要多长时间能学会呢?零基础学ios培训要培训多久?学完IOS技术课程后是否可以快速找到高薪工作,一系列的问题都是菜 ...

  9. 敏捷开发培训部分讲义内容

    敏捷已经不是陌生的词了,但是对这"熟悉"的词的理解却有很多不同的看法,然而有些本质的东西却基本一致,下面是我的部分敏捷开发培训讲义内容,在我的淘宝上 http://item.tao ...

最新文章

  1. [dp] Jzoj P5804 简单的序列
  2. 数据结构之二叉搜索树(BST)
  3. WSUS3.0的部署及安装
  4. Nexus安装及配置
  5. 多线程:AQS的一些心得
  6. Jquery学习----选择器
  7. 南京玄武常发广场远程预付费电能管理系统的设计与应用(安科瑞 顾晓燚)
  8. 电子计算机上面cutup,cutup(cut up用法总结)
  9. 如何制作简单的日历html5,js+html制作简单日历的方法
  10. 红帽linux挂载光盘_redhat挂载光盘 命令 - 卡饭网
  11. AVCaptureDevice中通过调用VideoZoomFactor方法调整焦距实现拉近拉远镜头进行拍照录制视频(动画缩放画面,不闪屏)
  12. 24个希腊字母 大小写 读音
  13. 查看mysql访问记录
  14. 关闭计算机用英语怎么说,关闭计算机用英语肿么说
  15. 信必优新技术–QA 的新机遇
  16. mysql自定义函数实现
  17. 韦德高清图片壁纸下载
  18. android app防止锁屏_android 屏幕保持不锁屏的实现方式
  19. ╭*★*╯浮华一场烟雨梦,叶落无痕情无踪╭*★*╯
  20. 学校机房今年和去年共购置了100台计算机,2015年全国中考数学试卷解析分类汇编(第一期)专题4 一元一次方程及其应用...

热门文章

  1. 微信h5页面实现人脸注册和登陆
  2. 本人有一个60G的金士顿的固态硬盘,测了4K分区对齐前后的区别,发现性能相差很大...
  3. “人到中年”成网红,旺旺能否借此重返“旺季”?
  4. 2021万向区块链黑客马拉松圆满收官
  5. 微软必应词典客户端 案例分析
  6. Flutter高仿微信-第22篇-支付-二维码收款(二维码)
  7. cvxpy报错Encountered unexpected exception importing solver OSQP
  8. Git最详细的基础教程
  9. JavaFX桌面应用开发-菜单栏-MenuBar、Menu 、MenuItem
  10. java微信支付v3系列——7.微信支付之申请退款