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

2011年,Kent Beck 加入了 Facebook 。那時(shí)的他已年過(guò)半百,幾十年的經(jīng)驗(yàn)讓他自認(rèn)為非常了解軟件行業(yè)。在 Facebook 的新手訓(xùn)練營(yíng)期間,Kent 開(kāi)始意識(shí)到,F(xiàn)acebook 與他所見(jiàn)過(guò)的任何公司都不一樣。
Facebook 確實(shí)在做真正的敏捷,不僅非常靈活,而且時(shí)刻在為改變做準(zhǔn)備。在 Facebook 訓(xùn)練營(yíng)結(jié)束后,Kent 開(kāi)始探索 Facebook 的代碼庫(kù)和文化。他發(fā)現(xiàn),F(xiàn)acebook 用于構(gòu)建和擴(kuò)展產(chǎn)品的方法,徹底重塑了他對(duì)軟件工程的信念。
Kent 剛加入 Facebook 時(shí),F(xiàn)acebook 有2000名員工,當(dāng) Kent 離開(kāi)時(shí),員工數(shù)量擴(kuò)展到了25000名。Facebook 非常注重6個(gè)月的審核周期。每6個(gè)月,員工就需要證明自己對(duì) Facebook 產(chǎn)生的影響。而 Kent 對(duì)“影響”一詞顯然持有不同意見(jiàn)。
“這是我關(guān)心的指標(biāo),這是我的工作,這是我個(gè)人的影響……”
類(lèi)似這樣的話(huà),Kent 需要每6個(gè)月匯報(bào)一次。這確實(shí)能使每個(gè)人都專(zhuān)注于自己正在做的事,保證每個(gè)人對(duì)公司有所貢獻(xiàn)。但同時(shí)也有一定的缺點(diǎn),社交工程師可以輕松提取私人信息,會(huì)使應(yīng)用變得更加混亂,員工沒(méi)有動(dòng)力去關(guān)注自己工作的弊端,而弊端也無(wú)法得到改進(jìn),從而引發(fā)破窗效應(yīng),沒(méi)有人會(huì)為公司做出一個(gè)好的決定。
所以 Kent 認(rèn)為,F(xiàn)acebook 需要從關(guān)注影響向關(guān)注決策質(zhì)量轉(zhuǎn)移,否則這種“僅對(duì)一方有利”的激勵(lì)方案,可能會(huì)導(dǎo)致類(lèi)似英國(guó)劍橋分析公司倒閉情況的發(fā)生。
不管付出成本如何,代價(jià)多大,Kent 都只想做正確的事。不幸的是,這次的代價(jià)是他失去了 Facebook 的工作。幸運(yùn)的是,正是他一直以來(lái)的堅(jiān)持,才為軟件開(kāi)發(fā)帶來(lái)了創(chuàng)世之舉。
極限編程的誕生
從小到大,Kent Beck 的家庭中都彌漫著技術(shù)的味道。他出生于硅谷, 有著一個(gè)對(duì)無(wú)線(xiàn)電癡迷的祖父,以及一個(gè)電器工程師父親,因此,小時(shí)候的 Kent Beck 就早已成為了業(yè)余的無(wú)線(xiàn)電愛(ài)好者。
長(zhǎng)大后,Kent Beck 在世界著名的公立研究型大學(xué)——俄勒岡州立大學(xué),取得了計(jì)算機(jī)科學(xué)學(xué)士與碩士學(xué)位,正式踏上了編程之路。
其實(shí)早在讀本科期間,Kent Beck 深受建筑師 Christopher Alexander 的影響,開(kāi)始研究起了模式。Christopher Alexander 是第一個(gè)研究建筑物和社區(qū)模式的人,為城鎮(zhèn)、花園等建筑模式確定了統(tǒng)一的模式語(yǔ)言。在此基礎(chǔ)上, Kent Beck 與其他軟件工程師共同開(kāi)發(fā)出了設(shè)計(jì)模式及實(shí)現(xiàn)模式,使代碼編制真正工程化,打造了軟件工程的基石脈絡(luò)。
1993年在《 Smalltalk 報(bào)告》上,Kent Beck 開(kāi)始撰寫(xiě)關(guān)于 Smalltalk 模式的專(zhuān)欄,同時(shí)結(jié)識(shí)了另一位使用 Smalltalk 的同仁——Ward Cunningham。Smalltalk 是一個(gè)動(dòng)態(tài)且特別適合重構(gòu)的環(huán)境,周期很短,因此使用 Smalltalk 模式能夠快速修改代碼,也可以很快寫(xiě)出極具功能的軟件。
Kent 和 Ward 在意識(shí)到重構(gòu)的重要性后,他們仔細(xì)觀察和分析各種簡(jiǎn)化軟件開(kāi)發(fā)的前提條件、可能性以及面臨的困難,希望能創(chuàng)建一套適合重構(gòu)環(huán)境的軟件開(kāi)發(fā)方法。
直到1996年,這個(gè)方法問(wèn)世了。
1996年,Kent Beck 成為 C3(Chrysler Comprehensive Compensation)的項(xiàng)目負(fù)責(zé)人,在為克萊斯勒公司的全部 87,000多名員工處理薪酬系統(tǒng)問(wèn)題時(shí),他提出了極限編程方法。為此,Kent Beck 還專(zhuān)門(mén)改善了極限編程方法學(xué),并寫(xiě)了一本《解析極限編程》書(shū)籍。
雖然像 Ward Cunningham 、Ron Jeffries 等諸多敏捷大神級(jí)人物都先后參與到 C3 項(xiàng)目中,但系統(tǒng)仍然比預(yù)定時(shí)間延遲了幾個(gè)月才上線(xiàn),而且該系統(tǒng)上線(xiàn)后的性能一直是個(gè)問(wèn)題——只能處理10,000名員工的薪酬問(wèn)題。最終,克萊斯勒公司在2000年2月終止了 C3 項(xiàng)目。
雖然 C3 項(xiàng)目從根本上來(lái)看算不上成功,但從另一個(gè)角度看,C3 項(xiàng)目中誕生的極限編程方法和一系列優(yōu)秀的軟件開(kāi)發(fā)實(shí)踐,在軟件工程的發(fā)展史上留下了 濃墨重彩的一筆。
面對(duì)極限編程這個(gè)創(chuàng)新領(lǐng)域,Kent Beck 交出了一份份漂亮的答卷,不斷驗(yàn)證了極限編程的“存在即合理”。不管是和軟件開(kāi)發(fā)大師 Martin Fowler 合著的奠基之作——《規(guī)劃極限編程》,還是《測(cè)試驅(qū)動(dòng)開(kāi)發(fā)》《解析極限編程》等系列著作,都讓更多人領(lǐng)略到了極限編程的精髓。
敏捷開(kāi)發(fā)的誕生
2000年春,部分極限編程的支持者以及有助于推動(dòng)極限編程的革命者們,一起參加了 Kent Beck 在俄勒岡州的羅格里夫酒店組織的“極限編程領(lǐng)導(dǎo)會(huì)議”,會(huì)議主要內(nèi)容為如何推動(dòng)極限編程的發(fā)展。
這次會(huì)議對(duì)極限編程的發(fā)展起到了重要作用,同時(shí)也掀起了一次軟件革命。
會(huì)前,Bob以及其他幾個(gè)參會(huì)者都相信,像極限編程這樣的輕量級(jí)方法將會(huì)使整個(gè)行業(yè)受益,應(yīng)該會(huì)有更多人想要推動(dòng)這樣一個(gè)組織的創(chuàng)建。然而事實(shí)并非如此,會(huì)議上很多參會(huì)者對(duì)此并沒(méi)有太高熱情。
會(huì)議休息時(shí),Martin Fowler 找到 Bob 簡(jiǎn)單討論了一番,是否還要再次舉辦一個(gè)會(huì)議,將會(huì)上提議的組織范圍擴(kuò)大到像敏捷和自適應(yīng)軟件開(kāi)發(fā)等所有的“輕量級(jí)方法”,而不局限于極限編程。他們認(rèn)為這樣不僅可以提高所有人的積極性,同時(shí)還能促使擁護(hù)這些方法的人進(jìn)行更多、更全面的補(bǔ)充。
于是,就有了后來(lái)的雪鳥(niǎo)會(huì)議。 當(dāng)然,Kent Beck 的貢獻(xiàn)遠(yuǎn)不僅如此。
JUnit 的誕生
對(duì)于眾多的 Java 程序員來(lái)說(shuō), Kent Beck 和 Erich Gamma 共同打造的 JUnit,意義更加重大。也許正是因?yàn)檫@個(gè)簡(jiǎn)單而強(qiáng)大的工具,才讓更多程序員更加認(rèn)可和信賴(lài)極限編程,從而引發(fā)了敏捷開(kāi)發(fā)的浪潮。
軟件大師的手筆和理念構(gòu)建了一個(gè) 簡(jiǎn)單而強(qiáng)大的 JUnit,它將 Java 程序員代入了測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的時(shí)代。JUnit 連續(xù)榮獲2001、2002年“Java World 編輯選擇獎(jiǎng)”以及2003年“Java World 最佳測(cè)試工具”、“Java Pro 最佳 Java 測(cè)試工具”等眾多獎(jiǎng)項(xiàng),深受 Java 程序員好評(píng)。
Kent 在一次采訪(fǎng)中聲稱(chēng),如果像 Scrum 一樣,通過(guò)極限編程來(lái)獲利,似乎不是特別道德,而且他對(duì)認(rèn)證持保留態(tài)度。
很早以前,Kent 曾在中國(guó)做了一個(gè)很切題的主題演講——“ 務(wù)實(shí)的理想主義”。現(xiàn)實(shí)和理想往往是比較矛盾的,但是在充滿(mǎn)競(jìng)爭(zhēng)和變化的現(xiàn)代社會(huì),這種矛盾卻無(wú)處不在。對(duì)軟件開(kāi)發(fā)來(lái)說(shuō),就需要一個(gè)理想的目標(biāo)。你的目標(biāo)建立了嗎?請(qǐng)勇敢地去嘗試吧!
[免責(zé)聲明]
原文標(biāo)題: 敏捷史話(huà)(十三):我被 Facebook 解雇了——Kent Beck
本文由作者原創(chuàng)發(fā)布于36氪企服點(diǎn)評(píng);未經(jīng)許可,禁止轉(zhuǎn)載。




