Está en la página 1de 11

Universidad Autónoma Gabriel René Moreno

Facultad de Ingeniería en Ciencias de la Computación y


Telecomunicaciones

Investigación U2-SC – Desarrollo Ágil

Docente:
Ing. Balcázar Veizaga Evans
Materia:
Tecnología Web – INF513 SC

Alumno:
Univ. Melendez Martínez Sergio Driss 215049187

Santa Cruz – Septiembre 2022


Tecnología Web – INF513

Contenido
1. Introducción.- .............................................................................................................................2
2. Problema.- ..................................................................................................................................2
3. Objetivos.- ..................................................................................................................................2
3.1. Objetivo general.- ...............................................................................................................2
3.2. Objetivos específicos.- .......................................................................................................2
4. Metodologia.- .............................................................................................................................3
5. Marco teorico.- ...........................................................................................................................3
Extreme Programming (XP) ...........................................................................................................3
Qué es? .......................................................................................................................................4
Objetivos ....................................................................................................................................4
Características principales ..........................................................................................................4
SCRUM .........................................................................................................................................4
Qué es? .......................................................................................................................................4
Componentes del SCRUM .........................................................................................................5
6. Desarrollo.- ................................................................................................................................6
Extreme Programming (XP) ...........................................................................................................6
SCRUM .........................................................................................................................................8
7. Resultados.- ................................................................................................................................9
8. Conclusiones y recomendaciones .-..........................................................................................10
9. Bibliografia.- ............................................................................................................................10

Página 1
Tecnología Web – INF513

1. Introducción.-

Actualmente en el mundo del desarrollo existen numerosas propuestas de metodología para su


desarrollo. Tradicionalmente estas metodologías se centran en el control del proceso, estableciendo
rigurosamente las actividades, herramientas y notaciones al respecto dirigidos rigurosamente por una
documentación.

El método tradicional no resulta ser el más adecuado para muchos de los proyectos actuales en donde
el entorno del sistema es muy cambiante y los tiempos de desarrollo tienden a ser cada vez más cortos,
pero exigiendo un mantenimiento en la alta calidad.

Las metodologías agiles emergen como una buena opción para las exigencias de los desarrollos
actuales. En las cuales se valora más las interacciones del equipo de desarrollo y una colaboración e
interacción constante con el cliente, responder a los cambios que vayan surgiendo en el proceso del
desarrollo más que seguir estrictamente un único plan.

En esta investigación veremos dos de las metodologías agiles: Scrum y extreme programming,
tratando de resaltar sus diferencias, los principales objetivos de cada uno, que beneficios o
contrapartes de las dos metodologías.

2. Problema.-

La aplicación de metodologías de desarrollo tradicionales trae varios inconvenientes, generan pedida


de capital y tiempo para las empresas que se encargan de desarrollar software en tiempos muy
limitados. Estas metodologías tradicionales requieren de mucho tiempo para poder ver el producto
terminado, se maneja por etapas y no se puede pasar a la siguiente sin que la etapa previa haya
culminado, si aparece algún error en alguna etapa implica un rediseño y nueva programación de esa
etapa y etapas anteriores.

3. Objetivos.-
3.1. Objetivo general.-
• Investigar metodologías agiles de Extreme Programming y Scrum demostrando ser una
mejor opción ante las metodologías tradicionales.

3.2. Objetivos específicos.-


• Obtener una idea clara de que es el Extreme Programming
• Saber características principales de Extreme Programming.
• Obtener una idea clara de que es el Scrum
• Saber características principales de Extreme Programming.
• Investigar proyectos de aplicación de ambas metodologías.
• Dar una conclusión de ambas metodologías.

Página 2
Tecnología Web – INF513

4. Metodologia.-
Se aplicará la metodología de la investigación para este caso. Esta metodología consta de los
siguientes pasos:

• Selección del tema


