miércoles, 28 de julio de 2010

Programación Ágil: extreme programming

Las metodologías ágiles de software surgen como respuesta a la gestión rígida, que impone la programación heroica (convencional). Dentro de estas metodologías ágiles, encontramos XP, o extreme programming.

Por definición lo deseable en XP es lo siguiente:

Características fundamentales

Las características fundamentales del método son:

  • Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.

  • Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación. Véase, por ejemplo, las herramientas de prueba JUnit orientada a Java, DUnit orientada a Delphi y NUnit para la plataforma.NET. Estas dos últimas inspiradas en JUnit.

  • Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. Se supone que la mayor calidad del código escrito de esta manera -el código es revisado y discutido mientras se escribe- es más importante que la posible pérdida de productividad inmediata.

  • Frecuente integración del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.

  • Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes.

  • Refactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.

  • Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores serán detectados.


A modo de iniciación, lo preferible es comenzar centrándose en lo siguiente:

    1.Pruebas unitarias continuas, frecuentemente repetidas y automatizadas. Se aconseja escribir el código de la prueba antes de la codificación. Para el caso la librería con la que realizar las pruebas con la librería TestNG.

    2. Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes, en el caso realizar dichas entregas a través de Subversión en Eclipse.

    3. Desarrollo iterativo e incremental . pequeñas mejoras, unas tras otras. En el caso una vez resueltos los puntos uno y dos, centrarse en la funcionalidad.


Fuentes:

Wikipedia: Desarrollo ágil de software

Wikipedia: programación extrema

Wikipedia: TDD, desarrollo dirigido por pruebas

Navegapolis: Gestion y procesos

Lectura recomendada:

Chuidiang: TDD, desarrollo dirigido por pruebas

No hay comentarios:

Publicar un comentario