东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

何时应该打破规则?

  • 2008-09-19
  • 本文字数:1010 字

    阅读完需:约 3 分钟

作为 JUnit 测试框架的作者,Kent Beck 在《赶紧交付吧,宝贝儿》一文中提醒我们:所有的敏捷过程和实践,都是为了开发出可以交付的软件。如果有什么成为软件交付的障碍,也许你就得打破规则了。

Kent 引用了 Oakland Raider 公司总经理 Al Davis 的话“赶紧获胜啊,宝贝儿”,他还描述了自己遇到的麻烦,当时他在开发一个 Eclipse 插件,并试图先编写测试来验证之前的一个想法。

几周的时间里,我总共花了 6 到 8 个小时来编写第一个测试并使之运行。为 Eclipse 插件写测试可不容易,所以遇到问题也很正常。我就是反复不断地琢磨这个问题,想让我的第一个测试顺畅运行。

8 个小时的工作之后,他还是没有得到一个有用的测试,而且也没能成功测试最早的想法。几天后,他在 Eclipse 中尝试了另外一种不用做测试的方法。他投入了三个小时的工作,发现原先的想法并不怎么样,这让他觉得很不开心。

Piergiuliano Bossi 认为 Kent 传递了错误的信息。他觉得 Kent 只是做了一个探索性的开发(spike),对 Eclipse 的插件架构体系进行了了解,并且试图找出如何在那个环境中编写测试。Piergiuliano 认为不通过 TDD 的方式来搞清楚 api 的用途是很正常的,等到对 api 有了足够的理解之后再重新编写代码,也许效果更好。他想知道是不是有可以暂时不用考虑规则的情况,以及这样做会带来什么后果:

咱们考虑这样一种状况:如果可以暂时不遵守某些实践,就能马上得到一些短期的交付。在这种状况下,团队会很容易欠下一些很严重的技术债务,甚至有可能大大影响系统的质量。 ……

还有其他的状况:系统已经糟糕到一定地步,不允许再发生任何技术债务,软件再有任何差池,都将会导致财务上的损失(甚至更差)。经验告诉我,这些损失是很容易发生的,一旦出现,结果很可能更具破坏性。光说“赶紧交付吧,宝贝儿”会造成灾难性后果,而且是完全不负责任的做法。

他担心 Kent 的文章会“鼓励粗鄙的、不计后果式的编程文化”。

五年前, Bob 大叔写过同样的话题:

傻瓜才会盲目遵从规则。我们的脑子足可以分辨规则何时有用,何时不行。我们有责任不断判断规则是否有用。

但是他又从另一面做了解释:

我们的职业自豪感才是解决问题的根本。这种自豪感既冰冷残酷,又炽热夺目。它不会让我们因为恐惧而将规则摒弃一边,如果这么做,也是因为职业自豪感让我们发现:某些规则会让我们交付垃圾软件。

所以,Piergiuliano 和 Bob 大叔一定认为:要将“质量第一”牢记心中。

查看英文原文: When is Ok to Break the Rule

2008-09-19 06:091183
用户头像

发布了 479 篇内容, 共 152.2 次阅读, 收获喜欢 47 次。

关注

评论

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

anyHouse-iOS 高仿ClubHouse

anyRTC开发者

ios 音视频 WebRTC RTC 语音通话

iOS 面试策略之算法基础6-7节

iOSer

ios 面试 算法 ios开发 算法解析

Android Crash监控方式

Darren

监控 异常检测 Android开发 NativeCrash

联盟链技术

360技术

留存率计算

Flychen

双非渣硕!四面阿里收到offer后,才发现学长给的面试笔记有多强大

Java 编程 程序员 面试 计算机

Disruptor 源码解读

lich0079

Java volatile Disruptor CAS Concurrent

⼤规模短⽂本聚类的设计和实践

百度Geek说

聚类 query 内聚

toB SaaS会成为苏州下⼀个“⼀号产业”么?

龙归科技

数字化 tob

企业架构设计方法TOGAF介绍

joinM

企业架构 技术架构 业务架构 TOGAF 技术与业务

灰度发布系统架构设计

xcbeyond

微服务 灰度发布 4月日更

用户故事是垂直的切片(译)

Bruce Talk

敏捷 译文 Agile User Story

如何打造高效技术团队|专访前美篇首席架构师张超

穿过生命散发芬芳

调查采访能力考核

想要写优秀的设计测试用例,不懂这个可不行!

程序员阿沐

软件测试 自动化测试 测试开发 测试用例 测试工程师

混合云安全简史

龙归科技

混合云

阿里资深技术专家崮德:如何成就更好的自己

阿里巴巴中间件

Spring Boot 2.0 实现优雅停机

U2647

Spring Boot 4月日更

会议更流畅,表情更生动!视频生成编码 VS 国际最新 VVC 标准

阿里云视频云

阿里云 视频压缩 VVC

我是如何开始写作的

happlyfox

个人成长 4月日更 1 周年盛典

国产监控夜莺v4来了,大幅降低部署维护难度

龙渊秦五

Nightingale 滴滴夜莺

pdf.js使用小结

空城机

大前端 4月日更 pdf.js

DBA 行业是否将会消亡?

BinTools图尔兹

运维 dba 数据库管理工具

罗美琪和春波特的故事...

阿里巴巴云原生

容器 开发者 云原生 开发工具 消息中间件

Fluid 给数据弹性一双隐形的翅膀 -- 自定义弹性伸缩

阿里巴巴云原生

大数据 容器 云原生 监控 弹性计算

当时尚撞上区块链,为潮酷创意赋予专属“ID”

旺链科技

产业链

skywalking dubbo agent 分析

kaiwen

用知识点+实例+项目完全深入地讲解springboot原理,这份《springboot实战派》火了!

Java架构之路

Java 程序员 架构 面试 编程语言

MySQL 表列数和行大小有哪些限制?

码农架构

MySQL 运维

第一课作业纠正

杰语

Spring Boot 两行代码轻松实现国际化

Java架构师迁哥

中寰-卜钢-采访提纲:车联网行业发展趋势

马踏飞机747

采访

何时应该打破规则?_研发效能_Mark Levison_InfoQ精选文章