Systems we build are ultimately evaluated based on the value they deliver to their users and stakeholders. To increase the value, systems are subject to fast-paced evolution of the systems, due to unpredictable markets, complex and changing customer requirements, pressures of shorter time-to-market, and rapidly advancing information technologies.
To address this situation, agile practices advocate flexibility, efficiency and speed. Rapid continuous software engineering refers to the organizational capability to develop, release and learn from software in rapid parallel cycles, typically hours, days or very small numbers of weeks. This includes to determine new functionality to build, evolving and refactoring the architecture, developing the functionality, validating it, and releasing it to customers, and collecting experimental feedback from the customers to inform the next cycle of development. One needs to relate the changes performed on the system with their effect on the metrics of interest, keep the changes with positive effects, and discard the rest. This requires not only agile processes in teams but in the complete research and development organization. Additionally, the technology used in the different development phases, like requirements engineering and system integration, must support the quick development cycles.
The capability to perform all these activities in days or a few weeks requires significant changes in the entire software engineering approach, including parallelising activities, empowering cross functional teams to allow for rapid decision making and light weight coordination across teams. It also requires significant technical advances in the engineering infrastructure, including continuous integration and deployment, collection of post-deployment product usage data, support for running automatic live experiments to evaluate different system alternatives, e.g., A/B testing.
Reaching this goal requires crosscutting research which spans from the area of process and organisational aspects in software engineering to technical aspects in the individual phases of the software engineering lifecycle. Rapidly developing and evolving software systems is important in control-flow oriented as well as data-centric systems, from internet services to cyber-physical systems, and many more. Still, the processes and technology need to respect the differences between these types of systems.
to identify the problems in adoption and use of continuous software engineering and data-driven decisions
to discuss new ideas that apply successfull and established concepts to other domains and use cases
to build a community between software engineers and data scientists working on a common research agenda
Accepted papers and invited talks will be grouped into sessions according to related topics. Each session will start with quick overview presentations by the papers’ authors. Research presentations shall include slides about research challenges and research areas corresponding to the paper’s specific topics and the session’s generic topics.
A discussion period will follow the presentations to talk about the challenges, their relation and dependencies as well as potential directions for solutions. The outcome of the session is a graph (or a mind map) capturing the discussion.
Your submission will be reviewed by at least 3 members of the PC and judged based on their relevance to the workshop scope, quality and originality of their results. Please note, that this workshop does NOT use a double blind review process. Accepted papers will be published in the ICSE 2020 Companion Volume, published by ACM.