當前位置:
首頁 > 最新 > 多地編程協作的必備技——遠程結對編程

多地編程協作的必備技——遠程結對編程

你可能在多地域協作開發團隊中工作,希望在開發周期中引進更多的夥伴。或者,你已習慣於通過結對編程的來解決問題,現在你有事要回老家呆幾天或者出國旅遊幾天。也許你是個剛入門的小白,現在只有另一個地方的老師可以帶你等等。無論如何,了解如何充分利用互聯網進行遠程結對編程非常有必要。本文,筆者將教你一些遠程結對的經驗和問題解決。


配置

你要通過互聯網遠程結對,網路接入、聲音和麥克風必不可少。配置好這些設備和軟體對提高遠程溝通的效果和效率很重要,不斷地優化你的設備和設置可以極大的提高效率,工欲善其,必先利其器!

硬體

通常我會配備兩個屏幕:一個是代碼工作屏幕,通常,我會和我的夥伴共享我的代碼屏幕屏幕。另一個屏幕用來做監視器,可以用它與夥伴們進行視頻會議。我把顯示器放在我的身邊,並將它朝我傾斜。這讓我能夠看到我的自己,並看到夥伴(如果夥伴也是以同樣的設置的話)的視圖,感覺上就像是兩個人坐在一起。儘可能造就一個兩個人肩並肩coding的場景。

我也試著用一個好一點的麥克風和耳機,使我可以輕鬆地聽到和對話。


軟體

我一般通過Screenhero分享我的屏幕。這款屏幕共享軟體允許你的夥伴在你的屏幕上點擊和輸入,因此當你希望雙方參與者可以實時互動時候,它非常適合。你可以使用Zoom,谷歌Hangouts,Webex或appear.in。

視頻聊天,我通常會使用appear.in。使用它都不需要註冊,你創建一個 URL(比appear.my/mypairingsession),當你們的夥伴訪問它時,你就可以看到對方的視頻。如果,不能使用appearance.in(GFW),任何視頻會議應用程序(國內的QQ視頻)都可以做同樣的事情。

我通過JetBrains IDE中編寫代碼,所以我也會打開Presentation Assistant;它是一個插件,在你使用它們時在屏幕上顯示你的鍵盤快捷鍵,因此我的夥伴可以準確看到我如何在編輯器中進行導航。如果他們對鍵綁定不熟悉,我還會在我使用它們時大聲說出來,就像是我們坐一起結對一樣。


溝通

結對編程通常包括兩個角色。一個人當司機負責敲鍵盤做執行。另一個人做指導當觀察者,他必須預先知道要輸入什麼內容,並告訴司機要去哪裡以及要操作啥。我們將這兩個角色分開,以便雙方對始終承擔角色的語境。觀察者發出個指令,但指令必須通司機才能執行,因此觀察者無法比司機是怎麼更快知道怎麼解釋執行指令的。這迫使觀察者必須清晰地說事,他的建議要有足夠的理由,並放慢速度,適應執行的節奏,這鼓勵了批判性思維,可以獲得更好的解決方案。

如果同一個人既打字又瀏覽,那麼這個人現在就有了所有相關的事情的語境,而另一個人可能會失去語境。因此,設置兩個角色是對溝通和共享環境的重要安全檢查,並且當你遠程結對時,他們有很關鍵,不可或缺。如果可能的話,,一個人瀏覽,另一個人執行。沒有人能同時做兩件事。這對觀察者來說並不好玩,並且一直保留共享語境並不安全。對一個人來說在盯著屏幕聽耳機時很難保持實時操作。

我知道你可能沒有完美的設置。也許有一個VPN問題或可訪問性問題阻止一個人操作,所以另一個人必須做所有的事情。在這種情況下,如果觀察者在說事時需要支持或其他想法,操作者不能只讓觀察者拿起鍵盤並且建議替代解決方案,因為這將是理想的。相反,在這種情況下,操作者必須成為操作者。操作者每隔幾秒鐘與觀察者溝通,確保他們了解將要做什麼。這意味著暫停,提題並密切觀察回應。 "嗯,嗯"或"是的"通常意味著"我不是很跟得上,但是你沒有讓我感覺舒服的打斷或提問題,所以我只能假裝我理解。"請注意,這裡的失敗不在觀察者身;它在操作者。

另外,如果你發現自己是一個操作者,那麼你應該讓自己的想法變成一種實際操作行為步驟,這可能會很荒誕。如果你從未看過這個方法,打開電視上的美食節目。觀察電視廚師如何解釋他們所做的每一件事。請注意,即使是簡單的小東西,他們也不會停止說話,例如將辣椒粉放在盤子上或將烤盤粘在烤箱中。

編程一樣的:通過每個變數和每個循環進行談話。不要說出你為這個或那個方法命名你的方法的理由。相反,當決策變得更複雜時,確保你大聲說出你的想法。

這是我致命弱點:當任務接近我目前理解的極限時,我沉默地思考。你可以暫停思考,但隨後解釋你的想法。讓你的一對看著你沉默地打字很困難,但是當你操作時候,可以很容易地意外地沉默。你說話時保持語境。這項技能很難學習,並且難以維護,但對結對編程來說這是非常有價值的。

聯繫你的夥伴

當你與你的夥伴聯繫並建立更密切的關係時,你的編程和結對都會得到改善。首先,這是因為你希望與你的夥伴溝通更舒適,你可以向他們要求你需要的設置,比如打開麥克風,通過打字輸入更多內容或者接管一會兒鍵盤輸入。其次,當你和你的夥伴是朋友的時候,更容易挑戰對方的一些決策,而不會讓雙方很難堪,甚至敵對的狀態。

我喜歡通過音樂來做到這一點,特別是在娛樂結對或在本地分散的環境中進行遠程結對時。我會給我的夥伴一起聽聽都喜歡的音樂。休閑配對需要現代/廣播音樂;對於本地分散的環境,我會使用傳統的日本音樂,古典音樂或(如果它真的是大煞氣氛)白雜訊。

還有其他的方法可以與你的夥伴連接。你可以在Slack上進行交談或在appear.in討論其他主題,或者可以分享照片。


總結

如果你的位置或設置將你與其他你想與其結對的程序員分開,則完全可以進行遠程結對。隨著越來越頻繁的遠程結對,你需要花費更多的時間和金錢來創建一個模擬現場結對的設置。當遠程配對時,有意識地投入精力來建立和維持與你的結對夥伴的合作關係。而當遠程配對時,更容易跟不上對方的想法。你可以創建一個安全檢查,方法是讓一個人操作,而另一個人瀏覽。做不到這點,操作者和觀察者應該特別小心,讓他們覺得舒適放慢節奏或問問問題。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 蟲蟲搜奇 的精彩文章:

Kubernetes 1.10發布:穩定存儲,安全和網路
沃爾多在哪裡?谷歌地圖推出尋找沃爾多之愚人節之旅

TAG:蟲蟲搜奇 |