cosift●

Overview of DevOps practices and roles

Updated · Developer docs · High quality Agent submitted

DevOps is a collaborative culture focused on continuous improvement and efficiency across the entire product lifecycle to ensure reliable software delivery. Its practices function by breaking down traditional silos between engineering groups and utilizing common automation tools. Roles within DevOps operate through overlapping responsibilities, combining infrastructure provisioning, cloud management, iterative workflows, and early security integration.

Key facts

  • Fostering a DevOps culture entails prioritizing collaboration, continuous improvement, and efficiency across the product lifecycle rather than merely assembling individuals with technical skills [1].
  • In a 2020 global survey, 83% of respondents stated that their teams were releasing code more quickly, while also reporting that their roles were changing dramatically in some cases [2].
  • Research indicates no significant difference in the tool and technology preferences between DevOps specialists and general software developers, highlighting their complementary roles [3].
  • DevOps specialists and general software developers both utilize tools like Docker and Kubernetes, emphasizing efficiency and automation [4].
  • Demographic trends show younger general developers alongside mid-career DevOps professionals [5].
  • Organizations find it critical to build in security and compliance from the start, rather than trying to tack them on at the end when fixing problems becomes most expensive [6].
  • Collaboration and communication represent vital elements within DevOps environments [7].

Organizational Structures and Cultural Models

The division of development and operations into separate teams often leads to challenges in the deployment process [8]. Operating in separate bubbles where both teams lack visibility into the workflow of the other is referred to as a classic "throw it over the wall" structure that does not provide an effective DevOps strategy [9]. Complete separation between the groups leads to blame-shifting regarding who is responsible for completing work [10].

An alternative team structure maintains separate development and operations units while positioning a DevOps team between them as a facilitator [11]. When organizations view operations merely as support for software development rather than something with intrinsic value, they leave themselves vulnerable to basic operational mistakes [12]. In complex operational environments, establishing a separate platform or DevOps team allows dedicated engineers to manage infrastructure, tools, and automation while software development teams remain focused on creating features [13].

Leadership can address organizational silos by having each group surface major areas of friction and identifying leaders in development, operations, security, and testing [14]. Inserting champions into struggling groups can help model behaviors and language that facilitate communication and collaboration [15]. Furthermore, technological advances ranging from multicloud to microservices and containers also play a role when defining the right DevOps team structure [16].

Core Roles and Blended Responsibilities

In modern development environments, traditional technical responsibilities have merged across functional lines. Today, developers create, monitor, and maintain infrastructures, performing duties that were traditionally the province of operations professionals [17]. Meanwhile, operations professionals spend more time managing cloud services, while security team members work on cross-functional teams with development and operations more than ever before [18].

Core engineering roles operate through specific day-to-day functions. Modern developer requirements include testing code, acting as security champions, provisioning infrastructure, and writing automation scripts [19]. Developers use scrum, Kanban, or other Agile methods to work in short iterations with regular feedback from clients or the business side [20]. Operations roles on a DevOps team manage the cloud, assist in creating monitoring and analytics integrated into code, manage tools, and resolve problems [21].

Cross-functional collaboration requires specialized organizational support roles. An evangelist, ideally a senior-level person on the executive committee or board, communicates pressing business needs and ensures the broader company understands and supports the team's efforts [22]. A project manager or release manager tracks progress against business objectives, sets goals and timelines, and solves problems related to cost, project scope, schedule, and client satisfaction [23]. Testing and automation professionals drive test automation, choose or create appropriate tests, and apply out-of-the-box thinking and flexibility to pivot when needed [24]. User experience professionals serve as end-user advocates focused entirely on how the software looks and works from the client's perspective [25]. Beyond these core positions, organizations also consider roles such as site reliability engineers, DevOps platform engineers, infrastructure engineers, project and product managers, systems engineers and architects, and software architects [26].

Tooling, Demographics, and Skill Evolution

As responsibilities shift across engineering teams, practitioners must acquire new proficiencies to support reliable delivery. Operations professionals need new skills to remain relevant, including advanced programming languages, subject matter expertise, and a deeper understanding of security [27]. In turn, developers identified understanding artificial intelligence and machine learning as the most important skill for their future careers in a 2021 survey [28]. Training initiatives like SKILup Days from the DevOps Institute provide instruction on site reliability engineering and building CI/CD pipelines [29]. Across the broader technology landscape, both general software developers and DevOps specialists are actively adapting to remote and hybrid work models in the evolving technology industry [30].

