Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Ingeniería Del Software I TPI

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 31

Ingeniería Del Software I

Trabajo Practico Integrador

Alumnos: Aquino Luciano, Bladilo Alex, Suarez Santiago


CONSIGNAS:
1. Fundamentos de las Metodologías Ágiles: Definición de las metodologías ágiles.
Principios y valores del Manifiesto Ágil. Ventajas y desafíos de adoptar
metodologías ágiles.
2. Metodología Scrum: Descripción de Scrum. Roles y responsabilidades en Scrum.
Artefactos y eventos de Scrum. Ventajas y desafíos de Scrum.
3. Metodología Kanban: Descripción de Kanban. Principios y prácticas de Kanban.
Uso de tableros Kanban. Ventajas y desafíos de Kanban.
4. Programación Extrema (XP): Descripción de XP. Valores y prácticas clave de XP.
Técnicas de desarrollo utilizadas en XP. Ventajas y desafíos de XP.
5. Comparativa y selección de metodologías ágiles: Comparación de Scrum, Kanban
y XP en términos de enfoque, aplicabilidad y beneficios. Factores a considerar al
seleccionar una metodología ágil para un proyecto de desarrollo de software
específico.
6. Comparación con Metodologías Tradicionales: Principales diferencias entre las
metodologías ágiles y las tradicionales, en términos de enfoque, flexibilidad,
comunicación y capacidad de respuesta al cambio.
7. Elaborar sus conclusiones sobre las Metodologías Ágiles Incluir las referencias
bibliográficas y referentes de cada Metodología
RESPUESTAS:
Fundamentos de las metodologías agiles:
Definición: Las metodologías agiles son aquellas que permiten adaptar la forma de trabajo
a las condiciones del proyecto, consiguiendo flexibilidad e inmediatez en la respuesta al
proyecto y su desarrollo
Principio y valores del manifiesto ágil:

VALORES:

1. Individuos e interacciones por encima de procesos y herramientas:

El primero de los valores que promueve el manifiesto es que las personas son lo más
importante, por encima de los procesos y las herramientas, por su capacidad para ser
creativas e innovar

2. Software funcionando por encima de documentación exhaustiva:

Esta afirmación sostiene que ver cómo se comportan las funcionalidades esperadas en
software funcionando es más valioso que un documento muy detallado de requisitos, que
además será muy difícil de crear antes del desarrollo de un proyecto por la inestabilidad
de su naturaleza. 

3. Colaboración con el cliente por encima de negociación contractual:

De nada sirve entregar un producto a los usuarios que ya no es relevante para ellos. Este
valor defiende que, en entornos cada vez más cambiantes, tiene más sentido ir creando el
producto con una retroalimentación continua durante su desarrollo, que cumplir a
rajatabla lo pactado de antemano.

4. Respuesta ante el cambio por encima de seguir un plan

El cuarto de los valores de Agile habla de que no tiene sentido utilizar planteamientos
rígidos en escenarios volátiles como el del desarrollo de software. Es más valiosa la
capacidad de respuesta y adaptación a los cambios que la de seguir y asegurar el
cumplimiento de los planes preestablecidos. 
PRINCIPIOS:

1. Satisfacer al cliente mediante la entrega temprana y continua:

El primero de los principios del Manifiesto ágil pone el foco en la satisfacción del cliente y


en como una entrega pronta y frecuente de software valioso son fundamentales para
conseguirla, al incrementar las posibilidades de satisfacer las demandas de los clientes y
propiciar un retorno de la inversión más rápido.

2. Aprovechar el cambio como ventaja competitiva:

El segundo enunciado de la declaración defiende el aprovechamiento de los cambios en


beneficio del cliente, aceptando modificaciones en los requisitos hasta en las últimas
fases de un proyecto.

3. Entregar valor frecuentemente:

El tercer principio del Manifiesto Agile profundiza en el concepto de entrega continúa


planteado en el primer fundamento. Concretamente se refiere a la necesidad de entregar
actualizaciones del software más pequeñas cada menos tiempo. 

4. Cooperación negocio-desarrolladores durante todo el proyecto:

Este principio propone poner fin a las barreras existentes entre los equipos de negocio y
de desarrollo de software, para mejorar la comprensión y colaboración mutua y conseguir
mejores resultados. 

5. Construir proyectos en torno a individuos motivados:

El quinto de los principios de Agile defiende la necesidad de potenciar que los miembros


del equipo de desarrollo se sientan motivados, para que sean capaces de llevar a cabo los
proyectos de la mejor forma. 

6. Utilizar la comunicación cara a cara:

El sexto enunciado del manifiesto habla de la forma de comunicación más adecuada para
llevar a cabo proyectos de forma exitosa: la conversación cara a cara. De todas las formas
de comunicación existentes, la cara a cara es la más efectiva, ya que reducen
notablemente los tiempos de respuesta y los malentendidos

7. Software funcionando como medida de progreso:

El séptimo principio ágil hace referencia a que la medida fundamental para que las
organizaciones conozcan el progreso de un proyecto debe ser el software en
funcionamiento

8. Promover y mantener un desarrollo sostenible

La octava idea de la declaración sostiene que al operar de forma ágil se persigue optimizar
la forma de trabajar para evitar sobrecargas y entregar al mercado frecuentemente
soluciones de software que aporten valor a los usuarios, sin que haya que hacer esfuerzos
desmesurados.

