译者注: Bob大叔14年后再次谈论极限编程。极限编程经历了14年的风风雨雨后,Bob大叔将会给它怎么样的定义那?

在我手中拿着的一本白皮薄书,在14年前彻底的改变了软件世界。这本书的标题是解析极限编程,副标题是拥抱变化。作者是Kent Beck,出版时间为1999年。

这本书很薄,不到200页。排版很宽,间隔很远。写作风格即自由散漫又平易近人。章节不多,概念简单。

但是其影响却像地震一样,甚至至今震动仍未平息下来。

起始于第53页的章节10,列出了12项实践,引爆了行业内的大辩论。并催生了一场革命,改变了我们编写软件的所有方式。这些实践是:

  • 计划游戏:当今被成为SCRUM。此观点认为软件应该按照任务列表中的优先级循序渐进的开发。

  • 小版本:应当频繁和渐进式地部署软件。

  • 隐喻:该概念最终在Eric Evans编写的《领域驱动设计》一书中明确化。系统结构应当建立在针对问题域的简单的智力模型之上。

  • 简单设计:任何时候都要保证系统尽可能的简单,不用考虑对未来的担心。

  • 测试:程序员和客户一起编写自动化测试来验证产品代码的行为与预期一致。当今我们称之为测试驱动开发(TDD)及验收测试驱动开发(ATDD)。

  • 重构:软件内部结构能够并且应当被持续改进。

  • 结对编程:如果团队成员各自单独工作,那么这称不上一个团队。真正的团队需要经常通过键盘进行合作。这样可以相互充分的分享知识, 正是团队成员的义务。

  • 集体所有权:代码归属于整个团队,而不是某个个体。

  • 每周工作40小时:经常加班的团队是失败的团队。

  • 现场客户:在团队中加入一名真正的客户,用于对需求负责,开发团队能够始终轻易的接触到他。

  • 编码标准:团队应当使用一致的编码风格保证代码整洁,易于沟通。

争议?

很奇怪是不是?是不是并不是所有实践都有争议?但是14年前引起了疯狂争议。确实,整本书出版时,人们争议书中的描述不可能应用于实践,争议所有拥护者是如何的必躬屈膝,不听劝解,甚至是一行代码没写过的傻子……

呃,我不应当让这些过去的感受压倒我。因为,毕竟它们早已消失不再,而我们依然存在。

看看这12项实践,你没有践行其中哪项?我温柔的读者中的大多数可能长期的践行大多数实践。如果说它们已经被普及肯定稍显夸张,但是更不夸张的说,它们现在已经成为主流。更重要的是,还未践行这些实践的团队至少在尝试它们。这些实践已经可以被完美的落地实施,而不再是一个被唾骂的异端。

崛起

过去的14年已经变得陌生。极限编程论战催生出来的敏捷运动,飞速成功,随后被项目经理接受,但是将程序员排斥在外。我们已经看到了确定性的、疯狂的成功,以及相应的(可预见的)无力的认证。我们看到了只采用了计划游戏(例如SCRUM)而忽略其他11个实践的策略失败了。这种策略被Martin Fowler称为无力的Scrum。我们已经经历了咨询师和作者分离的持续的推动,以及看板、精益及每一个新的项目管理方法的竞争。我们已经看到了软件工艺运动的发展,以及敏捷基因被慢慢的退化和稀释。

在所有的炒作和翻腾中,这12项实践依然留存,只是其中一些名字有稍微改变。一周工作40小时变成了可持续增长率。测试变成了TDD。隐喻变成了DDD。小版本变成了持续集成和持续部署。但是尽管名称改变,但是这些实践依然和14年前描述的差不多。

我们也看到极限编程这个名称几乎完全不用了。极少数人现在还使用这个词。一些人仍然使用XP这个缩写,但名称的大部分都已经消失。如果听到一个团队描述他们正在做的是极限编程,甚至正在践行所描述的这12项实践,我会觉得非常罕见。名称变了,但是实践未变。这些实践是持久的。 在翻腾,炒作,争议的咆哮和胡言乱语中,在人类争夺一个又一个位置的风雨中,在人类的贪婪,激情和骄傲的杂乱中,在所有的政治中,这些实践依然留存。

稳定的价值观

我相信这些实践这么持久是因为他们基于稳定的价值观这个坚实的基础。Kent Beck在他的书中第7章第29页描述了这样的价值观:

  • 沟通

  • 简单

  • 反馈

  • 勇气

我可以尝试论证为什么这些价值观是正确的,但是我他们自身已经论证了这些。软件工匠能够拒绝这些价值观中的任何一个吗?软件工匠能够不努力争取在工作中保证这些价值观的展现吗?这些价值观正是软件工艺的价值观。

我可以尝试辩论书中这12项实践拥抱和体现了这些价值观,但是这些实践的持久性足够证明,尽管围绕这些实践的名词和运动已经消散。

成功

极限编程已经成功了!它成功的超越了其支持者的最疯狂的梦想。它的成功是因为从诞生时的争议中幸存下来,在不可避免的倡导者的流失中幸存下来。它成功了是因为它活的比自己的名字更久!

