Gudny Hauknes, Kari Rossland, Ann Katrin Gagnat
什麼是 Flow#
想像你完全沉浸在工作中——專注、投入、渾然忘我。你可能感到快樂。這就是**心流(flow)**的狀態。然而,對一整個開發團隊來說,要在眾多干擾中維持心流是非常困難的。
**Pair programming(結對程式設計)**能幫助團隊達到並維持心流。
團隊成員的態度#
- 對經驗較少的開發者要有耐心,勇於面對被更強的開發者嚇到的恐懼
- 認知到每個人都是不同的,並尊重這一點
- 了解自己和隊友的優缺點,你可能會驚訝於能從同事身上學到多少
結對實踐原則#
作為團隊,引入結對程式設計來促進技能和知識的分享:
- 以結對方式解決任務,經常輪換搭檔和任務
- 約定輪換規則,但需要時可以靈活調整
- 不必等完成一個任務才輪換——中斷一個任務交給下一對,聽起來反直覺,但確實有效
結對程式設計的具體好處#
- 降低卡車因子(truck factor):如果你一直在結對之間輪換任務,總會有人擁有相關知識能完成工作。團隊的心流不會因為某個成員缺席而受到太大影響
- 更有效地解決問題:遇到困難問題時,總有人可以討論。對話更容易開啟多種可能性。隨著工作輪換,即使一開始沒選到最佳解法也沒關係
- 順暢地整合程式碼:如果你的任務需要呼叫另一段程式碼,與寫那段程式碼的人結對能更快理解和整合。也能藉機改善命名、文件和測試
- 減輕干擾影響:當有人打斷你時,你的結對搭檔可以繼續編程。等你回來時,搭檔仍在心流中,你可以快速跟上
- 加速新人融入:結對和輪換讓新成員能快速熟悉程式碼和團隊
心流讓你非常有生產力,但它也很脆弱。盡你所能去達到心流,並在擁有它時緊緊抓住!