Dev and Ops collaboration is the best possible DevOps organizational structure. It is based on the interaction of Dev-and Ops-teams. Where it is necessary — specialization is applied, where it is necessary — teams work together. In this case, there may be several separate Dev teams, each working on a partially independent product.
Implementation of Type 1 requires significant organizational changes and a high level of competence in the management of the organization. Dev and Ops should have a clearly articulated, clear, and understandable common goal and DevOps team structure (for example, "Deliver reliable and frequent SOFTWARE changes").
Ops people should feel comfortable working with developers on development-specific issues, such as test-driven development (TDD) or versioning. On the other hand, Devs should get seriously involved in operational issues and also seek to get input from Ops when developing new solutions. All this requires a significant cultural shift from the traditional approaches.
Companies, like Netflix or Facebook, that provide customers with a single purely digital product use a Type 2 topology, but this approach has limited applicability when an organization provides customers with more than one product. Budget constraints and the need to switch context, usually present in organizations that produce multiple products, can force you to increase the distance between Dev and Ops (use a Type 1 topology).
Type 2 of DevOps organizational structure can also be called "NoOps" because there is no separate or visible Ops command in this model (although the NoOps model in Netflix is also similar to Type 3 (Ops as IaaS)).
How to improve DevOps team structure
The scaling process is simplified when the way teams are organized is revised. Small multi-functional teams, whose members have certain skills that are used to create a particular project, are more successful in promoting their product. These skills may include:
- development of external and internal interface;
- user interaction;
- performing operations.
Notwithstanding the foregoing, the mono-functional teams typically have many advantages. These include greater opportunities for knowledge sharing and narrow specialization within a particular team or department. If you find that mono-functional teams work well with the rest of the organization, you should not reformat them for the sake of the idea of reorganization. What is important is not the structure of the organization itself, but the interaction between the teams to improve the overall effectiveness of the organization as a whole.
In hierarchical organizations, any beginnings are nipped in the bud, and, as a result, employees begin to feel helpless. On the other hand, in such organizations, the difference in the balance of power and the status of employees contributes to efficiency. If the organization is undergoing a massive reorganization aimed at eliminating the hierarchical structure, this can lead to certain problems. In such organizations, it is necessary to control the balance between the benefits for the organization as a whole and the damage to the morale of employees.