To create independent and autonomous teams around services, you might be tempted to build teams with full-stack expertise as depicted in the following figure. Although this might be a better setup, it takes the DevOps approach too literally. Each team, now, needs all knowledge and skills, and reuse is almost zero.
DevOps is often misunderstood and taken too literally. Many organizations stay in the existing organizational chart with fixed teams and experts in middleware, databases, network, and others. In addition, Business System teams are created vertically next to this setup, as shown in the preceding figure. Such a setup requires many dependencies and leads to “waste” due to which various Business System teams cannot operate completely independent from each other. They need centralized capabilities as depicted in the preceding figure.
Consider a typical IT organization divided into departments. Each department is aligned with a specialty or profession. You might see separate departments with network specialists, storage specialists, Unix administrators, VMware administrators, DBAs, application managers, and others. In such an organization, each application and system depends on all other departments to function correctly.
Suppose a new machine or environment is required in the organization, you have to deal with the representative of every department and orchestrate the change requests among them. Each department has its own request forms, workload, and SLAs. Every time a request is handed over to the next department for processing, you have to wait until the request is accepted, planned, and processed. Valuable time is wasted while waiting for the next processing step. It has been found that waiting times can accumulate to 98% of the complete turnaround time of a change.
Source: DASA DevOps Fundamentals coursebook.
DASA DevOps Fundamentals
Provides an extensive introduction to the core agile DevOps principles covering the essential knowledge and skill competences that have been defined by DASA.