Team structure
As per Conway's law:
"Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations."
So, in order to produce designs based on architecture and to gain its benefits, we also need structured teams working on this accordingly.
Normally, in a monolithic application, we have teams such as the following ones:
- Dev-ops team
- Backend-developer team
- DB administrator team
- Mobile application developer team
However, in the case of distributed architecture such as microservices (if we are developing an e-commerce application), we will have teams such as the following ones:
- Products catalog
- Inventory
- Orders
- Coupons
- Wishlist
All these teams will have members, including Dev-ops, Backend-developer, DB administrator, and mobile app developer. So, in the case of microservices, we will have a team per service.
Size of team:
There is no hard and fast rule, but it is recommended that team size should be as per Jeff Bezos' 2 pizza...