|
敏捷的開發(fā)者,特別是極限編程人員將會發(fā)現(xiàn),這本書提供了很多實用技巧,而這些技巧為極限編程的價值--也就是勇氣與溝通--提供了支持。那些懷有成為軟件工匠抱負的人,將獲得成為工匠群體中一員所需的洞察力。
這本書叫做《在軟件業(yè)獲得成功》,但它看起來可以叫做《在任何行業(yè)獲得成功》。你確實討論了為什么要在軟件世界里應(yīng)用每個教訓(xùn)。但你能用幾句話概括一下為什么這本書對軟件業(yè)的專業(yè)人士以及那些懷有相同抱負的人格外有用嗎?
確實如此,這本書中的很對想法對于所有行業(yè)都是有價值的。這里有些共性行為,它們會讓人成功。不管你是一名程序員、一名腦外科醫(yī)生還是一名會計師,這都沒有關(guān)系。如果你對每個人都很友善,對時間進行了很有效的管理,并且是一名優(yōu)秀的公共演講者,那么將會在你的領(lǐng)域中更加成功。我寫的這本書《在軟件業(yè)獲得成功》中有三分之一是一般性的職業(yè)生涯建議,三分之一是軟件方面的具體建議,還有三分之一是帶有較多軟件特點的職業(yè)生涯訪談。它的三分之二關(guān)注于軟件,這使它特別對于極客們(因特網(wǎng) "怪人", 對計算機或因特網(wǎng)上癮的人)產(chǎn)生了真真正正有價值的職業(yè)生涯指導(dǎo),而不是一本單調(diào)乏味的自助書。很幸運,我們在非常有活力、成長中的行業(yè)中工作。我們在高科技領(lǐng)域都有巨大的機會。幾乎每一樣使用直流電的東西都要使用軟件。當(dāng)今,有超過二十億人鏈接到了互聯(lián)網(wǎng)上。我們所有的技術(shù)都在逐漸地自動化、相互連接。那就是機會!對于那些想在軟件業(yè)取得成功并獲得機會的人來說,值得學(xué)習(xí)一下那些可以讓我們?nèi)〉贸晒Φ募寄埽@些技能是在學(xué)校都沒有教過。
你采訪過的人都很有趣,并且訪談都很啟發(fā)人。你是如何選擇被采訪者的?
訪談經(jīng)過了非常、非常認(rèn)真地篩選。我想包括研究員、變革者、業(yè)務(wù)領(lǐng)導(dǎo)者,年輕的、年長的,男人、女人。我也想采訪那些有深遠影響力的人。首先我研究了過去二十年計算機管理協(xié)會圖靈獎的獲獎名單。我也詢問了那些意見值得信任的卓越執(zhí)行官,問他們認(rèn)為誰是軟件業(yè)里過去三十年最具影響力的人。我設(shè)法確保包括了大部分語言和操作系統(tǒng)的革新者。我看過頂尖軟件公司的名單,并設(shè)法確保我已經(jīng)囊括了這些領(lǐng)導(dǎo)者中的代表。之后,我手中有了大約三十人的人名列表,我逐漸消減,直到這份名單達到恰當(dāng)?shù)奶匦云胶恻c和人數(shù)。
對于不是簡單因為篇幅限制的原因而不得不被排除在本書之外的人,你進行過采訪嗎?
這是個危險的問題!有兩個人,他們答應(yīng)接受采訪,但是并沒有堅持到底。盡管我不能提他們的名字,但那確實很令人沮喪。
有沒有你確實想采訪并寫進書里,但卻沒有做到的?(比方說,我有一點驚訝,在這份列表中竟然沒有看到Alan Kay。)
實際上我采訪過Alan Kay!由于篇幅限制,我很難囊括全部的訪談。貫穿現(xiàn)代計算機工作的關(guān)鍵時代,Alan有過一段使人們深深地得到啟示的創(chuàng)造和貢獻時期。對于面向?qū)ο蟆討B(tài)編譯語言,以及關(guān)于圖形界面的早期想法,Alan都是重要的推動者。他還花費了大量時間推廣在教學(xué)中使用計算機。對Alan的采訪中,自始至終帶給我的重要積極的感覺就是他對計算機科學(xué)藝術(shù)的酷愛。和彈奏爵士吉他(他的另外一個酷愛)有些類似,他真的視計算機科學(xué)為一門藝術(shù)。在第十八章關(guān)于“成名”的末尾,我加入了給予我靈感的引用,它來自于我與Alan關(guān)于“你的藝術(shù)愛好如何驅(qū)動真正的快樂和成就”的交流。讀者們請看,下面就是:“藝術(shù)家由理想的內(nèi)心意識來驅(qū)動做事的人。他們非常易于集中精力并且容易上癮。各種類型的音樂已經(jīng)是“可供選擇的藝術(shù)形式”,但我已經(jīng)對它近乎于上癮了(像古典和爵士這種高度成熟的音樂形式需要大量的思考和磨練,至少對我來說是這樣的)。理想主義為許多這樣的名人,設(shè)立了相當(dāng)多不可能達到的目標(biāo)。 Butler Lampson喜歡引用Browning的一句話:“要不斷超越自我,否則還有什么樂趣可言呢?”,并且他的發(fā)展比我更均衡。我有一位精通吹玻璃的朋友,他告訴我如果可以的話,他將嘗試一下模鑄玻璃。我完全了解他的意思。這就是“藝術(shù)中的快樂”。”
看起來幾乎所有的被采訪者都是在初中或者高中時開始使用計算機。這意味著他們都投入了至少一萬小時的時間來實踐,這一點Gladwell在《局外人》中談?wù)摿撕芏唷5降滓绲绞裁闯潭龋瑢τ诔晒Φ穆殬I(yè)生涯,特別是對個真正一流的職業(yè)生涯才會起到?jīng)Q定作用呢?
我寧愿相信早些開始不是決定性的,因為早些開始太痛苦了,以至于無法相信其他方式。相信你需要早些開始然后就不必擔(dān)心,這看起來不合理,甚至是殘酷的。然而,事實上,真正成功的軟件革新者,大多都是早早涉獵其中。很遺憾的是,盡管它不是必須的,但看起來卻非常有用。我曾經(jīng)聽過關(guān)于一位音樂家的訪談,這位音樂家二十歲的時候開始學(xué)習(xí)彈吉它。幾十年后他說,“我還是用一個調(diào)彈吉它”。這位吉它演奏家是聰明的,但他的音樂就是趕不上那些從小就開始彈(吉它)的人。好像我們的大腦整合語言非常早。比方說語言、音樂、數(shù)學(xué)、編程--這些都是語言--年輕時開始構(gòu)建起來的流暢度是之后所不能媲美的。它是人類條件的限制。盡管精通編碼獲益于早些開始,但商業(yè)領(lǐng)導(dǎo)力和商業(yè)革新就不是早些開始就能從中獲益那么簡單了。年輕的另外一個益處是沒有責(zé)任需要負擔(dān)。沒有按揭要付,沒有家庭要供養(yǎng),沒有孩子需要照料。年輕時所允許的各式各樣的行為,當(dāng)你歲數(shù)大了、安定了之后就不能那么容易做了。你更容易承擔(dān)商業(yè)風(fēng)險(當(dāng)你沒有什么可失去的時候,不會有太多的風(fēng)險),你可以通宵工作。偉大的開端常常就是那樣顯露出來的。這是“兩個人在車庫里帶著一簍子可樂、薯條”的模式,并且真的是以年輕作為必要條件。四十歲之后,在嘗試(這樣的模式)之前,先去看看醫(yī)生吧。
如果我對這本書有誤讀的話請糾正我,但是它看起來成功需要的知識和技巧只有少數(shù)是“技術(shù)性的”,這個比例可能只有百分之三十到四十。好像大多數(shù)都是“軟性的”。有沒有什么途徑可以獲得這些軟技巧,而不是通過經(jīng)驗去獲得?
總的來說,我認(rèn)為真地(成功需要的“軟性的”和“技術(shù)性的”的知識和技巧)混合物(比例)接近于百分之五十對百分之五十,因為他們是相互依附的成功因素。你既不能僅僅靠魅力,也不能單獨靠計算機方面的專家(技術(shù)技巧)。對于我們來說,在我們職業(yè)生涯的初期,是向技術(shù)技巧傾斜的,然后,隨著時間的推移,軟技巧的重要性逐漸增加。高層職位關(guān)于技術(shù)性和管理性的追蹤需要更多的軟技巧。那是因為這樣類型的角色需要人際交往、有效的管理、經(jīng)驗、謀取地位和說服力。
你在學(xué)校與工作之間進行了重要的對照,并且看起來找到了一些學(xué)術(shù)界的重大缺陷。我們的教育制度(小學(xué)至博士的分級)使人們?yōu)槟阏劦降母鞣N職業(yè)生涯的成功做好足夠的準(zhǔn)備了嗎?
沒有,學(xué)校沒有使我們?yōu)檎嬲某晒ψ鰷?zhǔn)備,并且我不認(rèn)為他們盡力這樣做了。這是我寫《在軟件業(yè)中成功》的原因所在。把學(xué)校確定為是專業(yè)準(zhǔn)備的,可能更直截了當(dāng)些?在我書中的第一句話說道:“你上大學(xué)去學(xué)習(xí)專業(yè),他們卻拼命的給你一個教育”。我們的大學(xué)的學(xué)位課程源于歐洲的傳統(tǒng),這個傳統(tǒng)基于教會人們?nèi)绾嗡伎迹⑶野舜蠖鄶?shù)的理論想法。高見、深奧的問題和優(yōu)秀的著作。他們總是關(guān)注于理論。甚至像非常實用的領(lǐng)域,如護理、工程和法律的學(xué)位課程,從根本上看仍然根植于和實際應(yīng)用差不多多的高見之中。那些高見的方法是超級有價值的,我不應(yīng)該丟棄它。但是真正的成功需要技術(shù)的和軟的技巧,而軟的技巧在學(xué)校并沒有被教授。所以如果你認(rèn)為大學(xué)的學(xué)位課程是關(guān)于給人們以理論背景并教會人們?nèi)绾嗡伎嫉脑挘敲次艺J(rèn)為他們做的很不錯。如果你認(rèn)為大學(xué)應(yīng)該是職業(yè)成功的訓(xùn)練場地,那么他們有所不足。我最近在給美國一所頂級的計算機科學(xué)學(xué)校講授計算機科學(xué)課程。當(dāng)我了解到學(xué)生們沒有學(xué)過程序設(shè)計語言時,我很吃驚。他們學(xué)習(xí)設(shè)計模式、理論,以及算法,但是對于實踐部分,也就是學(xué)習(xí)語法,學(xué)校卻認(rèn)為學(xué)生會在這個學(xué)習(xí)的過程中順便學(xué)到。我覺得對于一個優(yōu)秀機構(gòu)有明確的方向并把他們的教育優(yōu)先級放在什么地方,那是個不錯的例子。我們可以爭論是否這種方法是不切實際的,但至少我認(rèn)為在他們在教育策略上是清晰的。
學(xué)位只不過是讓你通過人力資源的通行證嗎?你采訪過的大多數(shù)人都有研究生學(xué)位,似乎是說獲得學(xué)位的經(jīng)歷是很有趣的并且教育經(jīng)歷是頗有價值的,但是他們并不認(rèn)為學(xué)歷本身對于他們自己或者別人的成功是一個前置必要條件。在這里,有沒有這方面的教訓(xùn)可以幫助一名學(xué)生更好地在大學(xué)里使用他們的時間呢?
讓我們把學(xué)士學(xué)位和研究生學(xué)位(碩士和博士)分開來談。我認(rèn)為學(xué)士學(xué)位非常有價值。它不僅僅是一紙文憑。已經(jīng)通過頂級學(xué)士課程的人一般會比獲得大專文憑或者自學(xué)的人有更好的平均技能,當(dāng)然也會有例外。記住我說的是“平均”。這里有很多非常明顯的例外,一些讓人印象非常深刻、聰明并取得了巨大成功的人,正是在沒有學(xué)歷的情況下就成就了事業(yè)。一些名人,如(蘋果的)Steve Jobs、(微軟的)Bill Gates、(Facebook的)Mark Zuckerberg、(甲骨文的)Larry Ellison就是如此。 你在本科學(xué)業(yè)中會學(xué)到很多非常重要而又實用的思想,像數(shù)據(jù)結(jié)構(gòu)、算法、操作系統(tǒng)、復(fù)雜性分析等等,而那是很難從大專課程或者通過自學(xué)學(xué)到的。學(xué)士學(xué)位也是對你的技巧、思想焦點和職業(yè)道德的證明。確實,學(xué)位是申請者通過人力資源部門的通行證。盡管如此,學(xué)術(shù)成就和職業(yè)生涯成功之間的關(guān)聯(lián)是還不明確。有太多職業(yè)生涯成功需要的東西與學(xué)校教育無關(guān)。舉幾個例子:你對藝術(shù)的熱情,創(chuàng)新思維,對處理模糊問題形成有組織的計劃,領(lǐng)導(dǎo)和組織他人的能力,清晰溝通,了解如何在(大型)組織中獲得任務(wù),必要的謙遜,以及同樣在需要時的少許傲慢等等。在獲得研究生學(xué)位(碩士和博士)的過程中,你學(xué)的內(nèi)容的價值真的是更少了,而更多的價值在于他們要求學(xué)生掌握科技寫作、文獻評論以及獨立研究的技巧。并非所有的工作都需要那些技巧,但是研究生課程經(jīng)歷的那些做過的事情,卻是很好的成長經(jīng)歷。所以我同意一些我采訪過的人的觀點:研究生學(xué)位(碩士和博士),副作用的價值大于它的內(nèi)容,并且在多數(shù)情況下,即便你沒有研究生學(xué)位,也能擁有光輝的職業(yè)生涯。
對于你的第二個問題,如何在大學(xué)中更好地利用時間,我將用書中的觀點來回答:“如果知道問題在哪兒,那么在生活中取得成就的可能性就會大大提高”。那是因為,如果你不知道你想去哪,你就不大可能到達那里。所以,當(dāng)他們在學(xué)校時,他們能做的最好的事情就是想出他們愛好什么,并用現(xiàn)實情況衡量一下,以確定他們想去哪的愿景。對于我們大多數(shù)人來說,這個愿景通常是很實際的,像會計師,與一些更有趣的——像成為搖滾明星——之間的妥協(xié)。計算機科學(xué)的優(yōu)勢在于,在那里你像會計師一樣從事著幸福而穩(wěn)定的工作,并且穿著像一位搖滾明星。說正經(jīng)的,如果你知道你想做什么,并且知道你想達到的目的地,那么就可以利用那個愿景,通過進修課程來擁有那些能讓你為那個目標(biāo)做最好準(zhǔn)備的經(jīng)歷,進而“戲弄”這個制度,而不用去管它們是否正式列在課程上。
在我們大學(xué)或者研究生教育制度里,(如果可以的話)你將改變哪三到五件事呢?
在元級別,我認(rèn)為我們應(yīng)該介紹更多實用的非工程技能,包括軟技能技能和商業(yè)。我是強調(diào)理論認(rèn)識與學(xué)習(xí)如何思考這一潮流的極力擁護者,但是我想看到專業(yè)技能融入其中。為了達到那種平衡,我需要做如下的改變:
- 業(yè)務(wù)技能。我們應(yīng)該把業(yè)務(wù)開發(fā)和企業(yè)家精神教授給每一位計算機科學(xué)、工程學(xué)的研究生。優(yōu)先這樣做的原因有二:
- 首先,因為這些學(xué)校將培養(yǎng)出社會的高科技商業(yè)領(lǐng)導(dǎo)核心。對于那些趕上了下一個重要科技理念的人們來說,那會讓他們可以推出Google或者Facebook,我們想讓他們知道如何帶著這個理念繼續(xù)向前。
- 其次,即使我們的研究生是公認(rèn)的技工,他們熱衷于做極客一族,對業(yè)務(wù)上的問題絲毫不感興趣,當(dāng)這些人開發(fā)技術(shù)時對市場壓力、業(yè)務(wù)需求、產(chǎn)品生命周期影響敏感時,我們的世界仍將變得更好。
- 要求他們能夠進行有效的溝通。技工的溝通能力差是出了名的,但是把如此多的創(chuàng)造偉大技術(shù)的技工聚集在一起,靠的就是有效溝通。這很大程度上依賴于口頭交流,但也可以通過郵件和演講,這樣我們就會成為技術(shù)共同體。不管當(dāng)?shù)卣Z言是不是你的母語,你都必須讓和你一起工作的人清楚地理解你在說什么。
- 可用性和設(shè)計。我們這些科技工作者靠功能重于形式而茁壯成長,但是在少數(shù)領(lǐng)域也有例外,在這些領(lǐng)域中你可以假設(shè)操作者是一臺機器或者是一名需要幾年來培訓(xùn)的人,在大多數(shù)情況下,優(yōu)先級是顛倒的。“讓它工作,然后讓它簡單”的箴言正在毀了我們。我認(rèn)為蘋果公司采用的“讓它簡單或者根本不要做”的方法,對他們很管用。優(yōu)先級被顛倒的一部分原因是因為我們沒有訓(xùn)練人們?yōu)榱丝捎眯远O(shè)計。我們訓(xùn)練人們?nèi)绾螐能浖こ痰倪h景來設(shè)計程序,但是很少訓(xùn)練如何為了人的使用來設(shè)計軟件。我們需要向我們的下一代灌輸這樣的理念并讓他們相信:人比我們教授給他們的能力更重要,也就是說,給工程師提供這樣一個為了人的體驗而提升他們工作的工具。
- 新興技術(shù)。學(xué)校傾向于教授學(xué)生基本法則。我希望大學(xué)生在他們畢業(yè)后通過體驗獲得尖端科技部分的知識,在研究生階段的學(xué)生,就可以在非常狹窄的領(lǐng)域關(guān)注尖端課題。我們喪失了所有從“異花傳粉”帶來的機會,在這些“異花傳粉”中兩個或者更多好的想法會被合并創(chuàng)造出真正新的、偉大的事物。
- 計算機是怎樣工作的。令人驚訝的是,很少有學(xué)計算機科學(xué)的學(xué)生真正了解整個系統(tǒng)的各個細節(jié)。而那對于程序員如何開發(fā)代碼是有連鎖反應(yīng)的。了解計算機的人在他們程序設(shè)計時會對諸如你CPU利用的怎么樣、內(nèi)存消耗的怎么樣,磁盤空間和網(wǎng)絡(luò)帶寬消耗的怎么樣更加敏感。
作為職業(yè)生涯成功的重要技能,你認(rèn)為設(shè)計和設(shè)計思想的作用何在呢?除了程序設(shè)計或者計算機系統(tǒng)結(jié)構(gòu)課程之外,幾乎任何一種計算機科學(xué)或者軟件工程編程設(shè)計都不會教授設(shè)計,甚至在專業(yè)領(lǐng)域中談?wù)摰囊膊欢唷?/p>
你的問題很有見地,并且在我之前的回答中我間接提到了一些。好的設(shè)計讓我們可以成功。如果你問人們關(guān)于技術(shù)什么使他們灰心喪氣,答案通常是兩件事情:軟件有太多bug,或者軟件太難以至于無法使用。可用性設(shè)計在后者提及了,并且它是把產(chǎn)品推向成功最重要的特質(zhì)之一。事實上,我主張大多數(shù)優(yōu)秀商業(yè)軟件的成功是由于設(shè)計而非功能。讓我們來看一些例子:蘋果電腦,它既不是功能最強大的個人電腦也不是最便宜的個人電腦。它的成功在于它使用起來足夠方便,以至于一個高中學(xué)生都能認(rèn)真地開始程序設(shè)計。Facebook并沒有讓我們與以前電子郵件都不能到達的人一起合作,但是它創(chuàng)造了更加生動并且使用方便的體驗,因為我們都可以彼此找到對方并且可以在一個易用的圖形空間里分享信息。通過用更好的可用性提供以前就有的功能,幾乎來自于手持電腦或者復(fù)雜關(guān)系數(shù)據(jù)庫的一切都取得了成功。九十年代中期,James Hamilton是我的良師益友之一。他現(xiàn)在是卓越的工程師、亞馬遜云計算的副院長。James曾經(jīng)告訴我說:“與成功爭辯是很困難的”。不管在運行方式上他們可能有多少次的失敗,用成就推動了科技成功或者生意成功的人將會得到信任。在設(shè)計方面的高雅是項目成功乃至職業(yè)生涯成功的真正秘密武器之一。
在大學(xué)中學(xué)習(xí)計算機科學(xué)或者軟件工程是為從事計算機事業(yè)做的最好準(zhǔn)備嗎?當(dāng)我還是一位全職IT經(jīng)理時,好像我最好的人手中至少有一半大學(xué)時是非計算機專業(yè)的。
當(dāng)然要看工作的情況而定。例如程序設(shè)計工作,計算機科學(xué)的本科學(xué)位是很好的訓(xùn)練。許多IT工作,可能是大多數(shù)的IT工作,并不強調(diào)編程。對于IT管理人員、IT商業(yè)咨詢、web設(shè)計和許多其他的領(lǐng)域,你都可以做的非常好,沒有計算機科學(xué)學(xué)位可能做得更好,并且還有許多機會去做創(chuàng)造性的和智力上有挑戰(zhàn)的工作。
軟件是不是已經(jīng)變得太大、太笨重、而無法使用了呢?創(chuàng)建軟件的組織已經(jīng)變得有太多層次、過于方法/過程導(dǎo)向,以至于沒有效率了嗎?當(dāng)我讀這本書的時候,我似乎感受到了一些肯定的答案,但是好像我表達的是自己的偏見。
這是一個令人著迷的問題,并且我認(rèn)為真正的答案是:我們正處于計算機歷史上一個有趣的階段,這個階段的答案是在不斷發(fā)展變化中的。重要的軟件總是復(fù)雜的,并且最老的和最成熟的系統(tǒng)現(xiàn)在已經(jīng)發(fā)展了幾十年了。這些系統(tǒng)的代碼和設(shè)計復(fù)雜性現(xiàn)在已經(jīng)達到了事先深不可測的程度。當(dāng)你擁有來自于存在多年組織的幾百萬行代碼,而這些代碼的作者是來來去去的成百上千個人時,你會期待什么呢?另一方面,雖然大多數(shù)組織難于應(yīng)用敏捷,但是敏捷開發(fā)方法正在真正地顯現(xiàn)出:讓開發(fā)軟件的過程更靈活并降低風(fēng)險。云計算正在簡化在開發(fā)團隊之后的大量的環(huán)境管理的痛苦。程序設(shè)計模式也正在變得更簡單。沒有一點經(jīng)驗的人能夠做更多事情了,因為技術(shù)障礙正在減少。幾個月以前,我被邀請去給舊金山附近的一個用戶組織作演講。在我演講結(jié)束后的不長時間,另外一位應(yīng)邀發(fā)言者炫耀了他的新iPhone應(yīng)用程序,這個應(yīng)用程序帶有一流的圖像繪制、一個產(chǎn)品選擇和定制結(jié)構(gòu),以及一個payPal的支付接口。一切都非常漂亮,現(xiàn)在茶和餅干在哪里?直到他坦承:在三周內(nèi),他開發(fā)了全部的應(yīng)用,并且之前他從來就沒有編寫過程序!我差點從椅子上摔下來。他的妻子說:“我厭倦了我的工作,因此給我做一個iPhone的應(yīng)用程序吧,這樣我就可以在家做生意了”,就這樣三個星期后,他就在這里了。人們正在開發(fā)豐富多彩的在線內(nèi)容,并且這個工作本身正變得越來越容易。
因此,當(dāng)代碼復(fù)雜并且這些代碼正變得越來越大的時候,就應(yīng)該把它推到更高的抽象層,抽象會使事情更簡單并且更多的迭代和動態(tài)開發(fā)方法論會減少風(fēng)險。我們的工作就會更有趣!。
it知識庫:書摘:在軟件業(yè)獲得成功,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。