Gudny Hauknes, Kari Rossland, Ann Katrin Gagnat

什麼是 Flow#

想像你完全沉浸在工作中——專注、投入、渾然忘我。你可能感到快樂。這就是**心流(flow)**的狀態。然而,對一整個開發團隊來說,要在眾多干擾中維持心流是非常困難的。

**Pair programming(結對程式設計)**能幫助團隊達到並維持心流。

團隊成員的態度#

  • 對經驗較少的開發者要有耐心,勇於面對被更強的開發者嚇到的恐懼
  • 認知到每個人都是不同的,並尊重這一點
  • 了解自己和隊友的優缺點,你可能會驚訝於能從同事身上學到多少

結對實踐原則#

作為團隊,引入結對程式設計來促進技能和知識的分享:

  • 以結對方式解決任務,經常輪換搭檔和任務
  • 約定輪換規則,但需要時可以靈活調整
  • 不必等完成一個任務才輪換——中斷一個任務交給下一對,聽起來反直覺,但確實有效

結對程式設計的具體好處#

  • 降低卡車因子(truck factor):如果你一直在結對之間輪換任務,總會有人擁有相關知識能完成工作。團隊的心流不會因為某個成員缺席而受到太大影響
  • 更有效地解決問題:遇到困難問題時,總有人可以討論。對話更容易開啟多種可能性。隨著工作輪換,即使一開始沒選到最佳解法也沒關係
  • 順暢地整合程式碼:如果你的任務需要呼叫另一段程式碼,與寫那段程式碼的人結對能更快理解和整合。也能藉機改善命名、文件和測試
  • 減輕干擾影響:當有人打斷你時,你的結對搭檔可以繼續編程。等你回來時,搭檔仍在心流中,你可以快速跟上
  • 加速新人融入:結對和輪換讓新成員能快速熟悉程式碼和團隊

心流讓你非常有生產力,但它也很脆弱。盡你所能去達到心流,並在擁有它時緊緊抓住!