敏捷史话(十三):我被 Facebook 解雇了——Kent Beck

2021-11-09 09:00:00
敏捷开发社区
转贴:
敏捷开发
2248
摘要:Kent Beck,创造了极限编程、测试驱动开发等等影响软件开发发展的大事件,即使后来被 Facebook 解雇了,他也一直有自己的坚持。

2011年,Kent Beck 加入了 Facebook 。那时的他已年过半百,几十年的经验让他自认为非常了解软件行业。在 Facebook 的新手训练营期间,Kent 开始意识到,Facebook 与他所见过的任何公司都不一样。


Facebook 确实在做真正的敏捷,不仅非常灵活,而且时刻在为改变做准备。在 Facebook 训练营结束后,Kent 开始探索 Facebook 的代码库和文化。他发现,Facebook 用于构建和扩展产品的方法,彻底重塑了他对软件工程的信念。

Kent 刚加入 Facebook 时,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 是一个动态且特别适合重构的环境,周期很短,因此使用 Smalltalk 模式能够快速修改代码,也可以很快写出极具功能的软件。


Kent 和 Ward 在意识到重构的重要性后,他们仔细观察和分析各种简化软件开发的前提条件、可能性以及面临的困难,希望能创建一套适合重构环境的软件开发方法。


直到1996年,这个方法问世了。

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 的贡献远不仅如此。


JUnit 的诞生


对于众多的 Java 程序员来说, Kent Beck 和 Erich Gamma 共同打造的 JUnit,意义更加重大。也许正是因为这个简单而强大的工具,才让更多程序员更加认可和信赖极限编程,从而引发了敏捷开发的浪潮。

软件大师的手笔和理念构建了一个 简单而强大的 JUnit,它将 Java 程序员代入了测试驱动开发的时代。JUnit 连续荣获2001、2002年“Java World 编辑选择奖”以及2003年“Java World 最佳测试工具”、“Java Pro 最佳 Java 测试工具”等众多奖项,深受 Java 程序员好评。


Kent 在一次采访中声称,如果像 Scrum 一样,通过极限编程来获利,似乎不是特别道德,而且他对认证持保留态度。


很早以前,Kent 曾在中国做了一个很切题的主题演讲——“ 务实的理想主义”。现实和理想往往是比较矛盾的,但是在充满竞争和变化的现代社会,这种矛盾却无处不在。对软件开发来说,就需要一个理想的目标。你的目标建立了吗?请勇敢地去尝试吧!
联系我们
联系人: 田老师
电话: +86 135 5227 9573
Email: clientservice@hardenx.cn
地址: 北京市朝阳区福码大厦B座17层1705

加微领1G资料