UNIVERSIDAD DE LOS ANDES FACULTAD DE HUMANIDADES Y EDUCACIÓN MAESTRÍA EN EDUCACIÓN, MENCIÓN INFORMÁTICA Y DISEÑO INSTRUCCIONAL FUNDAMENTOS DE PROGRAMACIÓN Y HERRAMIENTAS MULTIMEDIA
PROGRAMACIÓN EXTREMA “XP”
Informe
Autores: Solange Zambrano Jiménez Juan Carlos León Laura Otaiza Gómez
Mérida, febrero de 2010
CONTENIDO Introducción
1.
La programación extrema
Definición
Origen
2.
Utilidad
3.
Características
4.
Objetivos
5.
Utilidad
6.
Variables
7.
Valores
8.
Principios
9.
Prácticas
10. Actividades 11.
Instrumentos usados
12.
Ciclo de vida la XP
13. Actores 14.
Críticas a la programación extrema
Bibliografía
2
INTRODUCCIÓN En el ámbito empresarial de la programación y el desarrollo de software resulta vital la definición temprana, de forma clara y completa, de las necesidades del usuario (cliente) para la definición de la calidad del software a elaborar, de tal forma que el proceso de desarrollo apunte a la satisfacción de las mismas y que el producto logrado corresponda a lo planificado. Por otra parte, el desarrollo de software abarca un proceso, que al igual que toda actividad humana, está expuesta a la ocurrencia de errores y la inclusión de cambios lo que la hace dinámica y no rígida ni del todo predecible o controlable. En tal sentido, la programación tradicional abrió paso a nuevas propuestas de programación que permitieran considerar estos aspectos como elementos inherentes y básicos en la elaboración de un software, por lo que la metodología y proceso a desarrollar requiere ser flexible y adaptable, además de permitir la revisión continua del trabajo. Por estas razones, surge la Programación Extrema que propone el llevar ciertas actividades rígidas a un extremo para dar la versatilidad y adaptabilidad necesarias al proceso de tal forma que se minimicen los elementos adversos optimizando el trabajo. De allí que este modelo de programación se clasifique dentro de las metodologías ágiles. 3
Debido a su contribución en cuanto al modo de concebir y llevar a cabo el desarrollo de un software se hace necesario conocer esta metodología teóricamente a fin de comprenderla, valorarla y poder comparar lo que ofrece con el resto de métodos principales usados en el desarrollo de software. En consecuencia se ha llevado a cabo una investigación acerca de la XP, “Extreme Programming” cuyos resultados se exponen en el presente informe,
que incluye: definición, origen, características, objetivos, principios, variables, valores, las actividades y prácticas que abarca, artefactos que usa, el ciclo de vida del proceso, actores involucrados y algunas críticas que se hacen a este modelo.
4
LA PROGRAMACIÓN EXTREMA La expresión programación extrema es la traducción (del inglés) de “Extreme Programming” (XP) acuñada por
Kent Beck. Fue denominada
extrema porque lleva a límites extremos algunos elementos y actividades comunes de la forma tradicional de programar. Por esta razón, tal como lo expresa
Beck, (1999) la XP es una
metodología ágil para pequeños a medianos equipos, que modela el proceso de desarrollo de software cuando los requerimientos son ambiguos o rápidamente cambiantes. Algunos autores (Anaya, 2009: Agulló, 2005; Urbina, 2009; Fowler, 2003) consideran que la programación extrema como una metodología de programación que se tipifica como ágil por ser adaptable y flexible a diferencia de la tradicional. No obstante otros autores (Calero, 2003; Fernández, 2002; Wake, 2005) difieren de esta posición y aluden que, más que una metodología la XP se constituye en un modelo del proceso de programación e incluso una disciplina, ya que no sólo muestra los pasos a seguir en el desarrollo del software sino que específica la dinámica entre los actores y la operatividad en el desarrollo del proyecto.
5
Origen de la Programación Extrema La programación extrema surgió en la década de los 90’s con el desarrollo de un proyecto de elaboración de software, liderado por Kent Beck quien ahora se considera como una de las principales figuras de este modelo de programación, junto a Ron Jeffries y Ward Cunningham quienes fueron participes de la conformación y divulgación de una metodología mucho más arriesgada, versátil y flexible para el desarrollo de software. (Fowler, 2003) Este modo de trabajo comenzó en 1996 y se consolidó formalmente en 1999 cuando Beck publicó su libro Extreme Programming Explained , en el que específica en qué consiste la XP “Programación Extrema”.
De allí que, como expone Wake (2005), la XP establece el modo de trabajo de un programador centrado en una disciplina de equipo enfocada en el trabajo directo e interactivo con el e l cliente. Además, según Beck (1999) consiste en un abordaje premeditado y disciplinado del desarrollo de software basado, como dice Fowler (2003) en la iteración o repetición continua de los procesos durante la realización del software, dándole movilidad a la metodología estableciendo su adaptabilidad a pesar la disciplina con la que se lleva a cabo.
6
En definitiva, se refiere a un conjunto de reglas y prácticas simples, ingenuas o extrañas al principio, fácilmente adoptadas luego, apoyadas unas en otras, con reducción de actividades improductivas. (González, s.f)
UTILIDAD DE LA PROGRAMACIÓN EXTREMA Este modelo de programación, que plantea una forma liviana y adaptable del proceso, surgió en respuesta a una serie de problemas y necesidades que se evidencian al llevar a cabo un proyecto de desarrollo de software con la finalidad de minimizar las dificultades y errores que se presentan especialmente al abordar cierto tipo de proyectos. De allí, la utilidad de esta metodología de trabajo pues tal como reseña González (s.f.) la XP fue creada para que se utilice:
Cuando los clientes no tienen idea clara de los requerimientos y los van cambiando.
Para proyectos de riesgo: fecha fija de entrega, algo nunca hecho por el grupo, algo nunca hecho por la comunidad de desarrolladores.
Entre 2 y 10 programadores. NO es apto para proyectos con mucho personal.
Proyectos en los que los requisitos tienen altas probabilidades de cambiar con el tiempo (por ejemplo, porque el cliente no tiene 7
claro lo que quiere, o porque el cambio de requisitos está ligado al dominio del problema a resolver).
El objetivo es entregar el software software tal cual se necesita y en el momento en que se necesita. Incidentalmente, los proyectos XP muestran mayor productividad.
CARACTERÍSTICAS DE LA PROGRAMACIÓN EXTREMA La Extreme Programming, de acuerdo con Beck (1999) se caracteriza caracteriza por su :
Enfoque práctico: ya que se adapta y obedece a las realidades
que ocurren al desarrollar un software como la posibilidad de los cambios y la ocurrencia de errores.
Conocer sus ingredientes desde el principio : ya que parte de la
definición clara de las necesidades y requerimientos del cliente y las mantiene presentes durante todo el desarrollo del proyecto.
Retroalimentación (Feedback) temprana, continua y concreta ,
gracias a los ciclos extremadamente cortos de desarrollo.
Enfoque de planificación incremental , que consigue obtener un
plan global rápido, del que se espera que evolucionará a lo largo de la vida del programa.
8
Su funcionalidad de forma extremadamente flexible , en respuesta
a los cambios en las necesidades del negocio.
El uso de tests automatizados escritos por programadores y clientes para monitorizar el progreso del desarrollo, para permitir que evolucione el sistema, y para atrapar errores de forma temprana.
La comunicación oral, los tests y el código fuente
para
comunicar la estructura del sistema y las intenciones del código.
Su metodología de colaboración entre programadores con
habilidades normales.
La adopción de prácticas realistas que trabajan a favor de los
instintos a corto plazo de los programadores y los intereses a largo plazo del proyecto.
Integración de gerentes y clientes a la formulación de preguntas,
la negociación de cronograma y alcances, la creación de las pruebas.
Automatiza las pruebas ; es posible en casi todos los dominios Es lícito repensar el diseño para facilitar el ensayo .
OBJETIVOS DE LA PROGRAMACIÓN EXTREMA Según Calero (2003) la programación extrema persigue:
9
La satisfacción del cliente. Esta metodología trata de dar al
cliente el software que él necesita y cuando lo necesita. Por tanto, debemos responder muy rápido a las necesidades del cliente, incluso cuando los cambios sean al final de ciclo de la programación.
Potenciar al máximo el trabajo en grupo. Tanto los jefes de
proyecto, los clientes y desarrolladores, son parte del equipo y están involucrados en el desarrollo del software.
VARIABLES DE LA PROGRAMACIÓN EXTREMA En cuanto a la puesta en marcha de un proyecto de programación extrema, Calero (2003) aclara que todo proyecto de desarrollo de software debe considerar cuatro variables esenciales. También establece, que de estas cuatro variables que tenemos, sólo tres de ellas podrán ser fijadas o indicadas por el cliente o jefe del proyecto, mientras que una variable quedará libre.
Coste: del proyecto se incrementa cuando se necesita máquinas más rápidas, mas especialistas técnicos en determinadas áreas o mejores oficinas para el equipo de desarrollo.
10
En extreme programming el costo del cambio maneja un papel muy importante, porque comparado con otras metodologías para implementar software, es mucho más barato, debido a que las pruebas se van haciendo según las versiones liberadas, no es como una metodología normal, que primero se realiza el análisis, después el diseño, implementación, pruebas y finalmente producción, mientras que en la extreme programming siempre estas implementando, probando y produciendo.
Tiempo: en el que se planifica y en el que realmente se lleva a cabo el proyecto. Debe tomare en cuenta que los cambios aumentarán el tiempo de realización mientras que la optimización y la inversión pueden acortarlo.
Calidad: puede representar un cambio extraño; debido a que a mayor calidad menor tiempo de realización del proyecto. Por lo tanto el equipo de desarrolladores está encargado de la tarea de hacer las pruebas con los mejores resultados posibles para así tener una idea de cuál es el problema y como lo van a resolver de una manera simple y eficiente, para que la calidad del proyecto se mantenga al 100% y tener una facilidad de adaptarse a los cambios del código lo que hace este proceso más rápido.
11
Ámbito: es la que se encuentra libre es el alcance del proyecto, en la cual el equipo determina: la estimación de las tareas a realizar, que es lo que el cliente quiere, la implementación de los requisitos más importantes de manera que este siempre sea funcional.
VALORES DE LA PROGRAMACIÓN EXTREMA Además, la metodología que propone la programación extrema e xtrema requiere la transversalidad de una serie de valores que le darán consistencia y solidez al equipo de trabajo. Al respecto, Calero (2003) refiere que la XP se basa en los siguientes cuatro valores:
La comunicación prevalece en todas las prácticas de extreme programming. Comunicación cara a cara es la mejor forma de
comunicación, entre los desarrolladores y el cliente. Método muy ágil. Gracias a esto el equipo esta pude realizar cambios que al cliente no le gustaron. También apoya agilidad con la extensión del conocimiento tácito dentro del equipo del desarrollo, evitando la necesidad de mantener la documentación escrita.
La sencillez ayuda a que los desarrolladores de software
encuentren soluciones más simples a problemas, según el cliente
12
lo estipula. Los desarrolladores también crean características en el diseño que pudieran ayudar a resolver problemas en un futuro.
La
Retroalimentación
continua
del cliente permite a los
desarrolladores llevar y dirigir el proyecto en una dirección correcta hacia donde el cliente quiera.
El valor o coraje requiere que los desarrolladores vayan a la par
con el cambio, porque sabemos que este cambio es inevitable, pero el estar preparado con una metodología ayuda a ese cambio.
PRINCIPIOS DE LA PROGRAMACIÓN EXTREMA Ferrer (2003) explica que la XP se basa en cuatro principios fundamentales, que funcionan a modo de puente entre los valores valores (algo intrínseco al equipo de desarrollo) y las prácticas. Los cuales son:
Retroalimentación veloz
Modificaciones incrementales
Trabajo de calidad
Asunción de simplicidad
13
PRÁCTICAS DE LA PROGRAMACIÓN EXTREMA Partiendo de el planteamiento formal de Beck (199) que establece los procesos y actividades que se desarrollan al aplicar lo que él denominó una programación extrema y en concordancia con lo que exponen Urbina (2009) y Anaya (2003), la XP abarca 13 prácticas, que se agrupan en cuatro categorías, los cuales determina el funcionamiento específico que se debe emplear al momento de programar:
Retroalimentación a escala fina 1. El principio de pruebas : se tiene que establecer un período de pruebas de aceptación del programa (llamado también período de caja negra) donde se definirán las entradas al sistema y los resultados esperados de estas entradas.
2. Proceso de planificación: en esta fase, el usuario tendrá que escribir sus necesidades, definiendo las actividades que realizará el sistema. Se creará un documento llamado Historias del usuario (User Stories).
3. El cliente en el sitio: se le dará poder para determinar los requerimientos, definir la funcionalidad, señalar las prioridades y responder las preguntas de los programadores.
4. Programación en parejas: uno de los principios más radicales y en el que la mayoría de gerentes de desarrollo pone sus dudas. Requiere
14
que todos los programadores XP escriban su código en parejas, compartiendo una sola máquina.
Proceso continuo 1. Integración continua: permite al equipo hacer un rápido progreso implementando las nuevas características del software.
2. Refactorización: permite a los equipos de programadores XP mejorar el diseño del sistema a través de todo el proceso de desarrollo.
3. Entregas pequeñas: colocan un sistema sencillo en producción rápidamente que se actualiza de forma rápida y constante permitiendo que el verdadero valor de negocio del producto sea evaluado en un ambiente real.
Entendimiento compartido 1. Diseño simple: se basa en la filosofía de que el mayor valor de negocio es entregado por el programa más sencillo que cumpla los requerimientos. Simple Design se enfoca en proporcionar un sistema que cubra las necesidades inmediatas del cliente, ni más ni menos.
2. Metáfora: desarrollada por los programadores al inicio del proyecto, define una historia de cómo funciona el sistema completo.
15
3. Propiedad colectiva del código: un código con propiedad compartida. Nadie es el propietario de nada, todos son el propietario de todo.
4. Estándar de codificación: define la propiedad del código compartido así como las reglas para escribir y documentar el código y la comunicación entre diferentes piezas de código desarrolladas por diferentes equipos.
Bienestar del programador 1. La semana de 40 horas: la programación extrema sostiene que los programadores cansados escriben código de menor cualidad.
ACTIVIDADES DE LA PROGRAMACIÓN EXTREMA Por otra parte la XP gira en torno a cuatro actividades principales:
Codificar Es necesario codificar y plasmar las ideas a través del código. En programación, el código expresa la interpretación del problema, así se puede utilizar el código para comunicar, para hacer comunes las ideas, y por tanto para aprender y mejorar.
Hacer pruebas Las pruebas dan la oportunidad de saber si lo implementado es lo que en realidad se tenía en mente. También son
16
indicativos de que el trabajo funciona, cuando no se pueda pensar en cualquier prueba que pudiese originar un fallo en el sistema, entonces el mismo estará realizado por completo. Calero (2003) "Los programadores no lo conocemos Escuchar Según Calero todo, y sobre todo muchas cosas que las personas de negocios piensan que son interesantes. Si ellos pudieran programarse su propio software ¿para qué nos querrían?". Es importante escuchar a los clientes acerca de cuáles son los problemas de su negocio de una manera activa, explicando lo que es posible de obtener y lo que no es posible de obtener, para que esta realimentación entre ambos ayuden a entender los problemas de una forma objetiva.
Diseñar El diseño crea una estructura que organiza la lógica del sistema, un buen diseño permite que el sistema crezca con cambios en un solo lugar. Los diseños deben de ser sencillos, si alguna parte del sistema es de desarrollo complejo, lo apropiado es dividirla en varias. Si hay fallos en el diseño o malos diseños, estos deben de ser corregidos cuanto antes. Resumiendo las actividades de Xp: Se hace necesario codificar porque sin código no hay programas, Se deben hacer pruebas por que sin pruebas no se sabe si se ha acabado de codificar, tenemos que escuchar, porque si
17
no se escucha no se sabe que codificar ni probar, y por ultimo hay que diseñar para poder codificar, probar y escuchar indefinidamente.
INSTRUMENTOS USADOS EN LA PROGRAMACION EXTREMA Según Anaya (2007) dentro de los principales instrumentos usados en la programación extrema se encuentran las historias de usuario, las tareas de ingeniería y las tarjetas CRC. Por su parte las historias de usuario representan una breve descripción del comportamiento del sistema, emplea terminología del cliente sin lenguaje técnico, se realiza una por cada característica principal del sistema, se emplean para hacer estimaciones de tiempo y para el plan de lanzamientos. Las Historias de Usuario tienen tres aspectos: tarjeta (se almacena suficiente información para identificar y detallar la historia), conversación (cliente y programadores discuten la historia para ampliar los detalles) y pruebas de aceptación (permite confirmar que la historia ha sido implementada correctamente) Asimismo se encuentran en cuentran las tar eas d e in g en ier ía , las cuales presentan el siguiente formato:
18
Tarea de Ingeniería Número Tarea:
Historia de Usuario (Nro. y Nombre):
Nombre Tarea: Tipo de Tarea : Desarrollo / Corrección / Mejora / Otra (especificar) Fecha Inicio:
Puntos Estimados: Fecha Fin:
Programador Responsable: Descripción:
Y finalmente se tienen las tarjetas CRC, las cuales se dividen en tres secciones que contienen la información del nombre de la clase, sus responsabilidades y sus colaboradores. Una clase es cualquier persona, cosa, evento, concepto, pantalla o reporte. Las responsabilidades de una clase son las cosas que conoce y las que realiza, sus atributos y métodos. Los colaboradores de una clase son las demás clases con las que trabaja en conjunto para llevar a cabo sus responsabilidades
19
CICLO DE VIDA DE LA PROGRAMACION PROGR AMACION EXTREMA De acuerdo con Hurtado (2005), el ciclo de vida de la programación extrema se resalta el carácter interactivo e incremental del desarrollo, es decir, la realización de un conjunto de funcionalidades determinadas (conjunto de historia de usuarios) en u tiempo determinado. Dentro de las principales fases Anaya (2007) destaca:
Fase de exploración
Los clientes plantean de forma general las historias de usuarios. El equipo de desarrollo se familiariza con las herramientas, tecnologías y prácticas que se utilizarán en el proyecto Se prueba la tecnología y se exploran las posibilidades de la arquitectura del sistema construyendo un prototipo Esta fase toma pocas semanas a pocos meses, dependiendo del tamaño y familiaridad que tengan los programadores con la tecnología.
Fase del planeamiento
Se priorizan las historias de usuario Los programadores estiman cuánto esfuerzo requiere cada historia y a partir de allí se define el cronograma El cronograma fijado en la etapa de planeamiento se realiza a un número de iteraciones, cada una toma de una a cuatro semanas en ejecución. Las pruebas funcionales creadas por el cliente se ejecutan al final de cada iteración. Al final de la última iteración el sistema está listo para producción. La fase de planeamiento toma un par de días.
20
Fase de producción
Se requiere prueba y comprobación extra del funcionamiento del sistema antes de que éste se pueda liberar al cliente. los nuevos cambios pueden todavía ser encontrados y debe tomarse la decisión de si se incluyen o no en el release actual. Las ideas y las sugerencias pospuestas se documentan para una puesta en práctica posterior por ejemplo en la fase de mantenimiento Después de que se realice el primer release productivo para uso del cliente, el proyecto de Xp debe mantener el funcionamiento del sistema mientras que realiza nuevas iteraciones
Fase de mantenimiento
Requiere de un mayor esfuerzo para satisfacer también las tareas del cliente Puede requerir la incorporación de nueva gente y cambiar la estructura del equipo
Fase de muerte
El cliente no tiene más historias para ser s er incluidas en el sistema. Requiere que se satisfagan las necesidades del cliente en otros aspectos como rendimiento y confiabilidad del sistema Se genera la la documentación final del sistema y no se realizan más cambios en la arquitectura La muerte del proyecto también ocurre cuando el sistema no genera los beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo
21
Estas fases tienen una secuencia a lo largo del desarrollo del proyecto y además implican una interrelación de actividades y actores que se representa mediante el siguiente diagrama:
Ciclo de vida de eXtreme Programming Fuente: Anaya 2007
ACTORES EN LA PROGRAMACION EXTREMA Para
Anaya
(2007),
Existen
diferentes
roles
(actores)
y
responsabilidades en la programación extrema para diferentes tareas y propósitos durante el proceso. Entre ellos se encuentran:
22
Programador (Programmer)
Responsable de decisiones técnicas
Responsable de construir el sistema
Cliente (Customer)
Es parte del equipo
Determina qué construir y cuándo
Rastreador (Tracker) Probador (Tester)
En la programación extrema, los programadores diseñan, programan y realizan las pruebas
Entrenador (Coach)
Sin distinción entre analistas, diseñadores o codificadores
Escribe tests funcionales para determinar cuándo está completo un determinado aspecto El líder del equipo - toma las decisiones importantes Principal responsable del proceso Tiende a estar en un segundo plano a medida que el equipo madura
Observa sin molestar
Conserva datos históricos
Ayuda al cliente con las pruebas funcionales
Se asegura de que los test funcionales se ejecutan
CRITICAS A LA PROGRAMACION EXTREMA La programación extrema tiene muchas muchas críticas, especialmente contra la programación por parejas, ya que muchos programadores con gran sentimiento de posesión del código, piensan que ellos son los mejores
23
conocedores de las herramientas y lenguajes que utilizan y que si alguien no lo entiende es porque no sabe lo suficiente. (Anaya, 2007) Asimismo, se critica el mito de las 40 horas semanales ya que es un lujo para las exigencias del mercado. También se dice que sólo puede funcionar con programadores muy buenos, como Kent Beck, que son capaces de hacer un buen diseño, sencillo y fácilmente extensible. Está diseñado para grupos de pequeños programadores, más de 10 ya sería muy complicado, y más aun para que estén en el mismo centro de trabajo. Por otro lado se se destaca que la la programación extrema no ha inventado ningún método nuevo, sencillamente ha recogido métodos ya existentes y los ha agrupado, y ha comprobado que funcionen.
24
CONCLUSIONES Se puede decir que
programación extrema es una forma ligera,
eficiente, flexible, predecible, científica y divertida de generar software" y ha surgido desde la experiencia, como una forma de resolver los problemas encontrados en los procesos de desarrollo software en los que se han visto involucrados sus autores. La misma, no ha inventado ningún método nuevo, sencillamente ha recogido métodos ya existentes y los ha agrupado, y ha comprobado que funcionen, partiendo de las debilidades de las tradicionales, por lo cual se presenta como una buena opción al momento de desarrollar un trabajo cuando se trabaja en tiempos cambiantes y cuando lo principal es la satisfacción del cliente.
25
BIBLIOGRAFÍA
Agulló, Pedro. (2005). La Pro gram ación Extrem a: su s prácticas . Software
Mentors.
Disponible
en:
http://www.softwarementors.com/sm_formacion/xp/articulo_introduccio n_xp.htm
Anaya, Adrián . (2007). A p ropósito de pro gramación extrema extrema XP (eXtreme
Programming).
Disponible
en:
http://www.monografias.com/trabajos51/programacionextrema/programacion-extrema.shtml
Antezana, Israel. (2008). Los extremos de la programación extrema. Jornadas Latinoamericanas Ágiles. Argentina. Disponible en:
http://www.agiles2008.org/common/pdfs/Antezana%20%20Los%20Extremos%20de%20XP.pdf
Beck, Kent (1999). Extreme Programm Programm ing Explained. Disponible en: http://www.mip.sdu.dk/~brianj/Extreme%20Programming%20Explaine d%20-%20Kent%20Beck;%20Addison-Wesley,%201999.pdf
Calero, Manuel (2003).
Una explicación de la programación
extrema (XP)V . Encuentro usuarios xBase. España. Original de
http://www.apolosoftware.com/,, http://www.apolosoftware.com/
disponible disponible
en:
http://www.willydev.net/descargas/prev/ExplicaXp.pdf
Programación Extrema Extrema Perú. Disponible Espinoza, Edgar. (2007). Programación
en: http://www.slideshare.net/edgarespinoza/programacion-extrema
26
Fernández, Gerardo (2002). Introducción a Extreme . Extreme Programm ing Revista
XP
Overview.
Disponible
en:
http://www.info-
ab.uclm.es/asignaturas/42551/trabajosAnteriores/Trabajo-XP.pdf
Ferrer, Jorge. (2003). Prog ramación eXtrema, softw are libre
y
Politécnica de Madrid. España. Disponible aplicabilidad. Universidad Politécnica en: http://www.willydev.net/descargas/Articulos/General/xplibreap.aspx
Fowler, Martin. (2003). La Nu eva Met od ol og ía.
Disponible en:
http://www.programacionextrema.org/articulos/newMethodology.es.ht ml#tth_sEc5.1
González, Víctor. (s.f). XP: Extreme Programming Instituto de Ingeniería
Eléctrica.
Uruguay.K
Disponible
en:
http://iie.fing.edu.uy/~nacho/blandos/seminario/XProg1.html
López,
Carlos. (2009). Programación Programación extrema.
Disponible en:
http://kmels.net/files/2009/uvg/cc2003/Resources/Contenidos/XP/xp.pdf
Paredes, Fausto (sf).Extreme programming.
Priolo, Sebastian. (2007). Programación Programación Extrema. Sextas Jornadas Nacionales de Administración e Informática. UNER. Argentina. Disponible en: http://www.fcad.uner.edu.ar/jai/6JAI/XP_6JAI.pdf
Robles, Gregorio y Jorge, Ferrer. (2002). Program ación eXtrema eXtrema y Software
Libre.
Disponible
en:
http://es.tldp.org/Presentaciones/200211hispalinux/ferrer/robles-ferrerponencia-hispalinux-2002.html
27
Shaping Software. (2008). Extreme Prog ramm ing (XP) at a Glance Glance . Disponible
en:
http://shapingsoftware.com/2008/08/18/extreme-
programming-xp-at-a-glance/
Urbina, Diego. (2009). Programación . Universidad César Programación Extrema Vallejo.
Perú.
Disponible
en:
http://www.scribd.com/doc/15250014/Programming-Xtreme-InformUcv-University
Wake, William. (2005). Programación Extrema . Disponible en: http://www.lugli.org.ar/mediawiki/index.php/Programacion_Extrema
28