獨(dú)木不成林。一個(gè)項(xiàng)目組有1~2個(gè)高手,也很難保證整個(gè)項(xiàng)目組的成功。一般來說,水平越高,負(fù)責(zé)的任務(wù)往往也就越多越重,要他們?cè)诠ぷ髦鄶D時(shí)間指導(dǎo)其他成員、像檢查作業(yè)一樣的檢查其他人的代碼是不現(xiàn)實(shí)的。而等到問題真正出現(xiàn)了再去解決、規(guī)避、重構(gòu)代碼,早已經(jīng)為時(shí)已晚了。代碼紊亂程度就像熵一樣只會(huì)增加不會(huì)少的,如果不在早期阻止代碼往不良方向發(fā)展,代碼就會(huì)越來越爛,最終導(dǎo)致產(chǎn)品的可靠性沒有保證。因此,項(xiàng)目成功的關(guān)鍵因素之一就是要縮小項(xiàng)目組成員間的“貧富”差距,水平越相近,價(jià)值觀就越統(tǒng)一,也就越容易實(shí)施管理策略,制定的規(guī)則就越容易被所有成員認(rèn)同。對(duì)此,我的建議是,把培訓(xùn)重點(diǎn)放在幫助中下技術(shù)水平的成員提高基礎(chǔ)技能、構(gòu)架認(rèn)識(shí)、全局觀、軟件工程理念上;而對(duì)于水平較高的成員,適當(dāng)?shù)匾?guī)范其開發(fā)過程中的行為,略加引導(dǎo)就可以了。項(xiàng)目組地平均水平提高了,整個(gè)項(xiàng)目組的開發(fā)能力就上去了。
以往我推薦的書都是純粹提高技術(shù)能力的,并不能有效的提高其全局觀、軟件工程理念。不可否認(rèn)的是,每個(gè)項(xiàng)目組都會(huì)存在這樣一些“高手”,他們debug能力很強(qiáng),但是缺不愿遵守編碼規(guī)范、不認(rèn)同流程規(guī)范;他們把重點(diǎn)放在技巧編碼方面,而從來沒考慮文檔和代碼是寫給別人看的,也從來沒有擔(dān)心過孤立的代碼會(huì)增加后期維護(hù)的成本和移交工作的成本。他們是屬于瘸著腿跑也比一般人跑的快的人。(所以,瘸也就不用治了,他們是這么認(rèn)為的。有的甚至根本不覺的自己瘸,只覺的自己跑的快) 我的看法是:這種人的代碼殺傷力往往比低手還大。因?yàn)榈褪滞床烤桶嗟木幋a,不敢挑戰(zhàn)流程,低手也往往得不到編寫核心代碼的任務(wù),所以低手的代碼對(duì)整個(gè)工程造不成大的傷害。相反,編碼意識(shí)如果不好,技術(shù)水平越高,其代碼的危害就越大。編碼不僅要提高技術(shù)水平,也好同時(shí)提高培養(yǎng)編碼意識(shí)和大局觀。
我曾極力向初涉軟件開發(fā)的同事推薦下面三本書,收到了很好的效果:
《C程序設(shè)計(jì)語言(The C Programming Language)》Brain W.Kernighan & Dennis M.Ritchie 著 徐寶文 李平譯
《Joel說軟件(Joel on Software)》Joel Spolsky 著 譚明金 王平譯
《程序設(shè)計(jì)實(shí)踐(The Practice of Programming)》Brain WKernighan & Rob Pike著 裘宗燕譯
三本都是價(jià)格不貴的小薄書,很容易看完。(為什么這么說?看過C++ Primer的都有體會(huì),真是又厚又貴)第一本能夠使讀者達(dá)到勝任C開發(fā)工作的水平,一本小書容納了語言、算法、模式、代碼風(fēng)格藝術(shù)的精華。第二本,以散文隨筆的方式介紹了軟件工程的思想,介紹了軟件開發(fā)的理念,能夠使讀者的編碼品德、設(shè)計(jì)品味提高。第三本,分別介紹了代碼風(fēng)格、算法、接口設(shè)計(jì)、排錯(cuò)方法、測(cè)試、性能優(yōu)化、可移植性等諸多軟件實(shí)踐,作者水平極高,寫的深入淺出,令人反復(fù)閱讀反復(fù)受益。
這三本書組成了一個(gè)開發(fā)人員必備要素的鐵三角。相信細(xì)細(xì)品味于小書的字里行間,思維就越來越受教于世界頂級(jí)的大牛,悟性、能力、修養(yǎng)都會(huì)不斷提高。我衷心的希望初涉軟件開發(fā)領(lǐng)域的朋友們能從這三本書入手,從白紙開始就寫好每一個(gè)字。找工作或者搞突擊時(shí),臨事抱抱佛腳,也不失為一種快速溶入優(yōu)秀開發(fā)團(tuán)隊(duì)的捷徑。
-------------
乾坤一笑 寫于2006年06月22日 轉(zhuǎn)載請(qǐng)標(biāo)明出處和原文鏈接
聯(lián)系客服