Vous êtes sur la page 1sur 15

Programacin Extrema (XP)

Qu es la programacin extrema?

La programacin extrema, o Extreme Programming (XP), es una metodologa


de desarrollo gil, una de las ms exitosas en tiempo reciente. Su autor
principal es Kent Beck, quien eligi algunas caractersticas de otras
metodologas y las relacion de forma que cada una complementara a la otra.

Tambin se puede definir como un conjunto de pasos de diversas


metodologas, acopladas de manera que sean pasos flexibles a seguir
utilizadas con el uso comn, para realizar un desarrollo ms agradable y
sencillo.

Esta metodologa tiene como base la simplicidad y como objetivo principal la


satisfaccin del cliente; para lograrlo se deben tomar en cuenta cuatro
valores fundamentales; comunicacin, simplicidad, retroalimentacin y
coraje.

Valores fundamentales

Comunicacin: esto se refiere a tener constante comunicacin con el equipo


de trabajo, de esta forma se reducen los cambios inesperados.

Simplicidad
En la XP se refiere que ante todo y sin importar qu funcionalidad requiera el
usuario en su sistema, ste debe ser fcil. El diseo debe ser sencillo y
amigable al usuario, el cdigo debe ser simple y entendible, programando slo
lo necesario y lo que se utilizar.

Retroalimentacin
Es la comunicacin constante entre el desarrollador y el usuario.

Coraje
Se refiere a la valenta que se debe tener al modificar o eliminar el cdigo que
se realiz con tanto esfuerzo; el desarrollador debe saber cuando el cdigo
que desarroll no es til en el sistema y, por lo mismo, debe ser eliminado.
Tambin se refiere a tener la persistencia para resolver los errores en la
programacin.

Metodologa
Dentro de la programacin extrema se tiene 12 principios
que llevan o guan el desarrollo con esta metodologa:

1. El principio de pruebas
2. Proceso de planificacin
3. El cliente en el lugar
4. Programacin en parejas
5. Integracin continua
6. Refactorizacin
7. Entregas pequeas
8. Diseo simple
9. Metfora
10. Propiedad colectiva del cdigo
11. Estndar de codificacin
12. La semana de 40 horas

Principio de pruebas: lo primero que se debe hacer es establecer un periodo de


pruebas de aceptacin del programa, en el cual se definirn las entradas y
salidas del sistema. Bsicamente se define lo que debe hacer el software
desarrollado. Como si fuese una caja negra.

Planificacin: el cliente (o su representante) escribir sus necesidades para


definir concretamente las actividades que el sistema debe realizar. En esta fase
se crear un documento que contendrhistorias de usuarioque forman elplan
de liberacin, el cual define los tiempos de entrega de la aplicacin para poder
recibirfeedbackpor parte del cliente.

Clientein-situ:el cliente (o su representante) deber formar parte del


equipo de desarrollo. Se le dar poder para determinar los requisitos de la
aplicacin, definir la funcionalidad y dar prioridad a determinadas cosas. Gracias
a esto, habr una fuerte interaccin con los programadores, disminuyendo as el
tiempo de comunicacin y la cantidad de documentacin a redactar.El cliente
estar con el equipo durante todo el proceso de desarrollo del proyecto.

Pair-programming: este punto junto con el anterior son los ms radicales de


esta metodologa. Consiste enescribir cdigo en parejas compartiendo una
sola mquina. Segn los experimentos ya realizados sobre este mtodo, se
producen mejores y ms consistentes aplicaciones a igual o menor coste.

Integracin continua: consiste en implementar progresivamente las nuevas


caractersticas del software. En lugar de crear versiones estables en funcin de
una planificacin previamente realizada, los programadores renen su cdigo y
reconstruyen el proyecto varias veces al da si hace falta.

Refactorizacin: mediante la constante eliminacin de cdigo duplicado y/o


ineficiente los equipos de programacin mejoran el diseo del sistema. El cdigo
se evala continuamente para ofrecer la mayor calidad posible.

Entregas pequeas: el producto es evaluado en un ambiente real mediante la


colocacin de un sistema sencillo en produccin el cual se actualizar
rpidamente, es decir, cada 2 semanas (3 como mximo) el software ser puesto
en produccin.
Diseo simple: el mejor programa ser aquel que cumpla con los requisitos y sea
ms simple. Es importante proporcionar un software que cubra las necesidades
de un cliente. Ni ms ni menos.

Metfora: expresa la visin evolutiva del proyecto y define los objetivos del
sistema mediante una historia.
Propiedad colectiva del cdigo: el cdigo tiene propiedad compartida. Nadie es
propietario de nada, ni siquiera de lo que ha desarrollado. Todos los
programadores son dueos de todo el cdigo. Segn esta metodologa, cuantos
ms programadores haya trabajando en una parte de cdigo, menos errores
tendr.

Estndar de programacin: define las reglas para escribir y documentar cdigo,


adems de cmo se comunican las diferentes piezas de cdigo desarrolladas por
diferentes equipos. El objetivo de esto es que parezca que el cdigo ha sido
escrito por una nica persona.

Semana de 40 horas: los programadores cansados escriben peor cdigo. Es


importante minimizar las horas extras y mantener a los programadores
frescos y descansados. De esta manera, se generar mejor cdigo. Si es
necesario hacer horas extras, quiere decir que el proyecto est mal planificado.

En extreme programming, XP, las


prcticas se refuerzan entre s.

Ejemplos de SW para XP

Debido a la colaboracin constante en la programacin, esta metodologa


utiliza como herramientas de gestin de proyectos, apoyo repositorios de
cdigo.
Lo que contribuye a que cualquier desarrollador pueda examinar el cdigo y
realizar las modificaciones que consideren pertinentes. Sin dejar de lado la
comunicacin.

Unified Modeling Language

Ventajas y desventajas

Una de las ventajas de la programacin extrema es que se adapta al desarrollo de sistemas pequeos y grandes; optimiza el tiempo de desarrollo; permite realizar
el desarrollo del sistema en parejas para complementar los conocimientos; el cdigo es sencillo y entendible, adems de la poca documentacin a elaborar para el
desarrollo del sistema.
Las desventajas son que no se tiene la definicin del costo y el tiempo de desarrollo; el sistema va creciendo despus de cada entrega al cliente y nadie puede
decir que el cliente no querr una funcin ms; se necesita de la presencia constante del usuario, lo cual en la realidad es muy difcil de lograr.
Otra desventaja es la programacin en parejas, algunos desarrolladores son celosos del cdigo que escriben y no les es grato que alguien ms modifique las
funciones que realiz o que su cdigo sea desechado por no cubrir el estndar.

Bibliografa

http://www.uv.mx/universo/486/infgral/infgral_15.html

https://geekytheory.com/programacion-extrema-que-es-y-principios-basicos/

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

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


Pearson Addison-Wesley.