sábado, 11 de septiembre de 2021

La Maestría Técnica del Agile Coach

Entre las competencias del agile coach, y del Scrum master, destaca la maestría técnica, especialmente importante cuando se trata de equipos que trabajan con productos de tecnología.

La maestría técnica nos permite conectar con los retos y oportunidades del equipo de trabajo, participar en conversaciones donde se tratan los problemas de arquitectura, seguridad, plataformas, calidad del software, automatización, etc. No digo que tengamos que ser especialistas en cloud, phyton o java, o dominar las herramientas de integración continua y de automatización de pruebas, pero si tener el conocimiento necesario para comunicarnos efectivamente con el equipo.

Con esta competencia, ayudamos al equipo a cumplir con el noveno principio del manifiesto ágil: La atención continua a la excelencia técnica y al buen diseño mejora la agilidad, y como se afirma en el marco de escalado LeSS: La agilidad organizativa está limitada por la agilidad técnica.

Algunas técnicas que favorecen la excelencia técnica son:

  • Lean Code: es código limpio que funciona (Ron Jeffries), está bien estructurado, tiene un propósito claro, sigue buenos principios de diseño y es fácil de entender y de mantener. Es una filosofía de diseño de desarrollo de software que enfatiza la simplicidad, la eficiencia, la flexibilidad y la accesibilidad.
  • Deuda Técnica: préstamo que nos permite avanzar y aprender rápidamente (Ward Cunningham), y luego se paga refactorizando el código para que refleje el conocimiento adquirido.
  • Pair Programming: especifica que siempre haya dos personas trabajando al mismo tiempo en el código y que, en la medida de lo posible, se sienten juntas. Una se encarga de escribir el código y la otra de supervisarlo en tiempo real. Al mismo tiempo, están constantemente intercambiando impresiones: debaten problemas, encuentran soluciones y desarrollan ideas creativas.
  • Costo del Cambio: es común asegurar que corregir un error se vuelve exponencialmente más costoso mientras más tarde se detecte. Beck (XP) sugiere que, con una buena combinación de tecnologías y prácticas de programación, la curva puede achatarse, manteniendo el costo de cambio bajo. Si incorporar funcionalidad se volviese cada vez más costoso, difícilmente podríamos mantener la agilidad.
  • Testing automatizado: que permiten tener la mejor velocidad posible, desarrollar en forma sostenible y disponer de una buena documentación del sistema.
Más allá del software, también hay que velar por la excelencia técnica del producto y del negocio, recurriendo a técnicas como la investigación de mercado, el benchmarking, experiencia de usuario (UX), data análisis, gestión de riesgos, etc.

Marcos de trabajo como Scrum y Kanban, son menos prescriptivos y se adaptan a diferentes tipos de proyectos y servicios. En otros marcos más orientados al mundo del desarrollo del software, encontramos prácticas técnicas específicas, como en: eXtreme Programming (XP), Lean Software Development (LSD), Test-Driven Development (TDD), Feature Driven Development (FDD), Agile Unified Process (AUP), Adaptive Software Development (ASD), Crystal Clear, Dynamic Systems Development Method (DSDM), entre otros.

Conocer sus técnicas nos permite enriquecer otros marcos de trabajo, y como les compartí en el artículo Scrum, Kanban, XP ¿Hay uno mejor? ¿Se pueden combinar?, cuando implementamos por ejemplo Scrum en desarrollo de software, es muy recomendable integrar prácticas de la ingeniería como TDD o Pair Programming para asegurar la excelencia técnica.

Déjame saber tu opinión en los comentarios.

Gracias por leerme

Ig: @Soy.Agile.Coach

No hay comentarios:

Publicar un comentario

Gracias por tus comentarios :)