ago 04 27

Extreme Programming (XP)

Tiempo estimado de lectura: 2,29 minutos


La programación extrema es una disciplina de desarrollo de software “relativamente” nueva. Tiene características totalmente diferentes a la planificación tradicional de cualquier proyecto de software; Si bien usa un sistema iterativo de desarrollo, el paradigma es totalmente diferente a lo “estándar”.

Características de XP:

La programación extrema da por supuesto que es imposible prever todo antes de comenzar a programar; es imposible o si lo fuera es demasiado costoso e innecesario, ya que muchas veces se gasta demasiado tiempo y recursos en cambiar la documentación de la planificación para que se parezca al código. Para evitar esto, XP intenta implementar una forma de trabajo donde se adapte fácilmente a las circunstancias.

Básicamente consiste en trabajar estrechamente con el cliente, haciendo pequeñas iteraciones (mini-entregas), cada dos semanas, donde no existe mas documentación que el código en si; cada versión contiene las modificaciones necesarias según el cliente vaya retroalimentando el sistema (por eso es necesaria la disponibilidad del cliente durante todo el desarrollo).

Para suplir la falta de requisitos, casos de uso, y demás herramientas; XP utiliza historias de usuarios, la historia de usuario es una frase corta que representa alguna función que realizara el sistema. Cada historia de usuario no puede demorar en desarrollarse mas de una semana, si así lo requiera, debe segmentarse.

Es requisito para XP definir un estándar en el tipo de codificación, esto hace que los programadores tengan definido ya el estilo de programación y no que cada uno programe a su estilo.

Los programadores trabajan en parejas (dos por cada maquina) intercambiándose en el tipeo, esta interesante forma de trabajar tiene ventajas como:

* Detectar mas fácilmente los errores de programación (el programador libre controla al que tipea);
* El programador poco experimentado aprende del que mas lo esta.
* Si una pareja consigue desarrollar algún trozo de código
reutilizable, se comunica mas fácilmente a los otros programadores.

El testing en cada iteración es más que importante; de eso se trata este paradigma de programación, corregir mientras se programa. De esta forma se van cubriendo todos los baches que cada versión padezca.

El código no es de nadie, todo el equipo puede manipular el código que existe, de esta forma cada pareja puede mejorar cada sección de código que utiliza, esto requiere de un testing del mismo y la re-implementación en el sistema general.

Cada dos semanas se entrega una versión al cliente, que lo verifica, realiza el feedback y se continúa el desarrollo; este ciclo continua hasta que el sistema cumpla con las expectativas del cliente, acto que concluirá el proyecto.

No existe documentación del proyecto (para mi, el talón de Aquiles de este modelo) lo que mas se acerca a la documentación son las historias de usuario, pero al concluir el proyecto se descartan. Inclusive se recomienda hacer dos secciones, una con todas las historias de usuario que faltan desarrollar, y otra donde se archiven las concluidas, esto aproximara el estado de avance del proyecto.

Esquema del modelo de proyecto XP

XP

fuente: http://www.extremeprogramming.org

Para mi punto de vista, este modelo puede ser exquisitamente viable en proyectos chicos, en sistemas donde no existan muchos riesgos de implementación (inclusive menor a lo que le da la escala escala SCRUM) y en donde el equipo de trabajo no sea muy grande.

Además la ausencia de documentación hace que el mantenimiento del sistema (realizado por otro equipo de trabajo) sea muy engorroso y dificil. (ya plantee esta cuestion en el wiki de XP, aver que resulta)

Copame! Digg it Digg it Reddit Del.icio.us

    11 Comentarios

  1. BCloud


    Más que interesante realmente. A pesar de que yo estudio diseño, siempre he tenido un lado de programador que hace que me atraigan todas estas cosas . Muy buena data Elezeta.

  2. eleZeta


    Si Bcloud… muchas veces cuando se habla de programación, se comete el error de hablar de las herramientas; pero poca es la importancia que se le da a la parte del proyecto del desarrollo del sistema. Programar un software es tan sólo una pequeña porcion del desarrollo (aunque cobra muchisima importancia en este modelo XP)

  3. RUBENS


    ME PARECE EXCELENTE EL GRAFICO,POR TRATARSE DE UN TRABAJO QUE NO SE ENCUENTRA FACILMENTE .ESPERO PODER USARLO EN MIS CLASES EN VENEZUELA , ¿ DE ACUERDO ? ABRAZO

  4. enrique


    me gustaria por favor hicieran un comparacuón con la metodologia RUP mediante una pequeña aplicación.
    RUP 4 etapas, y XP tres, mas no estoy mal.

  5. GERMAN DARIO RODRIGUEZ PEREZ


    pues mas o menos explicado, no me tramó mucho!

  6. DIEGO FERNANDO VALCARCEL CARO


    Pues esta pág. está muy interesante, aunque lo que necesito ver graficos de XP pero algo más concreto.

  7. Carlos Monroy


    Es bastante interesante y dinamica la forma en la que se realiza todo el diseño e emplantación y si pudieran mandarme mas informacion se los agradeceria

  8. César Alejadro Véliz


    Por favor necesito un ejemplo de un sofware pequeño de un sistema de inventariaciòn realizado con programaciòn extrema y con todos sus pasos, gracias.

  9. Mayi


    Hace poco que vengo investigando sobre XP y reconozco que me parece fascinante sobre todo para proyectos de la magnitud a la que me dedico, pero no he podido aplicarla porque no he encontrado un ejemplo concreto.¿Cómo queda la documentación?¿Cómo planifico la duración del proyecto? Creo que yo también necesito un ejemplo concreto. Gracias

  10. JJ


    me parece excelente, por que este tema es muy complicado de encontrar y mucho mas complicado encontrar el modelo graficamente.¡¡¡gracias!!!

  11. JAMILETH


    QUIERO UNA PRESENTACION CON ORIENTACION A UN CLIENTE DONDE SE4 QUIERO QUE ME COLABOREN EN LA SIGUIENTE INVESTIGACION… EXPLIQUE CON CLARIDAD LAS VENTAJAS QUE REPRESENTAN UN DESARROLLO CON ENFOQUE A LA CALIDAD, HACIA EL PRODUCTO, DAR UN PANORAMA GENERAL DE LOS MODELOS DE CALIDAD EMPLEADA POR LA INDUSTRIA , EXPLICAR EL MODELO DE LA CALIDAD QUE USTED EMPLEARA EN SU DESARROLLO. AGREGAR A LA PRESENTACION UN ANEXO QUE DESCRIBA LA DIFERENCIA EN EL ENFOQUE HACIA EL PRODUCTO Y HACIA EL PROCESO. MIL GRACIAS

Deja un Comentario

Tags permitidos:

  • <a href="" title="">
  • <abbr title="">
  • <acronym title="">
  • <blockquote cite="">
  • <code>
  • <em>
  • <strong>