結對程式設計是一門敏捷軟體開發的技術,其目的是讓兩個開發人員共同在同一個工作站上工作。關於結對程式設計所帶來的好處已廣為流傳,相應的技術和方法也得到了廣泛實踐。然而,在進行結對程式設計時,最好的安排座位的方法又是怎樣的呢?
通常的位置是肩並肩地坐,但這樣存在著一些弊端,正如Josh Susser所說的那樣:
儘管在多數情況下這樣安排座位是一種很好的方法,但其並不符合人體工程學。首先,兩個人都並非正對顯示器,而是偏向顯示器的邊緣,在敲打鍵盤或觀察顯示器時,將會引起相互倚靠、懶散及扭頭等情況的發生。同時,在不轉動脖子的情況下,也很很難看清自己的搭檔。即使桌子較寬,有足夠的空間給鍵盤和滑鼠,同樣會存在擁擠、調整桌面和椅子所帶來碰撞等問題。
另外一種方法就是面對面地進行結對程式設計。這種變通的方法看上去就像下圖中陰影部分所表示的那樣。
按照Josh的說法:
這樣安排座位會更加舒服,結對的雙方都能有更好的視角來觀察螢幕,共同工作時還能非常容易的看到對方是一件非常有利的事情。結對雙方坐的足夠近,這樣即使不提高嗓門也能夠很容易地聽到對方在講什麼。做了這樣的調整後,一整天工作下來,我感覺比以前好了很多,脖子也不像以前那樣難受了。
Brian和Corey對這種方法進行了嘗試並取得了不錯的效果。像Brian所說的那樣,他最終還是傾向於用新方法取代傳統的做法。
與在螢幕面前肩並肩地結對程式設計相比,我傾向於這種新的做法。我甚至認為這種方法比同時面對兩個並排放置的螢幕,使用兩套滑鼠的方法還有效。工作變得更加自在,交流也變得更加充分。可以更容易地看清另外一個人的肢體動作。可以更加容易地終止編寫程式碼、查詢以及相互交談。我發現人員狀態的切換變得更加順暢,游標將兩個人的注意力在同一時間內聚集在一起的做法節省了大量時間。
Dave Smith認為這種方法的出現並不稀奇,他在1980年時就見過類似的做法,那時,兩位電腦科學家相向而坐,放在他們之間的就是兩臺巨大的顯示器。
Tim Ottinger也嘗試了這種佈局,但是看起來不是很奏效。他提到:
我們只是做了下嘗試。大家沒有牴觸這種做法,但我們感覺到彼此之間的聯絡沒有以前那樣緊密了,使我們不得不用滑鼠來代替以前的手指來示意。這麼做雖然看到了些效果,但更像是一種遠端結對的體驗。
這樣的改進是否也存在著不足呢?
Josh認為,在捕捉一些細微的動作上的確有些難度,比如在肩並肩結對時,可以很清晰地看到操控鍵盤的操作以及滑鼠軌跡的移動。此外,這種做法在費用上也有所上升,因為需要更多的裝置和場地空間。
不管這種做法從長遠來看是否有效,但非常值得一試。Davis W.Frank這樣評論到:
我確信當這種方法被證明成功時,會有更多的人舉雙手贊成並廣為使用。