SENA TECNOLOGO EN ANALISIS Y DESARROLLO DE SOFTWARE TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE. GA1-220501093-AA1-EV01 Enrique Giraldo Puentes 2721533 23-8-2023 1). Metodología de Desarrollo de Software: Una metodología de desarrollo de software es un conjunto de técnicas y métodos organizativos que se aplican para diseñar soluciones de software informático. Estas metodologías ayudan a organizar los equipos de trabajo para que desarrollen las funciones de un programa de la mejor manera posible. Dos datos que demuestran su utilidad son que permiten una mejor planificación del proyecto y una mayor eficiencia en el proceso de desarrollo. a.) Datos que demuestran la utilidad de las metodologías de desarrollo de software: I. Un estudio realizado por Standish Group encontró que los proyectos que utilizan una metodología de desarrollo de software tienen un 40% más de probabilidades de completarse a tiempo y dentro del presupuesto. II. Un estudio realizado por Gartner encontró que los proyectos que utilizan una metodología de desarrollo de software tienen un 70% menos de probabilidades de incurrir en costos adicionales. 2). Características de Marcos Ágiles y Tradicionales: a) Marco de Trabajo Ágil: Es un conjunto de recomendaciones prácticas basadas en los principios del Manifiesto Ágil. Promueve el desarrollo iterativo e incremental, la adaptación al cambio, la colaboración con el cliente y el trabajo en equipo. Algunos ejemplos de marcos de trabajo ágiles son Scrum, Kanban y Lean. I. Los proyectos se dividen en pequeños ciclos de desarrollo llamados sprints. II. Los sprints suelen durar de 1 a 2 semanas. III. Al final de cada sprint, se entrega un producto funcional al cliente. IV. El cliente proporciona comentarios sobre el producto, que se utilizan para mejorar el producto en el siguiente sprint. V. Los equipos ágiles son autogestionados, lo que significa que son responsables de planificar, ejecutar y entregar sus propios proyectos. b) Marco de Trabajo Tradicional: Es un conjunto de normas y procedimientos basados en los estándares del PMBOK. Propone el desarrollo secuencial y lineal, la planificación detallada, el control riguroso y la documentación exhaustiva. Algunos ejemplos de marcos de trabajo tradicionales son Cascada, Espiral y Prototipo. I. El proyecto se divide en etapas. II. Cada etapa tiene un conjunto de objetivos y entregables específicos. III. Las etapas se completan en orden secuencial. IV. El proyecto no se entrega al cliente hasta que todas las etapas se han completado. V. Los equipos tradicionales suelen ser liderados por un gerente de proyecto que es responsable de planificar, ejecutar y entregar el proyecto. 3). Metodologías en Marcos Ágiles y Tradicionales: Existen diversas metodologías de desarrollo de software, algunas se enmarcan dentro de los tradicionales y otras dentro de los ágiles. Lista con cinco ejemplos de cada uno: a). Metodologías de desarrollo de software tradicionales: I. Modelo en cascada (Waterfall): Es una metodología secuencial en la que cada etapa del desarrollo se completa antes de pasar a la siguiente. Se requiere una planificación detallada y rigidez en los cambios. II. Modelo en espiral (Spiral): En esta metodología, el desarrollo se realiza en ciclos iterativos, permitiendo la retroalimentación y adaptación continua. Es especialmente útil en proyectos de alta complejidad y riesgo. III. Modelo en V (V-Model): Es una variante del modelo en cascada que enfatiza la relación entre las etapas de desarrollo y las correspondientes pruebas. Las pruebas se realizan en paralelo con cada etapa de desarrollo. IV. Modelo de desarrollo rápido de aplicaciones (RAD): Esta metodología se centra en la entrega rápida de prototipos funcionales para obtener retroalimentación temprana del cliente. Se enfoca en la participación activa del cliente y la iteración constante. V. Metodología de desarrollo estructurado (SDM): Esta metodología se basa en la descomposición de un sistema en módulos y submódulos para facilitar el diseño y desarrollo. Se enfoca en la claridad de la estructura y el uso de técnicas formales. b). Metodologías de desarrollo de software ágiles: I. Scrum: Es una metodología iterativa e incremental que se basa en la colaboración, la retroalimentación y la adaptación continua. Se divide el proyecto en sprints y se enfoca en la entrega de valor al cliente de forma regular. II. Extreme Programming (XP): Se centra en la comunicación y colaboración constante entre los miembros del equipo. Promueve la entrega frecuente de software funcional, pruebas continuas y la adaptación a los cambios. III. Kanban: Es un enfoque visual que permite gestionar el flujo de trabajo de manera eficiente. Se basa en el uso de tableros y tarjetas para visualizar las tareas y limitar la cantidad de trabajo en progreso. IV. Lean Development: Esta metodología se centra en la eliminación de desperdicios y la entrega de valor continuo al cliente. Se basa en el principio de "hacer más con menos" y en la optimización del flujo de trabajo. V. Crystal: Es una familia de metodologías ágiles que se adaptan a las características de cada proyecto. Se enfoca en la colaboración, la comunicación y el uso de herramientas adecuadas para cada situación. Estas son solo algunas de las metodologías de desarrollo de software que existen, tanto en los marcos tradicionales como en los ágiles. Cada una tiene sus propias características y beneficios, por lo que es importante elegir la más adecuada para cada proyecto en particular. EN CONCLUSIÓN Las metodologías de desarrollo de software, tanto ágiles como tradicionales, representan un valioso conjunto de técnicas, procesos y prácticas que ayudan a optimizar y gestionar efectivamente los proyectos de software. Aunque no existe una metodología perfecta aplicable a todos los casos, la utilización de metodologías comprobadas aporta importantes beneficios, entre los que se incluyen: • Mejor planificación y organización del trabajo, lo que permite estimar plazos y recursos necesarios con mayor precisión. • Mayor calidad del software desarrollado, al proveer procesos sistemáticos de diseño, codificación y pruebas. • Reducción del riesgo de fracaso de los proyectos, mediante la identificación temprana de problemas y una gestión activa de los cambios. • Aumento de la productividad de los equipos de desarrollo. • Mejor alineación entre las necesidades del negocio y la solución tecnológica. • Entrega de valor al cliente de forma continua e incremental. La selección de la metodología apropiada dependerá de factores como el tamaño y complejidad del proyecto, el nivel de incertidumbre y el tipo de sistema a desarrollar. Las metodologías ágiles suelen ser más adecuadas para proyectos con requisitos cambiantes, mientras que las tradicionales se adaptan mejor a proyectos grandes y estables. Independientemente de la opción elegida, el uso de una metodología sólida es clave para el éxito en el desarrollo de software.