“ 敏捷已逝,但敏捷精神长存。因为所谓的敏捷专家卖给你的是方法论,而不是价值。”当多数人都在从“敏捷”身上榨取利益时, 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. python之logging 模块(下篇)

    四.日志处理流程(第二种日志使用方式) 上面简单配置的方法例子中我们了解到了logging.debug().logging.info().logging.warning().logging.error ...

  2. Java8接口的默认方法

    项目实战 实现上图接口的实现类有很多,其中有些实现类已经在生成环境了,现在需要新增几个实现类,都需要有回调方法,所以在接口中添加了一个回调的默认方法,如果使用接口的普通方法就得改所有实现了接口的实现类 ...

  3. 一键配置网卡IP(win10)脚本

    前两天有个小伙伴问我,如何快速配置IP,在公司在家里在宿舍,快速配置IP,然后我特别为这个小伙伴写了一个脚本. @echo off mode con: cols=60 lines=25 title 网 ...

  4. 如何优雅地开发HarmonyOS APP应用

    目录: 一.挖掘项目需求或者做项目移植 二.创建项目工程 三.功能模块实现的流程思路 四.养成良好的编程规范习惯以及运用设计模式 研究HarmonyOS有一段时间了,今天主要结合自己多年的项目开发经验 ...

  5. JAR冲突问题的解决以及运行状态下如何查看加载的类

    今天碰到群里小伙伴问,线上程序好像有多个不同版本的Netty包,怎么去看到底加载了哪一个? 在说如何看之前,先来说说,当你开始意识到项目里有多个不同版本的Jar包,都是因为遇到了这几个异常: java ...

  6. 【Java】标识符

    一.标识符 文章目录 一.标识符 1.标识符的命名规则 2.关键字.保留字.特殊值 3.code Java 对各种变量.方法和类等要素命名时使用的字符序列称为标识符.简单的说,凡是程序员自己命名的部分 ...

  7. java 文件上传的那些事

    文件上传 逻辑 @Value("${sava_path}") private String sava_path; @Override public String saveFile( ...

  8. [Usaco2007 Feb]Cow Party

    题目描述 农场有N(1≤N≤1000)个牛棚,每个牛棚都有1只奶牛要参加在X牛棚举行的奶牛派对.共有M(1≤M≤100000)条单向路连接着牛棚,第i条踣需要Ti的时间来通过.牛们都很懒,所以不管是前 ...

  9. Centos7.4 小白式安装(初学)

    虚拟机安装Centos7.4系统 适用人群(初学者) 下载Centos7.4镜像 https://pan.baidu.com/s/1NtjfdHV3OWAvfDj5vrR7HQ  提取码:hzzw 虚 ...

  10. 网络流量预测入门(二)之LSTM介绍

    目录 网络流量预测入门(二)之LSTM介绍 LSTM简介 Simple RNN的弊端 LSTM的结构 细胞状态(Cell State) 门(Gate) 遗忘门(Forget Gate) 输入门(Inp ...