SHF: Small: Collaborative Research:Discerning and Recommending Context-Specific Best Practices in DevOps-Oriented Software Development
University Of California-Davis, Davis CA
Investigators
Abstract
This project is a scientific study of modern software development practices, which has become known as DevOps. The DevOps culture seeks to bring changes into software production as quickly as possible without compromising software quality, primarily by automating the processes of building, testing, and deploying software. In practice, DevOps engineers can choose between a multitude of tools, including configuration management, cloud-based continuous integration, and automated deployment. Often individual tools are used without much guidance on how they fit in the big picture, and questions about best practices abound in online forums. However, existing answers are typically generic rules of thumb or dated advice, mostly based on third-party experiences, often non-applicable to the specific context. In fact, current empirical evidence on the effectiveness of DevOps practices is much fragmented and incomplete. State-of-the-art decision-making support, based on hard data and informed advice, can help DevOps engineers discern the best choices and practices for their tasks. The proposed research is grounded in contingency theory, where the emphasis is on task context when reasoning about the effectiveness of practices. The goal of this project is to learn and convey structured, context-dependent analytics on best practices in DevOps environments, by mining and analyzing data from the collaborative coding platform GitHub. Using established and novel qualitative and quantitative techniques, this research will: (1) identify clusters of software projects that share similar context variables; and (2) within a context of interest, discern the conditions under which DevOps practices such as continuous integration are most (and least) effective. This will result in actionable knowledge and tool support for DevOps teams, to customize efficient project practices to their environment, as well as advance the theory and practice of software engineering, especially as it relates to distributed, fast paced, automation-heavy environments.
View original record on NSF Award Search →