9. La excelencia técnica mejora la agilidad:

El noveno postulado del manifiesto afirma que cuidar los aspectos técnicos a la hora de
desarrollar un producto de software aporta agilidad.

10. La simplicidad es fundamental:

El décimo principio del Manifiesto ágil plantea una idea muy práctica: actuar de la forma
más sencilla posible. El cliente no paga por el esfuerzo realizado, sino porque se le
entregue una solución que atienda sus necesidades.

11. Equipos auto-organizados para generar más valor:

El undécimo enunciado afirma que los equipos a los que se le da una libertad y una
confianza suficientes son los que consiguen los mejores resultados.

12. Reflexión y ajustes frecuentes del trabajo de los equipos:

El último principio de Agile hace referencia a la idea de la mejora continua. Los equipos
deben revisar frecuentemente su trabajo, para ajustarlo y mejorar su rendimiento
Ventajas y desafíos de adoptar metodologías ágiles:

Ventajas:

 Permite al equipo dividir el proyecto en etapas y así centrarse en cada una de


forma individual. Esto permite trabajar más rápido.
 Las metodologías ágiles permiten adaptar el proyecto a medida que avanza.
Así, ante cualquier cambio que surja, es muy sencillo volver a organizar el
equipo en relación con los nuevos objetivos.
 Su uso permite identificar rápidamente cuáles son las tareas más interesantes
en cada momento, sin necesidad de perder tiempo con constantes informes
que las detecten.
 Las metodologías agiles facilitan encontrar los errores de forma sencilla. Así, el
equipo se puede concentrar en el desarrollo, las pruebas y la colaboración.

Desventajas:

 l inicio del proyecto, es difícil determinar con precisión la cantidad de tiempo y


dinero que se necesitará para completarlo, debido a los requisitos en constante
cambio.

 El equipo necesita tener una base sólida y habilidades.

 Se requiere un alto nivel de interacción entre el cliente y los desarrolladores.

 La falta de atención a la documentación puede dificultar que los nuevos miembros


del equipo accedan a la misma.

 Existe el peligro de que la falta de límites del proyecto conduzca a una expansión
descontrolada.

Metodología Scrum:

Descripción de Scrum: La metodología Scrum permite abordar proyectos complejos


desarrollados en entornos dinámicos y cambiantes de un modo flexible. Está basada en
entregas parciales y regulares del producto final en base al valor que ofrecen a los clientes
Roles y responsabilidades en Scrum: En la metodología Scrum podemos identificar tres
roles principales: Product Owner, Scrum Master y el Scrum Team. Estos tres roles
obligatoriamente se requieren para crear el producto del proyecto, son los responsables
del éxito de cada sprint y del proyecto en su totalidad

Product Owner

El Product Owner o dueño del producto es conocido como “la voz del cliente”, ya que
debe entender las necesidades y prioridades de los stakeholders, incluyendo los clientes y
los usuarios

Responsabilidades:

• Definir la visión del proyecto.

• Ayudar a finalizar la elección del Scrum Master para el proyecto.

• Identificar a los stakeholders.

• Ayudar a determinar a los miembros del equipo Scrum.

• Crear épicas y prototipos.

• Priorizar los elementos de la lista priorizada de pendientes del producto (Product


Backlog).

• Definir los criterios de terminado.

• Ayudar a crear historias de usuario.

• Explicar las historias de usuario al equipo Scrum, al tiempo que crea la lista de tareas.

• Mantener la lista priorizada de pendientes del producto.

• Aceptar/Rechazar los entregables.


• Representar a los usuarios del producto o servicio con un profundo conocimiento de la
comunidad de usuarios.

• Asegurar los recursos financieros del proyecto.

Scrum Master

El Scrum Master debe tener una actitud de líder servicial (Servant Leader) para el equipo
Scrum. Es quien modera y facilita las interacciones del equipo como facilitador y
motivador.

Responsabilidades:

• Ayudar a identificar a los stakeholders para el proyecto.

• Facilita la selección del equipo Scrum.

• Garantizar que los recursos de respaldo estén disponibles para el funcionamiento del
proyecto sin problemas.

• Ayudar al Product Owner en la creación de la lista priorizada de pendientes del producto


y en la definición de criterios de aceptación.

• Determina la duración del sprint.

• Apoya al equipo Scrum en la estimación del esfuerzo necesario para completar las tareas
acordadas para el sprint

• Ayuda a actualizar el tablero Scrum y el registro de impedimentos.

• Facilita las reuniones de revisión de la lista priorizada de pendientes del producto.

• Se asegura que los problemas que afectan al equipo Scrum se discutan y se resuelvan.
• Garantizar que exista un ambiente ideal para el equipo Scrum.

Scrum Team

El Scrum Team también es conocido como equipo de desarrollo, ya que es responsable del
desarrollo, servicio o de cualquier otro resultado. Consiste en un grupo de personas que
trabajan en las historias de usuario en la lista de pendientes del sprint para crear los
entregables del proyecto

Responsabilidades:

• Asegura una comprensión clara de las épicas y prototipos.

• Entender las historias de usuario en la lista priorizada de pendientes del producto.

• Estar de acuerdo con los demás miembros del Scrum Core Team sobre la duración del
Sprint.