Se realiza una revisión bibliográfica de la información ya existente del tema sobre el cual
harás tu investigación. Es importante hacer esta revisión tomando en cuenta los textos más
actualizados que existan sobre el tópico.
• Planteamiento del problema
Una vez identificada la información existente, se plantea el problema a resolver en el estudio
usando un enunciado interrogativo.
• Marco teórico
Aquí se colocan todas las teorías y antecedentes de información existente. Estas serán tus
bases teóricas para sustentar el estudio, así como poder justificar toda la investigación.
• Justificación
Como se expone en el marco teórico, el estudio tiene que ser justificado y es aquí donde
planteas el porqué de tu estudio, su relevancia y porqué es importante. Es crucial plantear
interrogantes que validen los beneficios de la investigación y en qué contribuye.
• Hipótesis
Se debe el plantear y enunciar de forma concreta la posible resolución al problema que inspiró
esta investigación.
• Objetivos
Se establece la ruta para poder comprobar la hipótesis, los objetivos deben ser claros y buscar
resolver el estudio.
• Selección de la metodología
Se eligen las técnicas para realizar la investigación y recopilar datos pertinentes, pueden
utilizarse entrevistas, cuestionarios y diarios de campo.
• Conclusión
La conclusión es la resolución de la hipótesis expuesta en el estudio, se pueden plantear los
hallazgos descubiertos por la investigación, así como defender la postura del estudio.

5. Marco teorico.-
Extreme Programming (XP)

Nace de la mano de Kent Beck en el verano de 1996, cuando trabajaba para Chrysler Corporation.
Él tenía varias ideas de metodologías para la realización de programas que eran cruciales para el
buen desarrollo de cualquier sistema. Las ideas primordiales de sus sistemas las comunico en las
revistas C++ Magazine en una entrevista que esta le hizo el año 1999.

Página 3
Tecnología Web – INF513

Qué es?
Es una Metodología ágil ligera de desarrollo de aplicaciones que se basa en la simplicidad, la
comunicación y la realimentación del código desarrollado.

Objetivos
• La Satisfacción del cliente.
• Potenciar el trabajo en grupo.
• Minimizar el riesgo actuando sobre las variables del proyecto: costo, tiempo, calidad,
alcance

Características principales
• Metodología basada en prueba y error para obtener un software que funcione realmente.
• Fundamentada en principios.
• Está orientada hacia quien produce y usa software (el cliente participa muy activamente).
• Reduce el coste del cambio en todas las etapas del ciclo de vida del sistema.
• Combina las que han demostrado ser las mejores prácticas para desarrollar software, y las
lleva al extremo.
• Cliente bien definido.
• Los requisitos pueden cambiar.
• Grupo pequeño y muy integrado (2-12 personas).
• Equipo con formación elevada y capacidad de aprender.

Herramientas de la metodología

• Historias de usuario: representan una breve descripción del comportamiento del sistema, se
realizan por cada característica principal del sistema y son utilizadas para cumplir
estimaciones de tiempo y el plan de lanzamientos
• Tareas de ingenierías (Task Cards): Una Historias de Usuario se descompone en varias
tareas de ingeniería, las cuales describen las actividades que se realizarán en cada historia de
usuario, las tareas de ingeniería se vinculan más al desarrollador.
• Pruebas de aceptación: son de vital importancia para el éxito de una iteración y el comienzo
de la siguiente, con lo cual el cliente puede conocer el avance en el desarrollo del sistema y
a los programadores lo que les resta por hacer.
• Tarjetas CRC (clase, responsabilidades, colaboraciones): permiten conocer que clases
componen el sistema y cuales interactúan entre sí. Se dividen en tres secciones: Nombre de
la Clase, Responsabilidades y Colaboradores.

SCRUM
Qué es?
Scrum es un proceso en el que se aplican de manera regular un conjunto de procesos para trabajar en
equipo, y obtener el mejor resultado posible de un proyecto.

Página 4
Tecnología Web – INF513

Scrum es el nombre con el que se denomina a los marcos de desarrollo ágiles caracterizados por:

• Adoptar una idea total de la realización del producto, en lugar de la planificación y ejecución
completa del producto.
• Enfocarse más en las zonas de solapamiento, en lugar de realizar una tras otra en un ciclo de
cascada.

