Transition from Centralized to Distributed VCS: A Microsoft Case Study on Reasons, Barriers, and Outcomes

Kıvanç Muşlu, Christian Bird, Nachiappan Nagappan, Jacek Czerwonka, Nachi Nagappan · 2014

In recent years, software development has started to transition from centralized version control systems (CVCSs) to decentralized (DVCSs) version control systems. Although CVCSs and DVCSs have been studied extensively, there has been very little research on the transition across these systems. This paper investigates the transition process, from the developer’s point of view, in a large company. The paper captures the transition reasons, barriers, and results through ten developer interviews, and investigates these findings through a survey, participated by 70 de-velopers. We found that the majority of the developers need incre-mental, small commits, and lightweight branches to work effi-ciently. DVCSs fulfill these developer needs; however the transi-tion comes with a cost depending on the previous development workflow. The paper discusses the transition reasons, transition barriers and outcomes, and provides recommendations for teams planning such a transition. Our analysis showed that lightweight branches and local, incremental commits were the main reasons for developers wanting to move to a DVCS. Further, the main prob-lems with the transition process were identified as: steep DVCS learning curve; tool immaturity; and DVCS scaling issues.

Read the paper · More papers on PaperTik