Summary: | "Microservices" has become a real buzz word in the software development community during the last couple of years. Most developers are familiar with the architectural concept which solves the problem of systems growing to large monoliths too complex to handle. This architecture has however mostly been used in backend development, even though many companies are struggling with large, monolithic frontend codebases. This is where micro frontends come in, an architectural as well as organisational approach to developing applications all the way from presentation to data layer. The micro frontends approach is relatively new, and even though there is some talk about it in the software community, many companies are unfamiliar with it, and there is very limited scientific work performed on the topic. The aim of this study was to investigate strengths of and challenges with micro frontends, and specifically how the modifiability of a web application is affected by developing it as a micro frontends project. The method for fulfilling the aim consisted of several parts. During one part, two frontend prototypes of a web application were implemented, one using a Single Page Application technique and one using a micro frontends technique. Another part consisted of interviewing practitioners in the software field with relevant backgrounds to gain their perspective on micro frontends. The results were also used to evaluate which prototype would be most suitable for the specific web application. During the last part of the method, measurements on the implemented prototypes were performed to be used to estimate the modifiability of the prototypes using a mathematical model of modifiability called SQMMA. Based on the results, this report provides an extensive summary of strengths of micro frontends, among other things that there are both beneficial and disadvantageous aspects of micro frontends when it comes to modifiability, risks that should be considered when adopting micro frontends, and a discussion on when to use it and not.
|