Micro Frontend Framework Guide: Adaptability for Teams Sr. Software Engineer

In the previous post of this series, we highlighted a use case that would call for a Micro Frontend architecture. In this post, we dive deeper into how Micro Frontend can scale with your evolving organization, especially if your teams have already embraced the microservices approach for backend development. 

Micro Frontend optimizes software delivery

Micro Frontends are a natural extension of microservices architecture that optimizes software delivery by decomposing one web application into smaller and independent apps. This allows frontend teams, or teams with frontend developers, the same level of development flexibility, testability, and velocity to release and deploy that backend teams receive from their microservices architecture.

Software architecture that can support evolving team models

If you’ve ever worked for a large organization, you have likely witnessed the way teams are set up and interact is often based on past projects and/or legacy technologies, which might be years, if not decades, old. This is due to Conway’s Law:

“Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.”

— Melvin E. Conway

To increase an organization’s chances of building effective software systems optimized for changing business needs, a reverse Conway maneuver (or inverse Conway maneuver) can be used to organize teams to match the desired architecture. Additionally, the software architecture needs to be sustainable to accommodate the evolving organizational structure.

Here’s a breakdown of the different phases of the architectural evolution over organizational changes:

1. Breaking the monolith phase

Imagine a new project begins with a full-stack team that builds and maintain the monolithic 2- or 3-tiered enterprise application with shared databases that power the core business or is on the critical path of value stream (Figure 1: The Monolith). Depending on the scale of the monolithic application, and the team’s capability to handle requirement and code changes, the system may last, but eventually, it will meet its demise. More on that, later.

Read More HERE