Steve Freeman 写了一篇 blog 拥抱极限编程(Do do XP) 来反驳我的这篇文章。

我开始厌倦了和那些坚持认为Scrum离开了极限编程就不再有价值的人的无休止的论战。 Scrum 很好用 — 但前提是实施者必须从基础上理解它的价值所在和实施原则。 你应用Scrum所处的环境条件决定了你在实施过程中应该采取哪些措施。 比如,在教堂里实施Scrum和在软件开发中实施Scrum有着不同的一套实施策略。而这两种情况下的实施措施又和传统的Scrum有不同之处。

极限编程的拥护者动不动就抱怨在软件工业中Scrum没有提供很好的开发原则。 但就目前极限编程被业界采纳的缓慢进度来看,真正应该受责备应是XP的缺少实践措施的问题,XP应该为这种状况负责。

从八十年代到九十年代,随着开发语言的进步和更适合于软件设计,人们开发和测试的方式发生 了改变。 在广大的面向对象群体中,有些概念正在缓慢的、但广泛的被人们所接受。例如持续反省、限制责任、测试代码优先(TDD)、持续集成、推迟设计、编码规范、 以及结对编程等。 所谓的极限编程 (Kent Beck和他的一些同事所做的) 也就是将所有的这些好的实践方法集中到一起打成一个包,再加上Jeff Sutherland 1993年在Easel公司实践出的Scrum模式。 某种意义上说,这也就有抽象Scrum概念的第一次具体的实现。

这些都很成功。 然而他们的这些实践经验的推广和采纳并没有像他们想象的那样进行。 也许就是因为取了个极限编程的错误名称; 也许是因为主要的、嗓门最大的拥护者非要说这是唯一真理的原因; 也许是因为管理者恐惧这个新出现的异类,暗中作梗反对它; 也许是因为,说到底,XP也不过是另一种开发方法。 我不知道。 我只知道,只有很少的开发团队宣称和承认采用了XP。

然而与此同时,Scrum正在获得强大的发展动力。 并不需要多少华丽的理由,实际情况却是Scrum正在被为数不少的团队接受,正在用它来改进我们软件的开发过程。 反而是XP现在想来分一杯羹。 他们确实很饥饿。

首先,让我把问题说明白。 我十分赞同软件开发团队采用一些已知的实践指导来提高代码质量、生产更高水平的软件作品。 但为什么这么多人不愿意这么做? 我不太喜欢把十几个任务打个包直接丢给团队,也不喜欢事先指定一种开发方法让他们必须遵守。 那样做很显然违反了“people over process”和自我管理原则。 在好的Scrum实施里,团队成员应根据自身情况找到适合自身的实施策略,这样的Scrum应用过程才是与实际相结合、才有意义。 这才是我追求的进步。 有些Scrum团队一直没有找到很满意的开发方法,这说明Scrum实施方式需要改进,而不是去告诉团队成员强制实施。

我有一个问题思考:如果XP从来没诞生过,有多少团队愿意完全接受所有XP所推荐的方法? 我相信会有很多。 我相信这些宝贵的开发经验会自然而然的被程序员和团队们采用,对我来说,关心的是经验本身,而不是他们出现的形式。 我从来没有“done XP“,但我显然可以写出高质量的软件。 XP的错误就在于坚持要求全盘接受。 这并不是XP的创始人的初衷,可现在却搞成这样。 很可能就是XP导致了这些好的实践经验不被人接受。 很讽刺,不是吗?

另一个大问题是,XP论述写于12年之前,于此至今已有40多种新的语言诞生。 XP倡导者在向人们推荐12年前的、现在可能过时的经验 — 12年相当于整个软件工业年龄的四分之一。 惊人吧。 让人们去发现适合自己的开发方法,他们将会总结出最有效的开发经验,这远不是几个脑瓜好用的人在上个世纪末能创造的。

我强烈要求Scrum倡导者停止与XP的争吵,我们讨论的应该是软件艺术。 这才是我们在这个领域里急切需要的最终目标。 幸运的是,现在有一个有着自己的manifesto的软件艺术运动正在逐步为人们所关注。 最终,我们可以通过好的软件艺术实践运动重新改革我们这个领域,而不是使用那些修修补补的策略。

开发者们:Don’t do XP。 我们要实现一个通常意义上的指导框架,解决多年来的困扰,构建以人为本的核心基础。让我们重新为艺术而工作。或者从此离开这个行业。

