Assessing the value of branches with what-if analysis

@inproceedings{Bird2012AssessingTV,
  title={Assessing the value of branches with what-if analysis},
  author={Christian Bird and Thomas Zimmermann},
  booktitle={SIGSOFT FSE},
  year={2012}
}
Branches within source code management systems (SCMs) allow a software project to divide work among its teams for concurrent development by isolating changes. However, this benefit comes with several costs: increased time required for changes to move through the system and pain and error potential when integrating changes across branches. In this paper, we present the results of a survey to characterize how developers use branches in a large industrial project and common problems that they face… 

Figures and Tables from this paper

Indicators for merge conflicts in the wild: survey and empirical study
TLDR
A prediction of merge costs based on lightweight indicators would be desirable to help developers recognize problematic merging scenarios before potential conflicts become too severe in the evolution of a complex software project.
Are Refactorings to Blame? An Empirical Study of Refactorings in Merge Conflicts
TLDR
An empirical study on almost 3,000 well-engineered open-source Java software repositories and investigates the relation between merge conflicts and 15 popular refactoring types suggests that conflicts that involve refactored code are usually more complex, compared to conflicts with no refactororing changes.
TIPMerge: recommending developers for merging branches
TLDR
TIPMerge is designed and developed, a novel tool that recommends developers who are best suited to perform the merge between two given branches by taking into consideration developers’ past experience in the project, their changes in the branches, and the dependencies among modified files in the branch.
Factors impacting rapid releases: an industrial case study
TLDR
Step by step the release process of an industrial software organization is examined aiming to identify factors that have a significant impact on the lead time and outcomes of the software releases, revealing that testing is the most time consuming activities along with the need for more congruence among teams.
An Empirical Study of RefactoringChallenges and Benefits at Microsoft
TLDR
A field study of refactoring benefits and challenges at Microsoft through three complementary study methods: a survey, semi-structured interviews with professional software engineers, and quantitative analysis of version history data finds the top 5 percent of preferentially refactored modules experience higher reduction in the number of inter-module dependencies and several complexity measures.
TIPMerge: recommending experts for integrating changes across branches
TLDR
TIPMerge, a novel tool that recommends developers who are best suited to perform merges, is proposed, by taking into consideration developers’ past experience in the project, their changes in the branches, and de-pendencies among modified files in the branch.
How Much does integrating this Commit Cost ?-A Position Paper
TLDR
The ISOMO model is proposed, which will help people to evaluate how much effort a commit will cost and decide if it is worth being integrated, and which of two equivalent commits or libraries to integrate.
Improving the prediction of files changed by programming tasks
TLDR
The interfaces computed by TAITI are extended by including the dependences of the application files reached by the task tests, which brings evidence that the extended interface improves recall by slightly compromising precision.
Intent, tests, and release dependencies: Pragmatic recipes for source code integration
  • M. Brandtner, P. Leitner, H. Gall
  • Computer Science
    2015 IEEE 15th International Working Conference on Source Code Analysis and Manipulation (SCAM)
  • 2015
TLDR
This work identifies a set of three pragmatic recipes plus variations to support the decision making of integrating code contributions into a release and concludes that they can be seen as wide-spread relevant best-practices for source code integration.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 40 REFERENCES
Cohesive and Isolated Development with Branches
TLDR
DVC branching enable natural collaborative processes: DVC branching allows developers to collaborate on tasks in highly cohesive branches, while enjoying reduced interference from developers working on other tasks, even if those tasks are strongly coupled to theirs.
To branch or not to branch?
TLDR
It is understood that branching and merging can be done freely under certain circumstances to provide development concurrency, however, some files cannot be branched freely and it may be better to use recommended practices to edit them.
A theory of branches as goals and virtual teams
TLDR
A theory of the relationship between goals and virtual teams on different branches is developed and it is expected that if two branches have similar goals, they will also have similar virtual teams or be at risk for communication and coordination breakdowns with the accompanying negative effects.
Parallel changes in large scale software development: an observational case study
TLDR
An observational case study in which the change and configuration management history of a legacy system is collected and analyzed to delineate the boundaries of, and to understand the nature of, the problems encountered in parallel development.
Branching and merging: an investigation into current version control practices
TLDR
A diverse sample of 140 version control users were recruited to participate in an online survey and 4 key observations about branching and merging practices in software development projects are presented.
Palantir: enhancing configuration management systems with workspace awareness to detect and resolve emerging conflicts
TLDR
This dissertation presents the approach towards mitigating the effects of software conflicts by enabling developers to detect emerging conflicts, while conflicts are still small in size and relatively innocuous, and providing the developers the opportunity to self-coordinate to either avoid the conflict altogether or resolve it easily.
An integration resolution algorithm for mining multiple branches in version control systems
TLDR
This paper presents an integration resolution algorithm that facilitates data collection across multiple code branches and tracks code integrations across different branches and associates code changes in the main development branch with corresponding changes in other branches.
Configuration Management Best Practices: Practical Methods that Work in the Real World
Successfully Implement High-Value Configuration Management Processes in Any Development Environment As IT systems have grown increasingly complex and mission-critical, effective configuration
Empirical evidence of the benefits of workspace awareness in software configuration management
TLDR
Results from empirical evaluations of a workspace awareness tool designed and implemented to augment the functionality of software configuration management systems demonstrate that it improves coordination and conflict resolution without inducing significant overhead in monitoring awareness cues.
Palantir: raising awareness among configuration management workspaces
TLDR
Palantir is a novel workspace awareness tool that complements existing configuration management systems by providing developers with insight into other workspaces by informing a developer of which other developers change which other artifacts, calculates a simple measure of severity of those changes, and graphically displays the information in a configurable and generally non-obtrusive manner.
...
1
2
3
4
...