写点什么

重构敏捷宣言

  • 2007-05-31
  • 本文字数:1537 字

    阅读完需:约 5 分钟

今年,敏捷宣言已经度过了它六周岁的生日,在敏捷的传播和(不可避免的?)效果弱化的过程中,我们见到了梦想的肥皂泡逐一幻灭。甚至在敏捷成为真正的主流之前,就已经有了关于后敏捷主义(post-agilism)的讨论。有些人建议说,在过去的几年里,我们已经成长了起来,现在该是更新敏捷宣言的时候了。身为敏捷宣言的作者之一的Brian Marick,也给自己在 XPDay Toronto 上讲演的主题命名为:《时隔六年:敏捷宣言几成明日黄花》,并随后在博客中做了详细说明

虽然敏捷宣言中声称“客户协作胜于合同谈判”,但它从一定程度上可以算是对制定合同的一些建议:我们承诺会频繁交付可工作的软件,并且我们也不会因为项目后期的需求变更而牢骚满腹;对应的是,不要用文档、工具和过程这种有时候看上去会对项目有所帮助但实际上并无益处,并一度因为信任度的缺乏而用来监视我们的东西来延缓我们的开发进度。你不需要直接盯着我们的工作,而是应该常常和我们沟通。 在当时,这种说法的出现无异于一剂强心剂,并且推动了项目的成功。但是那个时代已经过去了——敏捷已经大受欢迎,对项目开发而言也成了更加安全的选择。我们现在所面临的挑战已经不再是选用敏捷,而是选用敏捷后如何进行应用。

Marick 接着给出了宣言中所缺少的四种理念:技能纪律舒适 _ 和 _ 快乐。我们在 InfoQ 上曾有过类似的报道:Kent Back 针对如何更加快乐的工作和如何提高对工作的满意度的话题,和其他人进行了讨论。

Ron Jeffries 和 Chet Hendrickson 最近弄出了一个 5 天的训练课程,名为时尚优雅的五日软件开发。当我问起 Ron 为什么社区还需要另外一类 Agile 或 TDD 时,他回答说:

这并不是“另一类 Agile”。这实际上是一个工作间,人们通过观看我和 Chet 协同工作,可以以特殊的方式来了解敏捷,并对它产生兴趣。我们认为完善的软件开发过程应当包括优秀的开发技能和严格的纪律约束,同时还需要大家在轻松的环境下全心投入——这就是我们所说的“时尚优雅”。我们的计划是帮助人们理解我们的目标和完成目标的方式,并且让他们能够通过充分的亲身体验来判断这种方式是否适用于他们自己的开发过程。

Simon Baker 记录了在从前的 Agile Practitioners Forum 中进行的谈话:

在从前的 Agile Practitioners Forum 中,Colin MacAndrew 问了所有人一个问题:“敏捷宣言需要重构吗?” 当时我很高兴,因为着实有不少人站到了它的对立面。现在 Colin 把他的问题变成了敏捷宣言是否应该有所改进,并没有提到要重写宣言,但是仍然有人坚决抵制,这就让我感到奇怪了。我感觉到一场争执的风暴即将来临,确实有举办一次会议的必要了。

Baker 的想法是,敏捷宣言中的一些概念是商务群体很难理解的,如果把精益开发中的一些概念(诸如追求卓越,理解并消除浪费,整体优化和排队理论)加入到敏捷宣言中,就可以解决这个问题。

Jason Yip 的观点则相反,他给出了重构宣言后的一个精简且风趣的版本

  • 让我们互相交谈
  • 让我们构建软件给你看
  • 让我们彼此信任
  • 让我们对正在发生的一切和我们所学到的东西做出响应

敏捷宣言本身应当是敏捷的吗?大多数人应该会同意这个观点,但是当整个敏捷社区的核心价值已经发生了变化的时候,对敏捷宣言的修改就该提上日程了。我们的核心价值变了吗?

