Step 1: On one team, put the people with the knowledge and control necessary to change the software, see the results, change it, see the results.
Step 2: Use automation to take extrinsic cognitive load off this team, so that it needs fewer people.
That’s it, that’s DevOps.
Step 1 describes the cultural change that leads to flow. Delivering change requires no handoffs or approvals from outside the team; the impact of change flows back to the team. Act and learn.
Step 2 is where tools come in. If all you do is improve your tooling, well, that helps a little, but it doesn’t get you the qualitative change in flow. That comes from Step 1. The serious value of automation is that it enables Step 1, a single team with all the relevant knowledge.
Our job as developers is making decisions. DevOps gets us the knowledge we need to make good decisions, the authority to implement them, and the feedback to make better ones in the future.