Trabajo en un equipo pequeño, en una empresa mediana, la mayoría de los cuales no está involucrada en el desarrollo de software. Soy el desarrollador más nuevo y menos experimentado y no tenía experiencia profesional o académica en software antes de comenzar, pero estoy bastante satisfecho con lo respetada que es mi aportación y estoy agradecido por haber sido tomado en serio en una etapa tan temprana de mi carrera.
Aún así, siento que debería estar haciendo más con esta generosa cantidad de tiempo aire. Como equipo, parece que tenemos problemas para hacer las cosas. Me gustaría poder sugerir algo para mejorar la situación, y creo que me escucharían si fuera una buena idea, pero no sé qué sugerir.
Las cosas que puedo identificar como problemas incluyen:
- La especificación de las tareas en cuestión es escasa. Esto se debe en parte a que la administración es un cuello de botella y no tenemos el dinero o las personas para comprometerse a resolver los requisitos detallados tanto como nos gustaría. También se debe en parte a que el software que estamos desarrollando es de investigación y el método preciso no está claro hasta que se demuestre y se use para determinar su efectividad.
- Lead Dev es muy aficionado a lo que él llama 'creación de prototipos' hasta el punto de que recientemente comenzó a insistir en que todo está 'prototipado', lo que para el resto de nosotros parece escribir código incorrecto y dárselo a los modeladores para que jueguen. No está claro qué espera que salga de este ejercicio en muchos casos. La implementación 'real' sufre debido a su insistencia en que las buenas prácticas requieren demasiado tiempo para la creación de prototipos. Ni siquiera he comenzado a poder desenredar esta lógica retorcida y no estoy seguro de querer intentarlo.
- Se espera que los modeladores nos digan todo acerca de la metodología deseada con detalles precisos, y se asume con absoluta confianza que lo que ofrecen es teóricamente perfecto. Esto casi nunca es cierto, pero no se toman medidas para rectificar esta situación. Nadie en el lado del modelaje plantea inquietudes de una manera estructurada sobre la que se pueda actuar, ni buscan orientación para aplicar las mejores prácticas. Tampoco se hace nada con respecto a su pasividad.
- He intentado empujar a TDD en el equipo antes, pero me resultó difícil ya que es nuevo para mí y, aunque quienes supervisaron mi trabajo estaban dispuestos a tolerarlo, nadie más ha recibido entusiasmo. No puedo justificar la cantidad de tiempo que paso revolcando y no terminando funciones, por lo que la idea, por el momento, ha sido abandonada. Me preocupa que no se vuelva a recoger, porque a nadie le gusta que le digan cómo hacer su trabajo.
- Ahora tenemos un servidor de integración continua, pero en su mayoría solo se usa para ejecutar pruebas de regresión de varias horas. Se ha dejado abierto que también debería estar ejecutando la unidad de cobertura completa y las pruebas de integración, pero por el momento nadie las escribe.
- Cada vez que planteo el problema de la calidad con el desarrollador principal, obtengo una respuesta al efecto de 'La función de prueba A es sencilla, la función B es mucho más importante para el usuario pero demasiado difícil de probar, por lo tanto, no deberíamos probar la función UNA'. Una vez más, no he avanzado en tratar de desenredar esta lógica.
....Uf. Cuando lo digo así, se ve mucho peor de lo que pensaba. Supongo que, como resulta, este es un grito de ayuda.