Soy un desarrollador relativamente nuevo, recién llegado de la universidad. Mientras estaba en la universidad y durante la posterior búsqueda de empleo, me di cuenta de que había muchas metodologías de desarrollo de software "modernas" de las que carecía mi educación: pruebas de unidad, registro, normalización de bases de datos, desarrollo ágil (vs. conceptos ágiles genéricos), estilo de codificación Guías, refactorización, revisiones de códigos, métodos de documentación no estandarizados (o incluso requisitos), etc.
En general, no vi que esto es un problema. Esperaba que mi primer trabajo abarcara todas estas ideas y me las enseñara en el trabajo. Luego obtuve mi primer trabajo (desarrollo web de pila completa) en una gran corporación y me di cuenta de que no hacemos ninguno de estas cosas. De hecho, yo, el que menos experiencia tiene en el equipo, soy el que encabeza los intentos de actualizar mi equipo con técnicas de programación "modernas", ya que me preocupa que no hacerlo sea un suicidio profesional en el futuro.
Primero comencé con el software de registro (log4J), pero luego pasé rápidamente a escribir mi propia guía de estilo, luego la abandoné para la guía de estilo de Google, y luego me di cuenta de que nuestro desarrollo web Java usaba controladores frontales escritos a mano, por lo que Exigí la adopción de Spring, pero luego me di cuenta de que tampoco teníamos pruebas de unidad, pero ya estaba aprendiendo Spring ... y como puede ver, se vuelve abrumador con demasiada rapidez, especialmente cuando se combina con el trabajo de desarrollo normal. Además, me resulta difícil ser lo suficientemente "experto" en estas metodologías para enseñar a alguien más en ellas sin dedicar demasiado tiempo a una sola de ellas, y mucho menos a todas.
De todas estas técnicas, que veo como "esperadas" en el mundo de desarrollo de software de hoy, ¿cómo las integro en un equipo como un nuevo jugador sin abrumarme tanto a mí como al equipo?
¿Cómo puedo influir en mi equipo para que ¿Es más ágil? está relacionado, pero no soy un desarrollador ágil como el que pregunta aquí, y estoy considerando un conjunto de metodologías mucho más amplio que Agile.