調轉代碼所有權


原文:ShiftingToCodeOwnership        敏捷    2006年5月15日            Bliki 索引

在最近那篇代碼所有權的帖子中,我描述了一下對代碼所有權問題的思考。在軟件開發行業裏,我有不少朋友都是極限編程實踐者,他們都對集體代碼所有權偏愛有加,但推行代碼集體所有並不是絕對的,往往需要根據對局部具體情況的考量做出調整。我的一位同事發給我下面這個實例,我覺得是對我們何時需要做出權變的一個很好的提示——哪怕你是一位XP的忠實粉絲。(他喜歡匿名談論他的團隊。)

爲了抵控幾位訓練不足的開發者的不規矩行爲,我把我們的團隊從集體代碼所有權調轉成了弱代碼所有權。一些公正可靠的反饋表明,這個調轉提升了開發速度,因爲現在“擁有”核心代碼的程序員無需再爲那些不關鍵代碼不斷操心了,而原來在那些關鍵部分卻做着非關鍵工作的程序員則可以轉做bug追蹤之類的低風險代碼修改工作——這也反過來促進了其他人的工作。

另外一份淨收益是在團隊士氣的提升上。以之前的做法,除了那些做非關鍵工作的程序員,其他人在每次提交他們的代碼時都不得不提防着會不會被一些沒及時發現的問題糾纏一番,遲早被弄得身心俱疲。調轉之後,實際上是褒獎了那些具備認真對待代碼質量、TDD、不存僥倖投機心理等優秀品質的程序員。

然而,我們還需要另外一些實踐及策略方面的權衡:
  •     更頻繁的結對拍檔切換(我們實推的策略是:你仍然可以修改所有代碼片斷,但在那些別人比你自己更能“玩得轉”的地方,你就需要跟他們結對,或者先把你的思路詳細地告訴他們)。
  •     迴歸集體所有制的路線就是切換所有者。如果他們覺得你的代碼沒啥可挑剔的了,你就可以當仁不讓地着手那裏的任務了。
  •     要是事情還不見什麼改善,那我們必須採取進一步措施。
這讓我受益匪淺,因爲我以前在這方面從沒做過這麼深入——我確實有點“拈輕怕重”。讓我啓用一項“督導式”實踐方案來代替“授權式”實踐方案真是勉爲其難,然而事後着實獲益良多。

這種局部調整策略是極限編程乃至所有敏捷方法的一條精華思想。我的同事們仍然偏愛代碼集體所有,這是相同的,然而,世事往往不盡相同。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章