Scrum es adecuado para aquellas empresas en las que el desarrollo de los productos se realiza en
entornos que se caracterizan por tener:

1.Incertidumbre: Sobre esta variable se plantea el objetivo que se quiere alcanzar sin proporcionar
un plan detallado del producto. Esto genera un reto y da una autonomía que sirve para generar una
“tensión” adecuada para la motivación de los equipos.

2.Auto-organización: Los equipos son capaces de organizarse por sí solos, no necesitan roles para
la gestión, pero tienen que reunir las siguientes características: Autonomía: Son los encargados de
encontrar la solución usando la estrategia que encuentren adecuada. Autosuperación: Las soluciones
iniciales sufrirán mejoras.♣Auto-enriquecimiento: Al ser equipos multidisciplinares se ven
enriquecidos de forma mutua,aportando soluciones que puedan complementarse.

3.Control moderado: Se establecerá un control suficiente para evitar descontroles. Se basa en crear
un escenario de “autocontrol entre iguales” para no impedir la creatividad y espontaneidad de los
miembros del equipo.

4.Transmisión del conocimiento: Todo el mundo aprende de todo el mundo. Las personas pasan de
unos proyectos a otros y así comparten sus conocimientos a lo largo de la organización.

Componentes del SCRUM

Reuniones
1.Planificación del Backlog Se definirá un documento en el que se reflejarán los requisitos del sistema
por prioridades. En esta fase se definirá también la planificación del Sprint 0,en la que se decidirá
cuálesvan a ser los objetivos y el trabajo que hay que realizar para esa iteración.Se obtendrá además
en esta reunión un Sprint Backlog,que es la lista de tareas y que es el objetivo más importante del
Sprint.

2.Seguimiento del Sprint En esta fase se hacen reuniones diarias en lasque las 3 preguntas principales
para evaluar el avance de las tareas serán:

- ¿Qué trabajo se realizó desde la reunión anterior?

- ¿Qué trabajo se hará hasta una nueva reunión?

- Inconvenientes que han surgido y qué hay que solucionar para poder continuar

Página 5
Tecnología Web – INF513

3.Revisión del Sprint Cuando se finaliza el Sprint se realizará una revisión del incremento que se ha
generado. Se presentarán los resultados finales y una demo o versión, esto ayudará a mejorar el
feedback con el cliente.

6. Desarrollo.-
Extreme Programming (XP)
La Programación Extrema consta de 4 fases, las cuales son:

-PLANEACIÓN:

La Metodología XP plantea la planificación como un diálogo continuo entre las partes involucradas
en el proyecto, incluyendo al cliente, a los programadores y a los coordinadores. El proyecto comienza
recopilando las historias de usuarios, las que constituyen a los tradicionales casos de uso. Una vez
obtenidas estas historias de usuarios, los programadores evalúan rápidamente el tiempo de desarrollo
de cada una. Los Conceptos básicos de la planificación son:

Las Historias de Usuarios, las cuales son descritas por el cliente, en su propio lenguaje,
como descripciones cortas de lo que el sistema debe realizar.

El Plan de Entregas (ReleasePlan), establece que las historias de usuarios serán agrupadas
para conformar una entrega y el orden de las mismas. Este cronograma será el resultado de
una reunión entre todos los actores del proyecto.

Plan de Iteraciones (Iteration Plan), las historias de usuarios seleccionadas para cada
entrega son desarrolladas y probadas en un ciclo de iteración, de acuerdo al orden
preestablecido.

Reuniones Diarias de Seguimiento (Stand –Up Meeting), el objetivo es mantener la


comunicación entre el equipo y compartir problemas y soluciones.

-DISEÑO:

La Metodología XP hace especial énfasis en los diseños simples y claros. Los conceptos más
importantes de diseño en esta metodología son los siguientes:

Simplicidad, Un diseño simple se implementa más rápidamente que uno complejo. Por ello
XP propone implementar el diseño más simple posible que funcione.

Soluciones “Spike”, Cuando aparecen problemas técnicos, o cuando es difícil de estimar el


tiempo para implementar una historia de usuario, pueden utilizarse pequeños programas de
prueba (llamados “Spike”), para explorar diferentes soluciones.

Página 6
Tecnología Web – INF513

Recodificación(“Refactoring”), Consiste en escribir nuevamente parte del código de un


programa, sin cambiar su funcionalidad, a los efectos de crearlo más simple, conciso y
entendible. Las metodologías de XP sugieren re codificar cada vez que sea necesario.

Metáforas, XP sugiere utilizar este concepto como una manera sencilla de explicar el
propósito del proyecto, así como guiar la estructura del mismo. Una buena metáfora debe ser
fácil de comprender para el cliente y a su vez debe tener suficiente contenido como para
quesirva de guía a la arquitectura del proyecto.

-CODIFICACIÓN:

Disponibilidad del Cliente, Uno de los requerimientos de XP es tener al cliente disponible


durante todo el proyecto. No solamente como apoyo a los desarrolladores, sino formando
parte del grupo. El Involucramiento del cliente es fundamental para que pueda desarrollarse
un proyecto con la metodología XP. Al comienzo del proyecto, el este debe proporcionar las
historias de usuarios. Pero, dado que estas historias son expresamente cortas y de “alto nivel”,
no contienen los detalles necesarios para realizar el desarrollo del código. Estos detalles deben
ser proporcionados por el cliente, y discutidos con los desarrolladores, durante la etapa de
desarrollo.

Uso de Estándares, XP promueve la programación basada en estándares, de manera que sea


fácilmente entendible por todo el equipo, y que facilite la re codificación.

Programación Dirigida por las Pruebas (“Test-Driven Programming”), En las


metodologías tradicionales, la fase de pruebas, incluyendo la definición de los test, es
usualmente realizada sobre el final del proyecto, o el final del desarrollo de cada módulo. La
metodología XP propone un modelo inverso, primero se escribe los test que el sistema debe
pasar. Luego, el desarrollo debe ser el mínimo necesario para pasar las pruebas previamente
definidas. Las pruebas a los que se refiere esta práctica, son las pruebas unitarias, realizados
por los desarrolladores. La definición de estos test al comienzo, condiciona o “dirige” el
desarrollo.

Programación en Pares, XP propone que se desarrolle en pares de programadores, ambos


trabajando juntos en un mismo ordenador. Si bien parece que ésta práctica duplica el tiempo
asignado al proyecto (y por ende, los costos en recursos humanos), al trabajar en pares se
minimizan los errores y se logran mejores diseños, compensando la inversión en horas. El
producto obtenido es por lo general de mejor calidad que cuando el desarrollo se realiza por
programadores individuales.

Integraciones Permanentes, Todos los desarrolladores necesitan trabajar siempre con la


“última versión”. Realizar cambios o mejoras sobre versiones antiguas causan graves
problemas, y retrasan al proyecto. Es por eso que XP promueve publicar lo antes posible las
nuevas versiones, aunque no sean las últimas, siempre que estén libres de errores. Idealmente,
todos los días deben existir nuevas versiones publicadas. Para evitar errores, solo una pareja
de desarrolladores puede integrar su código a la vez.

Página 7
Tecnología Web – INF513

Propiedad Colectiva del Código, En un proyecto XP, todo el equipo puede contribuir con
nuevas ideas que apliquen a cualquier parte del proyecto. Asimismo, una pareja de
programadores puede cambiar el código que sea necesario para corregir problemas, agregar
funciones o re codificar.

Ritmo Sostenido, La Metodología XP indica que debe llevarse un ritmo sostenido de trabajo.
El concepto que se desea establecer con esta práctica es planificar el trabajo de forma a
mantener un ritmo constante y razonable, sin sobrecargar al equipo.

-PRUEBAS :

Pruebas Unitarias, Todos los módulos deben de pasar las pruebas unitarias antes de ser
liberados o publicados. Por otra parte, como se mencionó anteriormente, las pruebas deben
ser definidas antes de realizar el código (“Test-Driven Programmming”). Que todo código
liberado pase correctamente las pruebas unitarias, es lo que habilita que funcione la
propiedad colectiva del código.

