1.
Metodología XP
1.1 Historia
En 1996 Kent Beck, un ingeniero de software, fue contratado por la marca de
automóviles Chrysler para trabajar en su sistema de compensación exhaustiva para el
pago de nóminas, siendo este un proyecto que no se ajustaba con las metodologías
tradicionales, Kent desarrolló una nueva forma de trabajo para gestionar el desarrollo del
sistema cumpliendo el corto plazo en un año y dos meses, logrando superar a otro
equipo que lo intentó por 30 años, esta metodología pasaría a llamarse Programación
Extrema y Kent se convirtió en pionero de los patrones de diseño y del Manifiesto Ágil
(2001) al que pertenece la Metodología XP.
1.2 ¿Qué es Extreme Programming?
La palabra Extreme o extremo proviene del concepto de que si algo se considera bueno
porque no llevarlo al limite y utilizarlo al máximo estableciendo el termino como algo
nunca antes visto.
La Programación extrema es un método ágil de gestión de proyectos y desarrollo de
software que se centra en la velocidad y la simplicidad con ciclos de desarrollo cortos
inspirada en los cambios constantes del internet, se considera una metodología liviana
debido a que no genera mucha documentación, tambien se define como un conjunto de
prácticas y reglas empeladas para desarrollar software que indican como aplicarla por lo
que se basa en 5 valores y 8 principios de programación.
1.3 Objetivos de XP
Establecer las mejores prácticas de ingeniería de software en el desarrollo de
proyectos, dejar al desarrollador establecer las mejores practicas de desarrollo
Busca mejorar la productividad de proyectos
Busca que no haya proyectos que se corten a medio camino
Garantizar la calidad del software desarrollado, haciendo que se supere las
expectativas del cliente
1.4 Valores XP
Un valor es una cualidad que en este contexto tiene la metodología XP
La metodología XP promueve cualidades como la comunicación constante con el
cliente, la simplicidad en el diseño, la retroalimentación continua y el coraje para
enfrentar cambios y desafíos.
1.4.1 Comunicación
El mayor de los problemas es que el cliente y el equipo no se sepan comunicar, Se
debe establecer una vía de comunicación como reuniones programadas con el cliente y
con el equipo, se hagan reuniones diarias. Todos los integrantes de un equipo trabajan
conjuntamente en cada etapa del proyecto. La falta de comunicación impide que los
conocimientos fluyan dentro de un equipo.
1.4.2 Simplicidad, Practicidad o Sencillez
XP propone que el principio de hacer las cosas más simples pueda funcionar con
relación al proceso y a la comunicación, los desarrolladores se esfuerzan por escribir
código simple trayendo más valor al producto, ya que ahorra tiempo y esfuerzos. Es
mejor hacer algo simple hoy que hacer algo complicado y probablemente nunca usarlo
mañana.
1.4.3 Retroalimentación
Tomar en cuenta en cada revisión, que salió bien y que salió mal para la siguiente
vez mejorar. Concreta y frecuente revisión del cliente, del equipo y de los usuarios
finales esto da una mayor oportunidad de dirigir el esfuerzo eficientemente sin
cometer los mismos errores. Toma en cuenta que, temprana y constante la
retroalimentación es necesaria para anticiparse a los cambios obtener
retroalimentación sobre estos, y mejorar el producto de acuerdo con los nuevos
requisitos. Este valor se realiza manteniendo comunicación con el equipo y cuando se
tenga que evaluar el estado del avance del proyecto. Enfatizar y reforzar que se hizo
bien refuerza el valor del Coraje.
1.4.4 Coraje, Valentía o Valor
Existe en el contexto de los anteriores tres valores y si funciona se debe mejorar, Se
debe ser valiente para afrontar los retos de organización para empezar el proyecto,
empezar la primera iteración para construir y admitir que no se hizo algo bien. Los
programadores evalúan objetivamente sus propios resultados sin excusas y siempre
están dispuestos a responder a los cambios.
1.4.5 Respeto
Cada persona asignada a un proyecto contribuye a un objetivo común, El respeto no se
pide, se consigue, Esto se trata de las habilidades que tiene el líder de equipo, si es
permisivo y pasivo el respeto se pierde, si asume su rol de líder siendo puntual y
estricto, el respeto se gana.
1.5 Principios XP
La metodología XP promueve
1.5.1 Retroalimentación rápida
Apenas se encuentre una falencia, la persona que la haya encontrado debe hacerla
conocer al resto del equipo de manera inmediata, se puede usar teléfono, comunicación
directa u otro método de comunicación rápida.
Este tipo de retroalimentación es mucho mas importante frente a eventos externos
como el corte de la luz, retroalimentación frente a fallas.
1.5.2 Trabajo de calidad
Van a haber tareas que los miembros del equipo saben hacer y el resultado por tanto a
de ser de calidad.
1.5.3 Entregas incrementales
Divide y vencerás, en cada iteración se tratan un numero de requerimientos en base a
las historias de usuario de las que se toman las que se están desarrollando y se realiza
la planificación de cómo se resolverá esa parte de sistema, luego se ingresa a una
iteración a desarrollar hasta que en una evaluación las pruebas sean satisfactorias.
1.5.4 Diversidad
Diversidad de trabajo, formas y métodos, Se podrán aplicar diversas técnicas para una
sola etapa.
1.5.6 Asumir simplicidad
Todo el proceso de desarrollo se debe asumir que viene por defecto con el valor de
simplicidad.
1.5.7 Humanidad
Humanizarse, ser más empático con el cliente aplicando los valores del coraje, respeto
y comunicación, donde la forma de trabajo este mas cercano a lo que todos viven y en
el caso del resultado
Ser lo más cercano posible a lo que el equipo y cliente como humano realiza.
Un trabajo de 8 horas diarias y 40 horas semanales debe ser respetado en todo
momento, tiempos fuera de esta planificación se consideran ineficientes
1.5.8 Programación en parejas
Parte de esta idea, si se tiene a una persona viendo el código de otra y viceversa, se está
realizando un control de errores en tiempo real
Debería de haber un solo computador para las dos personas, uno programa mientras el
otro verifica lo que el otro programa
Si le pasa algo a uno de los dos integrantes de la pareja, el otro puede continuar y el
proyecto no se detiene
Metodología, método, técnica y proceso
1.5.9 Refactorización
Siempre va a haber mejoras continuas en el código, documentación e implementación
del proyecto
2. Proceso de Desarrollo XP
El proceso de desarrollo en XP es iterativo e incremental, quiere decir que el software se
desarrolla en ciclos cortos llamados “iteraciones”, cada una de las cuales produce una
versión funcional del software. Este enfoque permite a los equipos de desarrollo
adaptarse rápidamente a los cambios en los requisitos del cliente y mejorar
continuamente el producto.
La metodología XP define 4 variables para cualquier tipo de proyecto de software, costo,
tiempo, calidad y alcance, al definir estas variables al inicio del proyecto se puede
empezar a trabajar.
Tenga en cuenta que los parámetros exactos de estas variables se obtienen solamente al
finalizar el proyecto.
Los modelos de desarrollo base para la metodología son el modelo en espiral, el modelo
iterativo incremental y el modelo por prototipos
2.1. Características u objetivos de XP
XP tiene ciertas características que se deben tomar en cuenta.
Comunicación constante entre el cliente y el equipo de desarrollo, valor de
comunicación
Respuesta rápida a los cambios constantes, practica de entregas
incrementales
La planificación esta abierta con un cronograma de actividades visibles, el
proceso se adapta al proyecto, no al revés
El software que funciona esta por encima de cualquier otra documentación,
valor de simplicidad
Funcionalidad sobre simple o complejo
Los requisitos del cliente y el trabajo del equipo en el proyecto son los
principales factores de éxito al inicio
Estas características y objetivos se aplican si se cumplen los principios y o valores
2.2. Fases de la metodología XP
Extreme programming cuenta con 4 fases de desarrollo, en cada una participan
distintos roles que cumplen ciertas tareas dependiendo el rol y la fase
2.2.1 Planificación
Objetivo
Definir las historias de usuario e Identificar los requisitos iniciales y definir el
alcance del proyecto
Tareas:
Historias de usuario: Describen las características y las funcionalidades
requeridas para el software que se construirá. Cada historia la escribe el
cliente y se coloca en una carta índice, se pueden escribir en cualquier
momento, las historias se ordenarán de la siguiente manera
Aplicación de valores: Aplicar los valores de XP al desarrollo del proyecto
Definición de interés de prueba de asignación:
Realización de un plan de la iteración:
2.2.2 Diseño
Objetivo
Seguir el principio MS (mantenerlo simple) reducir al mínimo los riesgos y facilitar
futuras refactorizaciones
Tareas:
Tarjetas CRC(Colaborador-Responsabilidad-Clase): Identifican y
organizan las clases orientadas al objeto que son relevantes para el
incremento del software actual
Soluciones o Prototipos: Si se encuentra un problema difícil de diseño
como parte del diseño de la historia, se recomienda la creación inmediata de
un prototipo operacional de esa opción de diseño que se conoce como
solución pico
Refabricación: Proceso en el que se cambia el software de tal manera que
no altere el comportamiento externo del código y que mejore la estructura
interna
2.2.3 Codificación
Objetivo
Generar código funcional siguiendo normas o estándares establecidos
Tareas
Programación en parejas: Aplicar el principio de programación en parejas
Interacción continua: Expresar dudas e inquietudes en reuniones diarias
Refactorización: Recodificación
Pruebas unitarias: Aplicadas solo en la fase de codificación o al inicio de la fase
de pruebas
2.2.3 Pruebas
Objetivo
Realizar pruebas exhaustivas de aceptación basadas en las historias de usuario o los
requerimientos del cliente.
Tareas
Planificar pruebas de la iteración
Cubrir necesidades de pruebas de regresión
Diseñar una planificación adaptada a las necesidades del proyecto
Revisar que todos los objetivos estén cubiertos
2.2.4 Lanzamiento
Objetivo
Realizar la entrega del producto final
Tareas
Entregar del producto
Realizar las pruebas finales
Instalar el producto
Realizar el mantenimiento para que empiece su productividad
Referencias
[Link] --- Que es la metodología XP?
[Link]
%20valores%20de%20XP:%20comunicaci%C3%B3n,de%20ellos%20con%20m
%C3%A1s%20detalle.&text=Comunicci%C3%B3n:%20La%20falta%20de
%20comunicaci%C3%B3n,fluyan%20dentro%20de%20un%20equipo.
[Link] --- Extreme Programming
[Link]
principios-y-prcticas