他很少提起往事,也不再提及二十年前那场引起软件行业变革的会议,他专注于当下,一直活跃在敏捷领域。八十多岁的他依然运营维护着网站和博客,是极限编程网站 XProgramming.com 的作者,该网站是极限编程网站中运行时间最长、最大的单人网站之一,目前包含200多篇文章。他在发布的文章里进一步阐述了开发人员应远离“人造敏捷”或“黑暗敏捷”形式,而应更接近宣言的价值和原则。他是极限编程的创始人之一,Ron Jeffries。

编程工作

Ron Jeffries 从事编程行业的时间比大多数人的年龄还要久,当他在战略空军司令部总部工作时,同事们无意间给他的一本 FORTRAN 手册让他开始了编程的生涯,在1961年,他为战略空军司令部总部的 IBM 704编写了他的第一个计算机程序。

在这之后,他和他的团队研发了收入超过五亿美元的软件产品,其中包括汇编程序、FORTRAN、Pascal、C、C ++和 Smalltalk 中的商业软件。还使用 LISP、Forth 及其他六种语言进行了大量的非商业开发,实现了商业操作系统、编译器、关系和集合理论的数据库系统以及广泛的应用程序。他自述认为自己足够幸运,在入行初期就接触并实践了极限编程。从那之后,“除了帮助其他人,我没有做其他任何事”,这就是他回顾自己所有成功的项目得出的经验:将 XP 技术应用于所有要完成的项目

Dark Scrum

“我最初的‘敏捷’导师肯特·贝克(Kent Beck)有一次曾经提到,他发明极限编程(Extreme Programming)的主要目的之一是让程序员的生存环境变得更安全一些。然而事实证明,对于程序员而言,这个世界尚不安全,尤其是乱用 Scrum 可能会给程序员带来更多的不安全问题,Scrum 发明人之一 Ken Schwaber 曾说这种情况让他很难过。”在一次访谈中,Ron 这样说道。

他在博客上分享了一篇帖子,主张开发人员应该放弃“敏捷”。该帖子进一步阐述了开发人员应远离“人造敏捷”的形式,而应更接近宣言的价值和原则。

据他称,“人造敏捷”和“黑暗敏捷”这两个术语被作者用来强调各种所谓的“敏捷”方法,这些方法导致开发人员的生活变差而非改善,这是《敏捷宣言》最初思想的对立面。Jeffries 指出发生这种情况的主要原因是:这种“敏捷”对企业有利,对开发人员则不利;开发人员依然不具有自主性,而是被强制性工作。因为借助各种不同的教练和培训,能够提高问题的可见性,通常可以使高层管理人员和整个公司做出更明智的决策。

自上而下的推行敏捷通常意味着某些事情是由高层决定,然后在整个组织中实施或推广。然后,大多数人在没有经过适当的培训或指导、不理解其背后真实理念的情况下就被要求采用敏捷。这样就会给开发人员带来的更多干扰、更短的工作时间、更大的压力以及要求“更快”的需求。对于使用 SAFe、LeSS和其他功能的大型 Scrum 实践中,通常会出现这种情况。

回到敏捷宣言的根源,Ron 强化了这样一种观念,即敏捷背后的最重要的事情是思维方式、价值观和原则,因为它们仍然提供构建软件的最佳方法

因此,无论组织采用何种正式的框架或方法,每个敏捷开发人员都应以以下方式工作:每周产出可运行的集成软件;不断提升自身技能;保持软件设计干净;在软件价值的基础上进行沟通对话

敏捷之外

和 Jeff 与 Ken、Thomas 与 Andy 一样,Ron 也有合作更为紧密的伙伴,他和 Chet Hendrickson 是一路相识相知的好伙伴,作为长期的同事和朋友,二人对定义敏捷性都产生了巨大影响。Chet Hendrickson 自1996年以来从事敏捷软件开发工作,也参与开发了极限编程。在2000年,Ron Jeffries、Ann Anderson 和 Chet Hendrickson 一起撰写了《Extreme Programming Installed 》。这本书详细介绍了 XP 的核心实践,如何做以及如何共同帮助团队取得成功。

Ron 最近的著作是《软件开发本质论》,该书于2015年初发行。本书开门见山的打了个比喻:软件开发就像是穿越一片岩浆,但在这片岩浆中存在一条“自然之路”,我们的目标就是找到这条路并尽量行走在上面,而不是陷入岩浆之中。那么如何做到这一点呢?这本书对此进行了解答。这本书所运用的比喻、图片等表达方式体现着 Ron 的性格特征,他拥有天马行空的想象和强大的表达能力。他是敏捷软件开发中技术改进和卓越表现的坚定支持者,性格较为强势,被朋友们描述为“尽管他有时举止粗鲁,但经常被认为是内心住着泰迪熊”。

从个人阅读到手绘到无人机,工作之余,他的兴趣爱好广泛。还会像现在的网红博主一样在博客上为大家进行“好物推荐”,不遗余力地给读者“种草”他认可的好东西,比如可以容纳彩铅、橡皮、素描本甚至 iPad 的帆布包;也会发挥技术严谨优势,对科技产品进行测评,分析新旧款无人机的不同体验感受。从这些方面来看,我们确实得以窥见这只住在 Ron 内心的泰迪熊,剥开强势的外衣,他的本意是在向世界传递价值。

