Continuous integration and continuous software deployment depend on the mix of automated and manual activities. The automated build and test processes are often intertwined with manual reviews and bug-fixing activities. In this paper, we set o to study how these manual and automated activities influence the speed of reviews and integration. We conduct a case study of two companies developing embedded software, measure the time required for reviewing and integrating software code (alias speed), and conduct a workshop to identify factors which explain the quantitative results. Our results show that the measurement of speed is a good alias for calendar time and triggers improvements better than using measures for velocity. We have also found that the distribution of code repositories, frequent reminders and team proximity decrease the time needed to deploy the software. Our findings are that there is a difference in the structure of code repositories between the fast and slow integration cases, which contributes to the debate on the pros and cons of different repository structures in modern companies.
Automated measurement programs are an efficient way of collecting, processing, and visualizing measures in large software development companies. The number of measurements in these programs is usually large, which is caused by a diversity of the needs of the stakeholders. In this paper, we present the application of the self-healing concepts to assure the availability of measurements to the stakeholders without the need for effort-intensive and costly manual interventions of the operators. We study the measurement infrastructure at one of the development units of a large infrastructure provider. In this paper, we present how the Monitor, Analyze, Plane, and Execute with Knowledge model was instantiated in a simplistic manner to reduce the need for manual intervention in the operation of the measurement systems. Based on the experiences from the 2 cases studied in this paper, we show how an evolution toward self-healing measurement systems is done both with a dedicated failure taxonomy and with an effective straightforward handling of the most common errors in the execution.The mechanisms studied and presented in this paper show that self-healing provides significant improvements to the operation of the measurement program and reduces the need for daily oversight by an operator for the measurement systems.KEYWORDS measurement systems, metrics, self-healing
INTRODUCTIONModern software development organizations utilize software measurement to get insight into the performance of their products or efficiency of the organization, which over time leads companies to collect a large amount of measurement data. The growing amount of measurement data leads to a growing effort for maintaining the measurement program. The needs in such large organizations and their evolution entail the need to constantly monitor and repair measurement systems. One of the challenges is to balance the availability of the measurements and with the cost of operating the measurement program. The availability of the measurement systems is required to support the operations of the company and to improve its decisions; the up-to-date information should be available, and if it is not up-to-date, its latest status should be provided and the user (stakeholder) of the information notified.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.