Consejos / trucos para administrar un nuevo equipo con un nuevo código [cerrado]

9

¿Cómo te manejas en un nuevo equipo en el que eres el mayor desarrollador y la mayoría de los demás en el equipo son menores para ti por varios años? La tarea por delante del equipo es algo que nadie más, incluido usted, ha logrado en su carrera antes.

La gerencia insiste en una mayor productividad de todo el equipo y, como desarrollador senior, usted es responsable.

¿Algún consejo para salir triunfante en una situación como esta? Claramente, todo el equipo necesita tiempo para aprender y no olvidemos lo nuevo del equipo. Sin embargo, los plazos también están por venir ...

Fanático23
fuente
Debería estar en pm.stackexchange.com
JBRWilkinson
55
@JBRWilkinson No estoy de acuerdo. Se trata de ser un líder tecnológico de desarrolladores junior con una fecha límite ajustada. Estoy de acuerdo si se trata de cómo gestionar un proyecto de desarrolladores junior, sin embargo, ser un líder tecnológico es diferente de ser un primer ministro.
maple_shaft

Respuestas:

13

No permita que una fecha límite ajustada o la novedad del proyecto interfieran con las buenas prácticas de ingeniería. Configure un repositorio de software, acepte un estilo de codificación, cree un conjunto de pruebas, etc. La novedad de la tarea no debería ser tan importante, siempre y cuando tenga personas de calidad que estén dispuestas a trabajar duro y aprender la tarea por delante de ellos.

O para decirlo de otra manera: te pusieron a cargo porque la gerencia cree que tu experiencia y antecedentes te han dado las herramientas necesarias para crear software de calidad. No olvides de repente tus habilidades solo porque esta tarea parece desalentadora ahora.

chrisaycock
fuente
Asegúrese de que todos en el equipo tengan la oportunidad de estimar todas las tareas que se les asignarán, de modo que tengan algo de aceptación de los plazos. Dado que su equipo todavía está aprendiendo las cuerdas, no comprometa a nadie durante más de cinco horas por día, cuando convierta las estimaciones en un tiempo transcurrido. Y si no se pueden cumplir los plazos, asegúrese de que la Administración lo sepa lo antes posible.
Dawood ibn Kareem
1
@David - ¿Cómo trabajó 5 horas (en realidad no es una mala figura para usar, pero cómo lo sabemos)? Solo admito que estimar un proyecto de este tipo es una mierda y decirle a la gerencia.
mattnz
3
Calculo que la mayoría de las personas son productivas durante aproximadamente 6 a 6.5 horas por día. Algunos logran más que esto, pero creo que este es un buen promedio. Pero como el equipo es nuevo, se dedicará al menos una hora al día a aprender. Y sí creo en la estimación, aunque no todos son buenos en eso, tiene que ser mejor que simplemente saltar y programar sin saber cuánto tiempo llevará una tarea.
Dawood ibn Kareem
Ayuda a comprar si logra que los miembros del equipo desarrollen sus estimaciones antes de ver el tiempo planificado y no excedan significativamente el plan. Hacer que estimen antes de ver otras estimaciones también evitará sesgar la estimación.
BillThor
@BillThor: Seguramente haces que el chico haga el trabajo para estimarlo, y usas sus cifras como punto de partida. Acabo de calcular un trabajo y me dijeron "Creíamos que sería 1/3 de eso". ¿Por qué se molestaron en preguntarme si sabían cuánto tiempo tomaría?
mattnz
7

Lo primero es lo primero, comience a usar un sistema de control de código fuente desde la primera línea de código. Acostúmbrese a revisar el código temprano y con frecuencia.

En segundo lugar, decida sobre una estrategia de prueba . Por supuesto, eso debería significar pruebas unitarias, pero también debe considerar cómo automatizar las pruebas de aceptación.

En tercer lugar, establezca un servidor de integración continua para que su código se cree y pruebe regularmente.

Una vez que tenga eso, como equipo establezca algunos estándares de codificación simples . Desea que su código sea fácil de leer para todos. Realmente no importa cuáles son los estándares. Sangría con tabulaciones, sangría con espacios, llaves en la misma línea, lo que sea. No importa lo que sean, solo que todos los apliquen constantemente.

Dado que el equipo es principalmente desarrolladores junior, planifique revisar el código a menudo para asegurarse de que no agreguen demasiadas deudas técnicas a su sistema.

