transition from cvcs to dvcs: a case study on reasons ... · • a qualitative study with...

32
1 Transition from CVCS to DVCS: A Case Study on Reasons, Barriers, and OutcomesCourse Title: Mining Software Repositories Course Code: COMP5900/CSI5140 Professor: Dr. Olga Baysal Presented by: Iman Eshraghi Date: Nov. 10 th , 2015 Kıvanç Muşlu University of Washington Seattle, WA, USA ICSE 2014 Proceedings of the 36th International Conference on Software Engineering Christian Bird, Nachiappan Nagappan Microsoft Research Redmond, WA, USA Jacek Czerwonka Microsoft Redmond, WA, USA

Upload: others

Post on 27-Jan-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    “Transition from CVCS to DVCS: A Case Study on Reasons, Barriers, and Outcomes”

    Course Title: Mining Software Repositories Course Code: COMP5900/CSI5140 Professor: Dr. Olga Baysal Presented by: Iman Eshraghi Date: Nov. 10th, 2015

    Kıvanç Muşlu University of Washington Seattle, WA, USA

    ICSE 2014 Proceedings of the 36th International Conference on Software Engineering

    Christian Bird, Nachiappan Nagappan Microsoft Research Redmond, WA, USA

    Jacek Czerwonka Microsoft Redmond, WA, USA

  • Contents •  Introduction •  Contributions •  History of VCS / SCM •  CVCS vs. DVCS •  Definitions •  Methodology •  Transition

    –  Reasons, Barriers, outcomes •  Results •  Conclusion •  Reference •  Questions

    2

  • Introduction CVCSs and DVCSs have been studied extensively… however, … there has been little research on the transition across these systems!

    3

  • Introduction This paper captures the Transition

    •  Reasons •  Barriers •  Outcomes

    -> Interviews (10 developers) -> Survey (70 developers)

    4

  • Contributions

    •  A qualitative study with professional developers transitioning from a CVCS to a DVCS

    •  Identification of the key concepts for transition

    •  In-depth discussion of the DVCS features that are favored by the developers

    5

  • History of VCS / SCM •  Source Code Control System (SCCS)

    – 1972, closed source •  Revision Control System (RCS)

    – 1982, open source •  Concurrent Version System (CVS)

    – 1986-1990, open source •  Apache Subversion (SVN)

    – 2000, open source •  Git ! [Distributed]

    – 2005, open source 6

  • DEFINITIONS

    •  repository •  check-out (clone) •  check-in (commit) •  conflict •  merge •  branch •  …

    7

  • DEFINITIONS

    •  bridge •  transition •  …

    8

  • CVCS vs. DVCS

    9

  • CVCS vs. DVCS (Pros & Cons)

    10

    •  performing actions other than pushing and pulling change sets is extremely fast

    •  no single point of failure

    •  scales well •  security (all data stored in

    a secured datacenter) •  easier learning curve

  • METHODOLOGY

    11

  • Findings

    12

  • Transition Reasons TRANSITION REASONS include the ability to:

    •  work offline •  work incrementally •  context switch efficiently •  do exploratory coding efficiently

    13

  • Transition Reasons I.  The ability to work offline: The majority of the survey participants (56% vs. 34%) agree with this observation.

    II.  The ability to work incrementally: 97% of the survey participants support this observation by favoring small, frequent commits to one large check-in. CVCSs do not support commits.

    14

  • Transition Reasons III.  The ability to context switch efficiently:

    All developers we interviewed focus on the fact that CVCSs make it very difficult to work on multiple tasks simultaneously.

    76% of the survey participants agree that CVCSs they use do not provide efficient ways to context switch.

    V.  The ability to do exploratory coding efficiently: Half of the developers interviewed, mentioned that CVCSs limit their ability to do exploratory coding.

    15

  • Transition Barriers TRANSITION Barriers include :

    •  Learning Curve •  Incomplete Integration •  Scaling

    16

  • Transition Barriers

    17

    1.  Learning Curve

    I.  Centralized vs. Decentralized model II.  Advanced DVCS concepts III.  Conflicting terminology

  • Transition Barriers

    18

    2.  Incomplete Integration

    I.  Incomplete bridge implementation II.  Missing tooling around B/DVCS

  • Transition Barriers

    19

    3.  Scaling

    I.  Checked-in large binaries II.  Composite products III.  Long development history

  • TRANSITION OUTCOMES

    20

    1.  Reality Meets Expectations I.  Ability to work offline:

    95% of the survey participants agree that B/DVCSs let them work offline.

  • TRANSITION OUTCOMES

    21

    1.  Reality Meets Expectations II.  Incremental workflow:

    97% of the survey participants agree that using B/DVCSs let them work incrementally though commits. Commits act as checkpoints; the developer can revert back to a recent version if some change causes a problem. The ability to create checkpoints makes debugging easier.

  • Transition Outcomes

    22

    1.  Reality Meets Expectations III.  Fast and easy context switches:

    98% of the survey participants agree that lightweight branches in B/DVCSs let them context switch efficiently.

  • Transition Outcomes

    23

    1.  Reality Meets Expectations IV.  Fast and easy exploratory coding:

    DVCS branches encourage the developers to try out difficult and complex tasks that might not ship immediately without the fear of failure. A developer confirms this observation.

  • Transition Outcomes

    24

    2.  Perception for Productivity

    I.  Code volume II.  Implementation speed III.  Code velocity (transit time) IV.  Code quality

  • Other Result

    25

  • Threats To Validity

    26

    " Internal validity

    " External validity

  • Conclusion •  An attempt to understand the transition costs and

    benefits to a DVCS in a large company

    •  Identifies ability to work offline and incrementally, and managing multiple contexts efficiently as the major transition expectations

    •  Provides some guidelines for the developers, teams, and managers who consider transitioning

    27

  • Reference •  Kıvanç Muşlu, Christian Bird, Nachiappan Nagappan, and Jacek

    Czerwonka. 2014. Transition from centralized to decentralized version control systems: a case study on reasons, barriers, and outcomes. In Proceedings of the 36th International Conference on Software Engineering (ICSE 2014). ACM, New York, NY, USA, 334-344

    28

  • Question

    29

  • Questions Question 1:

    •  What other reasons or barriers can you think of which involves in motivating or hindering such transition process for a typical software firm?

    30

  • Questions Question 2:

    •  Considering the importance of applying a VCS in a collaborative (software) project, do you think it should be considered as a full course topic in the educational institutions?

    31

  • Questions Question 2:

    •  Should VCSs only be used by software companies?

    32