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:

  1. Modelado.
  2. Análisis.
  3. Diseño.
  4. Codificación.
  5. Prueba.
  6. Entrega.
  7. 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)

  1. Sprint Planning: Definición de la visión del Sprint, selección de elementos del Product Backlog y asignación de tareas.
  2. Sprint: Periodo de tiempo fijo (Time-box) que dura entre 1 y 6 semanas, durante el cual se desarrolla el incremento de producto.
  3. Eventos Diarios: Reunión diaria de sincronización (Daily Standup o Daily Scrum).
  4. 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

  1. Elicitación: Obtención de requisitos mediante técnicas como entrevistas, observación, y reuniones.
  2. Análisis: Estudio y refinamiento de los requisitos obtenidos.
  3. Especificación: Documentación formal de los requisitos.
  4. Validación: Confirmación de que los requisitos cumplen con las necesidades del cliente.
  5. 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.

Entradas relacionadas: