Metodología XP

Al igual que éstos, la programación extrema se diferencia de las
metodologías tradicionales principalmente en que pone más énfasis en la
adaptabilidad que en la previsibilidad. Los defensores de la XP consideran que
los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e
incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse
a los cambios de requisitos en cualquier punto de la vida del proyecto es una
aproximación mejor y más realista que intentar definir todos los requisitos al
comienzo del proyecto e invertir esfuerzos después en controlar los cambios en
los requisitos.
Se puede considerar la programación extrema como la adopción
de las mejores metodologías de desarrollo de acuerdo a lo que se pretende
llevar a cabo con el proyecto, y aplicarlo de manera dinámica durante el ciclo
de vida del software.
La programación extrema es una metodología de desarrollo
ligero (o ágil) basada en una serie de valores y de prácticas de buenas maneras
que persigue el objetivo de aumentar la productividad a la hora de desarrollar
programas.
Este modelo de programación se basa en una serie de
metodologías de desarrollo de software en la que se da prioridad a los trabajos
que dan un resultado directo y que reducen la burocracia que hay alrededor de
la programación.
Una de las características principales de este método de
programación, es que sus ingredientes son conocidos desde el principio de la
informática. Los autores de XP han seleccionado aquellos que han considerado
mejores y han profundizado en sus relaciones y en cómo se refuerzan los unos
con los otros. El resultado de esta selección ha sido esta metodología única y
compacta. Por esto, aunque no está basada en principios nuevos, sí que el
resultado es una nueva manera de ver el desarrollo de software.
El objetivo que se perseguía en el momento de
crear esta metodología era la búsqueda de un método que hiciera que los
desarrollos fueran más sencillos. Aplicando el sentido común.
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, NUnit para la plataforma.NET o PHPUnit para PHP. Estas tres últimas inspiradas en JUnit, la cual, a su vez, se insipiró en SUnit, el primer framework orientado a realizar tests, realizado para el lenguaje de programación Smalltalk.
- Programación en parejas: se recomienda que las tareas de
desarrollo se lleven a cabo por dos personas en un mismo puesto. 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. Cuanto más simple es el sistema, menos tendrá que comunicar sobre éste, lo que lleva a una comunicación más completa, especialmente si se puede reducir el equipo de programadores.
No hay comentarios:
Publicar un comentario