5th International Workshop on Rapid Continuous Software Engineering and 1st International Workshop on Data-Driven Decisions, Experimentation and Evolution, at ICSE 2019, May 27 2019, Montreal, Canada
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. Continuous software engineering refers to the organisational 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. 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. In case of complex systems involving humans in the loop, such a relation is difficult to infer a priori; a solution is then to observe and experiment with systems in production environments, e.g. with continuous experimentation.
Reaching this goal requires crosscutting research which spans from the area of process and organisational aspects in software engineering to the individual phases of the software engineering lifecycle and finally to live experimentation to evaluate different system alternatives by users’ feedback. With the proliferation of data analysis and machine learning techniques and flexible approaches to rapid deployment, experimentation can be used in different domains (e.g. embedded systems); it can also be automated and used for runtime adaptation. These new concepts call for synergy between software engineers and data scientists.