“ 敏捷已逝,但敏捷精神长存。因为所谓的敏捷专家卖给你的是方法论,而不是价值。”当多数人都在从“敏捷”身上榨取利益时, 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. vue-cli3 创建项目路由缺失问题

    1.在项目中新建一个router.js router.js import Vue from 'vue' import Router from 'vue-router' import Home from ...

  2. SQL操作符的优化

    操作符优化        IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格. 但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQ ...

  3. ArrayDeque API 与算法分析

    ArrayDeque 是双端队列的动态数组实现,可以当作栈和队列来使用.作为栈时,它的效率比 Stack 更高,作为队列时,效率比 LinkedList 更高.ArrayDeque 大部分操作的时间复 ...

  4. 【Java基础】Java 语言概述

    Java 语言概述 主要应用场景 JavaEE.大数据.Android 开发方向. 基础知识概述 编程语言核心结构 变量.基本语法.分支.循环.数组.- Java 面向对象的核心逻辑 OOP.封装.继 ...

  5. 【剑指 Offer】04.二维数组中的查找

    题目描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

  6. 断言封装之key检查及kv实战示例

    ️️️️️️️️️️️️️️️️️️️️️️️️️️️️️ 测试: 断言处理: demo_04.pyimport jsonjson_obj = {"access_token":&q ...

  7. (二)数据源处理5-excel数据转换实战(上)

    把excel_oper02.py 里面实现的:通过字典的方式获取所有excel数据.放进utils: ️️️️️️️️️️️️️️️️️️️️️️️️️️️️️️️ utils: def get_al ...

  8. ABAP-ALV-如何去掉OO方法中的ALV的标准按钮

    SAP在做报表开发中,不同公司对报表的风格往往各异,为此经常在使用OO方法做ALV报表中需要去掉自带的工具栏而自行添加一些工具按钮,下面将简单介绍一些其实现过程与原理: 步骤一: DATA : gt_ ...

  9. JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  10. 【JeecgBoot】关于 jeecg-boot 的项目理解、使用心得和改进建议

    工欲善其事,必先利其器. 脚手架选型 一年前,我接到为团队落地一个快速开发脚手架的任务. 在月底这节骨眼上,时间紧,任务急,有想自己撸一个脚手架的人都赶紧把这想法收起来吧!这劳民又伤身的事咱肯定是不能 ...