Finalmente, considere usar SCRUM . Si lo hace, contrate a un entrenador o vaya a un entrenamiento. Como todos están haciendo algo que nunca antes han hecho, establecer plazos realistas es simplemente imposible. Con SCRUM, su administración tendrá visibilidad de lo que hace a diario para que puedan ver qué progreso se está haciendo (o no). Y, dado que sus fechas límite aparentemente se le dieron, SCRUM al menos garantiza que si no puede cumplir con la fecha límite, al menos está entregando historias completas de forma incremental, lo que posiblemente sea mejor que llegar al final con un gigante sistema que no funciona en absoluto.

Bryan Oakley
fuente
2
+1 para control de versiones y revisión de código temprano y con frecuencia.
jmq
2
Soy de la opinión de que el control de la fuente es un proceso tan necesario que debe hacerse independientemente de la composición del equipo, independientemente de cualquier cosa.
maple_shaft
6

Además de la respuesta de @chrisaycock ... No subestimes el tiempo que necesitarás para la tutoría / capacitación, etc. Como líder, deberás aprender a dejar ir los detalles y confiar en tu equipo. Su trabajo es convertirse en habilitador, eliminador de obstáculos y ejecutar interferencias cuando la gerencia interviene. En un equipo "normal", alrededor de las 7 u 8, el líder ya no se programa. En su situación, esto se reduce a 3 o 4 (Quizás incluso menos), no eres un recurso de programación para el proyecto.

Mattnz
fuente
+1 en la asignación de tiempo para tutoría y capacitación. Un líder tecnológico efectivo hace que los desarrolladores junior sean productivos.
maple_shaft
"No eres un recurso de programación para el proyecto". Me pregunto si su gerencia siente lo mismo, je. Espero que no termines como el programador "héroe" del proyecto.
jmq
Tenía la impresión de que el OP era simplemente el desarrollador más veterano y no tenía un título o deberes especiales (es decir, no es un "líder tecnológico" o "arquitecto"). En ese caso, sin duda es un recurso de desarrollo, y probablemente se espera que sea el más productivo.
TMN
@ TMN: Estaba reflejando la realidad de lo que sucede en un equipo con un tipo calificado / experimentado y todos los demás significativamente menos calificados. Sin duda, el tipo experimentado, si codifica, será el más productivo, y se espera que codifique. El EQUIPO será más productivo si no lo hace. En una organización no iluminada, los gerentes miden el desempeño individual, por lo que el mejor se ve mal haciendo lo que es mejor: hacer que el EQUIPO rinda y recibe poca recompensa por ello. Es mejor colgar a los juniors en seco y verse bien.
mattnz
1

Centrarse en la comunicación en dos áreas.

No es fácil hacer esto, y esa es una razón por la que este trabajo es difícil. Si cumplir con la fecha límite significa características de corte, entonces repásalo. Lo único que intenta evitar en todo esto es un código rápido para establecer una fecha límite. Ese es el comienzo del fin de una base de código que no durará bien y el comienzo de una deuda técnica que se ahoga.

2) Comunicación entre equipos. Establezca prácticas formales como las que Bryan y otros recomiendan. Asegúrese de reunirse regularmente como equipo, por ejemplo, una vez a la semana además de los scrums diarios. Gane respeto y confianza escuchando , su herramienta más importante. Asegúrate de concentrarte en ayudar. Evite las críticas negativas a toda costa. Cuando sea necesario, utilice críticas positivas y aliento, por ejemplo, "eso es genial, una vez que lo que quiera considerar es X" terminado ", eso no es lo que necesitamos, debe hacer X en su lugar"

junky
fuente
0

Lo que he hecho es identificar a los capaces y dividir y conquistar. Tomo los primeros 2 o 3 y los hago capitanes. Los otros se dividen en equipos de manera uniforme siguiendo a los capitanes a sus propios pequeños equipos.

Doy a los capitanes fragmentos o módulos para hacer de un programa.

Los capitanes les dan a los novatos tareas más pequeñas de programación o investigación, mientras se explican a sí mismos lo que están haciendo, por lo que la tutoría ocurre mientras lo hacen.

Intento organizar la sala para que todos estén en el mismo espacio abierto, pero cada equipo tiene su propio círculo de computadoras. Me gusta estar gritando a todos para que las cosas se muevan rápidamente.

Esto funciona bien para unos 10-20 programadores hasta ahora. Los grupos más pequeños son mejores estar en un grupo y aún no he trabajado con nada más grande.

Jason Sebring
fuente
Divide & Conquer tiene sus trampas. He visto esto terminar como cada equipo secundario reinventando la rueda (mal) para problemas similares que enfrenta todo el equipo.
NWS
Sí, si se encuentra en edificios separados, especialmente, así que trato de mantener a todos en un espacio abierto y caminar regularmente. Lo que hago es crear firmas principales de API y establecer los equipos para construirlas para que todo se conecte.
Jason Sebring