Detección y Corrección de Errores, Cuando se encuentra un error (“Bug”), éste debe ser
corregido inmediatamente, y se deben tener precauciones para que errores similares no
vuelvan a ocurrir. Asimismo, se generan nuevas pruebas para verificar que el error haya sido
resuelto.

Pruebas de Aceptación, Son creadas en base a las historias de usuarios, en cada ciclo de la
iteración del desarrollo. El Cliente debe especificar uno o diversos escenarios para comprobar
que una historia de usuario ha sido correctamente implementada. Asimismo, en caso de que
fallen varias pruebas, deben indicar el orden de prioridad de resolución. Una historia de
usuario no se puede considerar terminada hasta que pase correctamente todas las pruebas de
aceptación. (Joskowicz, 2008)

SCRUM

Scrum al ser una metodología de desarrollo ágil tiene como base la idea de creación de ciclos breves
para el desarrollo, que comúnmente se llaman iteraciones y que en Scrum se llamarán “Sprints”. Para
entender el ciclo de desarrollo de Scrum es necesario conocer las 5 fases que definen el ciclo de
desarrollo ágil:

1.Concepto:

Se define de forma general las características del producto y se asigna el equipo que se encargará de
su desarrollo.

2.Especulación:

en esta fase se hacen disposiciones con la información obtenida y se establecen los límites que
marcarán el desarrollo del producto, tales como costes y agendas. Se construirá el producto a partir

Página 8
Tecnología Web – INF513

de las ideas principales y se comprueban las partes realizadas y su impacto en el entorno. Esta fase se
repite en cada iteración y consiste, en rasgos generales, en:

-Desarrollar y revisar los requisitos generales.

-Mantener la lista de las funcionalidades que se esperan.

-Plan de entrega. Se establecen las fechas de las versiones, hitos e iteraciones. Medirá el
esfuerzo realizado en el proyecto.

3.Exploración:

Se incrementa el producto en el que se añaden las funcionalidades de la fase de especulación.

4.Revisión:

El equipo revisa todo lo que se ha construido y se contrasta con el objetivo deseado.

5.Cierre:

Se entregará en la fecha acordada una versión del producto deseado. Al tratarse de una versión, el
cierre no indica que se ha finalizado el proyecto, sino que seguirá habiendo cambios, denominados
“mantenimiento”, que hará que el producto final se acerque al producto final deseado.

7. Resultados.-

Como resultado de esta investigación se a demostrado que las metodologías agiles están basadas
en el desarrollo de proyectos que necesitan rapidez y flexibilidad para adaptarse a las necesidades
del cliente y mayormente están enfocadas en resultados.

Averiguando además que Scrum es una de las metodologías agiles de gestión de proyectos más
demandadas, debido a su rápida difusión y la filosofía de trabajo detrás de la metodología.

Página 9
Tecnología Web – INF513

8. Conclusiones y recomendaciones .-

Las metodologías agiles, tanto para Extreme Programming XP como para SCRUM, no solo dan
más valor a la entrega de tiempos estrechos o a la entrega pronta de resultados, siendo una
filosofía de trabajo, se le da más valor al cliente aumentando considerablemente la comunicación
entre el equipo de desarrollo y este.

9. Bibliografia.-
https://gravitar.biz/bi/metodologias-agiles-intro/

https://dosideas.com/noticias/metodologias/822-una-introduccion-a-extreme-programming

https://aalbertovargasc.files.wordpress.com/2011/07/presentacion-xp.pdf

https://agileroad.com/es/blog/introduccion-scrum.html

https://metodologiascrum.readthedocs.io/en/latest/Scrum.html

http://openaccess.uoc.edu/webapps/o2/bitstream/10609/17885/1/mtrigasTFC0612memoria.pdf

https://eigp.es/blog/la-importancia-de-las-metodologias-agiles/

Página 10

También podría gustarte