🇬🇧

Empowering Collaboration in Microservice Engineering

Microservice Architecture (MSA) denotes a recent architectural style to design and develop particularly web applications that require robustness, scalability, and ease of deployment. MSA can be categorized as a component-based architecture style with a focus on business capabilities. For each capability, an MSA-based system comprises an independently executable and deployable software component that provides means to interact only through a defined interface. These components are the eponymous microservices. Although MSA addresses many of the challenges industry in the age of digital transformations faces, it also introduces new complexity. Previous research has focused mainly on the technical perspective of MSA, for example, by providing guidelines for software patterns or by identifying and developing means to counteract excessive boilerplate code. However, considering the actual situation in practice, many studies and experience reports describe that it is not the design of microservices systems that poses the greatest challenge when adopting MSA, but issues in conjunction with the development process and organization.

The aim of this research is therefore to address the organizational challenges arising from the adoption of MSA and to develop methods and tools to support practitioners in overcoming these challenges in order to achieve a holistic engineering of MSA by strengthening collaboration.

We address this objective in a comprehensive approach. First, we derive a conceptual framework for MSA development processes from the perspective of levels of collaboration that occur. We then conduct a qualitative case study flanked by expert interviews to understand in more detail the organizational challenges related to MSA. The results of these examinations indicate, among other things, that teams in MSA development struggle with keeping the overarching organizational goal in mind due to MSA's inherent demand on team autonomy. Furthermore, especially smaller companies tend to spawn specialized units, for example, for deployment, allowing teams to shed responsibility of their microservices, which contradicts the ownership principle of MSA. Based on these empirical findings, we derive a holistic process comprising several tasks at the organizational and team level of collaboration with the goal of systematically addressing the identified challenges. Our process utilizes models and techniques from the field of Model-Driven Engineering. To enable the proposed process, we develop prototypical software tools, such as a means to assemble a system model from smaller microservice models, a model transformation including OpenAPI to the process, and an information platform to codify knowledge relevant for collaboration in MSA. Finally, we evaluate the platform developed and the use of the process in a user experience study.

With the developed means, we provide a process accompanied by a set of methods and tools that particularly enables smaller companies to address the organizational challenges of MSA.

Collections
@phdthesis{doi:10.17170/kobra-2024111011093,
  author    ={Sorgalla, Jonas},
  title    ={Empowering Collaboration in Microservice Engineering},
  keywords ={004 and Softwarearchitektur and Mikroservice and Software Engineering and Empirische Forschung and Kollaboration and Modellgetriebene Entwicklung},
  copyright  ={http://creativecommons.org/licenses/by/4.0/},
  language ={en},
  school={Kassel, Universität Kassel, Fachbereich Elektrotechnik/Informatik},
  year   ={2024}
}