• Estimar las historias de usuario aprobadas por el Product Owner.

• Asignar las historias de usuario que se hacen en un Sprint.

• Desarrollar la lista de tareas en base a las historias de usuario ya convenidas y las


dependencias.

• Crear entregables.

• Actualizar el registro de impedimentos y las dependencias.

• Actualizar la tabla del trabajo pendiente y el tablero Scrum.

• Realizar las reuniones diarias de pie (Daily Standup Meeting).

• Identificar oportunidades de mejora en la reunión de retrospectiva del sprint.

• Participar en la reunión de retrospectiva del proyecto.


Artefactos y eventos de scrum: En el marco de trabajo Scrum, denominamos Artefacto a
aquellos elementos físicos que se producen como resultado de la aplicación de Scrum. Los
tres principales artefactos o herramientas Scrum son: el Product Backlog, Sprint Backlog y
el Incremento

Product Backlog

El Product Backlog es un inventario que contiene cualquier tipo de trabajo que haya que
hacer en el producto: requerimientos, casos de uso, tareas y dependencias. Es la principal
fuente de información sobre el producto en Scrum, una lista, en cualquier formato, que
contiene todos los requerimientos que necesitamos implementar en el producto

Sprint Backlog

Se trata de una lista de elementos en los que trabajar durante la etapa de Sprint. Estos
elementos normalmente se componen de tareas técnicas más pequeñas que permiten
conseguir un incremento de software terminado.

Incremento

Si Scrum tuviera que ser reducido a una sola cosa, sería a entregar una pieza de software
terminado en cada Sprint. Un Incremento es el resultado del Sprint, es la suma de todas
las tareas, casos de uso, historias de usuario y cualquier elemento que se haya
desarrollado durante el Sprint y que será puesto a disposición del usuario final en forma
de software, aportando un valor de negocio al producto que se está desarrollando.

Eventos: En la metodología Scrum, hay varios eventos clave que se llevan a cabo durante
el proceso de desarrollo de un proyecto. Estos eventos tienen como objetivo fomentar la
colaboración, la transparencia y la adaptabilidad en el equipo de desarrollo. A
continuación, se presentan los eventos más comunes en Scrum:
Sprint Planning (Planificación del Sprint): Es una reunión en la que el equipo Scrum define
y planifica el trabajo a realizar durante el próximo Sprint. Se establece el objetivo del
Sprint y se seleccionan las historias de usuario o elementos del backlog que se incluirán en
el Sprint.

Daily Scrum (Scrum Diario o Reunión Diaria): Es una reunión diaria de corta duración en la
que el equipo se sincroniza y actualiza sobre el progreso del trabajo. Cada miembro del
equipo comparte qué hizo desde la última reunión, qué hará hasta la siguiente y si hay
algún impedimento o problema que requiera atención.

Sprint Review (Revisión del Sprint): Al final de cada Sprint, se lleva a cabo una reunión de
revisión para demostrar y revisar el trabajo completado durante el Sprint. El equipo
muestra las funcionalidades desarrolladas y recibe comentarios del cliente o de los
stakeholders para realizar ajustes o mejoras.

Sprint Retrospective (Retrospectiva del Sprint): Es una reunión en la que el equipo Scrum
reflexiona sobre el Sprint completado. Se identifican las prácticas que funcionaron bien y
las que se pueden mejorar. El objetivo es realizar ajustes y definir acciones de mejora
continua para el próximo Sprint.

Ventajas y desafíos de Scrum:

Ventajas de Scrum:
 Flexibilidad: Scrum es altamente adaptable a los cambios en los requisitos del
proyecto, lo que permite a los equipos responder rápidamente a las necesidades
cambiantes del cliente.

 Colaboración y comunicación: Scrum fomenta una comunicación abierta y


constante entre los miembros del equipo y los stakeholders. Esto ayuda a
mantener a todos alineados y facilita la resolución rápida de problemas.

 Entrega temprana y frecuente: Scrum enfatiza la entrega temprana y continua de


incrementos de producto funcionales. Esto permite al cliente recibir valor
rápidamente y brinda oportunidades para obtener retroalimentación temprana.

 Transparencia y visibilidad: Scrum promueve la transparencia en todas las etapas


del proyecto. Los roles, las responsabilidades, el trabajo en progreso y los
obstáculos son visibles para todos los miembros del equipo, lo que mejora la
confianza y la toma de decisiones informada.

Desventajas de Scrum:

 Dificultad para gestionar cambios drásticos: Si los cambios en los requisitos son
demasiado grandes o frecuentes, Scrum puede enfrentar dificultades para
manejarlos de manera eficiente. Puede requerir ajustes significativos en el plan y la
estructura del proyecto.

 Dependencia de la participación del cliente: Scrum requiere la participación y la


retroalimentación activa del cliente durante todo el proceso. Si el cliente no está
disponible o comprometido, puede afectar negativamente el ritmo y los resultados
del proyecto.

 Requiere un equipo disciplinado y autónomo: Scrum confía en que el equipo sea


autoorganizado y disciplinado. Si el equipo carece de estas características, puede
haber dificultades para seguir el proceso y cumplir con los plazos.

 Complejidad de la gestión de múltiples proyectos: Scrum es altamente efectivo


para proyectos individuales, pero puede volverse más complejo cuando se
gestionan múltiples proyectos simultáneamente. La coordinación y el equilibrio de
los recursos pueden ser desafiantes.

