Situación de Aprendizaje
Saúl Flores García Torres
Created on September 6, 2024
More creations to inspire you
Transcript
Metodologías
Creación de Aplicaciones en Entornos Gráficos
5IV10
Saúl Flores García Torres
Una metodología es un conjunto de principios, prácticas y procedimientos organizados que guían el desarrollo de proyectos o la resolución de problemas de manera sistemática. Su objetivo es proporcionar un marco estructurado para llevar a cabo tareas de manera eficiente y efectiva, garantizando consistencia y calidad en los resultados. Las metodologías varían según el campo de aplicación, como en el desarrollo de software, gestión de proyectos o investigación científica.
Introducción
El desarrollo en cascada (en inglés, waterfall model) es un procedimiento lineal que se caracteriza por dividir los procesos de desarrollo en sucesivas fases de proyecto. Al contrario que en los modelos iterativos, cada una de estas fases se ejecuta tan solo una vez. Los resultados de cada una de las fases sirven como hipótesis de partida para la siguiente. El waterfall model se utiliza, especialmente, en el desarrollo de software.
Método en Cascada
Análisis: Se realiza un estudio de viabilidad y se definen los requisitos del proyecto, generando un plan, estimación financiera y una propuesta para el clienteDiseño: Se formula una solución basada en los requisitos, creando la arquitectura del software y un plan detallado con enfoque en componentes como interfaces y bibliotecas.Implementación: Se traduce la arquitectura a código, desarrollando y probando los componentes por separado, que luego se integran en el producto final. Prueba: Se realizan pruebas beta para verificar que el software cumpla con los requisitos, preparándolo para su lanzamiento. Servicio: El software se entrega, se mantiene y se mejora continuamente tras su implementación.
Fases
- Una estructura sencilla gracias a unas fases de proyecto claramente diferenciadas. - Buena documentación del proceso de desarrollo a través de unos hitos bien definidos. - Los costes y la carga de trabajo se pueden estimar al comenzar el proyecto. - Aquellos proyectos que se estructuran en base al modelo en cascada se pueden representar cronológicamente de forma sencilla.
Desventajas
Ventajas
- Por norma general, los proyectos más complejos o de varios niveles no permiten su división en fases de proyecto claramente diferenciadas. - Poco margen para realizar ajustes a lo largo del proyecto debido a un cambio en las exigencias. -El usuario final no se integra en el proceso de producción hasta que no termina la programación. -En ocasiones, los fallos solo se detectan una vez finalizado el proceso de desarrollo.
El modelo V o modelo en cuatro niveles es un modelo empleado en diversos procesos de desarrollo, por ejemplo, en el desarrollo de software. Además de las fases de desarrollo de un proyecto, el modelo V también define los procedimientos de gestión de la calidad que lo acompañan y describe cómo pueden interactuar estas fases individuales entre sí. Su nombre se debe a su estructura, que se asemeja a la letra V.
Método en V
En primer lugar, el modelo V define el curso de un proyecto en fases individuales cada vez más detalladas:Al principio del proyecto, el modelo prevé un análisis de las especificaciones del sistema planificado (fase de especificaciones).El proyecto se completa después con requisitos funcionales y no funcionales para la arquitectura del sistema (fase funcional).A esta fase le sigue el diseño del sistema, en el que se planifican los componentes y las interfaces de este (fase de diseño).Una vez completadas estas fases, se puede diseñar en detalle la arquitectura del software (codificación). Es ahora cuando, de acuerdo con estos planes, comienza el desarrollo en sí del software. A continuación, tendrán lugar las fases de control de la calidad, también llamadas de verificación o validación, que siempre están relacionadas con cada una de las fases de desarrollo.
Fases
Optimiza la comunicación entre las partes involucradas a través de términos y responsabilidades claramente definidos. Minimiza los riesgos y mejora la planificación a través de roles, estructuras y resultados fijos y predeterminados. Mejora de la calidad del producto gracias a medidas de control de la calidad firmemente integradas. Ahorro de costes gracias al procesamiento transparente a lo largo de todo el ciclo de vida del producto.
Desventajas
Ventajas
El modelo en cuatro niveles puede ser demasiado simple para mapear todo el proceso de desarrollo desde el punto de vista de los desarrolladores. Está sobre todo centrado en la gestión de proyectos. Además, su estructura relativamente rígida permite una respuesta poco flexible a los cambios durante el desarrollo, y, por lo tanto, promueve un curso lineal del proyecto. Sin embargo, si el modelo se entiende y se utiliza correctamente, es posible utilizar el modelo V para el desarrollo ágil
El modelo incremental de gestión de proyectos tiene como objetivo un crecimiento progresivo de la funcionalidad. Es decir, el producto va evolucionando con cada una de las entregas previstas hasta que se amolda a lo requerido por el cliente o destinatario. Este enfoque establece entregas parciales mediante un calendario de plazos. En cada una de ellas, el producto debe mostrar una evolución con respecto a la fecha anterior; nunca puede ser igual.
Método Incremental
El modelo de gestión incremental es flexible y adaptable a distintos proyectos. Sus fases son:Requerimientos: son los objetivos centrales y específicos que persigue el proyecto.Definición de las tareas y las iteraciones: teniendo en cuenta lo que se busca, el siguiente paso es hacer una lista de tareas y agruparlas en las iteraciones que tendrá el proyecto.Diseño de los incrementos: establecidas las iteraciones, es preciso definir cuál será la evolución del producto en cada una de ellas.Desarrollo de incrementos: Realizar las tareas correspondientes a cada incremento.Validación de incrementos: Revisar y aprobar los resultados de cada iteración.Integración de incrementos: Los incrementos validados conforman la evolución del proyecto.Entrega del producto: Validar y entregar el producto final.
Fases
- El software se generará rápidamente durante el ciclo de vida del software. - A lo largo de las etapas de desarrollo se pueden realizar cambios. - Los errores son fáciles de identificar - Este modelo es menos costoso en comparación con otros
Desventajas
Ventajas
- Rectificar un problema en una unidad requiere corrección en todas las unidades y consume mucho tiempo - Requiere una buena planificación y diseño. - Cada fase de iteración es rígida y no se superpone entre sí. - La tecnología como tal no recopila todos los requisitos por adelantado para todo el ciclo de vida del software.
El desarrollo en espiral es un modelo de procedimiento para el desarrollo de software elaborado por Barry W. Boehm en el año 1986. Parte de la base de que el desarrollo de aplicaciones se debe llevar a cabo en un ciclo iterativo que se debe repetir tantas veces como sea necesario hasta alcanzar el objetivo. Gracias a las valoraciones regulares de los riesgos y a los controles rutinarios del producto intermedio, el modelo en espiral minimiza considerablemente el riesgo de fracaso en los proyectos de software.
Método en Espiral
Definición de objetivos y alternativas: Se establecen los objetivos del desarrollo (como mejorar el rendimiento o ampliar funciones), se definen las alternativas para implementarlas y se consideran condiciones generales como costos y tiempo.Valoración de alternativas: Se evalúan las opciones teniendo en cuenta riesgos y rentabilidad. Se identifican áreas inciertas y se seleccionan estrategias con menor riesgo, como prototipos o simulaciones.Desarrollo y revisión: Se desarrolla el software, enfocándose en reducir riesgos restantes. Se crean y optimizan prototipos, escribiendo y probando el código varias veces.Planificación del siguiente ciclo: Tras finalizar un ciclo, se planifica el siguiente, ajustando estrategias o definiendo nuevas alternativas si el ciclo anterior no cumplió los objetivos.
Fases
- Modelo flexible y genérico - Posible integración temprana de promotores y usuarios - Conciliación perfecta entre exigencias técnicas y diseño - Máximo control sobre los costes, recursos y la calidad del proyecto de software
Desventajas
Ventajas
- Gran esfuerzo de gestión - Las decisiones periódicas pueden dilatar el proceso de desarrollo - Hay errores e incongruencias conceptuales que se abren paso fácilmente al producto final a través del proceso de desarrollo desglosado - No es apropiado para pequeños proyectos con un riesgo manejable.
Un modelo prototipo o modelo de desarrollo evolutivo es utilizado principalmente en el desarrollo de software para ofrecer al usuario una visión previa de cómo será el programa o sistema.El prototipo se puede modificar cuando sea necesario y todos los resultados obtenidos de las presentaciones y pruebas se deben anotar para utilizar posteriormente como ayuda en el desarrollo del producto final.
Método del Prototipo
Las fases del desarrollo de un prototipo son:Requisitos de desarrollo: Se analizan y establecen los requisitos básicos necesarios para el desarrollo del prototipo.Modelaje y desarrollo del código: Se construye el prototipo inicial basándose en los requisitos, priorizando el tiempo y uso eficiente de recursos para minimizar costos.Evaluación: Se verifica el funcionamiento del prototipo para asegurar que cumpla con los requisitos iniciales.Modificación: Se corrigen errores y se aplican mejoras para que el prototipo esté listo para pruebas.Documentación: Se registra todo el proceso de diseño y desarrollo como guía para el producto final.Pruebas: Los usuarios prueban el prototipo y proporcionan feedback, lo que permite mejorar el software final.
Fases
- Los usuarios participan activamente en el desarrollo.- Se pueden identificar las funciones faltantes, lo que ayuda a reducir el riesgo de fallas- Ayuda al miembro del equipo a comunicarse de manera efectiva. - La satisfacción del cliente existe porque el cliente puede sentir el producto en una etapa muy temprana.
Desventajas
Ventajas
-Los desarrolladores que quieran crear prototipos rápidamente pueden terminar creando soluciones de desarrollo de calidad inferior. -La creación de prototipos puede fomentar solicitudes de cambio excesivas. - Puede haber demasiadas variaciones en los requisitos de software.- Es muy difícil para los desarrolladores de software adaptarse a todos los cambios exigidos por los clientes..
La metodología XP es un conjunto de técnicas que dan agilidad y flexibilidad en la gestión de proyectos, la cual se centra en crear un producto según los requisitos exactos del cliente. El uso de esta metodología supone una aproximación a la calidad óptima del producto, pues durante el ciclo de vida del software, ocurren cambios naturales. Cuanto más cambios, puede que más cerca estemos del mejor resultado que espera nuestro cliente.
Método Xtreme Programming
Planificación: Según la identificación de las historias de usuario, se priorizan y se descomponen en mini-versiones. La planificación se va a ir revisando.Diseño: Se desarrolla un prototipo con código sencillo, creando tarjetas CRC para el diseño orientado a objetos.Codificación: La programación se realiza en parejas para asegurar un código uniforme y entendible por cualquier desarrollador.Pruebas: Se realizan pruebas automáticas continuas y se permite al cliente realizar y validar pruebas adicionales.Lanzamiento: Se integra el software funcional, tras validar todas las mini-versiones con éxito según los requerimientos del cliente.
Fases
-Enfoque en la calidad del código: Promueve prácticas para mejorar la calidad y reducir errores desde el inicio. Alta flexibilidad: Permite adaptarse a cambios en los requisitos del cliente. Mejor comunicación con el cliente: Involucra al cliente para asegurar que el software cumpla con sus expectativas. Entrega rápida y continua: Realiza entregas frecuentes de software funcional, permitiendo al cliente ver avances rápidamente y confirmar que el proyecto va en la dirección correcta.
Desventajas
Ventajas
Alta demanda en el equipo: XP requiere un equipo comprometido y disciplinado, con habilidades de comunicación sobresalientes. Difícil en proyectos grandes o distribuidos: Para proyectos con equipos grandes o distribuidos geográficamente, la colaboración y la coordinación continua pueden ser complicadas, lo que reduce la efectividad de las prácticas de XP. Requiere participación constante del cliente: Si el cliente no está disponible o no se involucra lo suficiente, el equipo podría desarrollar el producto incorrectamente.
La metodología Scrum es un proceso para llevar a cabo un conjunto de tareas de forma regular con el objetivo principal de trabajar de manera colaborativa.Con este método de trabajo lo que se pretende es alcanzar el mejor resultado de un proyecto determinado. Las prácticas que se aplican con la metodología Scrum se retroalimentan unas con otras y la integración de las mismas tiene su origen en un estudio de cómo hay que coordinar a los equipos para ser potencialmente competitivos.
Método Scrum
1. Planificación: Product BacklogSe establecen y priorizan las tareas esenciales para el proyecto. El Product Backlog es una lista dinámica que puede cambiar y crecer según el aprendizaje durante el desarrollo. El Product Owner trabaja con el equipo y los stakeholders para reflejar las necesidades del negocio y expectativas del cliente.2. Ejecución: SprintUn Sprint es un intervalo de hasta un mes en el que se desarrolla un producto entregable. Comienza con la planificación del Sprint (Sprint Planning) para seleccionar tareas del Product Backlog y termina con la revisión del Sprint (Sprint Review) y la retrospectiva del Sprint (Sprint Retrospective), que permiten evaluar el trabajo realizado y mejorar el proceso.3. Control y monitorización: Daily Scrum y Burn Down ChartEl Daily Scrum es una reunión diaria para sincronizar el trabajo y abordar problemas rápidamente. El Burn Down Chart visualiza el trabajo restante frente al tiempo, ayudando a ajustar el progreso y facilitar la comunicación y seguimiento en tiempo real.4. Revisión y Adaptación: Sprint Review y RetrospectiveAl final de cada Sprint, se realiza la Sprint Review para evaluar el trabajo completado y ajustar el Product Backlog. La Sprint Retrospective permite al equipo reflexionar sobre su desempeño y buscar mejoras, fomentando el aprendizaje continuo y la mejora de la eficiencia del equipo.
Fases
-Alta adaptabilidad: Scrum permite adaptarse fácilmente a los cambios en los requisitos del proyecto-Mejor visibilidad y transparencia:Todos los miembros del equipo tienen visibilidad del progreso del proyecto y pueden identificar problemas rápidamente. -Entrega continua de valor: Los sprints cortos y enfocados permiten la entrega continua de partes funcionales del producto -Fomento de la colaboración y el compromiso: Scrum promueve un entorno de trabajo colaborativo, donde el equipo autogestionado tiene responsabilidad sobre su trabajo
Desventajas
Ventajas
-Difícil implementación en equipos grandes: En equipos grandes, la comunicación y coordinación se vuelven complejas, afectando su eficiencia. -Alta demanda de compromiso del equipo: Scrum requiere que todos los miembros del equipo estén altamente comprometidos y participen activamente en todas las fases del proyecto. -Requiere un Product Owner y Scrum Master capacitados: La metodología depende en gran medida de la experiencia y habilidades del Product Owner y el Scrum Master- -Poca documentación formal: Al enfocarse en la entrega rápida de productos funcionales, Scrum puede no dar tanta importancia a la documentación exhaustiva.
La metodología Lean es un enfoque de gestión y mejora continua enfocado en maximizar el valor entregado al cliente mientras se minimizan los desperdicios en el proceso. El propósito central de Lean es identificar y eliminar cualquier actividad que no aporte valor directo al producto o servicio final. Al enfocarse en reducir el desperdicio, ya sea en forma de tiempo, recursos, materiales o esfuerzo, la metodología Lean busca mejorar la eficiencia de los procesos sin comprometer la calidad del resultado.
Método Lean
1. Identificación del valor:Lean se enfoca en entender lo que realmente valora el cliente, ajustando los esfuerzos para satisfacer sus necesidades reales en términos de calidad, tiempos y servicio.2. Mapeo de la cadena de valor:Se visualizan las actividades del proceso para identificar ineficiencias, eliminar lo innecesario y optimizar la producción.3. Creación de flujo continuo:El objetivo es mantener un trabajo fluido, eliminando interrupciones y optimizando los recursos para mejorar la eficiencia.4. Implementación del sistema "pull":La producción se ajusta a la demanda real del cliente, evitando sobreproducción y exceso de inventario.5. Mejora continua (Kaizen):Kaizen impulsa mejoras constantes, optimizando procesos y eliminando desperdicios a través de la colaboración del equipo.
Fases
-Reducción de desperdicios:Lean se enfoca en eliminar actividades que no agregan valor -Aumento de la eficiencia: Optimiza los procesos para asegurar un flujo de trabajo más rápido y fluido -Enfoque en la entrega de valor: Al centrarse en lo que realmente necesita el cliente, Lean garantiza que el producto o servicio sea más valioso y útil - Mejora de la calidad: Al eliminar errores y enfocarse en el trabajo que aporta valor, Lean contribuye a aumentar la calidad del producto o servicio final.
Desventajas
Ventajas
- Requiere una implementación rigurosa: La implementación efectiva de Lean puede ser compleja y requiere un compromiso significativo por parte de toda la organización -Alta dependencia de la colaboración: Lean depende mucho de la participación activa de todos los empleados. -Falta de flexibilidad en ciertos entornos: Aunque Lean es altamente adaptable, en ciertos sectores o situaciones, su enfoque en la estandarización y la eficiencia puede no ser tan eficaz. -Menos enfoque en la documentación formal: Lean puede enfocarse en la entrega rápida de valor, lo que a veces reduce la atención en la creación de documentación detallada..
Design Sprint es una metodología de desarrollo de producto eficiente que permite construir y probar un prototipo en tan solo cinco fases o días. Su objetivo principal es seguir un proceso de creación muy rápido y efectivo. A partir de una serie de pasos bien estructurados, Design Sprint permite comprimir meses de validación de ideas de negocio en una semana, con el fin de descubrir las fortalezas de una idea, así como las dificultades o retos que presenta.
Método Design Sprint
Lunes: Comprensión y planificación:El primer día del Design Sprint se dedica a entender el proyecto, definir un objetivo claro y realista, y establecer las preguntas clave que se busca responder a lo largo de la semana.Martes: Boceto:En el segundo día, el equipo genera ideas creativas y bocetos de posibles soluciones al problema, explorando diferentes enfoques para encontrar innovaciones.Miercoles: Decisión:El tercer día, se analizan las ideas propuestas y se seleccionan las más prometedoras. Luego, se crea un guion gráfico para la construcción del prototipo.Jueves: Prototipo:El cuarto día se dedica a construir un prototipo funcional, aunque no definitivo, basado en la idea seleccionada, asegurando que sea tangible y listo para probar.Viernes: Prueba:En el último día, se prueba el prototipo con usuarios, se recogen comentarios y se evalúa si la solución cumple con el objetivo inicial y si es viable.
Fases
- Aceleración del proceso de diseño: El desarrollo del producto es ágil y enfocado. - Identificación de problemas y desafíos: permite comprobar las fortalezas y debilidades de una idea. - Ahorro de recursos y tiempo: las empresas pueden evitar que se invierta tiempo y recursos en proyectos que nunca llegarán a funcionar. - Mejora la toma de decisiones: gracias al feedback de los usuarios y a la experiencia acumulada durante el desarrollo, es posible tomar decisiones más acertadas.
Desventajas
Ventajas
- Incompatibilidad con grandes problemas: no permite abordar proyectos muy complejos o amplios que necesitan largos periodos de desarrollo. - Puede generar soluciones superficiales: debido a la velocidad del desarrollo, se pueden obtener resultados demasiado superficiales o imprecisos. - Necesidad de experiencia y conocimientos: la falta de experiencia o conocimientos puede lastrar tanto el propio proceso como el resultado obtenido. - No garantiza el éxito a largo plazo: Design Sprint no asegura obtener una solución que vaya a funcionar a largo plazo, ya que más tarde pueden aparecer impedimentos que no es posible identificar en un periodo de tiempo tan corto. .
Kanban es una metodología de gestión de proyectos que brinda a los gerentes de proyectos total transparencia en el proceso de gestión de tareas. Consta de principios, prácticas, tableros kanban y tarjetas kanban. Se ha convertido en una gran herramienta de gestión de tareas para DevOps y equipos ágiles y ha evolucionado para usarse en diferentes industrias, como el desarrollo de software.
Método Kanban
1. Definir el flujo de trabajo:Se crea un tablero accesible con columnas que representan las etapas del proyecto, permitiendo priorizar y gestionar las tareas de manera continua.2. Visualizar fases de producción:El trabajo se divide en etapas claras con tareas representadas por post-its que facilitan la comprensión del flujo y las prioridades.3. Priorizar finalización:Kanban prioriza terminar tareas antes de comenzar nuevas, limitando el número de trabajos en curso para mejorar la eficiencia.4. Control del flujo:Kanban permite gestionar múltiples proyectos simultáneamente, manteniendo un flujo constante de trabajo y ajustando prioridades fácilmente según sea necesario.
Fases
-Análisis profundo que permite medir el rendimiento de los trabajadores que forman parte del equipo de trabajo. -Flexibilidad que permite llevar a cabo un proceso de mejora continua. -Organización de las tareas y colaboración de todo el equipo para desarrollarlas. -Se evita la sobreproducción y la limitación de recursos.
Desventajas
Ventajas
-El Kanban obedece a procesos muy estructurados donde se conoce el principio, el fin, y todos los pasos entre medias.-Es posible ocasionar cuellos de botella si recibimos una demanda elevada inesperada. -Falta de plazos claros: Kanban no establece sprints ni plazos fijos, lo que puede hacer que sea difícil medir el progreso o cumplir con fechas límite específicas. -Requiere disciplina continua: Para que Kanban funcione bien, el equipo debe monitorear y ajustar constantemente el flujo de trabajo.
Equipo editorial de IONOS. (2019, 21 marzo). El modelo en cascada: desarrollo secuencial de software. IONOS Digital Guide. https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/el-modelo-en-cascada/ Modelo en «V», ventajas y desventajas. by Robert Orellana - Infogram. (s. f.). https://infogram.com/modelo-en-v-ventajas-y-desventajas-1h8n6m3oy7wmz4x Equipo editorial de IONOS. (2020, 28 septiembre). ¿Qué es el modelo V? IONOS Digital Guide. https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/modelo-v/Pérez, A. (2021, 6 septiembre). Características y fases del modelo incremental. OBS Business School. https://www.obsbusiness.school/blog/caracteristicas-y-fases-del-modelo-incremental Bennett, L. (2024, 13 agosto). Incremental Model in SDLC: Use, Advantage & Disadvantage. Guru99. https://www.guru99.com/es/what-is-incremental-model-in-sdlc-advantages-disadvantages.html Equipo editorial de IONOS. (2023, 12 septiembre). Modelo en espiral: el modelo para la gestión de riesgos en el desarrollo de software. IONOS Startup Guide. https://www.ionos.mx/startupguide/productividad/modelo-en-espiral/ Prezi, F. B. R. O. (s. f.). Modelo de prototipos. prezi.com. https://prezi.com/p/zruaniakb7bx/modelo-de-prototipos/ García, O. (2013, 2 septiembre). Modelo de prototipos. Proyectum. https://proyectum.com/sistema/blog/modelo-de-prototipos/ Canive, T. (2020, 27 mayo). Metodología XP o Programación Extrema: ¿Qué es y cómo aplicarla? Gestor de Proyectos Online. https://www.sinnaps.com/blog-gestion-proyectos/metodologia-xp Raeburn, A. (2024, 13 febrero). ¿Qué es la programación extrema (XP)? [2024] • Asana. Asana. https://asana.com/es/resources/extreme-programming-xp Atlassian. (s. f.). Qué es scrum y cómo empezar. https://www.atlassian.com/es/agile/scrum Martins, J. (2024, 15 febrero). Scrum: conceptos clave y cómo se aplica en la gestión de proyectos [2024] • Asana. Asana. https://asana.com/es/resources/what-is-scrum?psafe_param=1&gad_source=1&gclid=Cj0KCQjwiuC2BhDSARIsALOVfBIaGBE483YNyCquV2HWa7HXfY-DA5rL7b1vADYE2dAaslUsogpGvtcaAncMEALw_wcB&gclsrc=aw.ds Atlassian, D. (s. f.-b). ¿Qué es la metodología lean? | Atlassian. Atlassian. https://www.atlassian.com/es/agile/project-management/lean-methodology#:~:text=La%20metodolog%C3%ADa%20lean%20tiene%20como,los%20clientes%20de%20manera%20eficiente. Humanes, M. (2023, 20 junio). Metodología Lean: ¿qué es y cómo aplicarla en tu empresa? Ekon. https://www.ekon.es/blog/metodologia-lean-empresa/ Design Sprint: qué es, fases, ventajas y limitaciones. (2024, 29 agosto). Santander Open Academy. https://www.santanderopenacademy.com/es/blog/design-sprint.html Gilibets, L. (2023, 12 enero). Qué es Kanban y cómo utilizarlo en el desarrollo de proyectos. Thinking For Innovation. https://www.iebschool.com/blog/metodologia-kanban-agile-scrum/ Meijomil, S. (2024, 6 marzo). Método Kanban: qué es, cómo funciona y ejemplos. https://www.inboundcycle.com/blog-de-inbound-marketing/que-es-el-metodo-kanban
Referencias
¡Gracias por ver!