18,237 research outputs found
Studying the impact of CI on pull request delivery time in open source projects - a conceptual replication
Nowadays, continuous integration (CI) is indispensable in the software development process. A central promise of adopting CI is that new features or bug fixes can be delivered more quickly. A recent repository mining study by Bernardo, da\ua0Costa & Kulesza (2018) found that only about half of the investigated open source projects actually deliver pull requests (PR) faster after adopting CI, with small effect sizes. However, there are some concerns regarding the methodology used by Bernardo et al., which may potentially limit the trustworthiness of this finding. Particularly, they do not explicitly control for normal changes in the pull request delivery time during a projectâs lifetime (independently of CI introduction). Hence, in our work, we conduct a conceptual replication of this study. In a first step, we replicate their study results using the same subjects and methodology. In a second step, we address the same core research question using an adapted methodology. We use a different statistical method (regression discontinuity design, RDD) that is more robust towards the confounding factor of projects potentially getting faster in delivering PRs over time naturally, and we introduce a control group of comparable projects that never applied CI. Finally, we also evaluate the generalizability of the original findings on a set of new open source projects sampled using the same methodology. We find that the results of the study by Bernardo et al. largely hold in our replication. Using RDD, we do not find robust evidence of projects getting faster at delivering PRs without CI, and we similarly do not see a speed-up in our control group that never introduced CI. Further, results obtained from a newly mined set of projects are comparable to the original findings. In conclusion, we consider the replication successful
Investigating the Impact of Continuous Integration Practices on the Productivity and Quality of Open-Source Projects
Background: Much research has been conducted to investigate the impact of
Continuous Integration (CI) on the productivity and quality of open-source
projects. Most of studies have analyzed the impact of adopting a CI server
service (e.g, Travis-CI) but did not analyze CI sub-practices. Aims: We aim to
evaluate the impact of five CI sub-practices with respect to the productivity
and quality of GitHub open-source projects. Method: We collect CI sub-practices
of 90 relevant open-source projects for a period of 2 years. We use regression
models to analyze whether projects upholding the CI sub-practices are more
productive and/or generate fewer bugs. We also perform a qualitative document
analysis to understand whether CI best practices are related to a higher
quality of projects. Results: Our findings reveal a correlation between the
Build Activity and Commit Activity sub-practices and the number of merged pull
requests. We also observe a correlation between the Build Activity, Build
Health and Time to Fix Broken Builds sub-practices and number of bug-related
issues. The qualitative analysis reveals that projects with the best values for
CI sub-practices face fewer CI-related problems compared to projects that
exhibit the worst values for CI sub-practices. Conclusions: We recommend that
projects should strive to uphold the several CI sub-practices as they can
impact in the productivity and quality of projects.Comment: Paper accepted for publication by The ACM/IEEE International
Symposium on Empirical Software Engineering and Measurement (ESEM
Repeated Builds During Code Review: An Empirical Study of the OpenStack Community
Code review is a popular practice where developers critique each others'
changes. Since automated builds can identify low-level issues (e.g., syntactic
errors, regression bugs), it is not uncommon for software organizations to
incorporate automated builds in the code review process. In such code review
deployment scenarios, submitted change sets must be approved for integration by
both peer code reviewers and automated build bots. Since automated builds may
produce an unreliable signal of the status of a change set (e.g., due to
``flaky'' or non-deterministic execution behaviour), code review tools, such as
Gerrit, allow developers to request a ``recheck'', which repeats the build
process without updating the change set. We conjecture that an unconstrained
recheck command will waste time and resources if it is not applied judiciously.
To explore how the recheck command is applied in a practical setting, in this
paper, we conduct an empirical study of 66,932 code reviews from the OpenStack
community.
We quantitatively analyze (i) how often build failures are rechecked; (ii)
the extent to which invoking recheck changes build failure outcomes; and (iii)
how much waste is generated by invoking recheck. We observe that (i) 55% of
code reviews invoke the recheck command after a failing build is reported; (ii)
invoking the recheck command only changes the outcome of a failing build in 42%
of the cases; and (iii) invoking the recheck command increases review waiting
time by an average of 2,200% and equates to 187.4 compute years of waste --
enough compute resources to compete with the oldest land living animal on
earth.Comment: conferenc
Adopting DevOps Principles, Practices and Tools : Case: Identity & Access Management
Adopting DevOps has been of interest for many organizations and practitioners for a while now due to its various benefits for business. However, there is a lack of knowledge and understanding on what is meant by DevOps when it comes to the key concepts, practices, tools, and the benefits and challenges of DevOps adoption. Organizations and teams are missing guidance on how to adopt DevOps in their specific context. This design science research is conducted to understand how to adopt DevOps principles, practices and tools in the Identity and Access Management of a large multinational corporation. The result of this study are the proposed models for adopting DevOps, including the formation of the teams and the processes covering build, test and deployment of identity management system (SailPoint IIQ) and onboarding new applications to the system. Three design artifacts are built and evaluated against identified problem areas in DevOps adoption, providing insights to the research community and industry practitioners
Pull request latency explained:an empirical overview
Pull request latency evaluation is an essential application of effort evaluation in the pull-based development scenario. It can help the reviewers sort the pull request queue, remind developers about the review processing time, speed up the review process and accelerate software development. There is a lack of work that systematically organizes the factors that affect pull request latency. Also, there is no related work discussing the differences and variations in characteristics in different scenarios and contexts. In this paper, we collected relevant factors through a literature review approach. Then we assessed their relative importance in five scenarios and six different contexts using the mixed-effects linear regression model. The most important factors differ in different scenarios. The length of the description is most important when pull requests are submitted. The existence of comments is most important when closing pull requests, using CI tools, and when the contributor and the integrator are different. When there exist comments, the latency of the first comment is the most important. Meanwhile, the influence of factors may change in different contexts. For example, the number of commits in a pull request has a more significant impact on pull request latency when closing than submitting due to changes in contributions brought about by the review process. Both human and bot comments are positively correlated with pull request latency. In contrast, the botâs first comments are more strongly correlated with latency, but the number of comments is less correlated. Future research and tool implementation needs to consider the impact of different contexts. Researchers can conduct related studies based on our publicly available datasets and replication scripts
- âŠ