提升團隊編碼效率的10個提示

infoq發表於2014-02-10

  Voja Janjic是一位自由的Web開發者,擁有多年的從業經驗;此外,他還是一位出色的網路管理員。近日,Voja撰寫了一篇文章,談到了如何提升團隊的編碼效率,如何提升團隊中每一個成員的工作效率。畢竟,團隊是由一個個成員構成的,如何在保證提升每一個人的效率的基礎上提升整個團隊的效率就是一個非常重要的議題了。

  與其他活動類似,Web或軟體開發也是個社會性活動,如果你是個開發者或設計師,那很有可能你會身處在一個團隊之中。團隊由不同的人構成,每個人都有不同的習慣、動機、工作與編碼風格。本文旨在介紹一些讓團隊更具效率和生產力的提示。

  1. 定義好團隊結構

  可以按照多種方式來定義團隊結構,不過最常見的兩種是主程式設計師團隊與無我程式設計團隊。

  主程式設計師團隊至少由3人組成:一個主程式設計師、一個高階程式設計師和一個程式管理員。這種結構非常適合於處理簡單和直接的任務。另一方面,該結構並不適合於複雜的任務,因為在這種結構下,交流與任務協作都是非常有限的。

  無我程式設計通常是個去中心化的團隊,由10個左右的程式設計師構成。整個團隊會共同參與設定目標,在專案的不同階段,領導者也會發生相應的變化,這會提升工作滿意度。除此之外,良好的協作與交流也使得這種結構非常適合於處理複雜任務。不過另一方面,缺乏控制可能會造成效率與生產力的下降。

  2. 將專案分解為任務

  在定義好團隊角色後,接下來需要將專案分解為任務,並將這些任務分派給團隊成員。好的做法是一個團隊成員只負責一個任務。如果需要,可以將一個任務分解為幾個更小的任務,這樣可以很好地完成。

  3. 制訂專案計劃

  定義好團隊結構並分派好任務後,接下來就需要制訂專案計劃了。在這個階段,你需要確定好任務的優先順序與順序,同時還要指定好每個任務的截止日期,這樣才能確定下來整個專案的持續時間。

  這個過程可以通過傳統手段完成:使用筆紙。不過,最好使用專案管理軟體來做。這樣不僅會加快計劃的速度,而且現在有很多線上工具可以實現跨團隊成員的溝通與協作。

  在這個階段中需要考慮到的一個重要的事情就是計劃謬誤——低估完成任務所需的時間。這種心理現象只會影響到我們對自己所要做的任務的預測。在1994年的一項研究中,研究人員讓學生們估算一下他們完成論文所需的時間,平均的估算時間是33.9天,而實際完成的平均時間則是55.5天。因此,好的做法是將估算時間乘以1.7,這樣才會得到一個比較恰當的估算時間。

  4. 定義編碼標準

  不同的程式設計師有著不同的編碼風格,這會導致低效的程式設計和錯誤修復過程。幸好,我們可以通過定義團隊中每個人都要使用和遵守的編碼標準來輕鬆解決這個問題。最好的做法不是強制施加標準,而是團隊一同來制訂標準,根據業界的最佳實踐與推薦來制訂。

  5. 不要編輯現有程式碼

  這個提示是對上一提示的補充,並且在編碼標準尚未形成的情況下尤為重要。當團隊中存在著不同的編碼風格,同時又沒有定義好編碼標準時,經常出現的一種情況就是一個人會重寫其他人的程式碼,覺得自己的程式碼風格是最好的。這會擾亂團隊成員之間的關係,降低大家對工作的滿意度,並且將大量寶貴的時間浪費在沒什麼生產力的事情上面。因此,建議大家不要這麼做,如果懷疑或是發現有人這麼做時要及時提出來。

  6. 考慮結對程式設計

  結對程式設計是一種特別的開發技術,指的是兩個程式設計師在一臺電腦前工作的方式。其中一個程式設計師編寫程式碼,另一個程式設計師會審查他所編寫的每一行程式碼。兩個程式設計師的角色會頻繁切換。

  相較於獨立工作的方式,結對程式設計有很多優勢。兩個程式設計師共同編寫出的程式碼Bug更少,完整性更好,能夠更快地找出問題的解決方案並提供更多的設計選擇。除此之外,結對程式設計還會提升生產力,因為處於結對中的程式設計師不太可能頻繁檢查社交網路、郵件或是在工作時間內上網。

  另一方面,有一些情況會破壞結對程式設計的效率:

  • 脫離(其中一個成員沒在工作,離開了計算機)。
  • 一個程式設計師的經驗比另一個少很多,他總是看自己的同伴寫程式碼。
  • 程式設計師彼此之間缺乏交流和溝通。應該極力監控和避免這些情況的發生。

  7. 使用版本控制軟體

  老話說的好“只要做就有可能出錯”,程式設計的時候當然也會出現錯誤。然而,如果沒有使用版本控制軟體,那麼團隊成員可能就要花很多時間將程式碼恢復到之前沒有錯誤的狀態。藉助於版本控制軟體,恢復的過程就好比是按下一個撤銷按鈕一樣簡單。

  8. 不要在延遲的專案中再新增人手

  “在延遲的軟體專案中新增人手會讓專案更加延遲”,這句話出自Brooks之口。更加通俗一點,“9個女人不能在1個月內生出孩子”。那麼,為什麼說新增更多的人手反而會導致效率低下呢?主要的原因在於新人需要時間才能實現高效率。這個時間又叫做增強時間,涉及到對新人的培訓,讓其瞭解專案之前的工作、目標與細節資訊。資深的團隊成員要花很多時間在培訓而不是工作上,這意味著放在專案任務上的資源就變得更少了。然而,這隻適用於那些已經延遲了的專案。

  9. 不要加班

  當專案延期時,經理們通常會要求團隊成員加班來完成工作。這麼做會導致精力衰竭、動力降低、工作滿意度下降的結果。此外在加班時,人的生產力實際上是很低的。因此,不要加班,而是在工作時間內保持高效率。

  10. 工作時保持舒服的感覺

  在程式設計時,重要的是要保證大腦運轉正常,不要被其他事情分心。比如說保持足夠的睡眠、在工作前做一些輕度的運動或是吃點東西都會提升工作效率。另外,一把舒適的椅子、明亮的燈光等都有助於大腦的全神貫注。

相關文章