12年程序員生涯,這是他的12個教訓(xùn)!
我已經(jīng)在ThoughtWorks工作了12年。是不是有點不可思議?回首我的職業(yè)生涯,我想寫一寫我在這些年中經(jīng)歷的困難,以及總結(jié)得到的12個非常重要的經(jīng)驗教訓(xùn)。雖然我只選擇了12個,但其實遠(yuǎn)遠(yuǎn)不止這個數(shù)字,但是我覺得12年12個經(jīng)驗教訓(xùn)更有韻味。
1.工具不能代替思考
在我多年的咨詢工作和與許多組織和管理者的共事中,我發(fā)現(xiàn)了修復(fù)問題的共同套路,那就是管理人員相信工具可以“解決”給出的問題。當(dāng)問題域被理解透徹,并且不可能有很多例外,以及每個人的行為方式相同的時候,這樣的做法很管用。不幸的是,很多現(xiàn)實問題并非如此。
太多次我目睹管理者使用組織范圍的工具鎖定到特定的工作方式。自然,該工具未能解決問題,并且阻塞了工作的真正完成。工具應(yīng)該是用來提供幫助的,用來幫助防止已知錯誤的,并幫助我們記住重復(fù)的任務(wù),而不是取代思考。
2.除非管理小組能夠真正懂得敏捷“轉(zhuǎn)變”的價值,否則它就不能發(fā)揮作用
許多管理者都犯過這樣的錯誤,那就是認(rèn)為組織的其他部分在做出改變的同時,只有那些參與工作的人才需要“接受敏捷”。在企業(yè)中做這樣的統(tǒng)籌需要花費大量的時間和技能,因為你要關(guān)注于同步組織在不同水平的變化。
那些想要組織的一部分接受敏捷的組織面臨著真正的威脅。正如有句話所說,“要么改變組織,要么改變組織的方式。”
3.學(xué)習(xí)需要一個安全的環(huán)境
學(xué)習(xí)的必要經(jīng)過是犯錯誤。在德雷福斯模型中,這意味著,特別是位于高級初級階段,人需要通過犯錯誤來學(xué)習(xí)。但是,當(dāng)人們覺得犯錯會對工作造成壞的影響,會失去同事的尊重或在過程中會傷害到其他人時,那么他們就不會冒犯錯的風(fēng)險。
因為我熱衷于教和學(xué),所以我想辦法創(chuàng)造了一個安全的失敗空間,在這里失敗的話,可以通過犯一些基本的錯誤來學(xué)習(xí)。
4.每個人都可以成為領(lǐng)導(dǎo)者
我以前寫過這個話題的內(nèi)容,因為這是一個非常重要的觀察結(jié)果。我看到的一個常見的思維模式陷阱是,人們覺得為了像一個領(lǐng)導(dǎo),你需要去擔(dān)任領(lǐng)導(dǎo)的職位。但其實人們可以展示他們的領(lǐng)導(dǎo)力而不論其頭銜如何,并且可以通過很多不同的方式做到這一點,只需在沒有明確期望或要求的事情上采取行動。
5.架構(gòu)師去寫代碼往往能作出最佳決策
在我運行的Tech Lead courses中,我提倡技術(shù)領(lǐng)導(dǎo)者至少將他們30%的時間用來寫代碼?;〞r間于編碼上有助于建立信任,尊重和理解當(dāng)前的系統(tǒng)。在做架構(gòu)決策時,不考慮到當(dāng)前系統(tǒng)的約束條件往往會造成錯誤的決定。
6.改變需要勇氣
我記得曾有人談?wù)撨^XP values,其中有一點就是勇氣。勇氣是領(lǐng)導(dǎo)時所必須的,因為你要冒失敗的風(fēng)險,以及嘗試一些新事物的風(fēng)險/回報。沒有風(fēng)險,往往就不會有很大的回報。
7.建立信任的關(guān)鍵是言行一致
有這么一條古老的箴言,“依其言而行事,勿觀其行而仿之。”在現(xiàn)實中,不管你說什么,人們首要的是會記住你是如何行動的。你得始終記得要言行一致。不一致的言行會損害相互之間的信任。說“no”或“現(xiàn)在不行”比答應(yīng)做一件事卻沒有辦到要好得多。
8.成功的結(jié)對編程與良好的協(xié)作相關(guān)
雖然不是所有的結(jié)對編程環(huán)境都是健康的,但是我相信,當(dāng)結(jié)對編程有效工作的時候,團(tuán)隊往往具備一種更好的協(xié)作文化。許多開發(fā)人員更喜歡(長期)branch-based development的反模式,因為它推遲了反饋和潛在的沖突來源。
我把(可導(dǎo)航的)沖突當(dāng)作協(xié)作團(tuán)隊的一個健康標(biāo)志。推遲反饋,例如長期分支代碼審查的情況往往會導(dǎo)致更多的不滿,因為它交付得這么晚。
9.多模式思維促進(jìn)更強(qiáng)大的結(jié)果
我在大學(xué)中最喜歡的科目之一是哲學(xué)概論,在那個學(xué)期中我們每周都會研究不同的哲學(xué)家。在我職業(yè)生涯的過程中,我漸漸體悟到多樣性的價值,并且開始通過多個角度來看問題。系統(tǒng)思想還認(rèn)識到,事實可以用不同的方式來解釋,從而促進(jìn)產(chǎn)生新的想法或解決方案。
10.認(rèn)識到每個人都有不同的優(yōu)勢
每個人都是獨一無二的,每個人都有自己的長處和短處。雖然我們傾向于尋找志同道合的人,但是擁有廣泛優(yōu)勢的團(tuán)隊才能走得更好。這一區(qū)域中的優(yōu)勢可能會成為某個上下文中的弱勢,所以當(dāng)團(tuán)隊成員擁有更廣泛的優(yōu)勢時,團(tuán)隊會變得更強(qiáng)大。雖然優(yōu)勢的差異可能會導(dǎo)致沖突,但健康的團(tuán)隊會接受彼此之間的差異,而不是憎惡差異。
11.終身制學(xué)習(xí)
世界在不斷的變化,我們總有機(jī)會去學(xué)習(xí)一些新的技能、技術(shù)和工具。我們甚至可以去學(xué)習(xí)如何善于學(xué)習(xí),有很多書籍,例如《Apprenticeship Patterns》和《The First 20 Hours》可以教你怎么做好這些。
12.積極的影響迸發(fā)幸福感
《Drive》,一本膾炙人口的書,談?wù)摿巳藗內(nèi)绾瓮ㄟ^朝某一目標(biāo)前進(jìn)而生出幸福感。根據(jù)我的經(jīng)驗,幫助別人找到解決方法,對他們產(chǎn)生積極的影響,才是幸福的源泉。
結(jié)論
以上這十二個要點并非我在ThoughtWorks的12年時間里所學(xué)到的全部經(jīng)驗教訓(xùn),但它們確確實實是幫助我為客戶服務(wù)的比較重要的經(jīng)驗教訓(xùn)。