DevOps Roles


Team Roles 

Team Lead

In projects and some methodologies this role is also called \”Scrum Master\” or team coach or project lead. It is responsible for:

  • Facilitating the team
  • Obtaining resources
  • Protecting from problems

Therefore this role encompasses soft skills of project management but not too many technical ones, such as planning and scheduling. Those activities are better with the team as a whole.

Team Members

In projects or some methodologies this role is referred to as developer or programmer. It is responsible for:

  • Creating and delivery of a system
  • Modeling
  • Programming
  • Testing
  • Release activities

Service Owner

Service owner is a role, which is responsible for outside coordination. Therefore service owners participates in the following disciplines:

  • System-Wide requirements activities
  • Prioritization of work items for the team
  • Providing external information:
    • Clients of the team\’s service
    • Services provided to the team

Requirements gathering and release planning activities for the next iteration can occur in parallel with the conception phase of the current iteration. Therefore this role must fulfill some coordinative tasks. The service owner maintains and communicates the vision for the service. Since each service is relatively small, the vision involves knowledge of the clients of the team\’s service and the services on which the team\’s service depends. Therefore the mentioned vision involves the architecture of the overall system and the team\’s role in that architecture (big picture). The ability to communicate both – with stakeholders and with other members of the team – is a key requirement for service owners.

Reliability Engineer

Reliability engineers have several responsibilities:

  • Monitoring of the services immediately after deployments
    • e.g. by usage of canaries (live testing of a small number of nodes)
  • Contact for problems with the service during its execution
    • this might require on-call support; therefore this role is called \”Site Reliability Engineer\” by Google

Once issues are identified, the reliability engineer performs short-term analysis to diagnose, mitigate and repair any issue. This is done via automated tools in most cases and might be required under very stressful conditions. Close collaboration with reliability engineers of other teams might be required for troubleshooting and diagnosis. His job is also to identify the root-cause of issues for long term solutions.

Gatekeeper

Gatekeepers are some kind of quality gates for services, which decide if a service is allowed to move to the next step in a deployment pipeline. This is done by comprehensive testing results and a checklist for decision making. In projects and some methodologies the role is also called release coordinator, which pinpoints out further duties:

  • Attend triage meetings for release scope
  • Understanding the background of all deployment packages
  • Referees Bug severity disputes
  • Approval of late-breaking additions
  • Decision of back-out options
  • Focal point for communication between:
    • Developers
    • Quality Assurance
    • Release Engineering
    • Website Developers
    • Public Relations
    • Marketing

DevOps Engineer

The DevOps engineer role is responsibile for the care and feeding of the various tools used in the DevOps tool cain:

  • Code Testing Tools
  • Configuration Management Tools
  • Continuous Integration Tools
  • Deployment Tools
  • Post Deployment Testing Tools

Therefore DevOps engineers can determine the changes between deployables and newly added test cases since certain builds. Therefore this role can be filled at the individual level, team level or organizational level. This role also responsible to tailor these tools to the teams needs, automate deployment and deployment pipeline.