Organizations in many industries are increasingly adopting Microservices-based Software Architectures (MSAs) for designing, developing, testing and maintaining software systems, in order to scale-up their Development and Operations capabilities. However, transitioning to MSAs is easier said than done.
Migrating to microservices
In our research, we primarily study the migration process to MSAs through a socio-technical lense. That is, we view microservices not only, or even primarily, as a technical solution, but as an organizational solution that involves people, processes, and technology.
Our contributions in this area include:
Decision-making processes for migrations to microservices, and aggregated migration journeys from various organizations and technical solutions used by practitioners (Michael Ayas et al., 2023).
Testing in microservices, particularly related to consumer-driven contract testing (Ayas et al., 2022).
Microservices-based Architectures (MSAs) are gaining popularity since, among others, they enable rapid and independent delivery of software at scale, facilitating the delivery of business value. Additionally, there are attempts towards understanding practitioners’ roles and technical knowledge. MSAs call for affinity in several technologies as well as business domains. This diversity makes it challenging to scope and describe the roles of practitioners. In addition, practitioners often do not receive training and contents of MSA training remain largely undefined, even though there are challenges in finding or developing relevant technical expertise. In this research, we determine the different technical roles that are required in MSAs, along with their detailed competences. We use public online forums (e.g., StackOverflow), where developers share technical knowledge. We analyze 13,517 public profiles of software engineers, deriving their technical competences. Our taxonomy of technical competences in MSAs, contains 11 competences clusters, organized in 3 collections of competences — Web Technologies, DevOps, and Data Technologies. In addition, we derive the roles of microservice practitioners and the characteristics of their roles. Our findings organize the technical competences of MSAs practitioners and determine the training topics and combination of topics that can prepare engineers for MSAs.
Enterprises often try to tame the complexity of their software using microservices and practitioners generally perceive the impact of microservices as positive. However, different responsibilities fall in the hands of practitioners and new skill-sets are required to address the challenges and reap the benefits of microservices. The objective of this study is to gather and organize what industry requires from microservices practitioners. To achieve this, we conduct a qualitative analysis of 125 job-ads related to microservices that are gathered from 7 different countries, across 5 continents, posted during 14 consecutive days, sampled from a total of 1351 job-ads. We contribute with detailed taxonomies on roles, responsibilities, soft- and hard-skills that are necessary for microservices practitioners. Specifically, we detail 5 families of responsibilities, 3 of which are human-centered, describe 8 themes of popular soft-skills and describe 11 themes of popular hard-skills, along with how they relate to soft-skills. Our results indicate the importance of human-centered responsibilities and skills in microservices practitioners, and point to the existence of a job market for microservices software architects with a high demand on human aspects. Hence, our findings can help unravel organizational structures in microservices, improve training programmes, and understand the manifestation of human aspects in microservices.