Monday, October 3, 2011

Programación eXtrema y El Agilismo


En esencia la programación extrema consiste en un conjunto de técnicas que han demostrado tener éxito en muchos proyectos y por tanto muy recomendables en conjunto. El empuje actual de los seguidores del agilismo añade un factor importante, la alta motivación de los programadores, variable principal directamente relacionada con el rendimiento de los equipos. En la práctica, XP se divide en varios niveles:
  • A nivel de Desarrollo de Código:
    • Desarrollo Dirigido por Pruebas (TDD: Test Driven Design), el diseño emerge de forma natural cuando se anteponen las pruebas a la codificación.
    • Diseño Simple: Evitar el sobrediseño aumenta la calidad del software.
    • Programación con Copiloto: El código se lleva a cabo conjuntamente con un compañero con el que se comparte la tarea de codificación actuando como supervisor y con el que se intercambia el puesto en turnos cortos en intervalos menores a una hora. El compañero también rota entre los equipos de desarrolladores disponibles, es una técnica de maximización de la calidad del código en términos de legibilidad y simpleza.
    • Refactorización: Diversas técnicas de remodelización del código que mejoran su calidad sin alterar su función.   
  • A nivel de Integración:
    • La Integración Continua permite garantizar que los distintos módulos se puedan combinar generando un ejecutable común.  
    • Se programa en base a un vocabulario proveniente de una metáfora, la similitud entre el dominio a implementar y el dominio conocido por el equipo facilita las tareas.
    • Pertenencia Colectiva: todo el código está disponible para todo el equipo.
    • Camino Sostenible: El menor tamaño de las entregas intermedias, de menor tamaño, permiten que las estimaciones tracen una ruta sin demasiados altibajos.
    • Utilización de Estándares de Código: Se establece cómo, dónde y de qué manera se colocará el código escrito.


  • A nivel de Planificación del Proyecto:
    • El cliente comprueba las entregas mediante Pruebas de Cliente, diseñadas y documentadas.
    • La organización se organiza de forma horizontal como un equipo completo bien comunicado.
    • Se involucra a todo el equipo en las estimaciones y decisiones de planificación a modo de Juego de Planificación.
    • Las entregas se realizan contínuamente y son pequeñas.
La buena comunicación y la documentación eficiente se establecen como bases de la programación extrema, lógicamente UML tiene mucha cabida en este aspecto y es ampliamente utilizado en proyectos XP. 





No comments:

Post a Comment