轉移至程式碼擁有權

2006 年 5 月 15 日

在我最近的 CodeOwnership 文章中,我描述了我思考程式碼擁有權問題的方式。我的許多軟體開發朋友都是極限程式設計師,而且傾向於支持集體程式碼擁有權。然而,這些做法並非絕對,而且應該始終根據當地考量進行調整。我的其中一位同事寄給我一則備忘錄,其中包含以下故事,我覺得這是一個很好的指標,說明即使你是 XP 的忠實支持者,也必須調整你的做法。(由於他談論的是他的團隊,他希望保持匿名。)

我將我們的團隊從「集體」轉移到「弱」模式,以應對幾位開發人員缺乏紀律的程式設計。結合一些相當坦率的回饋,結果是速度提升,因為現在「擁有」我們關鍵程式碼區域的程式設計師不必不斷重新處理次級程式碼,而那些在那些關鍵區域執行次級工作的程式設計師則改為執行錯誤追蹤和低風險程式碼變更等工作,這進一步釋放了其他人的時間。

我們的士氣也淨值提升,因為除了次級製作者之外,每個人都對必須檢查每次簽入的每個問題感到沮喪,並修正他們沒有及時發現的問題。這個變更獎勵了那些認真看待品質、TDD、非推測等的人。

然而,我們也需要一些額外的做法和政策來平衡

- 更頻繁的配對切換(我們的實際政策是,你仍然可以在程式碼的任何部分工作,但如果它不在你擁有「自由發揮」的區域中,你需要與擁有該區域的人配對,或先透過他們徹底審查你的想法)

- 回歸的方式是透過擁有者。如果他們覺得你的程式碼可以達到標準,你可以再次自由地在那裡執行任務。

- 如果情況沒有改善,我們將必須採取進一步的措施。

這對我來說是一個非常有教育意義的經驗,因為我以前從未走過這麼遠,而且我真的很不願意「扮演嚴厲的角色」。對我來說,引入 指導 而不是 協助 的做法真的很困難,但從那以後,情況有了很大的改善。

這種本地化調整是極限程式設計或任何敏捷方法的必要部分。在所有條件相同的情況下,我的同事仍然偏好集體程式碼擁有權,但所有條件很少相同。