Fundamentos y Aplicación de Metodologías Ágiles en el Desarrollo de Software
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 8,65 KB
Fundamentos de Metodología
¿Qué es una Metodología?
- Es una parte esencial del proceso de investigación o trabajo.
- Permite sistematizar métodos y técnicas para lograr resultados seguros y confiables.
Objetivo Principal
- Estudiar los métodos disponibles para elegir el más adecuado en un proyecto de investigación o desarrollo.
Relación entre Método y Metodología
- Método: Es el camino o procedimiento para llegar a un fin.
- Metodología: Es el conjunto de métodos organizados y coherentes.
Metodología de Desarrollo de Software (MDS)
La MDS es crucial para la gestión de proyectos:
- Permite estructurar, planificar y controlar el desarrollo del software.
- Optimiza procesos, define roles, tareas, plazos y responsabilidades.
Factores Clave para el Éxito en Proyectos de Software
- Objetivos realistas y bien definidos.
- Compromiso total del equipo y stakeholders.
- Elección adecuada de la metodología de desarrollo.
Tipos Comunes de Metodologías
- Tradicionales (Ej. Cascada).
- Ágiles (Ej. Scrum, XP).
- Basadas en Web.
- Híbridas.
Conceptos Fundamentales de Software
¿Qué es el Software?
- Conjunto de instrucciones y estructuras de datos que proporcionan funcionalidad y rendimiento a un sistema informático.
Características Esenciales del Software
- No se fabrica, se desarrolla mediante un proceso intelectual.
- No sufre desgaste físico, pero se vuelve obsoleto con el tiempo debido a la evolución tecnológica y de requisitos.
- Frecuentemente es individualizado o personalizado.
- Se basa en la reutilización de componentes (como frameworks y librerías).
Dominios de Aplicación del Software
- Software de Sistemas.
- Software de Aplicación.
- Software de Ingeniería y Ciencias.
- Software Embebido (Embedded).
- Aplicaciones Web (WebApps).
- Software de Inteligencia Artificial (IA).
- Software Heredado (Legacy Software).
El Ciclo de Vida del Software
El software debe ser capaz de:
- Adaptarse, mejorar, ampliarse y rediseñarse continuamente.
Actividades Implícitas en el Desarrollo de Software
El desarrollo implica las siguientes actividades clave:
- Modelado.
- Análisis.
- Diseño.
- Codificación.
- Prueba.
- Entrega.
- Soporte y mantenimiento.
Recursos Necesarios para el Desarrollo Interno (No Tercerizado)
- Conocimiento técnico especializado.
- Experiencia práctica.
- Sentido común y juicio profesional.
Advertencia sobre la Aplicación de Metodologías
Tener una metodología definida no garantiza la calidad del producto si esta no se aplica de manera rigurosa y correcta.
Marcos de Trabajo Ágiles y Principios Fundamentales
El Manifiesto Ágil
El desarrollo ágil se rige por los siguientes principios clave:
- La máxima prioridad es la satisfacción del cliente mediante la entrega temprana y continua de software con valor.
- Los cambios en los requisitos son bienvenidos, incluso en etapas tardías del desarrollo.
- El software funcional es la medida principal del progreso.
- Se valora más a las personas y sus interacciones que a los procesos y las herramientas.
Extreme Programming (XP)
XP es una metodología ágil enfocada en la excelencia técnica y la entrega rápida.
- Ideal para equipos pequeños.
- Posee un enfoque ligero y se centra en la implementación continua.
- Promueve la comunicación informal y constante.
Valores Fundamentales de XP
- Comunicación.
- Simplicidad.
- Retroalimentación (Feedback).
- Coraje.
Roles en Extreme Programming
- Programador.
- Cliente.
- Entrenador (Coach).
- Rastreador (Tracker).
- Probador (Tester).
Artefactos Clave de XP
- Historias de Usuario.
- Pruebas Unitarias.
- Código fuente.
- Plan de Entrega.
Spike
Una tarea de investigación o experimentación temporal que se realiza cuando no existe suficiente información para estimar o implementar una funcionalidad.
Kanban
Kanban es un sistema visual para gestionar el flujo de trabajo.
Objetivo Principal de Kanban
- Optimizar la producción.
- Controlar las etapas del proceso (WIP - Work In Progress).
- Reducir desperdicios e ineficiencias.
Requisitos para la Implementación de Kanban
- Producción constante y flujo continuo.
- Buena comunicación entre los miembros del equipo.
- Definición de una ruta clara de flujo de trabajo.
Métricas Esenciales de Kanban
- Lead Time: Tiempo total transcurrido desde que se realiza un pedido hasta su entrega final.
- Cycle Time: Tiempo transcurrido desde que se comienza a trabajar en una tarea hasta su entrega.
- Touch Time: Tiempo real de trabajo efectivo dedicado a una tarea.
- Switch Time: Tiempo perdido debido al cambio de contexto entre tareas (aproximadamente 20%).
Scrum
Scrum es el marco de trabajo ágil iterativo más popular.
- Se enfoca en entregar valor de manera incremental al cliente.
- Fomenta la transparencia, la inspección y la mejora continua.
Roles Centrales de Scrum
- Product Owner (PO).
- Scrum Master (SM).
- Equipo de Desarrollo (Development Team).
Ciclo de Desarrollo (Sprint)
- Sprint Planning: Definición de la visión del Sprint, selección de elementos del Product Backlog y asignación de tareas.
- Sprint: Periodo de tiempo fijo (Time-box) que dura entre 1 y 6 semanas, durante el cual se desarrolla el incremento de producto.
- Eventos Diarios: Reunión diaria de sincronización (Daily Standup o Daily Scrum).
- Sprint Review y Sprint Retrospective: Eventos de inspección y adaptación al final del Sprint.
Artefactos de Scrum
- Product Backlog (Lista de Producto).
- Sprint Backlog (Lista del Sprint).
- Taskboard (Tablero de Tareas).
- Historias de Usuario.
- Definition of Done (Definición de Terminado).
Ingeniería de Requisitos
Definición
La Ingeniería de Requisitos es el proceso sistemático que incluye la identificación, documentación, análisis, validación y gestión de los requerimientos del sistema.
Tipos de Requisitos
- Requisitos Funcionales: Describen lo que el sistema debe hacer (las funciones y servicios que proporciona).
- Requisitos No Funcionales: Describen cómo el sistema debe ser (restricciones de calidad, rendimiento, seguridad, usabilidad, etc.).
Fases del Proceso de Ingeniería de Requisitos
- Elicitación: Obtención de requisitos mediante técnicas como entrevistas, observación, y reuniones.
- Análisis: Estudio y refinamiento de los requisitos obtenidos.
- Especificación: Documentación formal de los requisitos.
- Validación: Confirmación de que los requisitos cumplen con las necesidades del cliente.
- Gestión del Cambio: Proceso para manejar la evolución y modificación de los requisitos a lo largo del proyecto.
Técnicas de Obtención de Requisitos
- Entrevistas.
- Cuestionarios.
- Workshops (Talleres).
- Prototipos.
Errores Comunes en la Gestión de Requisitos
- No involucrar activamente a los usuarios finales.
- Ambigüedad o inconsistencia en la documentación.
- Mala gestión de los cambios solicitados.
- Basar el desarrollo en suposiciones no validadas.