Do you have a DevOps Master?
The best way of getting the most out of DevOps is to have a "DevOps Master". A DevOps Master is like a Scrum Master but is only interested in helping you get 100% from DevOps and it's perfectly fine for them to be part of the development team.
It's important to note that a DevOps Master is not a management position. It's simply a role that encourages the team to use DevOps in the best way possible. With a specialist knowledge of DevOps, they're in the best position to know what should change and what could be done better.
Some of the things they should focus on are:
- Taking you beyond DevOps as just a source control system
- Using DevOps to help you on a proper ALM road
- Making sure that automated builds are created and managed properly by the developers
- Managing the build servers if additional help is needed (builds themselves are the responsibility of the developers)
- Checking the builds are fit for purpose, and that unit tests are included
- Checking that deployment is working properly
- Checking the right check-in policies are enabled and developers are leaving meaningful check-in or commit messages
- Ensuring code analysis is enabled and getting stronger
- Ensuring CodeAuditor is running
- Cleaning up unused Workspaces (this removes old check-outs by default)
- Making sure all patches are applied to the servers (they might not do the work, but they make sure it's being done)
- If the team is using Version Control with Server Workspaces, sending out check-in warnings every week to people which have left over check-outs as per the Do you make small changes and check in early and often?
These duties need to be taken care of on a regular basis, but most of all, the all members of the team should be encouraged to improve things themselves.