“ 敏捷已逝,但敏捷精神长存。因为所谓的敏捷专家卖给你的是方法论,而不是价值。”当多数人都在从“敏捷”身上榨取利益时, Dave Thomas 成为了一位逆行者。在敏捷实践中他不断尝试,以寻找敏捷最务实的价值。

“敏捷是什么”

早在2001年春,Dave 参加了发布《敏捷宣言》的雪鸟会议,成为了《敏捷宣言》的17个作者之一。虽然 Dave 对敏捷本身的价值毫不存疑,但之后由于很多出于不同目的的人,将无限多的内容加到了“敏捷”中,导致“敏捷”越来越违背敏捷的实质。此时的“敏捷"已非彼"敏捷",Dave 不愿再背上“敏捷”的标签,开始追求真正的敏捷性。

十几年的敏捷实践,带给 Dave 的不仅是项目效率的提升,也让他明白了目前敏捷的误区有多大。直到2014年,Dave 在一次大会上撕碎了敏捷被很多自称敏捷专家的人赋予的华丽外衣:“敏捷已逝,但敏捷精神长存。因为所谓的敏捷专家卖给你的是方法论,而不是价值。”

Dave 告诉大家,他没有 CSM、CSP、CSXX 等认证,但依然可以在自己的项目上很好地运用着敏捷。显然,与市面上大量的敏捷认证及方法论相比,Dave 更专注于个体对敏捷实践的思考,而不是照搬敏捷专家的说法。

在 Dave 看来,敏捷不是一个产品。敏捷的产生,是因为当初他们有过一些犯错的经验,所以才总结出4条价值观,希望减少后来人试错的时间。但现在很多人只强调敏捷可以让软件成本更低、交付更快、质量更高,却没有强调敏捷还需要严格的纪律来约束团队,这需要与时俱进。

对于敏捷,Dave 总结了三个特点:非常简单,无需复杂的流程,也无需各种“敏捷”专家。由此,他还提到一万小时理论: 要成为某领域的专家,要花一万个小时去实践操作,这样此领域的知识在脑海中有一个根深蒂固的概念,大脑会自动去做这件事,才有可能成为这个领域的专家。

同样,敏捷实践也需要多操练、因时而变, 让敏捷成为一种习惯和不用思考的东西,这样敏捷才会真正给我们带来价值。

“I am a programmer”

Dave 是敏捷圈里的一股清流,他对敏捷始终保持着清醒的认知。在很多活动上,他的自我介绍,也仅仅是以“ I am a programmer”作为开始。谈到程序员的身份,还要从 Dave 高中时期谈起。

Dave Thomas 出生于1956年,他最早接触编程是在高中时期。当时,Dave 在学业之余报名了编程课,课上学的是 Basic 语言,只需要将代码敲到纸带上,再通过一台调制解调器将数据传到大型机器上,机器就可以运行了。

尽管过程稍显繁琐,但长时间摸索下来,Dave 发现编程十分符合他的大脑逻辑,这种极具创造性和精确性的体验,让 Dave 自此一发不可收拾地爱上了编程。

大学时期,Dave 在伦敦的帝国理工学院进修计算机科学,正式敲开了编程世界的大门。

经历了多个编程项目, Dave 拥有了丰富的经验与发散思维。在一次项目中,Dave 认识了 Andy Hunt,两人在项目中经常给很多程序员建议,像在部署前对软件要进行测试等。诸如此类的建议不仅得到了很多程序员的肯定,也确实令开发过程得到了有效改进。为了把这些敏捷实践过程中的建议与技巧整理下来,他们辞掉了当时的工作,花费了一年半左右的时间整理成了一本书。1999年前后,两人合著的《程序员修炼之道》出版了,并获得了 Jolt 效能大奖。

“不要让自己成为一个标签”

在2012年全球软件开发大会上,Dave 提到了标签理论。他认为标签是一个名词,只是表明你是做什么的,而限制了你如何去做。尤其是作为一名程序员,Dave不希望在这个职业前面加上任何的标签去修饰。比如他热爱 Ruby,但不想说自己就是一个 Ruby 程序员,可以说是使用 Ruby 来解决问题的。

