“ 敏捷已逝,但敏捷精神长存。因为所谓的敏捷专家卖给你的是方法论,而不是价值。”当多数人都在从“敏捷”身上榨取利益时, 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. 首秀:Markdown学习笔记

    # Markdown学习 ## 标题 ### 三级标题 #### 四级标题 ## 字体 **Hello,World!** *Hello,World!* ***Hello,World!*** ~~Hel ...

  2. MySQL -- insert ignore语句

    项目实战 用户登记激活码记录插入接口 数据库测试实例,其中手机号和父设备id为唯一索引 当我们使用普通的insert语句插入一条数据库中已存在的手机号和父设备id的数据时,会报重复的key的错 当我们 ...

  3. oop的三大特性和传统dom如何渲染

    OOP的三大特性是什么: 封装 :就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系继承:子类自动继承其父级类中的属性和方法,并可以添加新的属性和方法或者对部分属性和方法进行重写.继承增加了 ...

  4. 【Java基础】面向对象上

    面向对象上 这一章主要涉及 Java 类及类的成员,包括属性.方法.构造器:代码块.内部类. 面向过程与面向对象 面向过程(Procedure Oriented Programming,POP)与面向 ...

  5. Educational Codeforces Round 102 (Rated for Div. 2)

    比赛地址 A(水题) 题目链接 题目: 给出一个数组\(a\)并能进行一个操作使得数组元素更改为数组任意其他两元素之和,问是否可以让数组元素全部小于等于\(d\) 解析: 排序后判断最大值是否小于等于 ...

  6. mmall商城用户模块开发总结

    1.需要实现的功能介绍 注册 登录 用户名校验 忘记密码 提交问题答案 重置密码 获取用户信息 更新用户信息 退出登录 目标: 避免横向越权,纵向越权的安全漏洞 MD5明文加密级增加的salt值 Gu ...

  7. 【Java】Java注释 - 单行、块、文档注释

    简单记录,Java 核心技术卷I 基础知识(原书第10 版) 注释 我们在编写程序时,经常需要添加一些注释,用来描述某段代码的作用,提高Java源程序代码的可读性,使得Java程序条理清晰. 写代码的 ...

  8. mysql的安全问题

    mysql 用户目录下,除了数据文件目录,其他文件和目录属主都改为root 删除空账号 drop user ''@'localhost'; 给root 设置口令 在[client]中写入user='' ...

  9. 【ORACLE错误】SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled

    执行set autotrace traceonly的时候,报错 SQL> set autotrace traceonly SP2-0618: Cannot find the Session Id ...

  10. 攻防世界—pwn—hello_pwn

    题目分析 下载文件后首先使用checksec检查文件保护机制 使用ida查看伪代码 思路明确,让dword_60106C == 1853186401即可输出flag 信息收集 偏移量 sub_4006 ...