Back to overview

Data-Driven Decisions and Actions in Today's Software Development

Type of publication Peer-reviewed
Publikationsform Contribution to book (peer-reviewed)
Author Gall Harald C., Alexandru Carol V., Ciurumelea Adelina, Grano Giovanni, Laaber Christoph, Panichella Sebastiano, Proksch Sebastian, Schermann Gerald, Vassallo Carmine, Zhao Jitong,
Project SURF-MobileAppsData
Show all

Contribution to book (peer-reviewed)

Book The Essence of Software Engineering
Editor , Striemer Rüdiger; , Gruhn Volker
Publisher Springer, Cham
Page(s) 137 - 168
ISBN 978-3-319-73897-0
Title of proceedings The Essence of Software Engineering
DOI 10.1007/978-3-319-73897-0

Open Access

Type of Open Access Publisher (Gold Open Access)


Today’s software development is all about data: data about the software product itself, about the process and its different stages, about the customers and markets, about the development, the testing, the integration, the deployment, or the runtime aspects in the cloud. We use static and dynamic data of various kinds and quantities to analyze market feedback, feature impact, code quality, architectural design alternatives, or effects of performance optimizations. Development environments are no longer limited to IDEs in a desktop application or the like but span the Internet using live programming environments such as Cloud9 or large-volume repositories such as BitBucket, GitHub, GitLab, or StackOverflow. Software development has become “live” in the cloud, be it the coding, the testing, or the experimentation with different product options on the Internet. The inherent complexity puts a further burden on developers, since they need to stay alert when constantly switching between tasks in different phases. Research has been analyzing the development process, its data and stakeholders, for decades and is working on various tools that can help developers in their daily tasks to improve the quality of their work and their productivity. In this chapter, we critically reflect on the challenges faced by developers in a typical release cycle, identify inherent problems of the individual phases, and present the current state of the research that can help overcome these issues.