viernes, 22 de agosto de 2008

Método xp

Xp ( Extreme programming) nuevo método de desarrollo de software, es un método ligero en contraposición a los métodos pesados como métrica. Este método se descubrió hace 5 años por KENT BECK en Damlerchrysler, después de haber trabajado por varios años con Ward Cunningham en busca de una nueva aproximación al problema de desarrollo de software que hiciera las cosas más simplesde lo que tenían acostumbrados los métodos existentes.

Xp define 4 variables para cualquier proyecto de software: el costo , tiempo , calidad y alcance.

En el año 2001, 17 personas redactaron el manifiesto ágil, en el que expresaron los siguientes puntos principales:

-individuos e interacciones en lugar de procesos y herramientas
-desarrollo de software en lugar de documentación exhaustiva
-trabajo con el cliente en lugar de negociaciones contractuales
-apertura para los cambios en lugar de cumplimiento de planes poco flexibles.

La Programación extrema se basa en los siguientes conceptos:

-Los equipos de desarrollo trabajan directamente con el cliente durante ciclos cortos de una o dos semanas como máximo.
-La entrega de las versiones del software ocurre muy temprano y en intervalos muy cortos para maximizar la interacción con el usuario.
-Existe una fuerte colaboración entre el equipo de desarrollo mientras trabaja en el código.
-El código se prueba y depura a lo largo del proceso de desarrollo.
-Existen indicadores que miden el progreso del proyecto para poder actualizar el plan de desarrollo.

Características

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.
  • Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo.

La simplicidad y la comunicación son extraordinariamente complementarias. Con más comunicación resulta más fácil identificar qué se debe y qué no se debe hacer. Mientras más simple es el sistema, menos tendrá que comunicar sobre este, lo que lleva a una comunicación más completa, especialmente si se puede reducir el equipo de programadores.