  Computing systems form the backbone of many areas in our society, from
manufacturing to traffic control, healthcare, and financial systems. When
software plays a vital role in the design, construction, and operation, these
systems are referred as software-intensive systems. Self-adaptation equips a
software-intensive system with a feedback loop that either automates tasks that
otherwise need to be performed by human operators or deals with uncertain
conditions. Such feedback loops have found their way to a variety of practical
applications; typical examples are an elastic cloud to adapt computing
resources and automated server management to respond quickly to business needs.
To gain insight into the motivations for applying self-adaptation in practice,
the problems solved using self-adaptation and how these problems are solved,
and the difficulties and risks that industry faces in adopting self-adaptation,
we performed a large-scale survey. We received 184 valid responses from
practitioners spread over 21 countries. Based on the analysis of the survey
data, we provide an empirically grounded overview of state-of-the-practice in
the application of self-adaptation. From that, we derive insights for
researchers to check their current research with industrial needs, and for
practitioners to compare their current practice in applying self-adaptation.
These insights also provide opportunities for the application of
self-adaptation in practice and pave the way for future industry-research
collaborations.