这也就像他反对现在的某些“敏捷”的原因一样,不管形式如何,惠及程序员、提高效率、产出价值,这些才是 Ron 所倡导的敏捷本质

敏捷史话(十二):你现在接触的敏捷也许是“黑暗敏捷”——Ron Jeffries的更多相关文章

  1. 敏捷宣言(Agile Manifesto)和敏捷开发十二原则

    敏捷宣言 The Agile Manifesto Individuals and interactions over Process and tools 个体与交互 重于 过程和工具 Working ...

  2. 敏捷史话(二):Scrum社区的悲剧性损失——Mike Beedle

    2018年3月23日,在美国的芝加哥发生了一起意外刺杀事件.一名男子刺杀了一位首席执行官,而这位不幸的首席执行官就是<敏捷宣言>的合著者--Mike Beedle.Mike 的这场意外令 ...

  3. 敏捷史话(九):用做面包的方式做敏捷——Alistair Cockburn

    在一次用例和敏捷技术交流大会上,Alistair给大家分享了自己比较崇尚的三个字: "守""破""离",他用做面包的例子,形象地将这三个字与 ...

  4. 敏捷史话(十四):敏捷之峰的攀登者 —— Jim Highsmith

    "我们希望,一起组成的敏捷联盟能够帮助到其他同行,帮他们用新的更'敏捷'的方式去思考软件开发.方法论和组织.做到这一点,我们就得偿所愿了."Jim Highsmith 在雪鸟会议结 ...

  5. 敏捷史话(十五):我发明了敏捷估算扑克牌 —— James Greening

    雪鸟会议 雪鸟会议前夕,James Grenning 在 Object Mentor 与 Robert C. Martin 一同工作,彼时组织雪鸟会议的 Bob 大叔盛情邀请 James,告知他会议的 ...

  6. 敏捷史话(六):也许这个人能拯救你的代码 —— Robert C. Martin

    Robert C. Martin( 罗伯特·C·马丁),作为世界级软件开发大师.设计模式和敏捷开发先驱.C++ Report杂志前主编,也是敏捷联盟(Agile Alliance)的第一任主席,我们尊 ...

  7. [CSAPP笔记][第十二章并发编程]

    第十二章 并发编程 如果逻辑控制流在时间上是重叠,那么它们就是并发的(concurrent).这种常见的现象称为并发(concurrency). 硬件异常处理程序,进程和Unix信号处理程序都是大家熟 ...

  8. MINA、Netty、Twisted一起学(十二):HTTPS

    由于HTTPS协议是由HTTP协议加上SSL/TLS协议组合而成,在阅读本文前可以先阅读一下HTTP服务器和SSL/TLS两篇博文,本文中的代码也是由这两篇博文中的代码组合而成. HTTPS介绍 上一 ...

  9. Gradle 1.12用户指南翻译——第五十二章. Maven 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...

随机推荐

  1. 如何在 macOS 上进行滚动截屏

    如何在 macOS 上进行滚动截屏 Shift-Command-5 https://support.apple.com/zh-cn/guide/mac-help/mh26782/mac demo Xn ...

  2. Chrome & console.log & color & js

    Chrome & console.log & color & js console.log & color // OK log(`%cchat_list =\n%c${ ...

  3. macOS 屏幕共享, 远程协助

    macOS 屏幕共享, 远程协助 Screen Sharing App 隐藏 app bug command + space 搜索 https://macflow.net/p/397.html Tea ...

  4. JUC并发集合类CopyOnWriteList

    CopyOnWriteList简介 ArrayList是线程不安全的,于是JDK新增加了一个线程并发安全的List--CopyOnWriteList,中心思想就是copy-on-write,简单来说是 ...

  5. django学习-20.python3中的特殊方法【__str__】的作用

    目录结构 1.前言 2.[__str__]特殊方法的具体使用 2.1.当使用print打印一个类被实例化后生成的对象的时候,若类里有定义了[__str__]特殊方法,是打印出这样的数据:[__str_ ...

  6. rabbitMQ高可用方案

    普通模式 默认的集群模式,以两个节点(rabbit01.rabbit02)为例来进行说明.对于Queue来说,消息实体只存在于其中一个节点rabbit01(或者rabbit02),rabbit01和r ...

  7. 【Notes_9】现代图形学入门——光线追踪(基本原理)

    跟着闫令琪老师的课程学习,总结自己学习到的知识点 课程网址GAMES101 B站课程地址GAMES101 课程资料百度网盘[提取码:0000] 目录 光线追踪 为什么要光线追踪 soft shadow ...

  8. Java多线程并发编程/锁的理解

    一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...

  9. centos7.5+nginx+php急速配置

    centos7.5+nginx+php急速配置 centosnginxphp 更新系统以及添加源 yum update yum -y install epel-release 安装php以及配置 yu ...

  10. 后端程序员之路 55、go redis

    redigo有点像hiredis,只提供了最基本的连接和执行命令接口. 找到个不错的redis库: https://github.com/go-redis/redis func ExampleNewC ...