title: Empowering Collaboration in Microservice Engineering
Creators: name: Sorgalla, Jonas
Publisher: name: Universität Kassel
Year: 2024
Subjects: subject: Softwarearchitektur
subject: Microservices
subject: Empirical Software Engineering
subject: Microservice Architecture
subject: Model-Driven Engineering
subject: Collaborative Software Engineering
classificationCode: 004
subject: 004
classificationCode: Softwarearchitektur
subject: Softwarearchitektur
classificationCode: Mikroservice
subject: Mikroservice
classificationCode: Software Engineering
subject: Software Engineering
classificationCode: Empirische Forschung
subject: Empirische Forschung
classificationCode: Kollaboration
subject: Kollaboration
classificationCode: Modellgetriebene Entwicklung
subject: Modellgetriebene Entwicklung

description: <p>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. </p>
<p>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. </p>
<p>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. </p>
<p>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.</p>
description: <p>Microservice Architecture (MSA) bezeichnet einen Architekturstil, der sich insbesondere für die Entwicklung von web-basierten Anwendungen mit einem Fokus auf Robustheit, Skalierbarkeit und einfaches Deployment eignet. Im Zentrum des komponentenbasierten Architekturstils stehen Business Capabilities. Jede identifizierte Capability wird bei MSA durch eine eigene unabhängig ausführbare und deploybare Softwarekomponente, einen sogenannten Microservice, realisiert. Obwohl MSA viele der Herausforderungen von modernen Softwarelösungen adressiert, bringt MSA auch neue Komplexität mit sich. 
Die bisherige Forschung hat sich hauptsächlich auf die technische Perspektive von MSA konzentriert, bspw. in Form von Entwurfsmustern oder Werkzeugen, die darauf zielen, übermäßigen Boilerplate-Code zu vermeiden. In der Praxis zeigt sich jedoch, dass nicht das Design oder die Implementierung von Microservicesystemen die größten Herausforderungen darstellen, sondern der damit verbundene Entwicklungsprozess und die Organisation. Ziel dieser Forschungsarbeit ist es daher, die organisatorischen Herausforderungen bei der Einführung von MSA genauer zu untersuchen und Methoden und Werkzeuge zu entwickeln, die Softwareentwicklerinnen und Softwareentwicklern in der Praxis bei der Adressierung dieser Herausforderungen unterstützen. Im Kern steht dabei die Stärkung der Kollaboration der Softwareteams bei der Entwicklung von MSA.</p>
<p>Die vorliegende Arbeit adressiert dieses Ziel mit einem umfassenden Forschungsansatz. Zunächst erfolgt die Ableitung eines konzeptionellen Rahmenwerks für MSA-Entwicklungsprozesse mit Fokus auf Kollaborationsprozesse. Parallel dazu erfolgt eine empirische Untersuchung der organisatorischen Herausforderungen in der Praxis von MSA-Entwicklungsprozessen in Form einer qualitativen explorativen Fallstudie, die von Experteninterviews flankiert wird. Die Ergebnisse dieser Untersuchung zeigen bspw., dass es für Teams eine Herausforderung ist, das übergeordnete Organisationsziel im Auge zu behalten. Darüber hinaus neigen vor allem kleinere Entwicklungsorganisationen dazu, spezialisierte Teams, z.B. für das Deployment, einzusetzen. Diese Spezialisierung von Teams steht häufig im Konflikt mit dem Single-Team-Ownership-Prinzip von MSA. 
Die empirischen Erkenntnisse werden dazu genutzt, einen Kollaborationsprozess auf Organisations- und Teamebene abzuleiten, der auf Methoden aus dem Bereich des Model-driven Engineerings basiert. Um den Prozess in der Praxis zu unterstützen, werden zudem prototypische Softwarewerkzeuge, z.B. zum Assemblieren eines Systemmodells aus Microservicemodellen, eine Modelltransformation, die OpenAPI mit dem Prozess verbindet, und eine Informationsplattform zur Kodifizierung und Austausch von Wissen vorgestellt. Abschließend erfolgt eine User Experience Evaluation. </p>
<p>Die entwickelten Werkzeuge, Prozesse und Methoden ermöglichen es insbesondere kleineren Unternehmen, die organisatorischen Herausforderungen von MSA zu bewältigen.</p>