Subido por Enrique Giraldo Puentes

Taller sobre metodologías de desarrollo de software. GA1-220501093-AA1-EV01

Anuncio
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.
Descargar