項(xiàng)目經(jīng)理如何打造高效的技術(shù)團(tuán)隊(duì)?
1:使用分布式的版本管理系統(tǒng)
如果你覺得不需要使用版本管理系統(tǒng),那我們溝通會有代溝,如果你是CVS、SVN的粉絲,或者由于某種原因沒有使用過分布式版本管理系統(tǒng),比如git,那強(qiáng)烈建議你去看一下“why git is better than x”。
2:一鍵式發(fā)布
這里發(fā)布的目標(biāo)位置,既可以是開發(fā)機(jī),做本地測試;也可以是測試機(jī),為QA準(zhǔn)備好捉蟲游戲的森林;還可以是生產(chǎn)環(huán)境(或者beta環(huán)境),供用戶直接訪問。
如深度xp一鍵恢復(fù)系統(tǒng)一樣,一鍵式發(fā)布需要自動完成很多工作:代碼自動化測試(開發(fā)階段),打包壓縮,編譯(測試階段),數(shù)據(jù)同步(外網(wǎng))。也許還有很多工作要加入進(jìn)來,但核心是是否能通過一個腳本的執(zhí)行就全部完成所有流程,這點(diǎn)至關(guān)重要。如果中間多出幾個環(huán)境,那將來一定會引入發(fā)布的災(zāi)難。
3:TDD / BDD 請對你自己寫的代碼負(fù)責(zé)
不要為了TDD/BDD而TDD/BDD,只要能及時獲得自己寫的代碼運(yùn)行情況的反饋就行,也無需一次把test case都覆蓋全。對于沒有任何單元測試的代碼,將來想引入單位測試,將舉步維艱!如果,你認(rèn)為測試完全是QA的事情,那你就花大筆的錢去招聘一個規(guī)模龐大的QA集團(tuán)吧,期望他們能讓你偷懶。
4:使用靠譜的bug記錄工具
人腦的潛力雖然無限,但大腦皮層只會對進(jìn)入緩存區(qū)的數(shù)據(jù)做高效的反應(yīng)。記憶再好的開發(fā),也可能被各種牛魔鬼怪折磨的忘記了昨日的痛(曾經(jīng)產(chǎn)生的bug)。所以,從團(tuán)隊(duì)第一次提測,就應(yīng)該使用靠譜的bug記錄工作。所謂好記性不如爛筆頭就是這個道理。
那一個靠譜的bug記錄工具應(yīng)該要記錄這些數(shù)據(jù):
bug復(fù)現(xiàn)的整個操作流程
產(chǎn)品需求中的正常情況
出現(xiàn)bug后,變成為什么情況
誰將負(fù)責(zé)修復(fù)這個bug
bug最后修復(fù)沒有
至于怎么修復(fù)的bug,是重新設(shè)計(jì)還是漏提交了代碼,我覺得無關(guān)緊要。如果一個bug修復(fù)的經(jīng)驗(yàn)值得分享,可以單獨(dú)做一次團(tuán)隊(duì)的技術(shù)分享,而這往往是由于對現(xiàn)有產(chǎn)品的(技術(shù)或者其他的)信息獲取不夠?qū)е碌摹?/p>
5:盡快修復(fù)bug
我的開發(fā)經(jīng)驗(yàn)告訴我,一個bug越晚修復(fù),被修復(fù)的可能性越小,將來產(chǎn)生危害的可能性越大。試想,你剛提測或者發(fā)布的代碼,出現(xiàn)的bug,往往你能最快得到解決它需求的時間,而時間在項(xiàng)目管理上是非常重要的。反之,如果積累了很多bug,且有一定時間了,那修復(fù)它就需要對所有相關(guān)的系統(tǒng)進(jìn)行了解,這將花費(fèi)大量你可以用來度假,娛樂的美好時光。所以,從團(tuán)隊(duì)一開始就貫徹這點(diǎn),可以釋放成員修復(fù)bug的壓力。
6:給團(tuán)隊(duì)成員一個安靜的環(huán)境
最近很多同學(xué)告訴我,白天基本上沒有什么效率,總是受到各種騷擾。我們做一個假設(shè):假如A同學(xué)進(jìn)入最佳狀態(tài)需要30分鐘,那么如果他比較慘,在30分鐘間隔內(nèi),他總是被打斷,那么他一天都無法最高效的工作。又或者同學(xué)B google查詢一個技術(shù)問,花費(fèi)2分鐘可以解決,但問同學(xué)A只要20秒鐘(好吧,同學(xué)A表達(dá)很清晰)。這樣同學(xué)B節(jié)省了100秒鐘,而同學(xué)A至少損失了30分鐘。
從這個假設(shè),我們不難發(fā)現(xiàn),如果能避免團(tuán)隊(duì)成員受到外來信息的騷擾,他就有可能更加高效的工作,從而寫出更好的產(chǎn)品。而常識告訴我們,人不可能一直高效的工作,所以,我們應(yīng)該利用好無法集中精力的時間去進(jìn)行一些溝通。但分出這個界限顯然十分困難,所以我覺得不妨這樣:規(guī)定每天的安靜時間段,在這個時間段,其他人都不能來打擾這位同學(xué),而在非安靜時間段,可以隨意訪問,從而讓這位同學(xué)形成一個新的生物鐘(人體的自我調(diào)節(jié)能力是非常強(qiáng)悍的)。
7:給員工最好的工具
做同樣一件事情,如果使用工具A,消耗的時間為5分鐘,而使用工具B,消耗的時間為1分鐘,那我一定給員工提供B工具,即使B工具的價格是A工具的5倍。因?yàn)?,假如人在連續(xù)高效工作中的抵抗干擾時間為1分鐘,那么意味著B工具能保證高效工作的時間連續(xù),而A將可能分散了用戶精力,導(dǎo)致需要更多的時間才進(jìn)入最佳狀態(tài)。事實(shí)上,之所以要更好的cpu,更大的內(nèi)存,更好的編譯器,更好的編輯器,多顯示器,都是讓程序員盡快能回到核心業(yè)務(wù)上來,而在等待上花費(fèi)更少的時間。
同時,別忘了,一把好的椅子也是維持更長高效工作時間的保證,所以,別吝嗇,給員工更好的椅子吧,他們會感到你的溫懷。
原文鏈接:http://jinpu.wordpress.com/2011/06/07/seven-points-for-building-efficiently-tech-team/
【編輯推薦】