En una entrega anterior, hablé de los resultados de un mal trabajo de desarrollo y los síntomas que lo manifiestan; estos, como consecuencia de fallas en el driver de organización del equipo.

En esta ocasión te hablaré de lo que ocurre cuando los miembros del equipo colaboran activamente en establecer acuerdos, que les permiten obtener buenos resultados consistentemente.

Recuerda que el trabajo de software depende, en gran medida, de las interacciones entre las personas. Cuando los integrantes del grupo trabajan, saludablemente, en crear acuerdos, observarás que ocurre lo siguiente.

El equipo puede demostrar incrementos del software al final de cada iteración 

Los equipos efectivos de alto desempeño hacen la demo del sprint en el ambiente final del usuario. No es un prototipo instalado en la computadora de uno de ellos. No es una versión en el ambiente de pruebas. No es un módulo aislado. Es un producto terminado, listo para ser usado, que ofrece valor y procesos de usuario completos, desplegado en la infraestructura final.

Para lograrlo, los equipos tienen un profundo conocimiento de sí mismos y eso se refleja en su proceso de planificación. Son capaces de entender cuáles son los requerimientos próximos con mayor valor y los dividen en actividades, acordes a su capacidad, para completarlos a tiempo.

Además, entienden que el trabajo de la iteración termina cuando el código de un requerimiento está funcionando integrado con la línea base, probado exitosamente en todos sus aspectos y es potencialmente consumible por los usuarios finales, demostrado en el ambiente de producción y validado por el cliente. Por lo tanto, incluyen en su planificación las actividades correspondientes al despliegue, verificación y validación.

Los miembros de equipo terminan sus tareas de manera adelantada a la planeación y se ofrecen voluntariamente a apoyar a sus compañeros con sus tareas 

Nos gustaría decir que los equipos son homogéneos en su capacidad de producir resultados, que todos sus integrantes se desempeñan igual que el promedio. Sabemos que existen diferencias en habilidades y rapidez, por lo que cada actividad es realizada por la persona más competente. 

Este resultado no significa que haya personas con mayor carga de trabajo que otras, sino que hay un entendimiento común del objetivo de la iteración; por lo tanto, todos estarán al pendiente del progreso, y aquellos que han cumplido con todos los criterios de definición de terminado de su trabajo antes de completar el sprint, ayudarán a que todas las actividades concluyan a tiempo o antes. Cuando esto ocurre, nunca hay en los equipos un sentimiento negativo porque algunos estén completando trabajo lentamente. Al contrario, mantienen la meta y después crean planes de desarrollo de habilidades para todos.

Las fechas de la iteración nunca se mueven 

Un mal común en el desarrollo de software es que nos damos cuenta que no llegaremos al deadline, cuando éste ya se encuentra muy cerca. Por lo tanto, solemos negociar extensiones o incurrir en sobrecostos para entregar; lo primero es más frecuente.

Los equipos efectivos de alto desempeño suelen acordar que, una vez establecida la fecha de fin del sprint, ésta no se extenderá ni cambiará.

Lo que hacen es que monitorean continuamente su desempeño, por lo que son capaces de detectar problemas con la planificación desde muy temprano en el ciclo. Tienen procedimientos de ajustes al plan muy efectivos. Discuten y ajustan el plan todos los días de acuerdo a sus mediciones, con lo que pueden reorganizar las actividades, dividirlas, diferirlas o cambiarlas para cumplir con el objetivo planteado: un incremento de alto valor.

Cualquier interesado puede llegar en cualquier momento al área de trabajo y pedir ver una demostración del software funcionando

La gestión de la configuración es un conjunto de procesos, que controlan las versiones de los sistemas desarrollados y permiten recuperarse de modificaciones dañinas con rapidez y seguridad. En equipos de alto desempeño, estos procesos están definidos y funcionan; todos los integrantes los conocen y respetan. Cuando estos procesos fallan o no existen, amenazan el éxito de un proyecto.

Una de las características principales es que el repositorio de código principal es guardado con recelo: solo contiene el código funcional de alta calidad y se impide que llegue código defectuoso a él. Así, el “master” del producto siempre se encuentra en la última versión estable, por lo que se puede hacer un build o un despliegue de la solución existente en cualquier momento y mostrarla operando. No solo eso, cualquiera que participa en el desarrollo puede mostrar todas las funciones porque todos conocen los detalles de la aplicación, en lugar de solo conocer su módulo o una pequeña parte.

Foto: storytime para Freepik

¿Cuántos de estos resultados observas actualmente en tus equipos? Recuerda que cada ingeniero debe buscar la excelencia técnica para poder desempeñar su trabajo, pero al integrarse al equipo debe colaborar en la forma de trabajo. Si compartes estos resultados con ellos y les brindas la autonomía suficiente, empezarán a lograrlos pronto y los mantendrán consistentemente.

¡Nos vemos en la siguiente entrega!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.