Francamente, cuanto menos políticas, mejor. Cuantas más políticas tenga, mayor será el incentivo para NO usar el control de versiones. Lo que sucede entonces es:
- El código se desarrolla en sistemas de control de fuente paralelos e incontrolados, y solo la revisión final va al oficial.
- Las personas tardan en comprometerse tanto como sea posible, disminuyendo la visibilidad de lo que están haciendo a otros desarrolladores.
- La gente realmente evitará cometer algo si puede salirse con la suya, y algunos encontrarán la manera de salirse con la suya.
De hecho, creo que sus tres políticas de check-in ya son demasiado. Por ejemplo:
- Tener código revisado por pares antes del check-in hace que sea mucho más difícil tener el trabajo en progreso almacenado allí. En cambio, si el sistema de control de origen lo permite (y muchos lo hacen), controle si la fuente es revisada por pares o no. Con algunos sistemas puede crear un ciclo de vida para una revisión, con otros puede crear sucursales, y otros pueden usar etiquetas.
- Tener un elemento de trabajo asociado con un check-in hace que sea imposible para los desarrolladores realizar una programación exploratoria o tener iniciativa sobre posibles mejoras. Ahoga a los desarrolladores. En su lugar, asegúrese de que cualquier revisión que vaya a pruebas de integración o pruebas de aceptación del usuario, sin mencionar la producción en sí misma, esté asociada con un elemento de trabajo.
Esto puede sonar anti-Enterprise, pero es solo algunas de las cosas que hemos aprendido en unas pocas décadas de desarrollo de software. La mayoría de las organizaciones empresariales no han sido informadas sobre esto, pero, eventualmente, lo harán. Entonces, puedes ir por el camino opuesto, pero no digas que nadie te lo dijo.
Recomiendo el Agile Manifest, y, en particular, Lean Software Development para principios generales.
O, teniendo la filosofía de diseño de desbordamiento de pila en cuenta, hacen que el sistema de recompensa el comportamiento que desea.
La revisión por pares no tiene que ser un requisito previo para el check-in. Primero puede verificar, revisar por pares el (los) archivo (s) comprometido (s), luego promover los archivos a otra rama después de la revisión. – Dan