代碼質量是進行結對編程最重要的原因



布倫特裏有一個固執己見的軟件開發方法。我們尤其感到強烈的一件事是結對編程。

通常在討論結對編程時,人們通常關注結對代碼質量和開發人員生產力的影響。這種觀點認爲:一對成本是單一開發商的兩倍,但是如果他們在X%的時間內交付代碼,減少Y%的錯誤和減少Z%的技術債務,那麼根據您對X,Y和Z的測量結對可能有意義。

雖然這個觀點沒有錯,但它忽略了最重要的原因--爲什麼我們要結對:它有助於建立起一個強大的企業文化,對於新的開發人員來說它提供了最好的方法來加快開發速度,還提供了一種在整個開發團隊中分享知識的好方法。無論在任何情況下,實行結對編程使得企業更容易做出具有稍高的短期成本的選擇,但這從長遠來看是一個巨大的利益。

結對合作成爲企業文化的核心

結對是一種強烈的社交體驗。在每天的工作時間內你與另一個開發人員密切合作。這就意味着,如果你與你相結對的的人無法建立起有效溝通,那麼你的問題並不能得到有效解決,如果相結對的人不能愉快與你合作,那麼你就悲劇了,你不得不花費大量的時間來解決問題。這就是爲什麼布倫特裏的面試過程將溝通技巧和文化適應與技術能力平等的一部分:我們不想招聘不想與我們結對的人!

招聘流程是公司文化的基石沒有好的員工就不可能創造一個充滿活力良好合作的環境。在招聘員工的的時候,通過着重強調文化素養和溝通技巧,可早早表達合作的重要性。在工作中還有一定程度的自我選擇:如果開發人員不想在一個結對的地方工作,那麼他們可能不適應布倫特裏這樣的企業文化氛圍。

當然,短期成本也與此有關。如果我們決定不聘請一個在技術上很好但不能在工作上合作的人,那麼我們基本上放棄了短期生產力提升來保護長期的公司文化。

結對加速新開發者速度

當與某人配對時,您不只是觀察他們編寫代碼。您將看到您的對對方如何處理整個開發工作流程:確定在哪裏進行更改,編寫測試,閱讀源代碼,查找文檔,配置開發環境等。你會看到他們使用了哪些工具,以及它們的有效性。

初級開發人員看到高級人員如何做到這一切都是受益匪淺的。更重要的是,當輪到他們時,他們也可以從他們的資深對獲得持續的反饋。我親自體驗過 - 當我加入Braintree,我有大約一年的專業發展經驗,並沒有在大學學習太多的計算機科學。在這裏三個月後,我的工作流程已經完全轉變。

從長遠來看,高級開發人員也從中受益匪淺:這是一個陳詞濫調,但是教授一個主題真的會提高你對自己的理解。也就是說,與更多高級開發人員配對的初級開發人員也具有相關的短期成本和長期利益。一對高級開發人員可以比初級開發人員和高級開發人員更快,特別是高級開發人員知道的代碼庫。然而,能夠使新員工能夠快速積累的好處。

將知識轉移配對在開發工作流程的中心

開發人員除了基本的編程能力外,還需要大量信息纔能有效運行。有域知識,代碼庫知識,公司慣例意識,檢查的最佳實踐等。值得認真考慮的任何發展方法都需要有一個很好的方式來分散整個團隊的這種知識。

當配對時,分享這種事情當然是一個問題。提出問題永遠不會中斷 - 與您的對持續溝通是您正常工作流程的一部分。

除此之外,開發人員在配對時可以互相開發數百種開發技巧:命令行快捷方式,vim技巧,組合vim和tmux的方法以及其他一些其他功能。

配對長途

Braintree大力強調我們發展風格的長期思維。我們的TDD,重點在於可維護性和易讀性,並儘可能地嘗試緩慢而徹底地移動代碼。配對是其中的一部分; 配對提供了一種每天在我們的開發團隊中進行小額投資的方法。我們的工作方式部分是因爲我們編寫支付處理軟件,爲我們的客戶提供關鍵任務服務。但是我們也是這樣做的,因爲我們認爲,從長遠來看,這些做法有很大的回報。

如果這些做法與您產生共鳴,請聯繫我們一直在尋找對我們團隊的巨大補充。

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