Cómo ahuyentar a tus mejores ingenieros
(padraigobrien.com)"Formas de acortar la permanencia de los desarrolladores" y "cómo arreglarlo"
- Contrata gerentes que no sepan crear software
→ FIX: Haz que los gerentes técnicos, directores y VPs desarrollen y desplieguen funcionalidades durante aproximadamente 1 semana por trimestre. Una funcionalidad que tome unos 3 días, usando la forma real de trabajo/colaboración.
- Contrata una enorme cantidad de gerentes y crea jerarquías
→ FIX: Aplana la organización y elimina las capas de gestión tanto como sea posible
- Haz la mayor cantidad posible de reuniones
→ FIX: Minimiza la colaboración entre equipos y diseña la organización para que dentro de cada equipo sí haya mucha colaboración
- Haz que el proceso de definición de software sea doloroso
→ FIX: Una forma de reducir la carga de los desarrolladores. Al crear tickets, haz que al menos 3 personas (ingeniero, tester y responsable de producto) lo discutan y redacten durante 10 minutos
- Haz que desplegar software sea doloroso
→ FIX: Dedica un 20% del tiempo a analizar y corregir los problemas que vayan apareciendo
- Haz que los ingenieros estimen su propio tiempo de trabajo
→ FIX: No hagas estimaciones. Por experiencia, en más del 99% de los casos no aciertan y no funcionan bien. Si necesitas fechas, se recomiendan métodos modernos como forecasting
- Haz el equipo extremadamente pequeño
→ FIX: Como mínimo, un tamaño de equipo de 6 personas es bueno
- Pide prestados ingenieros de otros equipos
→ FIX: Haz que el equipo tenga una misión y perdure durante mucho tiempo, y no muevas a las personas
5 comentarios
Solo de pensar en asignarle una tarea a un VP se me hace un nudo en el estómago. Aunque sea solo durante una semana por trimestre, probablemente en esa semana surgirán un montón de objeciones y de IA. Claro, probablemente será un cambio positivo :)
Se parece a una empresa en la que estuve jaja
Había un líder de desarrollo, pero como el CEO decía que no lo podía controlar, puso a un director de desarrollo que le presentó un conocido suyo, y en menos de un año el equipo de desarrollo se deshizo.
¿A qué se refiere forecasting?
Básicamente, estimation consiste en predecir cuánto tiempo tomará un trabajo a partir de una estimación.
Forecasting, en cambio, se define como hacer una previsión "basada en datos existentes", igual que el pronóstico del tiempo.
Si el equipo divide las épicas en historias y tiene bien registrado cuánto tomó cada historia (por ejemplo, puntos de historia),
a partir de eso y de la cantidad de funcionalidades que completa por semana, se podría calcular una fecha estimada.
(Yo también solo lo he aprendido por libros y artículos, y no lo he aplicado en la práctica... así que lo explico solo de forma general.)
Y gracias por la buena respuesta. (¡Y siempre disfruto mucho leer las noticias!)