¿Cómo puedo abordar los malos estándares de codificación de mis compañeros de equipo más experimentados? [cerrado]

Soy desarrollador de software para una gran empresa durante aproximadamente 5 años, desde que era principiante. Recientemente, tengo la oportunidad de trabajar en un proyecto de alto perfil.

Mi equipo más amplio de 27 miembros se divide en 3. Los otros miembros de mi equipo tienen más de 10 años de experiencia.

Me he dado cuenta de que mi equipo no sabe programar profesionalmente. Veo esto porque no aplican ninguna forma de diseño extensivo, como patrones de diseño, dividiendo las responsabilidades en clases separadas, para evitar el código espagueti. No pruebe el código o no lo pruebe correctamente, y las discusiones generales giran en círculos, no en ninguna dirección que proporcione valor.

No estoy considerando compartir mis pensamientos con el equipo, y siempre ayudo en el desarrollo y los considero mi equipo y lo protejo de cualquier manera.

Estoy muy confundido, ¿cómo llegaron aquí y cómo no se consideran un riesgo? Soy una persona muy humilde que no tiraría a nadie debajo del autobús, pero este ambiente no se esperaba.

Siempre pensé que estaría rodeado de gente más competente y aprendería.

Estoy sorprendido y quería escuchar sus pensamientos.

Todo el mundo codificaba así hace cuarenta años. Hace diez años, solo los perezosos incompetentes codificaban así.
Este tipo de pregunta abierta no se adapta muy bien a este sitio (y probablemente se cerrará por no responder), creo que tendrías más suerte en un grupo de discusión general como uno de los equipos de Slack que se enumeran aquí techbeacon .com/46-slack-groups-desarrolladores
@Kilisi no, los buenos desarrolladores ya existían en los años noventa. Incluso si el GoF no existiera, aún podría tomar una mierda de software de papel/diagrama y pensar en cómo hará las cosas antes de entrar en el código. Lo que dice Quincy Adams podría resumirse como "no hay/falta ingeniería de software" y falta de pruebas. Los buenos equipos de testing ya existían en el siglo XX (sin embargo, un buen equipo de testing siempre debe estar separado de los desarrolladores, punto).
Si le preguntaran, ¿podría demostrar con confianza que sus métodos son más productivos que los de ellos? ¿Es posible que un miembro senior del equipo haya impuesto sus metodologías al resto?
Cuestionar, discutir y proponer y motivar mejoras, o ignorar, no criticar.
@Kilisi Recuerde que todo lo que hizo GoF fue dar nombres a los patrones existentes, no los inventaron.

Respuestas (2)

Aquí no hay estándares de codificación ni ningún proceso/ciclo de desarrollo real; parece que sus compañeros de equipo solo están traduciendo los requisitos en código.

Debe comenzar con el líder de su equipo y preguntar si vale la pena hacer cumplir algunos estándares de codificación y una estrategia de prueba como una forma de mejorar la eficiencia del equipo. No tiene que ser mucho para empezar.

Es posible que desee pedir liderar un equipo pequeño en un proyecto pequeño y someter algunos procesos a un período de prueba y ver cómo va.

Por supuesto, todo esto depende de la mentalidad del líder del equipo y de la empresa en su conjunto (pueden estar perfectamente contentos con los proyectos tardíos o de bajo rendimiento).

Si no llega a ninguna parte y todavía está frustrado por la falta de estructura, considere seguir adelante. No dejes que estos otros tipos te arrastren hacia abajo.

Primero, debe enumerar cuáles son los defectos reales de su equipo, qué le cuesta dinero, tiempo a su empresa y qué dolores de cabeza le causan a usted y a sus compañeros de trabajo.

Por lo general, esto se reduce primero a la falta de pruebas automáticas en la parte más "molesta" de su aplicación, por "molesto" quiero decir: (una o ambas)

  • Prueba esa parte específica de tu software manualmente toma tiempo
  • Algunas partes específicas son inestables y muchos errores provienen de ellas.
  • Alguna parte específica es crítica y cualquier error cuesta mucho dinero o reputación a su negocio.

Por lo tanto, sugerir agregar pruebas de no regresión de alto nivel probablemente sea un buen comienzo y el efecto será visible de inmediato para todos.

Para los estándares de codificación: depende, si el código de sus compañeros de equipo ya es legible, no insista demasiado en ello, si no lo es, intente pedirles que tengan más cuidado al nombrar y deje algunos comentarios donde sea necesario.

Recuerde los dos principios siguientes: Manténgalo simple y estúpido, y no lo necesitará.

La solución que sugiera debe resolver un problema existente y debe ser simple. De lo contrario, solo agregará complejidad a su sistema sin siquiera abordar las fallas actuales.