Most technologies are built or running on other technologies, themselves built or running on other technologies.
Most companies like to split out the responsibilities for these layers to different specialized people or parts of the company.
Finally, developers do their thing with the application.
Life cycles and Pipelines Gonna Flow
So, put the stack aside for now because we have another dimension to think about: Time.
Many systems are developed and operated in a linear pipeline or development process. First they are in a “development” state, then they move to a “test/QA state”, and finally to a “production state”.
A component can be in each of these states, and often owned by different people and operated in separate environments depending on the state it is in.
Note the colors indicating the life cycle state, they’ll be important in a moment.
Specialization/Separation up and down the stack, combined with Specialization/Separation across the deployment/operations states gives you this:
Who owns and is responsible for each thing at each time? Good luck figuring that out without a RACI.
Devops simply gives the whole thing to the same team, in both dimensions.
Developers, Developers, Developers. Steve Ballmer would be proud!
No specific claims here, just leaving some thoughts. - feel free to https://twitter.com/secvalve
While writing this, thinking of DevSecOps, and discussing with a friend, it occurred to me that specialization might itself be an antipattern in many situations…. After all,
Specialization has positives and negatives:
Devops, pictures, lifecycle, sdlc