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.
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.
- Características fundamentales:
- Desarrollo iterativo e incremental: Se generan pequeñas mejoras una detrás de la otra.
- 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.
- 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.
- 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.
- Corrección de todos los errores antes de añadir una nueva funcionalidad: Realizar entregas frecuentes.
- 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.
- 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.
- 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.
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.
Comments
Post a Comment