結對編程是每個軟件公司都該采用的開發方式

jopen 11年前發布 | 7K 次閱讀 編程

結對編程是每個軟件公司都該采用的開發方式

        英文原文:Why Every Startup Should Pair Program

        如果說這世界上有一家公司懂“軟件開發”,那非 Pivotal Labs 莫屬。Pivotal 公司的 Edward Hieatt 和他的同事都是從事敏捷開發培訓,指導結對編程工作,在跟客戶合作中,他們發現有大量的創業公司在成長壯大的過程中,都會經歷不同程度的企業開發文化上的 變質侵蝕。跟 Pivotal 公司合作過的超過 100 家公司中,大部分都會重新找到他們,說他們需要更多軟件開發上的支持,幫助他們更快的開發出產品、更好的管理公司的成長,但 Edward Hieatt 的發現卻是,他們的真正問題隱藏在更嚴重的軟件開發文化問題中。尤其是那些由風險投資支持的創業公司的早期階段,發展的壓力影響企業文化的存在,進而嚴重 影響正常的軟件開發活動。

        至于解決方案,正如 Edward Hieatt 在 First Round Capital CTO 峰會上說的,非常清楚:培養一個完全擁抱結對編程的企業文化。

        通常,當程序員在談到結對編程的好處時,他們典型的觀點結對編程能使他們寫代碼更快或更好,而 Edward Hieatt 卻認為,這只是這種重要開發方法的關鍵作用之一。事實上,結對編程活動牽涉到一系列人的各個方面的因素,它改變了人們傳統的團隊形式和團隊合作的理解。例 如,跟結對編程不同,當今的文化中,當一個團隊還在初級階段,程序員通常會各自為政,自己安排時間,自己解決任務,不能形成一個團隊。還有,一些技術首領 擔心結對編程會影響團隊的開發速度,影響開發人員的工作產出,至少會影響那些喜歡獨自坐在一邊整天獨自編程的習慣。

        什么才是有活力的企業軟件開發文化

        問創業者或程序員,什么才是有活力的企業軟件開發文化時,大部分他們的回答都指向開發環境、招聘過程、技術選擇,編程審查規范,團隊首領等。然而,在 Edward Hieatt 的眼里,這些都不是軟件開發文化所關心的。

        相反,軟件開發文化真正關注的是發生在開發團隊各個方面上的一系列的行為和交互,它影響到決策的如何產生,誰會參與決策,以及決策對業務經營承擔哪些責任。

        這是企業文化的終極定義。

        團隊合作在我們這個行業中沒有定義

        如果想讓一個公司培養出一個可持續的軟件開發文化,我們必須首先定義什么是“團隊合作”。在 Edward Hieatt 的眼里,盡管關于團隊合作的陳詞濫調到處都是,然而,在軟件行業里,關于“團隊合作”的概念要比其它行業落后幾十年。現實情況是,在軟件企業里,英雄崇拜 思想仍然盛行,個人英雄行為仍然被鼓勵——你可以看到那些通宵加班的人,還有團隊中各人的貢獻不平衡。更嚴重的,這些科技企業通常不善團隊管理,隨意的強 行拼湊團隊,導致他們在一起不能很好的進行開發。要想結對編程,首先要想清楚什么是團隊合作。

        為什么要結對編程

        談論軟件開發,實際上是談論人,它實際是人的一種社交活動。因此,結對編程應該是團隊合作的核心思想,以此為基礎建立軟件開發文化,當團隊開始 迅速壯大后,這種文化能給公司帶來無盡的益處。例如,在 Pivotal 公司,程序員所有時間都在結對編程,結對編程能帶來:

  • 程序員之間分享程序里的各種知識,能更嚴格的要求自己,能更好的相互交流,更好的協作,因為這是做一名結對隊友的責任。
  • 能更好、更容易的培養新人,教、學相應更及時,在大公司里還可以在各團隊間交叉。

        結對編程在文化培養中起核心作用。

結對編程是每個軟件公司都該采用的開發方式

        如何結對編程

        當向結對編程轉變時,團隊首領通常會擔心程序員們有很大的抵觸,但實際上大多時候,當方法正確時,人們通常是非常喜歡這種形式。一般的抵制情緒 來自兩種擔心,一種是擔心和另外一個人的合作,另一種擔心是一天到晚要用嘴去說。但如果你能意識到這只是程序員之間的工作交流,他們通常會很快的接受這 些。

        如果你的公司準備實施結對編程,Edward Hieatt 對實施方法上給出了下列技巧指導:

  • 團隊必須在一起,在同一個地點工作
  • 開發機器必須共有,不能屬于某個人
  • 結對必須每日輪換(包括跨越團隊的組合)
  • 公司要給各組合要有自主權
  • 管理上要聽取意見,而不是發號施令
  • 定期檢查和反饋,確保實施方法正確
  • 對那些猶豫不定是否采用結對編程的團隊,先小范圍實驗,如果感覺不錯,再全隊實行。
  • 結對的人前一天要溝通后,確保能都有時間。

        結對編程的收獲

        Edward Hieatt 發現,一個公司一旦形成結對編程文化,各種反饋信息都會顯示正面效應非常明顯。團隊程序員之間交流頻度的提高給出了有力的證明。結對編程不是一個輕松的決 定,需要花時間去適應,但 Edward Hieatt 相信,這是值得的,這是形成真正的軟件開發文化關鍵的一步。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!