他很少提起往事,也不再提及二十年前那场引起软件行业变革的会议,他专注于当下,一直活跃在敏捷领域。八十多岁的他依然运营维护着网站和博客,是极限编程网站 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. Kotlin 入门教程

    Kotlin 入门教程 Android / Java https://developer.android.com/kotlin?hl=zh-cn 使用 Kotlin 开发 Android 应用 使用 ...

  2. npm & package.json & directories & files

    npm & package.json & directories & files package.json https://docs.npmjs.com/files/packa ...

  3. Build your own React

    Build your own React https://pomb.us/build-your-own-react/ https://github.com/pomber/didact demo htt ...

  4. HTML Imports & deprecated

    HTML Imports & deprecated https://caniuse.com/#search=html imports https://www.chromestatus.com/ ...

  5. SharedPreferences 数据传输中遇到的一些问题总结

    原构想:MainActivity 设置两个按钮,btn1--跳转Main2Activity通过复选框组选择并提交,btn2--跳转Main3Activity通过RecycleView显示选择结果. 主 ...

  6. Linux文件/proc/net/tcp分析

    本文转载自Linux文件/proc/net/tcp分析 导语 /proc/net/tcp文件提供了tcp的连接信息,是由net/ipv4/tcp_ipv4.c中的tcp4_seq_show()实现信息 ...

  7. banner自用图床

    放些常用的图做图床,也不在别的平台用.

  8. 死磕Spring之IoC篇 - BeanDefinition 的加载阶段(XML 文件)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  9. 搭建Elasticsearch可视化界面 Kibana

    前言 每一个版本的es都有一个对应的Kibana版本,建议和es相同版本,官网地址: 点击进入下载地址 步骤 1.解压 tar -zxvf kibana-7.2.0-linux-x86_64 2.修改 ...

  10. docker封装Spring Cloud(单机版)

    一.概述 微服务统一在一个git项目里面,项目的大致结构如下: ./ ├── auth-server │ ├── pom.xml │ └── src ├── common │ ├── pom.xml ...