On the fifth day of Christmas, my true blog gave to me:
Five Golden Rules!
Four CI tools,
Three powershell scripts,
Two Keystone merge tips,
…and a placeholder rule in the content tree.
Today I offer you some best DevOps practices for your delivery team. Do, or do not. There is no try.
1. “Works on my machine” is not good enough
This is why we have continuous integration! Just because the solution compiles or works on a single machine does not mean that the solution in source control is complete and can reproduce that behaviour. Files that aren’t added to source control or aren’t properly referenced by the solution might work locally, but a CI process will help you find out if things are still working somewhere else.
2. Stop editing files on the server
I’ve done it. You’ve done it. We need to stop doing this! In order to support a repeatable deployment process, manual changes cannot be allowed. Your team needs to be able to trust that they can reproduce an environment from the solution in source control or from a generated installation package. Manual changes can be lost during a deployment, especially with compiled code.
If you need to change it, deploy it!
3. You broke it, you fix it.
The whole team needs to own the quality of the solution. This isn’t a game of blaming somebody, but of ensuring a culture of ownership so that each team member takes on the responsibility of making sure solution changes work. If they don’t, the priority is to fix it and unblock the team.
Failed builds make sad panda sad. 😦
4. Keep changing all the time
If you aren’t changing you can’t improve. Each process or tooling change you make gives you the opportunity to learn what works and what does not work for your team. Continuous Improvement requires experimentation, so get out there and change something!
5. Minimize your waste
One of the key pillars of Lean methodology is the reduction of waste in the process. A simple way to improve is to look at your process and identify effort that is being spent without generating value. Are you filling in a bunch of fields on your bug forms that aren’t being used? Do you have team members in meetings when it doesn’t make sense? Time to optimize!