写点什么

为什么 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:442938

评论

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

架构师训练营 - 第 4周课后作业(1 期)

Pudding

关注你自己,如同篮球巨星一样,让身体最佳化,持续投入最爱的事情。

叶小鍵

健康 科普 王立铭 肥胖

websocket 是怎么连接的

程序员与厨子

nginx 网络 HTTP websocket

“一个APP竟然可以适配这么多设备?!”《优酷响应式布局技术全解析》开放下载

破绽

阿里巴巴 阿里云 开发者 优酷 电子书

诸多老牌数据仓库厂商当前,Snowflake如何创近12年最大IPO金额

华为云开发者联盟

数据仓库 数据 存储

NET-Core中的配置文件操作

为体验更多

C# .net .net core ASP.NET Core

5G时代音视频开发王器:WebRTC

华章IT

flutter 音视频 WebRTC React Native

让AI人才在产业界闪闪发光:百度之星的“神奇滤镜”是怎样炼成的?

脑极体

有了容器为什么kubernetes还需要Pod?

架构师修行之路

分布式 微服务 pod kubernete

微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)

AI乔治

Java 架构 微服务 ,docker

Java Reference核心原理分析

AI乔治

Java 架构 JVM 性能调优

计算机网络基础知识总结

苹果看辽宁体育

计算机网络 计算机

云计算简史(上)- 15分钟读完15年

明道云

十七、深入Python异常处理

刘润森

Python

分布式系统设计理念这么难学?

架构师修行之路

分布式 微服务

第12周学习总结

Vincent

极客时间 极客大学

技术实践丨GaussDB(DWS)运维管理功能“升级”的原理和使用

华为云开发者联盟

运维 数据 集群

CloudQuery v1.1.1 修复版本发布

BinTools图尔兹

数据库 sql 安全 工具软件

考研须知

时间是一个人最好的证明

考研

甲方日常 33

句子

工作 随笔杂谈 日常

LAXCUS大数据集群操作系统:一个分布式分时共享E级系统软件(四)

陈泽云

人工智能 大数据 数据结构 操作系统 数据存储

从分布式到微服务成长手册,助我面试跳槽斩获字节Offer

Java架构追梦

Java 学习 架构 面试 微服务

架构训练营 - 第4周课后作业 - 学习总结

Pudding

“区块链×多方计算”解决众多难题 将成区块链应用新场景

CECBC

区块链 数据融合

第12周作业

Vincent

极客时间 极客大学

GO 类型接口及反射间的转换

superman

Go 语言

京东智联云MySQL数据库如何保障数据的可靠性?

京东科技开发者

MySQL 数据库

“区块链技术创新要植根市场”

CECBC

金融科技 信息安全

第19届亚运会门票采用区块链技术防伪

CECBC

区块链技术 防伪 溯源

架构师的成长之路

华章IT

CTO 架构师 架构师之道

据说99.99%的人都会答错的类加载的问题

AI乔治

Java 架构 JVM 类加载 性能调优

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