10 月 23 - 25 日,QCon 上海站即将召开,9折优惠最后2天 了解详情
写点什么

行为驱动开发:通过协作传递价值

  • 2014-01-02
  • 本文字数:1086 字

    阅读完需:约 4 分钟

软件项目的目的是向利益干系人交付价值,而行为驱动开发(BDD)正是为此而生。在阐述对于BDD 的看法时, Viktor Farcic 表示:BDD 能够确保在整个项目过程中,项目聚焦于为利益干系人提供的价值。

作为一位从事从瀑布模型向敏捷过程转型方面工作的软件开发者,Viktor 继续补充道:BDD 的一条准则是必须用每个人都能理解的方式来撰写需求。作为对比,在传统的瀑布式项目中,许多情况下人们都不知道或是忘记了要向利益干系人交付价值。参与此类项目的大部分人关心的是“完成各自部分的工作”,然后将工作“抛给墙那边”负责下一阶段任务的人。

在 BDD 中描述需求的关键是故事,Viktor 将故事的形式概括为两部分组成元素:介绍描述(Narrative)以及随后出现的一个或多个情形(Scenario)。介绍描述是从提出新功能要求的某个人或某个角色的角度,对功能所做的一段简短的叙述。它恰到好处地为所有涉及到的人(业务分析师、开发者、测试者等待)提供了沟通的基础,并且是以对话而不是编写描述为中心。其目的在于回答这样三个问题:价值是什么?对谁来说它是有价值的?实际特性是什么?回答这些问题后,团队就可以开始与利益干系人协作,定义最佳解决方案。

介绍描述将通过情形来进一步定义——这些情形提供了对完成的定义以及接收的标准,用来确认针对介绍描述进行的开发,其输出的成果能够满足预期。

对 Viktor 来说,尽管介绍描述拥有某些传统需求的特性,但他相信依旧存在一些非常重要的不同。其中之一在于以下二者之间的区别:重视口语化和持续沟通,与使用可能非常不精确的语言。另外一点不同则是重视使用特性来描述功能,而不是使用大量如下形式的文字陈述:“该系统应该……”——后者往往会妨碍读者理解项目的整体视图和真正的目标。

最后,Viktor 介绍了让 BDD 向着自动化方向前进的内容——可以通过许多不同框架来执行 BDD 中的情形,例如 JBehave Cucumber SpecFlow Jasmine 。他的建议是分三步走来实现 BDD 自动化:

  • 创建标准化步骤的库,以帮助将情形从实际代码中分离,从而简化非开发人员编写故事的工作。
  • 在更高的业务层面将这些步骤整合,以便分析师和其他类似角色更好地理解。
  • 使用实例表(example table),以便同一个情形可以被执行若干次,并在每次执行中配备不同的参数集。

Victor 的建议是,从第一阶段入手,直到采取足够的措施以支持创建第一个情形后,再继续落实后面两阶段的内容。

Dan North 在 2006 年开发了 BDD,并撰写了一份入门简介,以及在BDD 中如何编写故事

实例化需求(specification by example)是一种与BDD 密切相关的需求定义方法。

查看英文原文: Behaviour-Driven Development: Value through Collaboration

2014-01-02 07:361915
用户头像

发布了 256 篇内容, 共 84.7 次阅读, 收获喜欢 10 次。

关注

评论

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

卫浴“家电化”:一场科技驱动洗牌赛拉开序幕

Alter

TUSD运营商亏空近5亿美元,FDUSD发行方是罪魁祸首?

TechubNews

去中心化 孙宇晨 FDUSD

函数计算支持热门 MCP Server 一键部署

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

智能体爆发元年,谁在“无人区”绘制地形图?

脑极体

AI

CAD裁剪块方法

极客天地

Kyutai 推出 Moshi 语音模型微调工具包;语音智能体平台 Vapi 2.0 上线,已提供 4400 万通电话服务丨日报

声网

NineData云原生智能数据管理平台新功能发布|2025年3月版

NineData

全彩LED大屏幕亮度过高的影响以及如何调整?

Dylan

行业 LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

【解决方案】多租户技术架构设计入门(一)

量贩潮汐·WholesaleTide

架构 多租户

CAD编辑图块属性对话框不见了

极客天地

【解决方案】多租户技术架构设计入门(二)

量贩潮汐·WholesaleTide

数据库 多租户

Apipost vs Apifox:高效API协作的差异化功能解析

数据追梦人

Apache Doris 2.1.9 版本正式发布

SelectDB

数据库 大数据 数据仓库 倒排索引 湖仓一体

SD-WAN能为医疗信息化升级提供哪些帮助?

Ogcloud

SD-WAN SD-WAN组网 SD-WAN厂商 sd-wan专线 SD-WAN厂家

什么时候您需要升级SD-WAN解决方案?11个预警提示!

Ogcloud

SD-WAN组网 SD-WAN厂商 sd-wan专线 SD-WAN厂家

故障定位系列-1-Web应用接口级故障如何定位

乘云数字DataBuff

运维 故障定位 智能运维 运维监控

DialogHub上线OpenHarmony开源社区,高效开发鸿蒙应用弹窗

HarmonyOS开发者

如何利用科学的预算管理为企业释放更多价值

智达方通

数字化转型 全面预算管理 财务管理 财务规划

AI框架不牢,模型地动山摇

白洞计划

AI

【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(3)

HarmonyOS SDK

harmoyos

小猫在流浪:城市灯火下的无声挽歌

花十君

产品 流浪猫 关爱流浪动物

线性判别分析(LDA):降维与分类的完美结合

不在线第一只蜗牛

机器学习

Centos系统云主机中nvme盘不可用解决方法

天翼云开发者社区

云主机

Excel百万数据如何快速导入?

不在线第一只蜗牛

Excel

CAD动态块编辑设置参数显示颜色方法

极客天地

Techub 财报解读:Circle 冲刺 IPO,但收入增长难掩利润困局

TechubNews

BOE(京东方)打造东北首个沉浸式数字艺术体验空间 科技解码文明释放数字文旅想象力

爱极客侠

Python + 腾讯云,多页PDF发票识别一键搞定!

程序员晚枫

开源

AI 网关代理 LLMs 最佳实践

阿里巴巴云原生

阿里云 云原生 云原生AI网关

东京 Voice AI Agent 工作坊!1 小时让你的 AI 能听能说

声网

AI框架不牢,模型地动山摇

脑极体

AI

行为驱动开发:通过协作传递价值_语言 & 开发_Jan Stenberg_InfoQ精选文章