Metodología Kanban:

Descripción de Kanban: El Método Kanban es un conjunto de principios y prácticas


que tienen como objetivo proporcionar una evolución en la forma en que su
equipo (o empresa) entrega valor en los servicios prestados. En Kanban,
eliminamos el desperdicio y mejoramos la entrega continua de valor a través de un
sistema pull.

Principios y prácticas de Kanban:

Principios:

Continuar con el flujo de trabajo existente

Kanban es un método flexible, lo que significa que puede adaptarse a flujos de


trabajo ya existentes o que estén en curso. Gracias a su capacidad de representar
visualmente los procesos, ayuda a identificar de una forma más clara los
problemas o retrasos de un proyecto.
Permitir cambios incrementales y evolutivos

Este principio se basa en que Kanban está diseñado para implementarse


gradualmente, es decir, se enfoca en pequeños y continuos cambios de los
procesos en curso.

Respetar el proceso actual

Consiste en el reconocimiento de los procesos en curso, los roles y las


responsabilidades de cada individuo. Mediante el respeto y preservación del
proceso actual, se pueden evitar reestructuraciones completas que generen
resistencia por parte de los trabajadores

Fomentar todos los niveles de liderazgo

El sistema o método Kanban anima el liderazgo en todos sus niveles, lo que


significa que valora los actos de sus miembros en todas las fases de un proyecto.
Para obtener los resultados deseados, es necesario que cada persona asuma la
propiedad y responsabilidad de su trabajo para esforzarse en lograr resultados
óptimos

Practicas:

Visualizar el flujo de trabajo

Para tener una perspectiva completa del proyecto, es necesario un tablero o


pantalla de flujo de trabajo. Cada tablero tiene una serie de columnas que
corresponden a los pasos que se deben seguir durante el proceso y, dentro de
ellos, se insertan tarjetas para representar las tareas individuales a realizar.

Limitar el trabajo en curso

Uno de los propósitos principales del método, es reducir el margen de retrasos


mediante la gestión del número de elementos que ya están en curso. Para ello,
Kanban establece una cantidad máxima de tareas entregables dentro de cada
columna y solo se puede avanzar cuando haya espacio disponible
Administrar tareas en lugar de personas

Otro de los objetivos del método Kanban es optimizar el flujo de trabajo y acelerar
el proceso de producción, centrándose en completar cada una de las tareas
eficientemente

Ser claro sobre las políticas de proceso

Mientras que se promueve la mejora colaborativa, es fundamental que cada


miembro del equipo posea una profunda comprensión sobre las nuevas políticas
instauradas por el método Kanban

Implementar circuitos de retroalimentación

La retroalimentación es un aspecto esencial en cualquier ambiente de trabajo


colaborativo, ya que permite identificar las fortalezas y debilidades para hacer
ajustes posteriores. En este caso, los ciclos de retroalimentación se pueden
producir en forma de reuniones con todo el equipo para evaluar el rendimiento
individual y general de sus miembros

Hacer mejoras colaborativas

La manera más efectiva para lograr una mejora continua y un cambio sostenible en
una organización se consigue mediante el establecimiento de una visión
compartida sobre los problemas que deben superarse para obtener un futuro
mejor. Con la visualización y la colaboración, Kanban consigue fomentar un sentido
de unidad y trabajo en equipo.

Uso de tableros Kanban: un tablero de kanban es una herramienta ágil de gestión


de proyectos diseñada para ayudar a visualizar el trabajo, limitar el trabajo en
curso y maximizar la eficiencia (o el flujo). Puede ayudar tanto a los equipos ágiles
como a los de DevOps a definir el orden de su trabajo diario.

Elementos de un tablero de kanban


 Señales visuales

 Columnas

 Límites del trabajo en curso

 Punto de compromise

 Punto de entrega

Ventajas y desafíos de Kanban:

Ventajas:

Visualización del flujo de trabajo: Kanban utiliza un tablero visual que muestra de manera
clara y concisa el flujo de trabajo, las tareas en progreso y las que están pendientes. Esto
brinda una visibilidad completa del estado del proyecto y permite un seguimiento más
efectivo.

Mayor eficiencia y fluidez: Kanban se enfoca en limitar el trabajo en progreso (WIP) y en


optimizar el flujo continuo de tareas. Al mantener un equilibrio adecuado de tareas en
cada etapa del proceso, se evita la sobrecarga y se logra una mayor eficiencia en la
entrega.

Adaptabilidad y flexibilidad: Kanban es altamente adaptable a los cambios, ya que no


requiere una planificación rigurosa de sprints como en Scrum. Las prioridades pueden
ajustarse rápidamente y se pueden incorporar nuevos elementos o cambios en cualquier
momento.
Identificación temprana de cuellos de botella: Al visualizar el flujo de trabajo, es más fácil
identificar los cuellos de botella y los puntos problemáticos en el proceso. Esto permite
tomar acciones rápidas para resolver problemas y mejorar continuamente el rendimiento
del equipo.

Enfoque en la mejora continua: Kanban fomenta la mejora continua al analizar


regularmente los datos y las métricas del flujo de trabajo. Esto permite identificar áreas de
mejora, realizar experimentos y ajustar el proceso para lograr una mayor eficacia.

Desventajas:

