写点什么

为什么 BDD 可以拯救敏捷

  • 2015-03-17
  • 本文字数:904 字

    阅读完需:约 3 分钟

在 2015 年 QCon 伦敦大会上, Cucumber Ltd 创始人 Matt Wynne 讲述了 BDD 如何利用敏捷在团队作战的优点解决缺乏预见性、沟通和质量这些常见问题的。

在与一些需要帮助的公司一起工作中,Wynne 发现他们经常会受困到上述问题之中,因为他们误解了成为敏捷、达到敏捷和某些像货物崇拜形式的敏捷实践的区别。

为了抚平常见的痛点,Wynne 提议找回那些最终丢失的敏捷特性。当团队开始将软件以组件为单位构建时,预见性就会增加;当团队在每天的基本事务中都有合作时,沟通就会更好;当技术规范能被贯彻时,质量就会提高。

接着,Wynne 从其自身角度解释了为什么 BDD 可以做到这点。

维基百科上说,

“行为驱动开发(BDD)是从测试驱动开发(TDD)中产生的软件开发过程。行为驱动开发结合了 TDD 的一般方法和原则,使用领域驱动设计和面向对象的分析和设计思路,为软件开发和管理团队提供共享工具和软件开发合作的共享过程。”

Wynne 专注于他自己对使用者预期行为上的定义。

“BDD 实践者使用对话、具体实例以及自动化测试,探索、发现、定义并得到预期的软件行为。”

他使用不确定性的锥图展示了该如何从不确定性最大的探索阶段出发,获得尽可能多的确定性。Wynne 祭出了探索之旅的三大法宝:对话、具体实例和测试驱动开发。

对话很重要,因为软件是人做出来给人用的。每个人都有一个独特的视角,而每个视角都很重要。有一种技术叫发现工场(discovery workshop),可以用来加强对话,每个用户故事都有一个“锵锵三人行(three amigos)”工场来发现场景。

具体实例很重要,让人们觉得合乎情理,具体实例植根于问题领域,有利于构建通用语言和分享事实的起源。

测试驱动开发是必选的,因为自动化测试是警示灯,不要忘记倾听测试在说什么。

Wynne 在演讲的最后出于某种原因追溯了 TDD 的根源:

“夫无代码整洁之道,岂可保持敏捷;

若无重构,焉有代码整洁之道;

然非自动化测试,何有重构哉”

查看英文原文: http://www.infoq.com/news/2015/03/bdd-save-agile


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-03-17 00:443077

评论

发布
暂无评论
发现更多内容

机器学习- 吴恩达Andrew Ng Coursera学习总结合集 John 易筋 ARTS 打卡 Week 57

John(易筋)

ARTS 打卡计划

拨云开雾!阿里面试官力荐Java开发必看的操作系统底层原理PDF

Java架构追梦

Java 阿里巴巴 架构 面试 操作系统

云图说|云上应用监控神器——应用性能监控APM2.0

华为云开发者联盟

APM 华为云 云图说 应用性能管理 应用监控

聊聊百度搜索背后的故事

程序员鱼皮

Java 搜索引擎 数据结构 算法 后端

架构实战营-模块三

Cingk

速来围观!大佬把Java基础核心知识整理成了PDF版

java小李

Java开发手册 Java 开发

淘宝一面:说一下 Spring Boot 自动装配原理呗?

java小李

面试 java 14 sping

面试题:JVM在Java堆中对对象的创建、内存结构、访问方式

java小李

java 14 sping

向大佬学习!「mybatis查询匹配机制」,手动点赞

java小李

java 14 Mybati

DeFi智能合约DAPP开发|DeFi项目源码

Geek_23f0c3

DeFi去中心化系统开发 DAPP智能合约交易系统开发

大学四年Java学习路线规划,所有私藏资料我都贡献出来了

java小李

spring Java web

怎么在Guitar Pro乐谱中加入哇音

懒得勤快

架构实战营模块四作业

老猎人

架构实战营

TensorFlow 2 quickstart for experts

毛显新

tensorflow

对象存储手把手教三 | 数据分段上传

QingStor分布式存储

对象存储 分布式存储 数据传输

Vue进阶(九十四):自定义组件

No Silver Bullet

Vue 自定义组件 7月日更

手写基数排序算法

实力程序员

程序员 C语言 排序算法

被面试官问的Android问题难倒了,深度集成!

欢喜学安卓

android 程序员 面试 移动开发

Recommending movies: retrieval

毛显新

tensorflow 推荐系统

行云创新完成B轮融资,阿里云独家投资

行云创新

阿里云 云原生 投资

请谈下Android消息机制,成功拿下大厂offer

欢喜学安卓

android 程序员 面试 移动开发

携生态伙伴展示AI计算盒参考设计最新成果 英特尔点亮智能边缘广阔机遇

E科讯

GitHub标星139K的:“嵌入式Linux系统开发教程”

白亦杨

带你了解弯曲文本检测算法的两种思路:区域重组和像素分割

华为云开发者联盟

文字 目标检测算法 文本检测 区域重组 像素分割

架构实战营模块 3 课后作业

hello

架构师实战营

汽车燃料效率预测

毛显新

tensorflow

stack overflow 问题分类

毛显新

tensorflow

从源码角度详解Java的Callable接口

华为云开发者联盟

Java ide jdk Callable Callable接口

根据译文片段预测翻译作者

毛显新

tensorflow

LeetCode题解:456. 132 模式,n平方暴力,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

DAPP智能合约开发|智能合约搭建

Geek_23f0c3

区块链 智能合约 DAPP智能合约交易系统开发 DAPP系统开发

为什么BDD可以拯救敏捷_研发效能_Rui Miguel Ferreira_InfoQ精选文章