就这样, Dave 常常把一个标签改成一种解决方案,也就为自己创造了更多的可能性。

在2003年,Dave 跟 Andy Hunt 一起创办了“The Pragmatic Bookshelf”出版公司。两人还一起合著出版了其他十多种作品,其中包括 Ruby 语言类。

Dave 是一个 Ruby 语言的热心推行者,写了《Programming Ruby》等相关书籍,每天写 Ruby 脚本是他生活中的一大享受。在刚开始接触时,尽管 Ruby 社区人很少,但 Dave 抱着交朋友的心态经常参加 Ruby 大会,并乐在其中。在 Ruby 的开源社区,Dave 提交过几千行的代码和文档,他认为在开源社区这样做不仅能帮助别人,也能让提升自己在社区中的名誉和声望。

2009年,Dave 在敏捷中国大会上,带来了一场“ 程序员修炼之道·十年”主题演讲。十年间,软件行业发生了翻天覆地的变化,《程序员修炼之道》作为十年前的出版书籍,虽然案例看起来古老了一些,但背后的概念仍然具有很多现实意义。比如“DRY(Don’t Repeat Yourself)”、 “Code Kata ”等原则,这些方法在现今仍然很适用。大会上,Dave 对书中提出的建议进行了反思与修正,也为 下一个十年(2019年)中,《程序员修炼之道》第2版的面世做好了铺垫。

改变世界的人看似拥有比常人多出一倍的时间。生活中的 Dave,记性很差,但凡生活中能够用自动化解决的事物,无一例外都被他用 Ruby 成功打造,这个生活习惯也被 Dave 运用在工作中。

作为出版商,Dave 团队的工作能力非常出色,很多出版商发布一本新书,往往需要提前一两天开始准备,而 Dave 利用自动化的线上装置只需要花费5秒钟。公司的高度自动化让团队有了更多空余时间,他们没有固定的办公室,大家都在家里工作。Dave 每天起床后查查邮件、遛遛狗、了解新的科技、继续探索……在晴朗的天气下,边晒太阳边开始一天的工作。尽管每天的工作时间多于8小时,但由于生活与工作分布在各个时间段里,Dave 以享受生活的方式享受着工作。

当然,在各个角色的行进过程中,不是一路的繁花似锦。Dave 也会跟人分享:“我也常常会有感到艰难的时候,但每次考验过去之后,你的技艺都将更上一层楼。所有值得做的事情都是困难的,但克服这些挑战不仅会让你更强大,还会让你变得更加投入。”

由此可见, 能够改变世界的人,首先改变的是自己。让自己不只是具备广泛的能力,还能将不同的技术结合起来创造价值。改变自己,你准备好了吗?

