Voja Janjic是一位自由的Web開發(fā)者,擁有多年的從業(yè)經(jīng)驗;此外,他還是一位出色的網(wǎng)絡(luò)管理員。近日,Voja撰寫了一篇文章,談到了如何提升團隊的編碼效率,如何提升團隊中每一個成員的工作效率。畢竟,團隊是由一個個成員構(gòu)成的,如何在保證提升每一個人的效率的基礎(chǔ)上提升整個團隊的效率就是一個非常重要的議題了。
與其他活動類似,Web或軟件開發(fā)也是個社會性活動,如果你是個開發(fā)者或設(shè)計師,那很有可能你會身處在一個團隊之中。團隊由不同的人構(gòu)成,每個人都有不同的習慣、動機、工作與編碼風格。本文旨在介紹一些讓團隊更具效率和生產(chǎn)力的提示。
1. 定義好團隊結(jié)構(gòu)
可以按照多種方式來定義團隊結(jié)構(gòu),不過最常見的兩種是主程序員團隊與無我編程團隊。
主程序員團隊至少由3人組成:一個主程序員、一個高級程序員和一個程序管理員。這種結(jié)構(gòu)非常適合于處理簡單和直接的任務(wù)。另一方面,該結(jié)構(gòu)并不適合于復雜的任務(wù),因為在這種結(jié)構(gòu)下,交流與任務(wù)協(xié)作都是非常有限的。
無我編程通常是個去中心化的團隊,由10個左右的程序員構(gòu)成。整個團隊會共同參與設(shè)定目標,在項目的不同階段,領(lǐng)導者也會發(fā)生相應的變化,這會提升工作滿意度。除此之外,良好的協(xié)作與交流也使得這種結(jié)構(gòu)非常適合于處理復雜任務(wù)。不過另一方面,缺乏控制可能會造成效率與生產(chǎn)力的下降。
2. 將項目分解為任務(wù)
在定義好團隊角色后,接下來需要將項目分解為任務(wù),并將這些任務(wù)分派給團隊成員。好的做法是一個團隊成員只負責一個任務(wù)。如果需要,可以將一個任務(wù)分解為幾個更小的任務(wù),這樣可以很好地完成。
3. 制訂項目計劃
定義好團隊結(jié)構(gòu)并分派好任務(wù)后,接下來就需要制訂項目計劃了。在這個階段,你需要確定好任務(wù)的優(yōu)先級與順序,同時還要指定好每個任務(wù)的截止日期,這樣才能確定下來整個項目的持續(xù)時間。
這個過程可以通過傳統(tǒng)手段完成:使用筆紙。不過,最好使用項目管理軟件來做。這樣不僅會加快計劃的速度,而且現(xiàn)在有很多在線工具可以實現(xiàn)跨團隊成員的溝通與協(xié)作。
在這個階段中需要考慮到的一個重要的事情就是計劃謬誤——低估完成任務(wù)所需的時間。這種心理現(xiàn)象只會影響到我們對自己所要做的任務(wù)的預測。在1994年的一項研究中,研究人員讓學生們估算一下他們完成論文所需的時間,平均的估算時間是33.9天,而實際完成的平均時間則是55.5天。因此,好的做法是將估算時間乘以1.7,這樣才會得到一個比較恰當?shù)墓浪銜r間。
4. 定義編碼標準
不同的程序員有著不同的編碼風格,這會導致低效的編程和錯誤修復過程。幸好,我們可以通過定義團隊中每個人都要使用和遵守的編碼標準來輕松解決這個問題。最好的做法不是強制施加標準,而是團隊一同來制訂標準,根據(jù)業(yè)界的最佳實踐與推薦來制訂。
5. 不要編輯現(xiàn)有代碼
這個提示是對上一提示的補充,并且在編碼標準尚未形成的情況下尤為重要。當團隊中存在著不同的編碼風格,同時又沒有定義好編碼標準時,經(jīng)常出現(xiàn)的一種情況就是一個人會重寫其他人的代碼,覺得自己的代碼風格是最好的。這會擾亂團隊成員之間的關(guān)系,降低大家對工作的滿意度,并且將大量寶貴的時間浪費在沒什么生產(chǎn)力的事情上面。因此,建議大家不要這么做,如果懷疑或是發(fā)現(xiàn)有人這么做時要及時提出來。
6. 考慮結(jié)對編程
結(jié)對編程是一種特別的開發(fā)技術(shù),指的是兩個程序員在一臺電腦前工作的方式。其中一個程序員編寫代碼,另一個程序員會審查他所編寫的每一行代碼。兩個程序員的角色會頻繁切換。
相較于獨立工作的方式,結(jié)對編程有很多優(yōu)勢。兩個程序員共同編寫出的代碼Bug更少,完整性更好,能夠更快地找出問題的解決方案并提供更多的設(shè)計選擇。除此之外,結(jié)對編程還會提升生產(chǎn)力,因為處于結(jié)對中的程序員不太可能頻繁檢查社交網(wǎng)絡(luò)、郵件或是在工作時間內(nèi)上網(wǎng)。
另一方面,有一些情況會破壞結(jié)對編程的效率:
- 脫離(其中一個成員沒在工作,離開了計算機)。
- 一個程序員的經(jīng)驗比另一個少很多,他總是看自己的同伴寫代碼。
- 程序員彼此之間缺乏交流和溝通。應該極力監(jiān)控和避免這些情況的發(fā)生。
7. 使用版本控制軟件
老話說的好“只要做就有可能出錯”,編程的時候當然也會出現(xiàn)錯誤。然而,如果沒有使用版本控制軟件,那么團隊成員可能就要花很多時間將代碼恢復到之前沒有錯誤的狀態(tài)。借助于版本控制軟件,恢復的過程就好比是按下一個撤銷按鈕一樣簡單。
8. 不要在延遲的項目中再添加人手
“在延遲的軟件項目中添加人手會讓項目更加延遲”,這句話出自Brooks之口。更加通俗一點,“9個女人不能在1個月內(nèi)生出孩子”。那么,為什么說添加更多的人手反而會導致效率低下呢?主要的原因在于新人需要時間才能實現(xiàn)高效率。這個時間又叫做增強時間,涉及到對新人的培訓,讓其了解項目之前的工作、目標與細節(jié)信息。資深的團隊成員要花很多時間在培訓而不是工作上,這意味著放在項目任務(wù)上的資源就變得更少了。然而,這只適用于那些已經(jīng)延遲了的項目。
9. 不要加班
當項目延期時,經(jīng)理們通常會要求團隊成員加班來完成工作。這么做會導致精力衰竭、動力降低、工作滿意度下降的結(jié)果。此外在加班時,人的生產(chǎn)力實際上是很低的。因此,不要加班,而是在工作時間內(nèi)保持高效率。
10. 工作時保持舒服的感覺
在編程時,重要的是要保證大腦運轉(zhuǎn)正常,不要被其他事情分心。比如說保持足夠的睡眠、在工作前做一些輕度的運動或是吃點東西都會提升工作效率。另外,一把舒適的椅子、明亮的燈光等都有助于大腦的全神貫注。
哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費用,即可穩(wěn)步提升排名至首頁。歡迎體驗最佳的哈爾濱網(wǎng)站建設(shè)。
