Professional Documents
Culture Documents
I. INTRODUCCIÓN
Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de de la documentación.
La mayoría de los equipos ágiles están localizados en una simple oficina abierta, a veces
llamadas "plataformas de lanzamiento" (bullpen en inglés). La oficina debe incluir revisores,
diseñadores de iteración, escritores de documentación y ayuda y directores de proyecto. Los
métodos ágiles también enfatizan que el software funcional es la primera medida del progreso.
Combinado con la preferencia por las comunicaciones cara a cara, generalmente los métodos
ágiles son criticados y tratados como "indisciplinados" por la falta de documentación técnica.
Las metodologías ágiles, como es el caso de XP, forman parte del movimiento de desarrollo ágil
de software, que se basan en la adaptabilidad de cualquier cambio como medio para aumentar
las posibilidades de éxito de un proyecto.
De forma que una metodología ágil es la que tiene como principios que:
• Los individuos y sus interacciones son más importantes que los procesos y las
herramientas.
• El software que funciona es más importante que la documentación exhaustiva.
• La colaboración con el cliente en lugar de la negociación de contratos.
• La respuesta delante del cambio en lugar de seguir un plan cerrado.
Se puede decir que, este movimiento empezó a existir a partir de febrero de 2001, cuando se
reunieron los representantes de cada una de estas metodologías y terminaron poniendo en
común sus ideas en una declaración conjunta.
Aunque no es posible extendernos aquí sobre este aspecto, creemos importante al menos
reseñar una de las asunciones más importantes e innovadoras que hace XP frente a la mayoría
de los métodos conocidos, y es la referida al coste del cambio. En efecto, siempre ha sido una
verdad universal el hecho de que el coste del cambio en el desarrollo de un proyecto se
incrementaba exponencialmente en el tiempo, como indica la figura 1:
1 de 9
CI-4713 Ingeniería de Software II – Trimestre Abril/Julio 2009
2 de 9
CI-4713 Ingeniería de Software II – Trimestre Abril/Julio 2009
Con el poco tiempo que hace que existe esta metodología, ya se ha generado un gran alboroto
en la comunidad de ingeniería del software. Hay opiniones de todos los gustos de quienes lo
prueban.
II.2 PRINCIPIOS.
3 de 9
CI-4713 Ingeniería de Software II – Trimestre Abril/Julio 2009
Entendimiento compartido.
• 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.
Este proceso permite eliminar redundancias y rejuvenecer los diseños obsoletos de forma
sencilla.
4 de 9
CI-4713 Ingeniería de Software II – Trimestre Abril/Julio 2009
• Metáfora: desarrollada por los programadores al inicio del proyecto, define una historia de
como funciona el sistema completo. XP estimula historias, que son breves descripciones de
un trabajo de un sistema en lugar de los tradicionales diagramas y modelos UML (Unified
Modeling Language). La metáfora expresa la visión evolutiva del proyecto que define el
alcance y propósito del sistema.
Las tarjetas CRC (Clase, Responsabilidad y Colaboración) también ayudarán al equipo a
definir actividades durante el diseño del sistema. Cada tarjeta representa una clase en la
programación orientada a objetos y define sus responsabilidades (lo que ha de hacer) y las
colaboraciones con las otras clases (cómo se comunica con ellas).
• Propiedad colectiva del código: un código con propiedad compartida. Nadie es el
propietario de nada, todos son el propietario de todo. Este método difiere en mucho a los
métodos tradicionales en los que un simple programador posee un conjunto de código. Los
defensores de XP argumentan que mientras haya más gente trabajando en una pieza,
menos errores aparecerán.
• 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. Los programadores las han de seguir de tal manera
que el código en el sistema se vea como si hubiera estado escrito por una sola persona.
5 de 9
CI-4713 Ingeniería de Software II – Trimestre Abril/Julio 2009
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.
6 de 9
CI-4713 Ingeniería de Software II – Trimestre Abril/Julio 2009
Tarjetas CRC.
3ª Fase: Codificación.
4ª Fase: Pruebas.
• Exploración
En esta fase, los clientes plantean a grandes rasgos las historias de usuario que son de interés
para la primera entrega del producto. Al mismo tiempo 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. La fase de exploración toma de pocas semanas a pocos meses, dependiendo del
tamaño y familiaridad que tengan los programadores con la tecnología.
• Fase de Planeamiento o Planificación de la Entrega (Release)
En esta fase el cliente establece la prioridad de cada historia de usuario, y
correspondientemente, los programadores realizan una estimación del esfuerzo necesario de
cada una de ellas. Se toman acuerdos sobre el contenido de la primera entrega y se determina
un cronograma en conjunto con el cliente. Una entrega debería obtenerse en no más de tres
meses. Esta fase dura unos pocos días. Las estimaciones de esfuerzo asociado a la
implementación de las historias la establecen los programadores utilizando como medida el
punto. Un punto, equivale a una semana ideal de programación. Las historias generalmente
valen de 1 a 3 puntos. Por otra parte, el equipo de desarrollo mantiene un registro de la
“velocidad” de desarrollo, establecida en puntos por iteración, basándose principalmente en la
suma de puntos correspondientes a las historias de usuario que fueron terminadas en la última
iteración. La planificación se puede realizar basándose en el tiempo o el alcance. La velocidad
del proyecto es utilizada para establecer cuántas historias se pueden implementar antes de una
7 de 9
CI-4713 Ingeniería de Software II – Trimestre Abril/Julio 2009
IV. ROLES EN XP
8 de 9
CI-4713 Ingeniería de Software II – Trimestre Abril/Julio 2009
Cliente
El cliente escribe las historias de usuario y las pruebas funcionales para validar su
implementación. Además, asigna la prioridad a las historias de usuario y decide cuáles se
implementan en cada iteración centrándose en aportar mayor valor al negocio. El cliente es sólo
uno dentro del proyecto pero puede corresponder a un interlocutor que está representando a
varias personas que se verán afectadas por el sistema.
Encargado de pruebas (Tester)
El encargado de pruebas ayuda al cliente a escribir las pruebas funcionales. Ejecuta las
pruebas regularmente, difunde los resultados en el equipo y es responsable de las herramientas
de soporte para pruebas.
Encargado de seguimiento (Tracker)
El encargado de seguimiento proporciona realimentación al equipo en el proceso XP. Su
responsabilidad es verificar el grado de acierto entre las estimaciones realizadas y el tiempo
real dedicado, comunicando los resultados para mejorar futuras estimaciones.
También realiza el seguimiento del progreso de cada iteración y evalúa si los objetivos son
alcanzables con las restricciones de tiempo y recursos presentes. Determina cuándo es
necesario realizar algún cambio para lograr los objetivos de cada iteración.
Entrenador (Coach)
Es responsable del proceso global. Es necesario que conozca a fondo el proceso XP para
proveer guías a los miembros del equipo de forma que se apliquen las prácticas XP y se siga el
proceso correctamente.
Consultor
Es un miembro externo del equipo con un conocimiento específico en algún tema necesario
para el proyecto. Guía al equipo para resolver un problema específico.
Gestor (Big boss)
Es el vínculo entre clientes y programadores, ayuda a que el equipo trabaje efectivamente
creando las condiciones adecuadas. Su labor esencial es de coordinación.
BIBLIOGRAFÍA Y ENLACES
Letelier, P., Penadés, M.C: “Métodologías ágiles para el desarrollo de software: eXtreme Programming
(XP)”. Laboratorio de Sistemas de Información. Departamento de Sistemas Informáticos y Computación.
Facultad de Informática. Universidad Politécnica de Valencia. Disponible en
http://www.willydev.net/descargas/masyxp.pdf
Programación Extrema, disponible en http://www.programacionextrema.org/
Manifiesto ágil, disponible en http://es.wikipedia.org/wiki/Manifiesto_%C3%81gil
9 de 9