Requiere disciplina y autonomía: Kanban requiere que los equipos sean disciplinados y
estén comprometidos con los principios y prácticas de la metodología. Además, los
equipos necesitan tener un alto grado de autonomía para tomar decisiones y administrar
su propio flujo de trabajo.

Gestión de prioridades y urgencias: Al no tener un marco de tiempo definido como en


Scrum, Kanban puede presentar desafíos para gestionar las prioridades y las urgencias. Es
necesario establecer criterios claros y acuerdos con los stakeholders para garantizar una
gestión adecuada.

Complejidad en proyectos grandes: Kanban es especialmente efectivo en proyectos más


pequeños y equipos más reducidos. Sin embargo, en proyectos más grandes y complejos,
puede haber dificultades para mantener la visibilidad y el control adecuado del flujo de
trabajo.
Dependencia de una buena comunicación: La comunicación efectiva entre los miembros
del equipo y los stakeholders es fundamental en Kanban. Si la comunicación falla o es
insuficiente, puede afectar negativamente la sincronización y la coordinación.

Dificultad para establecer estimaciones precisas: Kanban no se basa en estimaciones de


tiempo como en Scrum, lo que puede dificultar la planificación y la estimación precisa del
tiempo requerido para completar una tarea. Esto puede generar incertidumbre en cuanto
a la previsibilidad de la entrega.

Programación Extrema (XP):

Descripción de XP: La programación extrema es una metodología ágil de gestión de


proyectos que se centra en la velocidad y la simplicidad con ciclos de desarrollo cortos y
con menos documentación. La estructura del proceso está determinada por 5 valores
fundamentales, 5 reglas y 12 prácticas de XP

Valores y prácticas clave de XP:

Valores:

1. Simplicidad

Antes de empezar cualquier trabajo de programación extrema, debes hacerte la siguiente


pregunta: ¿Cuál es el proceso más simple y que también funciona? El concepto “que
también funciona” es un diferenciador clave ya que lo más simple no siempre es práctico
o efectivo

2. Comunicación

XP se basa en una respuesta rápida y una comunicación efectiva. Para trabajar de manera
efectiva, el equipo debe ser abierto y ‌honesto entre sí. Cuando surgen problemas, se
espera que todos aporten sus comentarios e ideas, ya que probablemente alguno de ellos
ya tenga una solución adecuada
3. Comentarios

Al igual que otras metodologías ágiles, el método XP incorpora comentarios e historias de


usuarios directamente en el proceso. El enfoque de XP es producir trabajo de forma
rápida y sencilla, para luego compartir los resultados para obtener comentarios de forma
casi inmediata.

4. Valentía

Para implementar la programación extrema, se requiere de mucha valentía. Siempre se


espera que seas honesto al brindar actualizaciones al equipo sobre tu progreso, lo que
puede dejarte en una posición de vulnerabilidad. Si no cumples con una fecha de entrega
en la programación extrema, es probable que al líder de tu equipo no le interese analizar
los motivos

5. Respeto

Teniendo en cuenta que las comunicaciones y la honestidad son prioridad en el método


XP, tiene sentido que el respeto sea una virtud esencial. Para que los equipos se
comuniquen y colaboren de manera efectiva, deben aprender a estar en desacuerdo

Practicas:

El juego de planificación: La planificación XP se usa para guiar el trabajo. Los resultados de


la planificación deben ser los objetivos que pretendes alcanzar, los plazos previstos y los
pasos a seguir.

Pruebas de clientes: Cuando finalices una función nueva, el cliente desarrollará una
prueba de aceptación para determinar si has cumplido con la historia de usuario original.

Pequeñas entregas: La programación extrema realiza entregas pequeñas y periódicas para


obtener información importante durante todo el proceso. A menudo, las entregas se
envían directamente a los clientes, aunque también pueden enviarse internamente.
Diseño simple: El sistema XP está diseñado para ser simple, producirá solo lo necesario y
nada más.

Programación en parejas: Toda la programación la realizan simultáneamente dos


desarrolladores que se sientan físicamente uno al lado del otro. No hay trabajo individual
en la programación extrema.

Desarrollo guiado por pruebas (TDD): Debido a que la programación extrema se basa en
los comentarios, se requieren pruebas exhaustivas. A través de ciclos cortos, los
programadores realizan pruebas automatizadas para luego reaccionar de inmediato.

Refactorización: Aquí es donde se deberá prestar especial atención a los detalles más
finos del código base, para eliminar los duplicados y asegurarse de que el código sea
coherente. De esta manera obtendrás diseños simples y de alta calidad.

Propiedad colectiva: Cualquier par de desarrolladores puede modificar el código en


cualquier momento, independientemente de que lo hayan desarrollado o no. En la
programación extrema, la codificación se realiza en equipo, y el trabajo de todos se lleva a
cabo según los estándares colectivos más altos.

Integración continua: Los equipos de XP no esperan a que se completen las iteraciones,


sino que se integran constantemente. A menudo, un equipo de XP se integrará varias
veces al día.
Ritmo de trabajo sostenible: La intensidad de los trabajos de XP requiere que se
establezca un ritmo de trabajo sostenible. Los equipos deben determinar cuánto trabajo
pueden producir a este ritmo por día y por semana, y usarlo para establecer plazos de
trabajo.