极限编程的成功正像结构化编程的成功。甚至没人再会考虑结构化编程,因为他们一直在使用结构化编程。我们正在尝试达到没人再会考虑极限编程的目标。

这就是成功!一个想法从这场运动诞生一直存活到成为我们日常生活的一部分,这就是成功!

回顾

所以现在,2013年的最后几个星期,我花了些时间回顾1999年。那个时间Kent Beck写了一个突破性的书。这本书改变了一切。回顾并谨记:极限编程。简单的说,请承认它是:

优秀的软件实践的核心

原文出处: http://blog.8thlight.com/uncle-bob/2013/12/10/Thankyou-Kent.html, 作者Uncle Bob Martin。

转载于:https://www.cnblogs.com/huang0925/p/3472289.html

[翻译]Bob大叔:反思极限编程相关推荐

  1. 回顾Bob大叔的简洁架构

    喔家ArchiSelf Robert Martin 就是我们常说的Bob大叔,是码界的骨灰级人物了,在4年前提出了所谓的简洁架构,值得回顾反思一下,看看是否可以借鉴到微服务中呢? 大叔在文中介绍了一下 ...

  2. 软件行业进入“黑暗时代”,Bob大叔开启“整洁三部曲”,正式清理门户

    12岁就在编程界展露头角.13岁造出自动打字机.16岁开发出PDP-8汇编器,Robert C. Martin是当之无愧的世界级编程大师.如今,他是设计模式和敏捷开发先驱.敏捷联盟首任主席.C++ R ...

  3. “让代码能工作”才是专业开发者的头等大事?看看Bob大叔怎么说

    当有人查看底层代码实现时,我们希望他们为其整洁.一致及所感知到的对细节的关注而震惊.我们希望他们高高扬起眉毛,一路看下去.我们希望他们感受到那些为之劳作的专业人士们.但若他们看到的只是一堆像是由酒醉的 ...

  4. [翻译]三张卡片帮你记住TDD的基本原则

    原文地址:http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-tes ...

  5. 初二英语上册50页2d翻译,初一英语上册41页2d翻译

    七年级上册英语第九单元50页2d的翻译 Hello!How'sBobtoday?你好!鲍勃今天过得如何? That'sOK.IlikeMondaysbecauseIhavePEandhistorycl ...

  6. 完全拷贝的一份,程序员阅读书单

    Apocalypsa Rumination Introspection 博客园 首页 新随笔 联系 订阅 管理 随笔 - 28  文章 - 1  评论 - 1046 程序员必读书单 作者:Lucida ...

  7. 程序员必读书单1.0

    原文:http://lucida.me/blog/developer-reading-list/ 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必 ...

  8. 转:程序员必读书单 1.0

    本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读.旨在成为最好最全面的程序员必读书单. 前言 Reading makes a ...

  9. 程序员练级攻略(2018)-陈皓-笔记整理

    程序员练级攻略(2018)     开篇词     入门篇         零基础启蒙         正式入门     修养篇         程序员修养     专业基础篇         编程语 ...

最新文章

  1. Spring for Android 1.0.0发布
  2. Martix工作室考核题 —— 2019-3-8 第一题
  3. UVA208Firetruck 消防车(图的路径搜索)
  4. Leetcode每日一题:169.majority-element(多数元素)
  5. python中exit的作用_python中,exit,return,sys.exit()等的区别与使用方法 | 学步园
  6. 技校学高铁还是计算机,华蓥高铁动车司学那个专业好,高铁职业技术学校面试...
  7. reimage许可证密钥_思科 ASA 和 Firepower 威胁防御重新映像指南
  8. 51单片机定时器与流水灯
  9. 傲腾readyboost_使用SD卡和ReadyBoost提升上网本速度
  10. c语言-计算摄氏温度
  11. webpack的source-map的详解
  12. 如何申请微信公众平台帐号
  13. 2021-03-28
  14. 打赢防“疫”战,云服务商都做了什么……
  15. 3秒钟解决windows字符间距变大,输入字母间距变大问题
  16. CCMP之播放列表(高仿千千静听)
  17. 为什么‘A‘的ASCII码是65,‘a‘是97呢?
  18. 推荐系统——Converged Recommendation System Based on RNN and BP Neural Networks
  19. 1085: [SCOI2005]骑士精神
  20. 我国自主研制成功铯原子喷泉钟 时间“精度”提高到600万年不差1秒

热门文章

  1. python 通达信上传云端_云端同步的问题-通达信知识 -程序化交易(CXH99.COM)
  2. 手机sim卡被格式化了数据怎么找回来
  3. 云、AI、5G技术驱动时代,文娱产业如何实现云上突围?
  4. Yes yes yes yes yes yes
  5. 重识MySQL -《MySQL是怎样运行的》
  6. 今日份PS练习|长春花蓝海报设计稿预览
  7. 微信公众号中图文素材如何实现各种边框等样式
  8. C 喵帕斯之天才算数少女 SDUT
  9. 机器人速度与车轮速度的转换
  10. JavaScript运算符 详解