在feature team中如何處理同時存取程式碼的問題

Scaling Lean & Agile Development, Craig Laman and BasVodde, Chapter 7 Feature teams
http://www.infoq.com/resource/articles/scaling-lean-agile-feature-teams/en/resources/feature%20teams_%20infoq_%20final.pdf

和component team比較起來, feature team有個重要不一樣的地方, 就是feature team可能會同時存取不同component的程式碼, 並且可能會有多個feature team會存取相同component的程式碼.

在1980年代, 版本控制的工具工具比較陽春, 大部分採取的是Pessimistic Locking or strict locking. 因此對於要同時存取程式把時, 效率會非常差. 因為當一個人lock後去修改, 另一個人是沒有機會再check-out去修改.

這樣會帶來一些壞處. 例如造成大家在分工時, 盡量都是一段程式碼只有一個人負責, 不要讓多個人同時去存取. 或者整合的時間點, 往往托的很久, 因為要等別人改好, unlock版本控制. 這些都是會造成等待, 時間的浪費, 以及每個component只有一個人負責的狀況.

可是有了optimistic-locking之後, 事情就改變了. 每個人可以同時去修改soure codes, 等到開發人員改完要check-in回版本控制系統時, 版本控制系統會自動顯示那些地方有conflict, 所以開發人員會很清楚哪些地方他需要小心去merge, 讓程式回到main stream時可以work.

因此若是要實踐Agile developement, 有optimistic-locking功能的版本控制工具, 是非常關鍵的, 因為他能解決掉同時存取程式碼的問題.

此外, 還須配合上continuous integration和test driven development, 隨時隨地的執行regression test, 以確保這樣的整合, 是否會造成以前的功能有問題, 讓問題能在一開始或是及早就被找到


arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()