Metáfora: La metáfora es, literalmente, una metáfora. Se decide en equipo y se usa un


lenguaje para expresar cómo debe funcionar el equipo. Por ejemplo, somos hormigas
trabajando en colectivo para construir el hormiguero.

Estándares de codificación: Los equipos de XP siguen un estándar. De la misma manera


que un grupo de escritores necesita adoptar el tono de una marca para que parezca que
siempre está escribiendo una misma persona, los desarrolladores de XP deben codificar
de la misma manera unificada para que parezca que el código esté escrito por un solo
desarrollador.

Técnicas de desarrollo utilizadas en XP:

Pair Programming (Programación en Pareja): En XP, dos programadores trabajan juntos


en una misma estación de trabajo. Uno de ellos es el conductor, encargado de escribir el
código, mientras que el otro es el observador, responsable de revisar el código y brindar
retroalimentación en tiempo real. Esta técnica fomenta la colaboración, el intercambio de
conocimientos y la mejora de la calidad del código.

Desarrollo Basado en Pruebas (Test-Driven Development, TDD): En TDD, se escriben


pruebas automatizadas antes de implementar el código. Los desarrolladores deben hacer
que las pruebas fallen inicialmente, luego implementar el código necesario para que las
pruebas pasen. Esta técnica garantiza que el código cumpla con los requisitos y mejora la
calidad del software.

Integración Continua (Continuous Integration, CI): La integración continua es una práctica


en la que los cambios de código se integran regularmente en un repositorio compartido y
se ejecutan pruebas automatizadas para verificar la funcionalidad del software. Esto
permite detectar problemas de integración de manera temprana y garantiza un flujo de
trabajo estable y eficiente.

Diseño Simple (Simple Design): XP promueve la simplicidad en el diseño del software. Se


busca mantener el código limpio, legible y modular, evitando la sobreingeniería y los
excesos de complejidad. El diseño se mejora de manera incremental a medida que se
agrega funcionalidad y se recibe retroalimentación del cliente.

Metáfora (Metaphor): En XP, se utiliza una metáfora para establecer una analogía común
que ayude a todos los miembros del equipo a comprender y comunicarse sobre el
sistema. La metáfora proporciona un marco conceptual que facilita la toma de decisiones
y la resolución de problemas.

Programación en Cadena (Continuous Delivery): XP promueve la entrega continua de


software en incrementos pequeños y funcionales. Esto implica que el software esté
siempre en un estado entregable, lo que permite recibir retroalimentación temprana del
cliente y facilita la adaptación a los cambios en los requisitos.

Ventajas y desafíos de XP:


Ventajas:
Mayor calidad del software: XP enfatiza prácticas como el desarrollo basado en pruebas
(TDD) y la integración continua (CI), lo que conduce a un código más limpio, modular y
libre de errores. Esto se traduce en una mayor calidad del software y una reducción en los
problemas de producción.

Adaptabilidad a los cambios: XP se centra en la adaptabilidad y la capacidad de respuesta


a los cambios en los requisitos del proyecto. La entrega continua de software en
incrementos pequeños permite al equipo realizar ajustes rápidos y responder
rápidamente a las necesidades cambiantes del cliente.
Mejora de la colaboración y comunicación: XP promueve la comunicación y la
colaboración cercana entre los miembros del equipo y los stakeholders. Técnicas como la
programación en pareja (pair programming) fomentan la transferencia de conocimientos y
la toma de decisiones conjuntas, lo que mejora la eficiencia y la calidad del trabajo en
equipo.

Mayor satisfacción del cliente: XP se centra en la entrega temprana y continua de valor al


cliente. Al involucrar al cliente de manera activa y recibir retroalimentación frecuente, se
garantiza que el producto final cumpla con sus expectativas y necesidades, lo que
aumenta la satisfacción del cliente.

Enfoque en la mejora continua: XP fomenta la mejora continua a través de retrospectivas


regulares y ajustes constantes en las prácticas de desarrollo. Esto permite al equipo
identificar áreas de mejora, realizar experimentos y adaptarse para lograr una mayor
eficacia y eficiencia en el proceso.

Desventajas:

Requiere cambios culturales y de mentalidad: XP requiere un cambio cultural en la forma


de trabajar, ya que se basa en la colaboración, la transparencia y la asunción de
responsabilidades. Puede ser desafiante para los equipos y organizaciones que están
acostumbrados a métodos más tradicionales de desarrollo de software.

Necesidad de una buena planificación y gestión del tiempo: La entrega continua de


software en XP requiere una planificación efectiva y una gestión adecuada del tiempo. Es
importante establecer prioridades claras y manejar eficientemente las tareas para
garantizar la entrega oportuna de incrementos funcionales.

Dependencia de la participación y disponibilidad del cliente: XP se basa en la


participación activa y la retroalimentación frecuente del cliente. Si el cliente no está
disponible o comprometido, puede afectar negativamente la calidad del producto final y la
capacidad del equipo para realizar ajustes y mejoras continuas.
Dificultad en proyectos grandes y complejos: XP puede presentar desafíos en proyectos
grandes y complejos, donde la coordinación y el seguimiento pueden ser más complejos.
Es necesario establecer una estructura y una comunicación efectiva para garantizar la
sincronización y el flujo de trabajo adecuados.

Limitaciones en la documentación formal: XP se centra en el código funcional y en la