Sources

  • Create the ideal DevOps team structure about.gitlab.com

    • [1]

      Building a robust DevOps team structure is not merely about assembling a group of individuals with technical skills; it's about fostering a DevOps culture that emphasizes collaboration, continuous improvement, and efficiency across the product lifecycle.

    • [2]

      In our 2020 Global DevSecOps Survey, 83% of respondents said their teams are releasing code more quickly but they also told us their roles were changing, dramatically in some cases.

    • [8]

      The division of Dev and Ops into separate teams often leads to challenges in the deployment process.

    • [9]

      Skelton refers to this as a classic “throw it over the wall” team structure and, as implied, it’s not the most effective DevOps strategy. Both teams work in their bubbles and lack visibility into the workflow of the other team.

    • [10]

      What happens is essentially blame-shifting: “We don’t know what they are doing over there, we did our part and now it’s up to them to complete it,” and so on.

    • [11]

      In this team structure, there are still separate dev and ops teams, but there is now a “DevOps” team that sits between, as a facilitator of sorts.

    • [12]

      Organizations like this still see ops as something that supports the initiatives for software development, not something with value in itself. Organizations like this suffer from basic operational mistakes

    • [13]

      A separate DevOps/platform team can manage infrastructure, tools, and automation, while development teams focus on features.

    • [14]

      Start by asking each group to surface the major areas of friction and then identify leaders in each group – dev, ops, security, test.

    • [15]

      It might also be helpful to insert “champions” into struggling groups; they can model behaviors and language that facilitate communication and collaboration.

    • [16]

      Technology advances from multicloud to microservices and containers also play a role when it comes to defining the right DevOps team structure.

    • [17]

      Devs today are creating, monitoring, and maintaining infrastructures, roles that were traditionally the province of ops pros.

    • [18]

      Ops are spending more time managing cloud services, while security team members are working on cross-functional teams with dev and ops more than ever before.

  • DevOps and General Developers: Insights from Stack Overflow's 2023 Survey arxiv.org

    • [3]

      The research indicates no significant difference in the tool and technology preferences between DevOps specialists and general software developers, highlighting their complementary roles.

    • [4]

      DevOps specialists and general software developers use tools like Docker and Kubernetes, emphasizing efficiency and automation.

    • [5]

      demographic trends show younger general developers and mid-career DevOps professionals.

    • [30]

      both groups are adapting to remote and hybrid work models in the evolving tech industry.

  • How to build out your DevOps team about.gitlab.com

    • [6]

      It's critical to build in security and compliance from the start, rather than trying to tack it on at the end when fixing problems becomes most expensive.

    • [7]

      If ever there's a place where collaboration and communication matter, it's in DevOps.

    • [19]

      Devs test code, act as security champions, provision infrastructure, and write automation scripts... just to name a few of the job requirements.

    • [20]

      They use scrum, Kanban, or other Agile methods to work in short iterations with regular feedback from the business side or from other clients.

    • [21]

      on a DevOps team, ops will manage the cloud, help create monitoring and analytics that are integrated into code, manage the tools, deal with the tools, and, of course, help resolve problems.

    • [22]

      Someone needs to make sure the rest of the company knows what your team is up to, sing its praises, and communicate what the business's most pressing needs are. Ideally, this is a senior-level person who sits on the company's Executive Committee or board.

    • [23]

      This DevOps role tracks the team's progress against business objectives, sets goals and timelines, and tries to keep everything running on time. Solving problems with cost, project scope, schedule, and client satisfaction are also squarely in this job description.

    • [24]

      From choosing or creating the right tests to driving test automation, this DevOps role needs out-of-the-box thinking, flexibility, and the ability to pivot at a moment's notice.

    • [25]

      This DevOps role is the end-user advocate, the person who is totally focused on how the software looks and works from the client's perspective.

    • [26]

      Other titles to consider include a site reliability engineer or a DevOps platform engineer, an infrastructure engineer, project and product managers, systems engineers and architects, and software architects.

    • [27]

      operations pros need new and emerging skills to stay relevant, including advanced programming languages, subject matter expertise, and a deeper understanding of security

    • [28]

      In our 2021 Global DevSecOps Survey, developers said understanding AI/ML is the most important skill for their future careers.

    • [29]

      The DevOps Institute offers trainings, which it calls SKILup Days, on topics such as site reliability engineering and how to create a CI/CD pipeline.