敏捷史话(十三):我被 Facebook 解雇了——Kent Beck
2011年,Kent Beck 加入了 Facebook 。那时候的他已年过半百,几十年的经验让他自认为非常了解软件行业。在 Facebook 的新手训练营期间,Kent 开始意识到,Facebook 与他所见过的任何公司都不一样。
Facebook 确实在做真正的敏捷,不仅非常灵活,而且时刻在为改变做准备。在 Facebook 训练营结束后,Kent 开始探索 Facebook 的代码库和文化。他发现,Facebook 用于构建和扩展产品的方法,彻底重塑了他对软件工程的信念。
Kent 刚加入 Facebook 时,它有2000名员工,当 Kent 离开时,员工数量扩展到了25000。Facebook 非常注重6个月的审核周期。每6个月,员工就需要证明自己对 Facebook 产生的影响。而 Kent 对“影响”一词显然持有不同意见。
“这是我关心的指标,这是我的工作,这是我个人的影响……”
类似这样的话,Kent 需要每6个月汇报一次。这确实能使每个人都专注于自己正在做的事,保证每个人对公司有所贡献。但同时也有一定的缺点,社交工程师可以轻松提取私人信息,会使应用变得更加混乱,员工没有动力去关注自己工作的弊端,而弊端也无法得到改进,从而引发破窗效应,没有人会为公司做出一个好的决定。
所以 Kent 认为,Facebook 需要从关注影响向关注决策质量转移,否则这种“仅对一方有利”的激励方案,可能会导致类似英国剑桥分析公司倒闭情况的发生。
不管付出成本如何,代价多大,Kent 都只想做正确的事。不幸的是,这次的代价是他失去了 Facebook 的工作。幸运的是,正是他一直以来的坚持,才为软件开发带来了创世之举。
极限编程的诞生
从小到大,Kent Beck 的家庭中都弥漫着技术的味道。他出生于硅谷, 有着一个对无线电痴迷的祖父,以及一个电器工程师父亲,因此,小时候的 Kent Beck 就早已成为了业余的无线电爱好者。
长大后,Kent Beck 在世界著名的公立研究型大学——俄勒冈州立大学,取得了计算机科学学士与硕士学位,正式踏上了编程之路。
其实早在读本科期间,Kent Beck 深受建筑师 Christopher Alexander 的影响,开始研究起了模式。Christopher Alexander 是第一个研究建筑物和社区模式的人,为城镇、花园等建筑模式确定了统一的模式语言。Kent Beck 在此基础上联合其他软件工程师一起开发出了设计模式以及实现模式,使代码编制真正工程化,就如同大厦的结构一样,造就了软件工程的基石脉络,成为了软件界中倡导这种工作方式的先行者之一。
1993年在《 Smalltalk 报告》上,Kent Beck 开始撰写关于 Smalltalk 模式的专栏,同时结识了另一位使用 Smalltalk 的同仁——Ward Cunningham。Smalltalk 是个十分动态且特别适合重构的环境,周期非常短,因此很容易快速修改代码,也可以很快写出极具功能的软件。
Kent 和 Ward 开始认识到重构的重要性,他们继续共同探索着新的软件开发方法,仔细观察和分析各种简化软件开发的前提条件、可能性以及面临的困难,希望能发展出一套适合这类环境的软件开发过程。
后来他们逐渐意识到,重构对于提高他们的生产力非常重要。从那时起,他们就一直在工作中运用重构的技术,并不断精炼这套程序,成为了软件重构技术的先行者。
终于,这个方法被实现了。
1996年,Kent Beck 成为 C3(Chrysler Comprehensive Compensation)的项目负责人,在为克莱斯勒公司的全部 87,000多名员工处理薪酬系统问题时,为了对项目的开发方法学进行改善,他提出了极限编程方法。为此,Kent Beck 还专门改善了极限编程方法学,并写了一本《解析极限编程》书籍。
虽然像 Ward Cunningham 、Ron Jeffries 等诸多敏捷大神级人物都先后参与到 C3 项目中,但系统仍然比预定时间延迟了几个月才上线,而且该系统上线后的性能一直是个问题——只能处理10,000名员工的薪酬问题。最终,克莱斯勒公司在2000年2月终止了 C3 项目。
虽然 C3 项目从根本上来看算不上成功,但从另一个角度看,C3 项目中诞生了极限编程方法和一系列优秀的软件开发实践,因此它在软件工程的发展史上留下了 浓墨重彩的一笔。
面对极限编程这个创新领域,Kent Beck 交出了一份份漂亮的答卷,不断验证了极限编程的“存在即合理”。不管是和软件开发大师 Martin Fowler 合著的奠基之作——《规划极限编程》,还是《测试驱动开发》《解析极限编程》等系列著作,都让更多人领略到了极限编程的精髓,也极大程度上引导了极限编程的流行。
敏捷开发的诞生
2000年春,一些极限编程的支持者们以及有助于推动极限编程的革命者们,一起参加了 Kent Beck 在俄勒冈州的罗格里夫酒店组织的“极限编程领导会议”,主要讨论如何来推动极限编程的发展。
这次会议对于极限编程的发展起到了重要作用,同时也掀起了一次软件革命。
会前,Bob以及其他几个参会者都相信,像极限编程这样的轻量级方法将会使整个行业受益,应该会有更多人想要推动这样一个组织的创建。然而事实并非如此,会议上很多参会者对此并没有太高热情。
会议休息时,Martin Fowler 找到 Bob 简单讨论了一番,是否还要再次举办一个会议,将会上提议的组织范围扩大到像敏捷和自适应软件开发等所有的“轻量级方法”,而不局限于极限编程。他们认为这样不仅可以提高所有人的积极性,同时还能促使拥护这些方法的人进行更多、更全面的补充。
于是,就有了后来的雪鸟会议。 Kent Beck 的极限编程,也在慢慢改变着软件行业。当然,Kent Beck 的贡献远不仅如此。
JUnit 的诞生
对于众多的 Java 程序员来说, Kent Beck 和 Erich Gamma 共同打造的 JUnit,意义更加重大。也许正是因为这个简单而强大的工具,才让更多程序员更加认可和信赖极限编程,从而引发了敏捷开发的狂潮。
软件大师的手笔和理念使得 JUnit 简单而强大,它将 Java 程序员代入了测试驱动开发的时代。JUnit 连任了2001、2002年“Java World 编辑选择奖”以及2003年“Java World 最佳测试工具”、“Java Pro 最佳 Java 测试工具”等众多奖项,深受 Java 程序员好评。
如今,有关敏捷 Scrum 的认证遍地丛生,反观极限编程却不争不抢。Kent 在一次采访中声称,如果像 Scrum 一样,通过极限编程来获利,似乎不是特别道德,而且他对认证持严重的保留态度。
确实,Kent 创造了极限编程、测试驱动开发等等,但这些影响后来软件开发的方法在网络上都是免费的。唯一让 Kent 赚钱的途径只有书籍,在技术领域乃至整个商业领域,我们都需要更多这样的人。
很早以前,Kent 曾在中国做了一个很切题的主题演讲——“ 务实的理想主义”。现实和理想往往是比较矛盾的,但是在充满竞争和变化的现代社会,这种矛盾却无处不在。对软件开发来说,就需要一个理想的目标。你的目标建立了吗?请勇敢地去尝试吧!
敏捷史话(十三):我被 Facebook 解雇了——Kent Beck的更多相关文章
- 敏捷史话(六):也许这个人能拯救你的代码 —— Robert C. Martin
Robert C. Martin( 罗伯特·C·马丁),作为世界级软件开发大师.设计模式和敏捷开发先驱.C++ Report杂志前主编,也是敏捷联盟(Agile Alliance)的第一任主席,我们尊 ...
- 敏捷史话(十二):你现在接触的敏捷也许是“黑暗敏捷”——Ron Jeffries
他很少提起往事,也不再提及二十年前那场引起软件行业变革的会议,他专注于当下,一直活跃在敏捷领域.八十多岁的他依然运营维护着网站和博客,是极限编程网站 XProgramming.com 的作者,该网站是 ...
- 敏捷史话(十一):敏捷宣言“间谍”——Steve Mellor
Steve Mellor 是敏捷宣言的签署人之一,他自称是作为" 间谍"去参加雪鸟会议的. 起初收到会议邀请时,Steve 非常惊讶,因为他所做的工作一直都是关于建模方面的,很少将 ...
- 敏捷史话(十四):敏捷之峰的攀登者 —— Jim Highsmith
"我们希望,一起组成的敏捷联盟能够帮助到其他同行,帮他们用新的更'敏捷'的方式去思考软件开发.方法论和组织.做到这一点,我们就得偿所愿了."Jim Highsmith 在雪鸟会议结 ...
- 敏捷史话(十五):我发明了敏捷估算扑克牌 —— James Greening
雪鸟会议 雪鸟会议前夕,James Grenning 在 Object Mentor 与 Robert C. Martin 一同工作,彼时组织雪鸟会议的 Bob 大叔盛情邀请 James,告知他会议的 ...
- 敏捷史话(十七):维基(Wiki)背后的灵感来源—— Ward Cunningham
在软件开发领域, Ward Cunningham 有许多独到的见解与成就. 1949年,Ward Cunningham 出生于印第安纳州的密歇根市,并在莱克县的一个小镇中长大.怀揣着对计算机浓厚的兴趣 ...
- Kent Beck揭秘Facebook开发部署流程
http://www.infoq.com/cn/news/2013/10/facebook-development-deployment Facebook是世界上最大的社交网站,有超过10亿用户每月至 ...
- 敏捷史话(四):敏捷是人的天性 —— Arie van Bennekum
敏捷是人的天性,是你与生俱来的东西.面对敏捷,Arie van Bennekum 下了这样一个结论. 但这并不意味着人们只能通过天赋获得敏捷,对于想要学习敏捷的人来说,敏捷绝不是仅仅靠学习僵化的框架. ...
- 敏捷史话(一):用一半的时间做两倍的事——Scrum之父Jeff Sutherland
普通的人生大抵相似,传奇的人生各有各的传奇.Jeff就是这样的传奇人物,年近80的他从来没有"廉颇老矣尚能饭否"的英雄迟暮,不久前还精神矍铄地与好几百名中国学生进行线上交流,积极回 ...
随机推荐
- WiFi & QR Code
WiFi & QR Code https://github.com/bndw/wifi-card https://wifi.dev.bdw.to/ 扫码登录 WIFI:T:WPA;S:free ...
- Web Animations API & SVG & requestAnimationFrame
Web Animations API WWAPI https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API https:/ ...
- NGK:价值对标比特币,上线暴涨4558%,下一个财富暴增风口
近期,美股行情多变,一直饱受争议的比特币也成了其中的"弄潮儿".看多者认为,机构的兴趣有助于支撑比特币作为对冲美元疲软和通胀的工具. 特别是今年1月底的时候,马斯克将推特简介更改为 ...
- 星空值、SPC、算力组成三元永动机制!VAST带你把握时代!
目前中心化金融体系为用户提供的服务在便捷性和易用性方面已经达到了新高度,但随着时代发展,大众对于金融安全性和可控性的需求进一步提升,需要去中心化金融服务商来提供更具创意的解决方案.盛大公链为此在应用层 ...
- NGK数字增益平台的算力是什么?
今年的币价回暖带来了新一轮的"信仰充值",部分投资者对比特币的兴趣从购买向更源头的算力转移.随着比特币开采数量逐渐减少,全网算力一直在增加,算力难度也是越来越高.同时在算力行业中竞 ...
- JDK源码阅读-ByteBuffer
本文转载自JDK源码阅读-ByteBuffer 导语 Buffer是Java NIO中对于缓冲区的封装.在Java BIO中,所有的读写API,都是直接使用byte数组作为缓冲区的,简单直接.但是在J ...
- dev 控件获得所有的EFDEVGRID
//获得当前Grid DevExpress.XtraGrid.GridControlNavigator GCN2 = sender as DevExpress.XtraGrid.GridControl ...
- 【OI向】快速傅里叶变换(Fast Fourier Transform)
[OI向]快速傅里叶变换(Fast Fourier Transform) FFT的作用 在学习一项算法之前,我们总该关心这个算法究竟是为了干什么. (以下应用只针对OI) 一句话:求多项式 ...
- 无法将“node.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
有些天没有启动前端项目,发现npm run dev,启动不了,经过一番查找发现问题所在 然后我查看了一下报错位置,发现并没有改动过什么 解决方法: 方法一: 检查一下npm目录: 这里发现少了node ...
- 1.代码规范之 if 语句编写
最近在看项目代码的时候, 看到需要判断的地方,出现了if的多重嵌套, 甚至是出现了十几层的嵌套, 代码的阅读性非常之差. 简单的举个例子(这里只是两层的嵌套): public class demo ...