entrega de valor, lo que puede llevar a una documentación formal limitada. Esto puede
presentar desafíos en términos de mantenimiento a largo plazo y para aquellos equipos
que requieren una documentación más exhaustiva.

Comparativa y selección de metodologías ágiles:

Comparación de Scrum, Kanban y XP en términos de enfoque, aplicabilidad y beneficios:

Enfoque:

Scrum: Se centra en la entrega iterativa y continua de incrementos de producto


funcionales a través de sprints. Se basa en roles, eventos y artefactos específicos para
promover la colaboración, la adaptabilidad y la transparencia en el proceso de desarrollo.

Kanban: Se enfoca en el flujo continuo de trabajo y la visualización del proceso. Limita el


trabajo en progreso y se basa en un tablero visual para optimizar el flujo de trabajo y
mejorar la eficiencia.
XP (Extreme Programming): Se enfoca en la entrega rápida de software de alta calidad a
través de prácticas técnicas y de gestión. Promueve la colaboración cercana entre los
miembros del equipo y los stakeholders y se basa en una serie de prácticas, como el
desarrollo basado en pruebas y la integración continua.

Aplicabilidad:

Scrum: Es adecuado para proyectos complejos que requieren una estructura clara de roles
y eventos. Es especialmente útil cuando los requisitos son más propensos a cambios y se
necesita una entrega iterativa.

Kanban: Es aplicable a proyectos de desarrollo de software de diferentes tamaños y


complejidades. Es particularmente útil en situaciones donde la demanda y las prioridades
pueden cambiar con frecuencia.

XP: Es adecuado para equipos de desarrollo que buscan una entrega rápida de software
de alta calidad. Es útil cuando se requiere una colaboración cercana y una adaptabilidad
rápida a los cambios en los requisitos.

Beneficios:

Scrum: Proporciona una estructura clara y roles definidos, lo que facilita la planificación y
el seguimiento del progreso del proyecto. Promueve la transparencia, la colaboración y la
adaptabilidad, lo que permite una entrega más rápida y eficiente.
Kanban: Mejora la eficiencia del flujo de trabajo al limitar el trabajo en progreso y
optimizar el proceso. Proporciona una mayor visibilidad y control sobre las tareas, lo que
ayuda a identificar cuellos de botella y mejorar continuamente el rendimiento del equipo.

XP: Permite una entrega rápida de software de alta calidad mediante la adopción de
prácticas técnicas y de gestión sólidas. Promueve la colaboración, la comunicación y la
mejora continua, lo que resulta en un producto final de mayor calidad y satisfacción del
cliente.

Factores a considerar al seleccionar una metodología ágil para un proyecto de desarrollo


de software específico:

Naturaleza del proyecto: Analizar la naturaleza del proyecto, incluyendo su tamaño,


complejidad y requisitos, puede ayudar a determinar qué metodología es más adecuada.
Scrum es más adecuado para proyectos complejos y cambiantes, Kanban es flexible y se
adapta bien a proyectos de flujo continuo, y XP se enfoca en proyectos que requieren una
entrega rápida y alta calidad.

Requisitos de entrega: Evaluar los requisitos de entrega del proyecto es crucial. Si se


necesita una entrega rápida y continua de incrementos de producto, XP o Scrum pueden
ser más apropiados. Si se prioriza el flujo continuo y la optimización del proceso, Kanban
puede ser la mejor opción.

Equipo y roles: Considerar el tamaño y la composición del equipo de desarrollo es


importante. Scrum tiene roles claramente definidos (Product Owner, Scrum Master,
Equipo de Desarrollo), mientras que Kanban y XP permiten una estructura de roles más
flexible. Evaluar qué enfoque se ajusta mejor a la dinámica y las habilidades del equipo
puede ayudar a tomar una decisión informada.
Cambiabilidad de los requisitos: Si los requisitos del proyecto son propensos a cambios
frecuentes, Scrum o XP pueden ser más adecuados, ya que ambas metodologías tienen
mecanismos para manejar y adaptarse a los cambios.

Cultura organizacional: Considerar la cultura y los valores de la organización también es


importante. Algunas organizaciones pueden estar más orientadas a la colaboración y la
adaptabilidad, lo que hace que Scrum o XP sean opciones más adecuadas. Otras
organizaciones pueden preferir un enfoque más flexible y basado en flujo, como Kanban.

Experiencia y conocimiento del equipo: Evaluar la experiencia y el conocimiento del


equipo en las metodologías ágiles también es fundamental. Si el equipo ya tiene
experiencia en una metodología en particular, puede ser más eficiente continuar con esa
metodología. De lo contrario, es posible que se requiera capacitación y adaptación para
implementar una nueva metodología.

Comparación con Metodologías Tradicionales:

Principales diferencias entre las metodologías ágiles y las tradicionales, en términos de


enfoque, flexibilidad, comunicación y capacidad de respuesta al cambio:

Las metodologías ágiles y las tradicionales difieren en varios aspectos clave. A


continuación, se presentan las principales diferencias entre ambas en términos de
enfoque, flexibilidad, comunicación y capacidad de respuesta al cambio:

Enfoque:

Metodologías tradicionales: Las metodologías tradicionales, como la metodología en


