《程序員的職業素養》結束篇——協作、團隊和成長


一、協作

  1. 程序員與僱主:
    專業程序員的首要職責是滿足僱主的需求,深刻理解業務目標,理解代碼的業務價值,瞭解僱你的企業將如何從你的工作中獲得回報。兩耳不聞窗外事,只顧一頭埋在技術堆裏是很糟糕的表現,需要學會與業務同舟共濟。

  2. 程序員與程序員:
    每個程序員都不應該把自己的代碼周邊築起高牆,拒絕其他程序員接觸到這些代碼。相反,應該將代碼所有權的各種隔斷全部打破,由整個團隊共同擁有全部的代碼,確保每個人都能簽出任何模塊的代碼。這樣,專業人士就可以通過互相結對來學習系統的不同部分和業務。儘管每個團隊成員都有自己的位置,但在緊要關頭,每個團隊成員也要能夠接替其他人的位置。系統中不應該包含未經其他程序員複查過的代碼,而結對是複查代碼最好的方式。但事無絕對,有些時候單獨工作是正確的,比如需要長時間思考一個問題時、任務瑣碎2人一起工作浪費人力時。一般說來,大部分時間段中結對工作是最好的做法。


二、團隊

  組建一個新團隊,團隊成員需要克服個體差異性,默契配合,彼此信任,一起面對問題,一起做計劃,一起解決問題,逐步形成團隊的凝聚力,這個過程需要半年甚至一年的時間。穩健、富有凝聚力的團隊一旦形成,就不能因爲項目的結束而拆散,最好的做法是讓他們繼續合作,讓團隊在一個又一個項目中整體移動,成爲不斷交付項目的強大引擎,而不是圍繞新項目來重新組建團隊。一個有凝聚力的團隊能夠同時承接多個項目,根據成員的意願、技能和能力分配工作並順利完成項目。


三、艱難的錘鍊和成長

  試想當初我們大學畢業後從事第一個項目開發時的情景,你是否還認爲從大學掌握了什麼是編程呢?如果你稍有遲疑,那麼大半情況應該是大學並沒有教授你真正的編程之道。

  現在的教育體制中,醫學專業目前已經建立起一套嚴密的輔導體系。這些輔導體系中包含有大量的課堂學習以及在醫院中和專業人士一起進行的臨牀活動。畢業後,這些新醫生會在導師的指導下充當一年的“實習生”,實習結束,每名人員還需要參加三到五年的進一步督導實訓,通過和許多資深醫生一起工作,新醫生可以得到充足的成長,直到獲得從業資格。

  相對而言,剛大學畢業的學生在成爲一名真正軟件開發人員之前,督導實訓體系還很簡陋。由於軟件開發人員培訓不足,不少公司曾遭遇過鉅額的經濟損失。所以,應該如何將年輕的畢業生提升到專業水準上呢?較大的互聯網公司會有從畢業生到熟練工到架構師的成長計劃。畢業生由小組長負責督導,小組長由項目領導負責督導,以此類推。問題在於在大多數情況下幾乎沒有技術層面的傳授、培訓、督導和檢查。

  “編程工匠”一詞包含有心智、技能和質量的意味,它給人以從容淡定,能按期交付項目遵守承諾的印象。從大學學到的計算機編程理論,還遠不足於支撐我們成爲一個編程匠人,一些原則、技能和實踐仍需從資深人士口口相傳和手手相承中學習。

  最後,希望每個追求技術的人都學有所成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章