远离极限编程 (Don’t do XP)相关推荐

  1. 外刊IT网站经典计算机开发,评论,总结文章汇总共享

    全部文章 ·        2013年十二月 (19) ·        25: 辞掉你的工作,去开发一个应用:我的创业故事 (5) ·        24: 你是一个努力工作的程序员吗?还是一个懒惰 ...

  2. 敏捷开发之XP极限编程

    敏捷方法论有一个共同的特点,那就是都将矛头指向了"文档",它们认为传统的软件工程方法文档量太"重"了,称为"重量级"方法,而相应的敏捷方法则 ...

  3. 20145209 实验三 《敏捷开发与XP实践》 实验报告

    20145209 实验三 <敏捷开发与XP实践> 实验报告 实验内容 XP基础. XP核心实践. 相关工具. 实验步骤 敏捷开发与XP 1.敏捷开发 敏捷开发(Agile Developm ...

  4. 20155310 《Java程序设计》实验三(敏捷开发与XP实践)实验报告

    20155310 <Java程序设计>实验三(敏捷开发与XP实践)实验报告 实验内容 1.XP基础 2.XP核心实践 3.相关工具 实验步骤 (一)敏捷开发与XP 1.敏捷开发 敏捷开发( ...

  5. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验三《敏捷开发与XP实践》 实验报告...

    实验内容与要求 1.XP基础 极限编程(Extreme Programming,XP)是一种全新而快捷的软件开发方法.XP团队使用现场客户.特殊计划方法和持续测试来提供快速的反馈和全面的交流: XP是 ...

  6. 实验三 敏捷开发与XP实践 实验报告 20135232王玥

    一.实验内容 1. XP基础 2. XP核心实践 3. 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2. ...

  7. 20155314 2016-2017-2 《Java程序设计》实验三 敏捷开发与XP实践

    20155314 2016-2017-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验知识点总结 (一)敏捷开发与XP 软件工程:把系统 ...

  8. 实验三:敏捷开发与XP实践

    Java实验三报告 一.   实验内容 (一)敏捷开发与XP 内容:1.敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的开发方法. 2.极限编程(eXtreme Pro ...

  9. XP 与 敏捷开发的关系

    敏捷开发,一直是我所关注的开发方法,但对其没有系统的了解,始终对它有一种神秘感.今天,找到了一篇文章,讲述的敏捷开发和XP编程,才让我明白了以前 所不知道的东西.原来XP编程(极限编程)是敏捷开发的一 ...

最新文章

  1. 我花了10个小时,写出了这篇K8S架构解析
  2. python内置函数open_Python的内置函数open()的注意事项
  3. C++函数模板的重载
  4. 数学建模学习笔记——优劣解距离法(评价类)
  5. Apache(1)——安装
  6. 64位Ubuntu kylin 16.04搭建nfs网络文件系统
  7. mysql outfile 变量_转mysql dumpfile 与 outfile 函数的区别
  8. python地理位置聚类_python – 用于聚类地理位置数据的DBSCAN
  9. docker集群管理工具_太多选择:如何选择正确的工具来管理Docker集群
  10. 散酒到底多少钱才是纯酿的
  11. NOIP2016 游记
  12. matlab入门(适合初学者)
  13. 踩坑之路---JWT验证
  14. 攻防世界Reverse-maze
  15. 程序员加油站 -- 不是人人都懂的学习要点
  16. 图书管理系统 (大一小白级别)
  17. Parameter 'cId' not found. Available parameters are [id, param1]
  18. esp32 鸿蒙,ESP8266最佳开发板--ESP-LAUNCHER开发板评测
  19. axure rp 9.0.0.3687 默认选中bug
  20. java.io.IOException: Expected at least 2 bytes

热门文章

  1. jquery 手指滑动多半屏_JS拖拽专题(五)——「玩出花儿来」移动端滑动事件的封装...
  2. 【项目实战课】快速上手目标检测任务,MMdetection框架详细解读与案例实战
  3. 【研究院】滴滴研究院,都在做什么
  4. 全球及中国沼气发电行业现状及项目发展动态调研报告2021年版
  5. 全球及中国润滑油市场产销规模及营销竞争分析报告2021-2027年
  6. JS与flash交互通信控制的方法
  7. mysql 枚举类型 映射_model类中enum类型与数据库字段的映射
  8. C# 往excel出力数据
  9. Uncaught TypeError: $(…).orgcharts is not a function
  10. 【链表】BZOJ1588: [HNOI2002]营业额统计