The DevOps movement presents itself as a culture involving processes, tools, and organization. While the first two aspects seem to be covered by proven methodological and technical approaches (lean, agility, automation, craft, etc.), the organizational aspect lacks reliable frameworks.
Therefore, before embarking on a transition inspired by the DevOps culture, it becomes essential to identify the organizational model in place and thus target the most suitable pattern for our structure's operating mode in order to reduce resistance to change and achieve a smooth and pragmatic migration.
In the following, we will present some commonly encountered models, evaluate them, and attempt to assess their adaptability in a DevOps transformation approach.
This historical model involves a dedicated team - generally known as the integration team - acting as a liaison between developers and operations. Its role is to understand and master the offerings provided by operations in terms of infrastructure and tools, ensuring the smooth delivery of projects. They must stay up-to-date with new developments.
The integrator thus plays a release manager role, whether dedicated to a project or shared for a functional domain or a set of projects.
Classification: DevOps Anti Pattern
In this approach, a cross-functional DevOps team is established to address project needs regarding provisioning or delivery issues. The strategic objective is to provide DevOps value without disrupting the existing organization or making fundamental changes.
Classification: DevOps Compatible
Recommendation: This model is a good trigger to test the organization and provide frameworks for a larger-scale transformation process.
This pattern involves an organization where developers take on part or all of the provisioning, configuration, and management tasks of technical environments, as well as other tasks typically handled by operations.
This model is also applicable when operations are fully integrated into the development team.
This model can be observed in both small structures (startups) and large IT players like Facebook or Netflix. The common focus is on one (or few) products/services.
Classification: Pattern or Anti Pattern depending on the context.
Recommendation: In a product-oriented approach, this pattern highlights the symbiosis between developers or operations facing the same issues. However, it is better to avoid this pattern if managing multiple products in team models.
This occurs when a traditional OPS team wants to embrace the DevOps trend, hoping to benefit from automation improvements and TTM reduction.
This team - renamed DevOps for the occasion - remains in an organizational silo that does not respect the spirit of cross-functional collaboration and shared responsibilities inherent in the DevOps culture.
Classification: DevOps Anti Pattern
This model presents a community of motivated individuals who take on the task of evangelizing and promoting the DevOps approach and the accompanying technical and methodological tools.
In general, this can result from collective emulation (spontaneous community) or a strategic decision that identifies evangelists and positions them in the various relevant teams.
Classification: DevOps Compatible
Some organizations choose to outsource their operational tasks, either through a service provider or by leveraging public cloud offerings (Amazon EC2, Azure, etc.).
A variant of this model involves relying on an internal OPS team, transversal to the structure, offering its services as infrastructure as a service.
In this case, all or part of the DEV teams must acquire mastery of IAAS offerings to be able to manage their delivery. Support and maintenance tasks are transparently handled by the IAAS offer provider.
Classification: DevOps Compatible
An organization may already have a process of bringing together teams operating towards the same functional objective without necessarily being part of a strategic transformation strategy.
It is therefore common to see alliances between application developers and support and optimization teams for middleware or DBA.
These teams may be wholly or partially identified in the organization as OPS teams, even though they are often called upon during the development cycle.
Classification: DevOps Compatible
Recommendation: This approach can be a starting point for spreading a DevOps culture within the organization. However, it is essential not to fall into the trap of activity silos.