Modern software can be split into small and highly independent components, like Microservices or Micro Frontends. This distributed nature determines the flexibility to have different teams dedicated to the separate components of the system, each team being responsible for what they can do best. Scalability is much facilitated with this approach.