  While Microservices promise several beneficial characteristics for
sustainable long-term software evolution, little empirical research covers what
concrete activities industry applies for the evolvability assurance of
Microservices and how technical debt is handled in such systems. Since insights
into the current state of practice are very important for researchers, we
performed a qualitative interview study to explore applied evolvability
assurance processes, the usage of tools, metrics, and patterns, as well as
participants' reflections on the topic. In 17 semi-structured interviews, we
discussed 14 different Microservice-based systems with software professionals
from 10 companies and how the sustainable evolution of these systems was
ensured. Interview transcripts were analyzed with a detailed coding system and
the constant comparison method.
  We found that especially systems for external customers relied on central
governance for the assurance. Participants saw guidelines like architectural
principles as important to ensure a base consistency for evolvability.
Interviewees also valued manual activities like code review or boy scouting,
even though automation and tool support was described as very important. Source
code quality was the primary target for the usage of tools and metrics. Despite
most reported issues being related to Architectural Technical Debt (ATD), our
participants did not apply any architectural or service-oriented tools and
metrics. While participants generally saw their Microservices as evolvable,
service cutting and finding an appropriate service granularity with low
coupling and high cohesion were reported as challenging. Future Microservices
research in the areas of evolution and technical debt should take these
findings and industry sentiments into account.
