Gestión de personas y equipos en el Management 3.0
Introdúcete al concepto del Management 3.0 como movimiento orientado al liderazgo y a la gestión de personas...
Conoce qué es la metodología XP (Extreme Programming), cómo funciona y qué ventajas presenta, además de los mejores consejos sobre cómo aplicarla en tu empresa.
Tabla de contenidos
Cuando Kent Beck se unió al proyecto C3 en la corporación Chrysler en 1996 para ayudarles a mejorar el rendimiento de su sistema de nómina, sintió la necesidad de refinar la forma en que se organizaba el equipo y las prácticas que utilizaban en su proceso de desarrollo de software. Para ello, tomó las mejores prácticas que habían sido utilizadas históricamente en la industria del desarrollo de software, hasta ese momento, y las unió para utilizarlas a un 'nivel extremo'. Así nació la metodología de desarrollo de software conocida como programación extrema, XP o Extreme Programming.
Veinticuatro años después, la mayoría de prácticas de XP aún son consideradas como el estándar cuando se trata de desarrollar software de calidad de verdad, de una manera ágil y más productiva dado su enfoque en buenas prácticas y la generación de alto valor a los proyectos y a la organización.
El concepto Extreme Programming (XP) fue formalizado en 1999, cuando Kent Beck publicó el libro Extreme Programming Explained, conocido como ‘The white book’. Se considera como una metodología de desarrollo de software ágil, creada específicamente para promover la aplicación de prácticas de ingeniería apropiadas para la creación de software. Tiene como objetivo principal que un equipo de desarrollo pueda producir software de mejor calidad de forma constante y a su vez busca promover una buena calidad de vida para el equipo. A principios de los años 2000, XP fue la metodología dominante en el mundo ágil, antes de que el framework Scrum se volviera tan popular.
“No soy un gran programador; Solo soy un buen programador con buenos hábitos". - Kent Beck
A pesar de que XP promueve principalmente un enfoque de desarrollo de software basado en valores, principios y prácticas de ingeniería, cuando lo analizamos detenidamente (excluyendo las prácticas de ingeniería) podemos ver de es aplicable a cualquier equipo de trabajo, sea o no de software, porque su objetivo principal es promover buenas prácticas y herramientas para que un equipo pueda convertirse en un equipo de excelencia y alto rendimiento.
Para poder aplicar XP en nuestro proceso de desarrollo es necesario entender los valores, principios y prácticas que lo componen. XP presenta 5 valores, 15 principios y 24 prácticas, en donde observamos que:
Los valores sin prácticas son difíciles de interiorizar y es posible aplicarlos de diversas maneras, resultando difícil saber por dónde empezar.
Las prácticas sin valores son actividades de memoria sin un propósito y hacerlas de forma individual sin ese propósito puede no brindar el resultado esperado.
Entre los valores y las prácticas, existe una gran distancia de comprensión y aplicación que es reducida por los principios. Los principios de XP tienen una relación directa con los valores, ya que tienen la intención de reflejarlos de maneras más concretas y práctica.
Comunicación: XP enfatiza la importancia del tipo apropiado de comunicación: discusión cara a cara con la ayuda de una pizarra blanca u otro mecanismo de dibujo.
Simplicidad: La simplicidad busca responder la pregunta "¿qué es lo más simple que funcionará?" El propósito de esto es evitar el desperdicio y hacer solo cosas absolutamente necesarias, como hacer el trabajo lo más simple posible para que sea más fácil de mantener, respaldar y revisar.
Retroalimentación: La retroalimentación continua permite un diseño simple. El equipo construye algo, recopila comentarios sobre su diseño e implementación, y ajusta el software en el futuro.
Coraje: Kent Beck definió el coraje como "acción efectiva frente al miedo" (Libro Programación extrema explicada, página. 20). Se necesita valor para plantear problemas que reducen la eficacia de su equipo, se necesita valor para dejar de hacer algo que no funciona y probar otra cosa, etc.
Respeto: Los miembros del equipo deben respetarse mutuamente, comunicarse entre sí, proporcionar y aceptar comentarios que beneficien su relación, y trabajar juntos para identificar diseños y soluciones simples.
"El desarrollo de software es un juego de comprensión, y la comprensión llega a la mente preparada, descansada y relajada". – Kent Beck
De los 15 principios de XP, existen 5 llamados los principios core:
Los principios nos permiten tomar mejores decisiones cuando nos encontramos con distintas alternativas. Es mejor elegir una alternativa que cumpla con los principios de forma directa que una que no lo haga de la misma forma. Cada principio encarna uno o más valores. Un valor puede ser vago y difícil de aplicar, por ejemplo, algo que es “Simple” para una persona, para otra puede ser complejo “Complejo”. Un principio es más concreto, u obtienes feedback rápidamente o no.
Los otros principios son:
En resumen, los valores en conjunto con los principios promueven que la excelencia es un hábito, y que es algo que debemos llevar en nuestro ADN y cultura de equipo.
La programación extrema, además de los valores y principios, propone buenas prácticas de planificación, organización, comunicación y de ingeniería de software que, sumado a los valores y principios, permiten crear una cultura de equipo de excelencia. Las prácticas de Extreme Programming (XP) más populares son:
Actualmente, los roles de XP no son tan populares como las prácticas, sin embargo, vale la pena conocerlos y entenderlos para comprender la metodología de programación extrema (XP) en su contexto general.
Un equipo de XP incluye seis roles:
Actualmente, XP es visto como un marco de trabajo, en vez de como una metodología cerrada, en la que hay que aplicar todo lo que se explica en el libro blanco. Hoy se reconocen sus valores, principios, prácticas y roles como un compendio de buenas prácticas de las que podemos utilizar solamente las que más ayudarán a nuestro equipo durante un proyecto específico.
Algunas prácticas de XP siguen evolucionando y son promovidas por las comunidades IT para la creación de productos de software exitosos, ya que consideran que son prácticas creadas por desarrolladores para mejorar la profesión y el arte del desarrollo de software.
Por ejemplo, es muy común ver que el equipo se organice basado en el marco de trabajo Scrum, siguiendo las reglas y valores que promueve este marco de trabajo y que a su vez apliquen prácticas de Ingeniería de Software que promueve XP en su proceso de desarrollo, como programación en parejas, integración continua, el uso de historias de usuario, etc.
Además, prácticas como la Integración continua y la entrega continua, han sido precursoras de movimientos como el de DevOps y el desarrollo basado en arquitectura de Microservicios que son tendencia en la actualidad y que en sus procesos integran diversas prácticas de XP como parte de ellas.
Es muy común que se hagan comparativas entre XP y otros marcos de trabajo ágiles, pero principalmente encontrarás “extreme programming vs scrum” o “extreme programming vs kanban”, aunque en la realidad no son competencia el uno del otro, más bien se complementan muy bien cuando sabemos aplicar lo mejor de ambos mundos en nuestro proceso.
Aquí en OpenWebinars puedes aprender cómo trabajar en un equipo Scrum aplicando prácticas de XP en los siguientes cursos:
XP es un marco de desarrollo que persigue el feedback continuo, la excelencia técnica y la entrega de valor constante promovido a través de:
Valores que representan la mentalidad del equipo, incentivan el trabajo en equipo y el enfoque hacia un objetivo común.
Principios que reflejan los valores de maneras más concretas.
Prácticas que nos ayudan a conseguir una cultura de equipo y una buena organización a través de la excelencia técnica y la creación de software de valor.
Cuando creamos una cultura de equipo basándonos en los principios y valores de XP podremos crear un entorno competitivo, pero a la vez motivacional, donde cada miembro aprecia el trabajo de cada uno de sus compañeros, entregan trabajo valioso de forma constante y rápidamente porque pueden distinguir las tareas relevantes de las que no son necesarias. Reaccionan rápidamente al feedback dándose cuenta de que es una crítica razonable que tiene el objetivo de hacer un mejor producto, trabajo y equipo, lo que promueve el espíritu kaizen, la mejora continua.
También te puede interesar
Introdúcete al concepto del Management 3.0 como movimiento orientado al liderazgo y a la gestión de personas...
Curso online 100% práctico y en español. Aprende metodologías ágiles para tus desarrollos de forma sencilla. Con este...
Te proponemos una serie de experiencias o de escenarios que resultan de gran utilidad, ya que son preguntas que pueden aparecer en...