枕边用户故事:牛仔与童话

  • Mark Levison
  • 郑柯

2008 年 3 月 6 日

话题:敏捷方法论架构文化 & 方法

David Longstreet将自己视为“一个软件经济学家和国际咨询师”,去年他撰写了一篇论文宣称“敏捷软件开发”是一个童话,它只是试图将“牛仔式”开发正统化的一种方式。Maverick 软件开发模型的作者 Geof Slinker,使用逻辑论据来展示 David 思考中的错漏之处,并邀请他以更严格的方式再次论证他自己的观点。

下面这段文字来自 David Longstreet 于 2007 年发表的文章[链接为 pdf 格式]:

到目前为止,软件开发仍然是一种类似于早年美国西部拓荒式的活动。

IT 部门及其人员一直都很懒散。Agile 也没有什么新鲜的,因为它不过是试图将懒散的活动正式化。

Geoff Slinker使用了逻辑论据来 指出 David 思考中的纰漏。Geoff 早年也跟 David 一样,对 XP 持有怀疑态度,甚至着手要写一篇揭露 XP 缺点的论文。然而,开始深入研究 XP 之 后,他逐渐认识到了其中的价值并开始在自己的项目中应用相关实践。针对 David 声称 Agile 是要将懒散正统化的指责,Geoff 反驳说使用这样一个充 满漏洞的论据简直就是自取其辱。

David 声称 Agile 不重视需求和文档规范。Geoff 通过 David 对 Agile 中用户故事的描述来反击他:

(David)先生在讨论结对编程时说到:“结对编程就是:一个程序员写代码,另一个程序员站在他背后观察错误。”

这完全是错误的。他接着说:“我不知道结对编程要解决什么问题。软件开发中的绝大多数问题都与不完整的需求相关,跟编码没多少关系。”

要推翻他所说的关于结对编程的第一部分易如反掌。而且他关于绝大部分问题都与不完整的需求相关这个观点,也是混淆了因果关系,而且这也犯了“想象结果论证”[译注 1] 的错误。

David 还说:

软件开发面临的最大问题就是需求不完整。我琢磨着对于敏捷人士来说,花费更多时间在编码而不是整理需求或者编写清晰的需求之上,是唯一合理的选择。

Geoff 指出这也是混淆了因果关系,并在结尾邀请 David 基于正确的逻辑和引用来源再写一篇文章来向敏捷方法发起挑战。

译注 1:想象结果论证:appeal to consequences,是指通过说明某种主张在个人的想法或是信仰中所造成的影响与结果,来论证这种主张是否成立的一种谬误。

查看英文原文:Bedtime User Stories: Cowboys and Fairytales

敏捷方法论架构文化 & 方法