不管答案如何,敏捷社区中一些卓有远见的人正在从他们的经验中探寻前行的路,并找出那些在宣言中没有指出的问题。当社区中关于如何构建更优秀的软件的理念在日趋完善的时候,也许敏捷宣言理应反映出这一变化。

查看英文原文: Refactoring the Agile Manifesto

译者简介:李剑中国Eclipse 社区插件开发版版主,在JavaEye 拥有 RCP 专栏,北航软件工程硕士。现就职于 Ethos ,热衷于设计模式,敏捷软件开发的研究与实践。为 InfoQ 中文站贡献内容,请邮件至 china-editorial@infoq.com

2007-05-31 09:002627
用户头像

发布了 197 篇内容, 共 63.3 次阅读, 收获喜欢 21 次。

关注

评论

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

一个写了3年半flutter的小伙,突然写了2个月uniapp的感悟!

编程的平行世界

uni-app Vue 前端 Flutter Android Apk

Mac部署AIGC图片生成服务——基于stable-diffusion

珲少

MedicalGPT:基于LLaMA-13B的中英医疗问答模型(LoRA)

汀丶人工智能

人工智能 自然语言处理 LoRa llama LLM模型

JVM 调优神器 arthas

java易二三

编程 计算机 Arthas

用Orange Pi Zero3定制安卓电视盒子备忘

sai

Orange Pi Android TV

ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型

汀丶人工智能

人工智能 自然语言处理 NLP 大模型 关系抽取 命名实体识别

如何在几分钟内创建一个带有业务数据的官网 AI 智能客服?

Dify

开源 AI开发 LLMOps

文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题

福大大架构师每日一题

福大大架构师每日一题

Dify.AI 接入 Claude2 模型:支持 100K token 上下文,登录即免费获得 1000 次消息额度

Dify

开源 更新 LLMOps

想学Python高级编程?必须了解这个小技巧:match-case!

程序员晚枫

Python

使用Keepalived实现Nginx的自动重启及双主热备高可用

java易二三

编程 程序员 计算机

Nginx的高可用

java易二三

编程 程序员 计算机

在 Amazon EMR 上构建实时数据湖

亚马逊云科技 (Amazon Web Services)

Amazon EMR

2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量。 其中的每一个数字出现的频率都相同。

福大大架构师每日一题

福大大架构师每日一题

基于中文金融知识的 LLaMA 系微调模型的智能问答系统

汀丶人工智能

人工智能 自然语言处理 知识图谱 LoRa NLP 大模型

解决 go-zero 注册 etcd 出现 “Auto sync endpoints failed.” 的问题

非晓为骁

golang etcd go-zero etcd-client 服务注册发现

代码随想录Day32 - 贪心算法(二)

jjn0703

C++中互斥锁的使用

芯动大师

JVM类加载器子系统ClassLoader

java易二三

编程 程序员 计算机

请别再问Spring Bean的生命周期了!

java易二三

程序员 Spring Boot 计算机 Spring Bean生命周期

Spring Boot学习路线1

小万哥

Java spring 后端 Sprint Boot Sprint Cloud

代码随想录Day31 - 贪心算法(一)

jjn0703

大厂程序员的水平比非大厂高很多嘛?

程序员小毕

Java 程序员 面试 程序人生 架构师

懒得改变原始对象?JavaScript代理模式教你怎样一步步偷懒!

Immerse

JavaScript 设计模式 代理模式 Proxy Design Pattern

从互联网到云时代,Apache RocketMQ 是如何演进的?

阿里巴巴云原生

Apache 阿里云 RocketMQ 云原生

业务模块在你做之前,一定要多想呀?

Bonaparte

产品 产品经理 产品设计 产品思维 产品需求

Dify.AI 用户直面会:Dify 产品规划与 LLM 应用落地常见问题

Dify

开源 AI开发软件 LLMOps

重构敏捷宣言_研发效能_Amr Elssamadisy_InfoQ精选文章