"Incluyamos más desarrolladores al equipo para terminar a tiempo"
Cuando lideramos proyectos de productos tangibles, tenemos la ventaja de poder tener cierta predictibilidad en muchos aspectos, lo que facilita enormemente las proyecciones de entrega en la fase de planificación. Por ejemplo, en el área de manufactura, un fabricante de teléfonos celulares puede saber cuántos dispositivos podrá fabricar en un mes, conoce la cantidad exacta de elementos electrónicos por unidad y la cantidad exacta de personal y maquinaria necesaria para su ensamblaje. De igual forma, una constructora que está construyendo un edificio seguramente sabrá calcular cuántos pisos puede terminar en seis meses, cuántos trabajadores de obra necesita e inclusive, cuánto material es necesario por planta.
En el caso de la construcción de productos intangibles como el software, tenemos un problema, nos enfrentamos al desafío constante de la incertidumbre. Es muy difícil predecir con seguridad el momento en que terminaremos un producto, tampoco el número de personas que realmente serán necesarias, y mucho menos saber cuántas líneas de código habrá que escribir, ni siquiera hoy en día con la ayuda de la IA, lo único que podemos tener son hipótesis.
Un cambio de perspectiva
Afortunadamente, en respuesta a la mencionada problemática que se presenta en la construcción de productos digitales, nace la Agilidad, ofreciendo una perspectiva diferente para manejar esta situación. El mindset Ágil nos ayuda a enfocarnos en la entrega constante de valor priorizado, poniendo especial atención en una adecuada comunicación y dinámica de trabajo de todos los involucrados.
Con la Agilidad, se hace mucho más relevante el desarrollo de equipos orientados hacia la mejora continua con una sólida cultura de autogestión, empoderamiento y accountability.
El mito
Muchos líderes tienen la perspectiva de ver a sus equipos como maquinarias donde pueden agregar engranajes para aumentar su torque y velocidad. Ese comportamiento les da una falsa sensación de control y seguridad, pero la realidad es que solamente es eso, una falsa sensación.
Este mito conocido como la "Ley de Brooks", puede llevar a resultados contrarios a los esperados causando frustración.
"Adding manpower to a late software project makes it later."
Fred Brooks en su libro "The Mythical Man-Month", donde formula la famosa ley que lleva su nombre, nos dice que: "Agregar más desarrolladores a un proyecto de software retrasado solo lo retrasará más".
La principal razón detrás de esta afirmación es que el tiempo necesario para coordinar a un equipo más grande supera los beneficios de tener más personas trabajando en el producto, ya que aumenta su complejidad.
El equipo como un sistema
Recordemos que cuando hablamos de equipos, no nos referimos simplemente a un grupo de personas trabajando en algo; es mucho más complejo que eso. Cuando hablamos de equipo, nos referimos a un grupo de personas que sus interacciones van madurando y evolucionando en el tiempo, tanto en la maestría de sus conocimientos como en la manera de comunicarse y relacionarse entre si y también con el resto de involucrados.
Un equipo es un sistema, una unidad interconectada que ha desarrollado una forma interna de trabajo (cultura) y todo sistema al intentar integrarle un nuevo elemento, veremos un patrón muy común relacionado a la anatomía de un cambio, el sistema reaccionará y se verá impactado en su ritmo de funcionamiento desacelerándolo hasta que se estabilice y encuentre un nuevo ritmo.
Comunicación, la clave
Según diversas investigaciones en gestión de equipos, se estima que la buena comunicación contribuye en gran medida al éxito de un equipo, llegando a representar hasta el 80% de su efectividad, mientras que una gestión adecuada contribuye en un 20%.
Esto subraya la importancia de fomentar una comunicación clara y abierta dentro del equipo para alcanzar los objetivos.
El psicólogo organizacional Richard Hackman, reconocido por su investigación sobre la dinámica de equipos, sugiere que los equipos más efectivos suelen tener entre siete y nueve miembros. Esto se debe a que, a medida que aumenta el número de integrantes, los canales de comunicación crecen exponencialmente, lo que aumenta la complejidad de las interacciones y dificulta la coordinación y el rendimiento del equipo.
Fórmula para calcular el número de canales de comunicación
Por ejemplo para un equipo de 2 integrantes, obviamente no habrá más que un canal bidireccional de comunicación pero cuando el número de miembros aumenta, vemos el crecimiento exponencial de dichos canales:
- Equipo de 4 miembros: 6 canales de comunicación
- Equipo de 8 miembros: 28 canales de comunicación
- Equipo de 10 miembros: 45 canales de comunicación
¿Y entonces qué hacemos?
Hemos analizado varios aspectos del por qué no es buena idea agregar más personas a un equipo para intentar aumentar su velocidad y llegar a la fecha de compromiso de entrega.
¿Pero y entones qué hacemos si nos encontramos en esta situación?
Hay dos acciones que tenemos que tomar: la primera será reactiva, ya que nos encontramos con "el agua en el cuello", la segunda y más importante, es una acción preventiva, debemos buscar que no vuelva a suceder.
Aunque las acciones a tomar siempre dependerán de las circunstancias específicas, podríamos considerar las siguientes medidas que podrían ayudar:
- Refinar el Sprint Backlog: El equipo puede realizar una revisión del Sprint Backlog para identificar los ítems más prioritarios y enfocar sus esfuerzos en completarlos. Los ítems de menor prioridad pueden ser pospuestos para futuros sprints. Esto nos permitirá gestionar mejor el tiempo disponible.
- Transparencia con los stakeholders: Mantener a los stakeholders informados sobre el progreso y cualquier cambio en el plan es crucial. La transparencia ayuda a gestionar las expectativas, mantener la confianza y estar todos alineados a los mismos objetivos.
- Eliminación de impedimentos: Lo que menos necesitamos son más retrasos. El equipo debe trabajar proactivamente para identificar y eliminar cualquier impedimento que afecte su capacidad para completar el trabajo. Esto puede incluir la resolución de problemas técnicos, la obtención de recursos adicionales o la facilitación de la comunicación entre equipos.
- Incremento parcial: Si todo lo demás no ha funcionado como esperábamos, al menos se debe entregar un incremento parcial que sea potencialmente funcional. Aunque un incremento parcial puede no cumplir con todos los criterios de aceptación originales, aún puede proporcionar valor y feedback útil, por lo que una reunión de inspección del equipo con los stakeholders como la de un Sprint Review es el momento perfecto para ello.
Una vez que hemos hecho lo necesario para tratar de entrega valor a pesar de la urgencia, es indispensable reflexionar e identificar lo que es necesario corregir para evitar que vuelva a ocurrir. A continuación les propongo 5 puntos clave a considerar:
- Retrospectiva: Esta no es una práctica exclusiva de Scrum; la retrospectiva es una herramienta ágil muy poderosa para la mejora continua del equipo. Es el momento de reflexionar para entender qué falló, por qué el equipo no se dio cuenta a tiempo de que no iban a alcanzar el objetivo del Sprint, identificar las causas raíz y desarrollar planes de acción específicos para abordar estos problemas en futuros Sprints.
- Mejorar la Planificación del Sprint: Muchas veces, una buena práctica es tener algunas sesiones de refinamiento del Product Backlog días antes del Sprint Planning. Esto ayudará a que el equipo entienda mejor el trabajo que necesitará hacer el siguiente Sprint, disminuyendo un poco más la incertidumbre, asegurándose de que los ítems incluidos sean realistas y alcanzables dentro del tiempo del Sprint.
- Comunicación abierta y transparente: No importa la práctica o técnica que el equipo utilice, nada funcionará como se espera si no se fomenta una comunicación abierta y constante. Una buena comunicación es esencial para identificar y abordar cualquier problema o impedimento tan pronto como surja. Reuniones cortas, constantes pero enfocadas, como el Daily Scrum, serán una gran herramienta para inspeccionar y corregir a tiempo el curso del trabajo del equipo.
- Entrenamiento y desarrollo del equipo: Invertir en el desarrollo continuo del equipo mediante entrenamientos y capacitaciones puede mejorar sus habilidades y eficiencia, lo que contribuye a la entrega de valor.
- Entendimiento compartido de "Terminado": Algo que a menudo pasa desapercibido es la importancia de que todo el equipo y los involucrados compartan una misma definición de cuándo un trabajo está terminado. Esto aplica desde cada ítem del Product Backlog. En Scrum, este concepto es bien conocido siendo parte del marco de trabajo como un artefacto llamado Definition of Done (Definición de Terminado). Algunos ejemplos de esta definición incluyen: todas las pruebas unitarias completadas, el código revisado por al menos un miembro del equipo, la funcionalidad desplegada en el entorno de pruebas, entre otros. Eso si, la definición de terminado debe ser clara y alcanzable desde el punto de vista de todos.
Conclusión
Los seres humanos somos complejos y, por lo tanto, nuestras interacciones en grupo también lo son. Todo líder debe entender que no existen fórmulas mágicas para asegurar el éxito en el cumplimiento de los objetivos de un equipo. Sin embargo, dispone de un conjunto de herramientas y buenas prácticas basadas en la evidencia que pueden ser de gran ayuda.
Cuando necesitamos crecer o modificar un equipo con la expectativa de mejorar su velocidad y rendimiento, esto no debe ser una respuesta a una urgencia, sino parte de una estrategia con resultados a mediano plazo. Incluso en los equipos más maduros, es probable que cualquier modificación provoque una reacción al cambio que afecte su rendimiento.
Lo recomendable siempre será ser preventivo en lugar de reactivo. Los líderes de equipos deben enfocarse en desarrollar las capacidades y competencias de sus miembros, buscando crear una cultura de trabajo eficiente apoyándose en las mejores prácticas disponibles, y el mindset Agile siempre será la mejor opción en el caso de desarrollo de software.
Si te ha gustado este post y quieres profundizar en alguno de los temas tratados, te invitamos a que te pongas en contacto con el equipo de Crecertia™ para ofrecerte nuestros cursos certificados o certificaciones internacionales y amplíes tus conocimientos.
Christian E. Gil-Fortoul B.
CEO | Crecertia™
Comentarios
Publicar un comentario