cascada o el modelo en V, tienen un enfoque secuencial y lineal. Se basan en una
planificación detallada y exhaustiva antes de comenzar el desarrollo del proyecto. El
énfasis se coloca en la documentación extensa, la especificación detallada de requisitos y
la entrega final del producto.

Metodologías ágiles: Las metodologías ágiles, como Scrum, Kanban y XP, tienen un
enfoque iterativo e incremental. Se basan en la entrega temprana y continua de valor al
cliente, dividiendo el trabajo en incrementos más pequeños y manejables. El énfasis se
coloca en la adaptabilidad, la colaboración y la retroalimentación continua.

Flexibilidad:

Metodologías tradicionales: Las metodologías tradicionales suelen ser más rígidas y


menos flexibles. Una vez que se establece el plan inicial, realizar cambios significativos en
los requisitos o en el alcance puede ser complicado y costoso. Los cambios pueden
requerir una revisión completa de la planificación y pueden retrasar la entrega del
producto.

Metodologías ágiles: Las metodologías ágiles se caracterizan por su flexibilidad. Se


adaptan bien a los cambios en los requisitos y al aprendizaje continuo durante el proceso
de desarrollo. Los cambios pueden ser incorporados fácilmente en las iteraciones
siguientes, permitiendo una mayor capacidad de respuesta a las necesidades cambiantes
del cliente y del mercado.

Comunicación:

Metodologías tradicionales: Las metodologías tradicionales a menudo tienen una


comunicación más formal y estructurada. La comunicación suele ser jerárquica y se
produce principalmente a través de documentos y reuniones formales. Puede haber una
separación entre el equipo de desarrollo y los stakeholders.
Metodologías ágiles: Las metodologías ágiles promueven una comunicación más abierta y
colaborativa. La comunicación se realiza de forma continua y frecuente, a través de
reuniones diarias de seguimiento, reuniones de planificación y revisión de iteraciones. Se
fomenta la colaboración directa entre los miembros del equipo de desarrollo y los
stakeholders, lo que permite una comprensión compartida y una toma de decisiones
conjunta.

Capacidad de respuesta al cambio:

Metodologías tradicionales: Las metodologías tradicionales tienen una capacidad limitada


para responder a los cambios. Los cambios pueden ser costosos y requerir ajustes
significativos en la planificación y en la secuencia de actividades. Esto puede generar
retrasos y dificultades para adaptarse a las necesidades cambiantes.

Metodologías ágiles: Las metodologías ágiles están diseñadas para ser altamente
adaptables y responder rápidamente a los cambios. Los cambios se pueden incorporar en
las siguientes iteraciones, lo que permite una mayor flexibilidad y capacidad de respuesta.
Se valora la adaptación continua y se fomenta la mejora basada en la retroalimentación
recibida.

Elaborar sus conclusiones sobre las Metodologías Ágiles Incluir las referencias
bibliográficas y referentes de cada Metodología:

Las metodologías ágiles han revolucionado la forma en que se desarrollan los proyectos de
software, ofreciendo un enfoque más flexible, colaborativo y adaptativo. A través de
metodologías como Scrum, Kanban y XP, las organizaciones han logrado mejorar la
eficiencia, la calidad y la satisfacción del cliente.

Scrum ha demostrado ser altamente efectivo en proyectos complejos y cambiantes,


proporcionando una estructura clara y roles definidos
Kanban ha destacado por su enfoque en el flujo continuo de trabajo y la visualización del
proceso. Limitar el trabajo en progreso y optimizar el flujo ha mejorado la eficiencia y
permitido una mayor visibilidad y control sobre las tareas.

Extreme Programming (XP) ha destacado por su enfoque en la entrega rápida de software


de alta calidad. Las prácticas técnicas y de gestión, como el desarrollo basado en pruebas
(TDD) y la integración continua (CI), han permitido una mayor colaboración, comunicación
y adaptabilidad

BIBLIOGRAFIA:

https://www.iebschool.com/blog/que-son-metodologias-agiles-agile-scrum/
#:~:text=Por%20definici%C3%B3n%2C%20las%20metodolog%C3%ADas
%20%C3%A1giles,las%20circunstancias%20espec%C3%ADficas%20del
%20entorno.
https://sentrio.io/blog/valores-principios-agile-manifiesto-agil/
https://ebf.com.es/blog/ventajas-y-desventajas-de-las-metodologias-agiles-
y-su-aplicacion-en-el-trabajo/
https://www.proyectum.com/sistema/blog/los-tres-principales-roles-en-
scrum/#:~:text=En%20la%20metodolog%C3%ADa%20Scrum
%20podemos,del%20proyecto%20en%20su%20totalidad.
https://www2.deloitte.com/es/es/pages/technology/articles/artefactos-
scrum.html
https://www.aluracursos.com/blog/metodo-kanban-conceptos-y-funciones-
agilidad?
gclid=CjwKCAjwp6CkBhB_EiwAlQVyxTyZWIWDX7lwg5_ds76Hwdyikm5EcA0zS
VcsuORDE9OyW9zO0xQgExoCHisQAvD_BwE
https://www.indeed.com/orientacion-profesional/desarrollo-profesional/
kanban-que-es
https://www.atlassian.com/es/agile/kanban/boards#:~:text=Un%20tablero
%20de%20kanban%20es,orden%20de%20su%20trabajo%20diario.
https://asana.com/es/resources/extreme-programming-xp

También podría gustarte