Monday, 29 June 2009

Extreme Programming

Extreme Programming o Programación extrema es una de las llamadas metodologías Ágiles de desarrollo de software. Ésta metodología fue formulada por Kent beck quién fundó el test-first programming, la família xUnit de developer testing tools, y el Extreme Programming. Todos éstos metodos convergen en la búsqueda de un diseño de software efectivo. Hay varios libros interesantes y mucha información por la red, pero la mayoría en inglés. Desde éste artículo os indico cuales son las características fundamentales de la programación extrema y el impacto que está teniendo en el desarrollo del software. Gracias a todas éstas metodologías de trabajo, podemos crear software más estable, con mejores tests y ser más rápidos aportando gran calidad al proyecto. Hoy en día podemos encontrar ésta metodología en cualquier lenguaje de programación, por ejemplo con Delphi en delphiXtreme.
  • Características fundamentales:
  1. Desarrollo iterativo e incremental: Se generan pequeñas mejoras una detrás de la otra.
  2. Pruebas unitarias continuas, frecuentemente repetidas y automáticas, incluyendo pruebas de regresión: Se aconseja escribir el código de la prueba antes de la codificación. Ver el TDD.
  3. Pair-Programming (Programación por parejas): Se recomienda que las tareas de desarrollo se lleven a cabo por 2 personas en un mismo sitio. Se supone que la mayor calidad del código escrito de esta forma (el código es revisado y discutido mientras se escribe) es más importante que la posible pérdida de productividad inmediata.
  4. Frecuente interacción del equipo de programación con el cliente o usuario:. Se recomienda que un representante del cliente trabaje juntamente con el equipo de desarrollo.
  5. Corrección de todos los errores antes de añadir una nueva funcionalidad: Realizar entregas frecuentes.
  6. Refactoring del código: Reescribir ciertas partes del código para aumentar su legibilidad y mantenimiento pero sin modificar su comportamiento. Las pruebas tienen que garantizar que en el refactoring no se ha introducido ningún error.
  7. Propiedades del código compartido: El lugar de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo diferentes, este método promueve que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores sean detectados.
  8. Simplicidad en el código: Es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrán añadir funcionalidades si es necesario.
Tal como indica la wikipedia, existen una serie de principios y valores básicos que hay que seguir, tales como la comunicación, simplicidad, feedback, coraje y humildad.

Para profundizar sobre el tema os recomiendo los libros de Extreme Programming, sobretodo Extreme Programming Explained y Extreme Programming Installed.

Como podéis ver, hay un vínculo muy estrecho entre XP y AGILE, y hay muchas comunidades on-line que se intentan dar a conocer para que los desarrolladores de software utilicen éstas metodologías.

0 comments:

Post a Comment