Dirección de Comunicación
Universitaria
Departamento de Prensa
Año 11 • No. 486 • Junio 11 de 2012 Xalapa • Veracruz • México Publicación Semanal

Tecno Tips

Programación extrema: “Metodología para desarrollo ágil de aplicaciones”

La programación extrema, o Extreme Programming (XP), es una metodología de desarrollo ágil, una de las más exitosas en tiempo reciente. Su autor principal es Kent Beck, quien eligió algunas características de otras metodologías y las relacionó de forma que cada una complementara a la otra.
Así, la XP se puede definir como un conjunto de pasos de diversas metodologías, acopladas de manera que sean pasos flexibles a seguir utilizadas con el uso común, para realizar un desarrollo más agradable y sencillo.
Esta metodología tiene como base la simplicidad y como objetivo principal la satisfacción del cliente; para lograrlo se deben tomar en cuenta cuatro valores fundamentales:

Comunicación
Es muy importante que haya una comunicación constante con el cliente y dentro de todo el equipo de trabajo, de esto dependerá que el desarrollo se lleve a cabo de una manera sencilla, entendible y que se entregue al cliente lo que necesita.

Simplicidad
En la XP se refiere que ante todo y sin importar qué funcionalidad requiera el usuario en su sistema, éste debe ser fácil. El diseño debe ser sencillo y amigable al usuario, el código debe ser simple y entendible, programando sólo lo necesario y lo que se utilizará.

Retroalimentación
Es la comunicación constante entre el desarrollador y el usuario.

Coraje
Se refiere a la valentía que se debe tener al modificar o eliminar el código que se realizó con tanto esfuerzo; el desarrollador debe saber cuando el código que desarrolló no es útil en el sistema y, por lo mismo, debe ser eliminado. También se refiere a tener la persistencia para resolver los errores en la programación.

Dentro de la programación extrema se tiene 12 principios que llevan o guían el desarrollo con esta metodología:
1. El principio de pruebas
2. Proceso de planificación
3. El cliente en el lugar
4. Programación en parejas
5. Integración continua
6. Refactorización
7. Entregas pequeñas
8. Diseño simple
9. Metáfora
10. Propiedad colectiva del código
11. Estándar de codificación
12. La semana de 40 horas

Herramientas de la XP

Historias de usuarios
Son tarjetas físicas en las cuales se anota una descripción de una funcionalidad del sistema, en una oración, se le da un número y un título para ser identificada.

Casos de prueba de aceptación
Son tarjetas que se elaboran para realizar las pruebas de cada historia de usuario.

Tarea de ingeniería
Son tarjetas que se elaboran para ayudar y simplificar la programación de una historia de usuario.

Tarjetas CRC
Describen las clases utilizadas en la programación de una historia.

Ventajas y desventajas
Una de las ventajas de la programación extrema es que se adapta al desarrollo de sistemas pequeños y grandes; optimiza el tiempo de desarrollo; permite realizar el desarrollo del sistema en parejas para complementar los conocimientos; el código es sencillo y entendible, además de la poca documentación a elaborar para el desarrollo del sistema.
Las desventajas son que no se tiene la definición del costo y el tiempo de desarrollo; el sistema va creciendo después de cada entrega al cliente y nadie puede decir que el cliente no querrá una función más; se necesita de la presencia constante del usuario, lo cual en la realidad es muy difícil de lograr.
Otra desventaja es la programación en parejas, algunos desarrolladores son celosos del código que escriben y no les es grato que alguien más modifique las funciones que realizó o que su código sea desechado por no cubrir el estándar.

Fuentes:
Beck, K. A. (2004). Extreme Programming Explained. Addison Wesley.

Martin, R., & Newkirk, J. (2002). La programacion extrema en la practica. Pearson Addison-Wesley.