0

This question already has an answer here:

DevOps is about preventing silos and let teams work more together then let them throwing things over the wall. In an ideal situation every individual in a DevOps team is able to create programs, test them and make them available to the customer. According to me an important competence of a DevOps engineer is communication as this is required to get acceptance in a team and among teams for new tools and processes.

The more I think about it the more I get doubts regarding the structure and responsibilities in a team. From a DevOps perspective, every individual should be able to do dev, qa and ops activities, but if you compare it with for example football, all players need to be able to kick a ball, but some of them are specialized in goalkeeping and others in scoring goals. So a DevOps team could exist of QA, Ops and Dev engineers, but all of them are able to test, create and deploy software and are a basically able to kick a ball like in football.

As DevOps does not mean specialzed in dev, qa and ops, like goalkeepers will normally not score as much as a striker, is CD a profession or is it one of the DevOps tasks, or should it be everybody's responsibility, but why are Dev, QA and Ops engineer part of a DevOps team as well? From that perspective there should be a CD engineer as well, but CI is not part of CD. Should two professions, i.e. CI engineer and CD engineer be part of DevOps team as well?

marked as duplicate by 030, Community Nov 27 '17 at 23:39

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

1

DevOps doesn't mean your admins should be doing QA and your testers should be developing. They rather should be aware of what other team members are doing and work as a team instead of just throwing responsibility over the wall and not caring about what other team members will do with it.

You will probably benefit from having someone on the team that knows how to build code integration pipelines. They may be specialized in it just like others specialize in databases, frontend or system fine-tuning. But you can't just assign a person and tell them to do all things CI, developers will write unit tests, testers will write some more high-level tests, administrators will have to make sure the tests actually run on environments that match the production. You can assign a person to oversee it but on small teams it doesn't make much sense. Especially since CI is more than just pipelines it's about changing how developers work.

Same goes for CD, you may have someone who have more experience with how to design software that can be continuously deployed but you have to change the way developers work to actually achieve it. You can't just tell someone to continuously deploy software that wasn't designed for it.

So summing up, if you want someone on that team that's there just for CI/CD that person's tasks will be to teach the team how to work.

1

DevOps is a combination of two roles Development and Operations, CI & CD are the main role a DevOps must be doing. Continuous Integration (CI) is a part of developer's role and Continuous Deployment/Delivery is a part of operation/infra/release-management role. In the agile methodology of development we've combined these two different role to a new position called DevOps who'll be responsible for release management or deployment. Thus it is a mandatory for a DevOps to know about CI & CD.

Not the answer you're looking for? Browse other questions tagged or ask your own question.