Trabajo para una gran organización humanitaria, en un software de construcción de proyectos que podría ayudar a salvar vidas en emergencias al acelerar la distribución de alimentos. Muchas ONG necesitan desesperadamente nuestro software y llevamos semanas de retraso.
Una cosa que me preocupa en este proyecto es que creo que es un enfoque excesivo en los estándares de codificación. Escribimos en python / django y usamos una versión de PEP0008, con varias modificaciones, por ejemplo, las longitudes de línea pueden llegar a 160 caracteres y todas las líneas deberían ser tan largas si es posible, no hay líneas en blanco entre importaciones, reglas de ajuste de línea que se aplican solo a ciertos tipos de clases, muchas plantillas que debemos usar, incluso si no son la mejor manera de resolver un problema, etc., etc.
Un desarrollador principal pasó una semana reescribiendo una parte importante del sistema para cumplir con los nuevos estándares de codificación, desechando varios conjuntos de pruebas en el proceso, ya que la reescritura significaba que eran "inválidas". Pasamos dos semanas reescribiendo toda la funcionalidad que se perdió y reparando errores. Él es el desarrollador principal y su palabra tiene peso, por lo que ha convencido al gerente del proyecto de que estas normas son necesarias. Los desarrolladores junior hacen lo que se les dice. Tengo la sensación de que el gerente del proyecto tiene un fuerte sentimiento de disonancia cognitiva sobre todo esto, pero no obstante está de acuerdo con vehemencia, ya que no está seguro de qué más hacer.
Hoy me metí en serios problemas porque había olvidado poner algunos espacios después de las comas en un argumento de palabra clave. Literalmente me gritaron otros dos desarrolladores y el gerente del proyecto durante una llamada de Skype. Personalmente, creo que los estándares de codificación son importantes, pero también creo que estamos perdiendo mucho tiempo obsesionándonos con ellos, y cuando verbalicé esto provocó ira. Soy visto como un alborotador en el equipo, un equipo que busca chivos expiatorios por sus fallas. Desde la introducción de los estándares de codificación, la productividad del equipo se ha desplomado considerablemente, sin embargo, esto solo refuerza la obsesión, es decir, el desarrollador principal simplemente culpa a nuestra falta de cumplimiento de los estándares por la falta de progreso. Él cree que no podemos leer el código del otro si no nos adherimos a las convenciones.
Esto está empezando a ponerse pegajoso. Ahora estoy tratando de modificar varios scripts, autopep8, pep8ify y PythonTidy para que coincidan con las convenciones. También ejecutamos pep8 contra el código fuente, pero hay tantas enmiendas implícitas a nuestro estándar que es difícil rastrearlas a todas. El desarrollador principal escoge fallas que el script pep8 no detecta y nos grita en la próxima reunión de pie. Cada semana hay nuevas adiciones a los estándares de codificación que nos obligan a reescribir el código existente, funcional y probado. Gracias a Dios todavía tenemos pruebas (revertí algunas confirmaciones y arreglé un montón de las que eliminó).
Todo el tiempo hay una presión creciente para cumplir con el plazo.
Creo que un problema fundamental es que el desarrollador principal y otro desarrollador central se niegan a confiar en otros desarrolladores para que hagan su trabajo. ¿Pero cómo lidiar con eso? No podemos hacer nuestro trabajo porque estamos demasiado ocupados reescribiendo todo.
Nunca me he encontrado con esta dinámica en un equipo de ingeniería de software. ¿Me equivoco al cuestionar su adhesión a los estándares de codificación? ¿Alguien más ha experimentado una situación similar y cómo la han enfrentado con éxito? (No estoy buscando una discusión, solo soluciones reales que la gente ha encontrado)