Suena obvio, ¿no?. Hay cosas que sencillamente no se pueden acelerar agregando más personas a la ecuación.
Algo similar ocurre en la construcción de software, inclusive, agregar más personas muchas veces tiene el efecto contrario, incrementando el costo y tiempo, pues a mayor cantidad de personas, mayor será la complejidad de su comunicación, y por ende, la complejidad del sistema siendo desarrollado (Conway’s Law).
Ahora, esto no quiere decir que un equipo más grande no pueda construir más cosas más rápido, pero no es tan simple como solo sumar personas al equipo y “hope for the best”.
En base a mi experiencia, puedo compartir las siguientes recomendaciones y prácticas que pueden ayudar a que incrementar el tamaño del equipo sea más efectivo:
- Planea mejor tus desarrollos. El objetivo es encontrar la mejor manera en que el trabajo a realizar pueda ser paralelizado (9 mujeres, si pueden hacer 9 bebés, en 9 meses).
- Define muy bien el alcance de todos tus nuevos desarrollos, siempre busca llevarlos a lo minimo, minimo, minimo necesario, y si es algo que definitivamente debe ser grande, busca partirlo en milestones mucho más pequeños que puedas liberar en periodos cortos (aun si no son visibles para el usuario final).
- Mantén tus equipos de desarrollo pequeños, multidisciplinarios y lo más independientes posible entre sí (Todo es DevOps). Es más eficiente tener varios equipos pequeños, que unos pocos muy grandes.
- Ten en cuenta que, en promedio, un desarrollador nuevo empezará a ser realmente productivo entre 3 y 6 meses después de su ingreso, por lo que si algo algo esta retrasado, no esperes que contratando 20 personas mas, magicamente se va a reducir drasticamente el tiempo de desarrollo. Así que, busca planear tu contratación de manera acorde.
- Si algo esta retrasado, muchas veces es por falta de foco, organiza tus prioridades, si todo es urgente, nada lo es.
- Todo es posible, solo requiere de tiempo y dinero. Depende de ti y la organización decidir de manera efectiva como invertir tan valiosos recursos.
- Aprende a separar lo importante de lo urgente, y busca la manera de dedicar tiempo y recursos a lo importante, pues muchas veces, trabajar en esas cosas importantes, te permitirán sortear con más facilidad y agilidad las cosas urgentes.
- La complejidad de tu arquitectura impacta directamente la dificultad y cantidad de personas necesarias para lograr el mismo objetivo, debes ser muy consciente de ello (KISS).
- El proceso de onboarding es MUY importante y afectará considerablemente la velocidad en que un nuevo integrante del equipo podrá realizar aportes significativos. A su vez, esto demandará tiempo de tu equipo actual, así que, al igual que en el punto 4, planea tu contratación de manera acorde.