敏捷史话(五):敏捷已逝 —— Dave Thomas的更多相关文章

  1. 敏捷史话(七):从程序员、作家到摇滚乐手——Andy Hunt的多面人生

    与其说 Andy Hunt 是敏捷宣言的创始人,不如说他是一名专业作家来得更为合适.他的<实用程序员><程序员修炼之道:从小工到专家><编程 Ruby:实用程序员指南&g ...

  2. 敏捷史话(十二):你现在接触的敏捷也许是“黑暗敏捷”——Ron Jeffries

    他很少提起往事,也不再提及二十年前那场引起软件行业变革的会议,他专注于当下,一直活跃在敏捷领域.八十多岁的他依然运营维护着网站和博客,是极限编程网站 XProgramming.com 的作者,该网站是 ...

  3. 敏捷史话(一):用一半的时间做两倍的事——Scrum之父Jeff Sutherland

    普通的人生大抵相似,传奇的人生各有各的传奇.Jeff就是这样的传奇人物,年近80的他从来没有"廉颇老矣尚能饭否"的英雄迟暮,不久前还精神矍铄地与好几百名中国学生进行线上交流,积极回 ...

  4. 敏捷史话(四):敏捷是人的天性 —— Arie van Bennekum

    敏捷是人的天性,是你与生俱来的东西.面对敏捷,Arie van Bennekum 下了这样一个结论. 但这并不意味着人们只能通过天赋获得敏捷,对于想要学习敏捷的人来说,敏捷绝不是仅仅靠学习僵化的框架. ...

  5. 敏捷开发 and 敏捷测试

    名词解释 agile: 敏捷的:灵活:敏捷开发. scrum: 扭打,混打:并列争球:参加并列争球. sprint:  冲刺,全速跑. backlog: 积压的工作:积压待办的事务. retrospe ...

  6. keras系列︱Application中五款已训练模型、VGG16框架(Sequential式、Model式)解读(二)

    引自:http://blog.csdn.net/sinat_26917383/article/details/72859145 中文文档:http://keras-cn.readthedocs.io/ ...

  7. Keras(二)Application中五款已训练模型、VGG16框架解读

    Application的五款已训练模型 + H5py简述 Keras的应用模块Application提供了带有预训练权重的Keras模型,这些模型可以用来进行预测.特征提取和finetune. 后续还 ...

  8. 【敏捷0】敏捷项目管理-为什么从敏捷开始?为什么从PMI-ACP开始?

    作为敏捷项目管理的开篇文章,还是先来简单地说一说为什么先从敏捷开始,为什么是以 PMI-ACP 为参考.当然,这一系列的文章可能不可避免地会为 PMI-ACP 做一些广告,但是我想告诉大家的是,敏捷以 ...

  9. CODING 助力江苏高速信息实现组织敏捷与研发敏捷,领跑智慧交通新基建

    疫情之下的高速公路管控重任 江苏高速公路信息工程有限公司(以下简称:江苏高速信息)成立于 2002 年,是江苏交通控股旗下,专业从事高速公路领域机电系统集成.智能交通软硬件研发.大数据分析运营的高新技 ...

随机推荐

  1. Java入门随手记-DOS命令

    DOS 打开cmd的方式 开始+系统+命令提示符 win键+r 输入cmd打开控制台(推荐使用) 在任意的文件夹下面,按住shift键+鼠标右键点击,在此次打开命令窗口 资源管理器的地址栏前面加上cm ...

  2. user&group_management.md

    登录shell bin/bash sbin/nologin useradd 的参数     -c  comment 用户的注释性信息     -u UID 指定用户的UID     -g initia ...

  3. 【函数分享】每日PHP函数分享(2021-1-7)

    ltrim() 删除字符串开头的空白字符(或其他字符). string ltrim ( string $str[, string $character_mask]) 参数描述str 输入的字符串. c ...

  4. Go语言从入门到放弃(四)

    前言 有段时间没摸Go语言了,最近B站的Go语言泄露挺火的. 还差的很远呐 学无止境 本章主要介绍一些零碎的小知识点 变更记录 # 19.4.30  起笔 # 19.4.30  增加代码打包步骤 正文 ...

  5. 【Sphinx】 为Python自动生成文档

    sphinx 前言 Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等 开始 建一个存放文档的do ...

  6. PAT甲级 1155 Heap Paths (30分) 堆模拟

    题意分析: 给出一个1000以内的整数N,以及N个整数,并且这N个数是按照完全二叉树的层序遍历输出的序列,输出所有的整条的先序遍历的序列(根 右 左),以及判断整棵树是否是符合堆排序的规则(判断是大顶 ...

  7. Java多线程-锁的区别与使用

    目录 锁类型 可中断锁 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 Synchronized与Static Synchron ...

  8. Kubernetes学习笔记之安装minikube并运行个简单应用程序

    前言:本笔记仅记录学习记录,可能存在错误!!!使用的环境是Ubuntu Desktop 20.04,也有用Windows 10 操作的,根据的文档是minikube的文档教程,链接:https://m ...

  9. 关于maven多module的依赖问题

    之前的项目因为历史的原因,都是一个project里只包含了一个module,今年进入了新的项目组,出现了多个module,最近刚好也是在学<maven实战>因此想要将这个东西记录下来 工程 ...

  10. innnodb_doublewrite

    有写场景下,双写缓冲确实没必要,例如,你也许像在备库上禁用双写缓冲,此外,一些文件系统,例如zfs做了同样的事,所以,没必要再让innodb做一遍. innodb_double_write=0 即可关 ...