¿Cómo coordinan sus esfuerzos los desarrolladores de software con diferentes niveles de experiencia?

La metodología ágil se puede adaptar fácilmente para trabajar con personas de diferentes niveles de habilidad. Las ramas de características de Git lo hacen muy fácil. El enfoque que sugeriría es el siguiente:

1) haga que los líderes del equipo dividan el trabajo a realizar en los trozos más pequeños posibles que se pueden poner en producción a la vez. Reparar un error tipográfico, por ejemplo, es trivial y no depende de nada. La mayoría de los errores también pueden repararse individualmente. Las características más grandes necesitarán planificación / pensamiento, y en última instancia, pueden necesitar ir todas a la vez

2) asigne los fragmentos a las personas y pídales que planifiquen su enfoque y estimen el tiempo. Aquí es donde los desarrolladores más expertos pueden dar su opinión a los novatos. “Ese enfoque será un PITA”, etc.

3) cada fragmento / ticket es desarrollado por el desarrollador asignado, de forma aislada. Harán el trabajo por su cuenta a menos que se atasquen, en cuyo caso pueden atraer a otro desarrollador por un segundo par de ojos.

4) cuando la función esté lista, otro desarrollador la revisará. Los desarrolladores experimentados pueden criticar los malos estilos / enfoques, los novatos pueden aprender del código de los desarrolladores experimentados. Fomentar los comentarios de revisión de código, incluso algo como “ja, ese es un enfoque ordenado” es bueno para la cohesión del equipo, especialmente si todo el equipo los ve y se preocupa un poco.

Luego, hazlo una y otra vez … entiendes el punto. También es bueno registrar el tiempo real gastado versus el tiempo estimado, ya que la estimación es una habilidad crítica para los desarrolladores, en términos de mantener contentos a los guardianes 😉

Supongo que la respuesta simple sería “liderazgo”. No gerencia, sino liderazgo , ya sea formal o informal. En mi opinión, los mejores desarrolladores también son líderes. Estos programadores son el negocio más grande en toda la industria de desarrollo de software.

¿Por qué son una ganga? Porque un buen desarrollador que no es un líder solo puede hacer 1x alguna unidad de trabajo de calidad. Por otro lado, un buen desarrollador que sea líder puede aportar hasta 5 veces más trabajo de calidad en un equipo de 5 personas (obviamente, estos números son cursis y solo para ilustración). En otras palabras, un buen desarrollador puede ser un multiplicador de fuerza. Sin embargo, a los mejores desarrolladores generalmente solo se les paga un pequeño porcentaje sobre los menos calificados.

¿Cómo lo hicieron? Un desarrollador que pueda liderar efectivamente se asegurará, con el tiempo, de que los desarrolladores menos calificados aprendan las buenas prácticas que siguen. Podrán describir por qué sus prácticas son efectivas. Además, podrán demostrar por qué sus prácticas son efectivas. Harán esto porque quieren trabajar con otros buenos programadores.

Pueden lograr esto por diversos medios, pero un ejemplo es diseñar una mini-arquitectura para una característica y descubrir cómo los desarrolladores menos calificados pueden encajar en las tareas de desarrollo dentro de la arquitectura. En otras palabras, mediante la creación de “sandboxes” donde los desarrolladores menos calificados pueden contribuir. También describirán por qué los sandboxes se presentan tal como están para que los desarrolladores menos calificados aprendan algo de arquitectura.

Otro medio es emparejar problemas interesantes para que el desarrollador menos calificado pueda ver el proceso de pensamiento seguido por el desarrollador más calificado. No entre en detalles aquí, hay mucho en la web.

Mike Thomas lo clavó: liderazgo . Alguien es siempre el arquitecto, lo quieran o no, lo sepan o no. Un buen desarrollador comenzará con una arquitectura amplia y luego dividirá el problema en partes manejables que se puedan integrar más adelante.

Si no hay un arquitecto designado en cada proyecto mirando el panorama general, lástima de esa compañía. Tendrán software fragmentado y pirateado. A menos que uno o más desarrolladores intensifiquen y planifiquen intencionalmente la arquitectura.

Una vez que la arquitectura se planifica y documenta , es trivial para un desarrollador junior seguir el plan, y trivial para probar si los desarrolladores junior están siguiendo el plan. El resto es solo código, niños y niñas.

More Interesting

¿Cuáles son las habilidades necesarias para convertirse en desarrollador de software?

¿Qué haría si necesita entrevistar a un desarrollador de software con habilidades técnicas mucho más fuertes que usted?

¿Debería una organización de desarrollo adoptar un modelo de proceso único para todo su desarrollo de software?

Si la oferta de desarrolladores de software eventualmente excede la demanda, ¿qué sucederá?

Soy desarrollador web y no sé cómo conseguir clientes en línea. ¿Cómo puedo hacer esto?

Para ser un desarrollador de software poderoso, ¿qué debo hacer? ¿Cómo confían los desarrolladores en su comprensión de las cosas que aprendieron?

Como desarrollador, ¿cuál es el tipo de datos más interesante con el que ha trabajado y por qué? ¿Qué lenguaje / herramientas / marcos usaste?

¿Qué conocimiento necesita un probador para probar un software?

¿Qué tan viable es ser algo así como un gato de todos los oficios de desarrolladores web y de software en lugar de especializarse?

¿Existe algún sistema de calificación para desarrolladores de software?

¿Por qué algunas organizaciones proponen cantidades de tiempo tan ridículamente cortas para proyectos de desarrollo de software?

¿Puedes crecer como ingeniero de back-end con Ruby on Rails?

¿Cuáles podrían ser los principales problemas relacionados con una cadena de bloques para valores financieros?

Si un desarrollador de software no trabaja más de dos años en trabajos, ¿se ve mal en un currículum? ¿Cuánto tiempo debe permanecer en un trabajo?

Como desarrollador de software bastante experimentado, ¿qué debo construir o vender para hacerme rico?