ABSTRACT
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. One of the major problems mentioned was the long delay that it takes changes to move from one team to another, which is often caused by having too many branches (branchmania). To monitor branch health, we introduce a novel what-if analysis to assess alternative branch structures with respect to two properties, isolation and liveness. We demonstrate with several scenarios how our what-if analysis can support branch decisions. By removing high-cost-low-benefit branches in Windows based on our what-if analysis, changes would each have saved 8.9 days of delay and only introduced 0.04 additional conflicts on average.
- Perry, D., Siy, H., and Votta, L. Parallel changes in large-scale software development: an observational case study. ACM Transactions on Software Engineering and Methodology (TOSEM), 10 (2001), 308--337. Google ScholarDigital Library
- Zacchiroli, Z. VCS usage for Debian source packages. http://upsilon.cc/~zack/stuff/vcs-usage/.Google Scholar
- Appleton, B., Berczuk, S., Cabrera, R., and Orenstein, R. Streamed Lines: Branching Patterns for Parallel Software Development. In The Pattern Languages of Programs Conference (1998).Google Scholar
- Berczuk, S. P., Appleton, B., and Brown, K. Software Configuration Management Patterns: Effective Teamwork, Practical Integration. Addison-Wesley Professional, 2003. Google ScholarDigital Library
- Aiello, R. and Sachs, L. Configuration Management Best Practices: Practical Methods that Work in the Real World. Addison-Wesley Professional, 2010. Google ScholarDigital Library
- Wingerd, L. and Seiwald, C. High-level Best Practices in Software Configuration Management. White Paper, Perforce Software, 1996. http://www.perforce.com/perforce/papers/bestpractices.html.Google Scholar
- Kitchenham, B. A. and Pfleeger, S. L. Personal Opinion Surveys. In Shull, F. et al., eds., Guide to Advanced Empirical Software Engineering. Springer, 2007.Google Scholar
- Tyagi, P. K. The Effects of Appeals, Anonymity, and Feedback on Mail Survey Response Patterns from Salespeople. Journal of The Academy of Marketing Science (1989).Google Scholar
- Punter, T., Ciolkowski, M., Freimut, B. G., and John, I. Conducting on-line surveys in software engineering. In Proc. of International Symposium on Empirical Software Engineering (ISESE '03) (2003), 80--88. Google ScholarDigital Library
- Melanchthon, D. and Scheer, O. Grossbaustselle. Making of Windows 7. c't Magazine, 23 (2009), 80--86.Google Scholar
- Bird, C., Zimmermann, T., and Teterev, A. A Theory of Branches as Goals and Virtual Teams. In International Workshop on Cooperative and Human Aspects of Software Engineering (2011). Google ScholarDigital Library
- Bird, C. and Zimmermann, T. Appendix to Assessing the Value of Branches with What-if Analysis. Technical Report MSR-TR-2012-33, Microsoft Research, 2012.. http://research.microsoft.com/apps/pubs/?id=161385.Google Scholar
- Zeller, A., Zimmermann, T., and Bird, C. Failure is a Four-Letter Word: A Parody in Empirical Research. In Proceedings of the 7th International Conference on Predictive Models in Software Engineering (PROMISE 2011) (2011). Google ScholarDigital Library
- Dowdy, S., Wearden, S., and Chilko, D. Statistics for research. John Wiley & Sons, 2004.Google ScholarCross Ref
- Singer, J. and Vinson, N. G. Ethical issues in empirical studies of software engineering. IEEE Trans. Software Eng., 28, 12 (2002), 1171--1180. Google ScholarDigital Library
- Jørgensen, M. and Grimstad, S. Software Development Estimation Biases: The Role of Interdependence. IEEE Transactions on Software Engineering, Preprints (April 2011).Google Scholar
- Basili, V. R., Shull, F., and Lanubile, F. Building knowledge through families of experiments. IEEE Trans. Software Eng., 25, 4 (1999), 456--173. Google ScholarDigital Library
- Bird, C., Rigby, P. C., Barr, E. T., Hamilton, D. J., Germán, D. M., and Devanbu, P. T. The promises and perils of mining git. In MSR '09: Proceedings of the 6th International Working Conference on Mining Software Repositories (2009), 1--10. Google ScholarDigital Library
- Premraj, R., Tang, A., Linssen, N., Geraats, H., and Vliet, H.v. To branch or not to branch. In ICSSP '11: Proceedings of the International Conference on Software and Systems Process (2011), 81--90. Google ScholarDigital Library
- Barr, E., Bird, C., Rigby, P., Hindle, A., German, D., and Devanbu, P. Cohesive and Isolated Development with Branches. In International Conference on Fundamental Approaches to Software Engineering (2012). Google ScholarDigital Library
- Flyvbjerg, B. Five misunderstandings about case-study research. Qualitative inquiry, 12, 2 (2006), 219--245.Google Scholar
- Kuper, A. and Kuper, J. The Social Science Encyclopedia. Routledge, 1985.Google Scholar
- Müller, M. and Pfahl, D. Simulation Methods. In Shull, F. et al., eds., Guide to Advanced Empirical Software Engineering. Springer, 2007.Google Scholar
- Zimmermann, T. Mining Workspace Updates in CVS. In MSR '07: Proceedings of the Fourth International Workshop on Mining Software Repositories (2007), 11. Google ScholarDigital Library
- Brun, Y., Holmes, R., Ernst, M. D., and Notkin, D. Proactive detection of collaboration conflicts. In ESEC/FSE '11: Proceedings of he European Software Engineering Conference and the Symposium on the Foundations of Software Engineering (2011). Google ScholarDigital Library
- Phillips, S., Sillito, J., and Walker, R. Branching and Merging: An Investigation into Current Version Control Practices. In CHASE '11: Proceedings of the Workshop on Cooperative and Human Aspects of Software Engineering (2011). Google ScholarDigital Library
- Tarvo, A., Zimmermann, T., and Czerwonka, J. An Integration Resolution Algorithm for Mining Multiple Branches in Version Control Systems. In ICSM '11: Proceedings of the 27th IEEE International Conference on Software Maintenance (2011). Google ScholarDigital Library
- Sarma, A. Palantir: enhancing configuration management systems with workspace awareness to detect and resolve emerging conflicts. Doctoral Dissertation, University of California, Irvine. Google ScholarDigital Library
- Sarma, A., Noroozi, Z., and van der Hoek, A. Palantír: Raising Awareness among Configuration Management Workspaces. In ICSE '03: Proceedings of the 25th International Conference on Software Engineering (2003), 444--454. Google ScholarDigital Library
- Sarma, S., Redmiles, D., and van der Hoek, A. Empirical evidence of the benefits of workspace awareness in software configuration management. In SIGSOFT '08/FSE-16: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering (2008), 113--123. Google ScholarDigital Library
- Biehl, J. T., Czerwinski, M., Smith, G., and Robertson, G. G. FASTDash: a visual dashboard for fostering awareness in software teams. In CHI '07: Proceedings of the 2007 Conference on Human Factors in Computing Systems (2007), 1313--1322. Google ScholarDigital Library
- Dewan, P. and Hegde, R. Semi-Synchronous Conflict Detection and Resolution in Asynchronous Software Development. In ECSCW '07: Proceedings of the Tenth European Conference on Computer Supported Cooperative Work (2007), 159--178.Google Scholar
- Guimarães, M. L. and Rito-Silva, A. Towards real-time integration. In CHASE '10: Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering (2010), 56--63. Google ScholarDigital Library
Index Terms
- Assessing the value of branches with what-if analysis
Recommendations
A theory of branches as goals and virtual teams
CHASE '11: Proceedings of the 4th International Workshop on Cooperative and Human Aspects of Software EngineeringA common method of managing the complexity of both technical and organizational relationships in a large software project is to use branches within the source code management system to partition the work into teams and tasks. We claim that the files ...
Plotting missing points and branches of real parametric curves
This paper is devoted to the study (from the theoretic and algorithmic point of view) of the existence of points and branches non-reachable by a parametric representation of a rational algebraic curve (in n-dimensional space) either over the field of ...
Unbiased branches: an open problem
ACSAC'07: Proceedings of the 12th Asia-Pacific conference on Advances in Computer Systems ArchitectureThe majority of currently available dynamic branch predictors base their prediction accuracy on the previous k branch outcomes. Such predictors sustain high prediction accuracy but they do not consider the impact of unbiased branches, which are ...
Comments