【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

评论

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

什么是数字货币、数字金融 和区块链?

CECBC

横向对比5种常用的注册中心,无论是用于面试还是技术选型,都非常有帮助

程序员小毕

Java 程序员 面试 微服务 后端

历时两月,终拿字节跳动offer,算法面试题分享「带答案」

程序知音

Java 字节跳动 算法 程序员面试 八股文

区块链的诞生是为了解决——“去中心化的协同”这个问题

CECBC

十月阿里社招Java面试题:数据库+分布式+高并发+JVM+Spring

程序知音

Java 阿里巴巴 程序员面试 后端技术 八股文

[ Kitex 源码解读 ] 熔断机制是如何实现的

baiyutang

Go 微服务 微服务架构 kitex CloudWeGo

关于JVM的内存模型

Java学术趴

7月月更

分布式限流 redission RRateLimiter 的使用及原理

王小凡

Java redis 分布式 SpringCloud 框架

重写并自定义依赖的原生的Bean方法

了不起的程序猿

java程序员 Java 开发 SpringCould

EA中的业务对象和业务实体你分得清吗?

涛哥 数字产品和业务架构

企业架构 TOGAF Archimate

《SpringBoot 手册》:国际化组件 MessageSource

看山

springboot MessageSource

数据中台建设(五):打破企业数据孤岛和提取数据价值

Lansonli

数据中台 7月月更

你必须知道的一些JVM技术点

Java学术趴

7月月更

北京突然宣布,元宇宙重大消息

CECBC

elasticsearch实战三部曲之二:文档操作

程序员欣宸

Java Elastic Search 7月月更

新型LaaS协议Elephant Swap给ePLATO提供可持续溢价空间

股市老人

Microsoft SQL服务器被黑客入侵 带宽被窃取

郑州埃文科技

microsoft 数据安全 代理IP

基于MySQL数据库,Redis缓存,MQ消息中间件,ES搜索引擎的高可用方案解析

Java永远的神

Java 数据库 redis ES 消息中间件

备战金九银十!2022面试必刷大厂架构面试真题汇总+阿里七面面经+架构师简历模板分享

Java永远的神

Java 程序员 面试 程序人生 简历模板

Prometheus 启动时被禁止的功能特性

耳东@Erdong

Prometheus Feature 7月月更

Elephant Swap:借助ePLATO提供加密市场的套利空间

EOSdreamer111

区块链,得这样练

CECBC

面试官:Redis中的布隆过滤器与布谷鸟过滤器,你了解多少?

Java全栈架构师

Java redis 程序员 面试 后端

手慢无!阿里亿级流量高并发系统设计核心原理全彩笔记现实开源

Java全栈架构师

Java 面试 程序人生 分布式锁 架构师

Discourse 自定义头部链接(Custom Header Links)

HoneyMoose

C# 之 $ – 字符串内插

陈言必行

7月月更

元宇宙改变人类工作模式的四种方式

CECBC

新一代开源免费的终端工具,太酷了

程序知音

干货来袭!2022阿里巴巴全新出品Spring全家桶全栈笔记(终极版)奉上

程序员小毕

Java spring 程序员 面试 微服务

鸿湖万联扬帆富设备开发板正式合入OpenHarmony主干

科技汇

一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?

鳄鱼视界

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