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.