Notas de la Clase de Introducción a Ingeniería de Software y Scrum

  • Introducción a Ingeniería de Software:

    • Definición del proyecto y el cliente: puede ser real, accesible mediante web o un invento.
    • Importancia de proponer soluciones basadas en el contexto del caso «veinticinco mil uno».
  • Enfoque del Curso:

    • Se combinarán teoría y práctica, aplicando los conceptos en una plantilla que será utilizada durante el semestre.
    • Adaptación de la plantilla y documentación: cambios regulares basados en el avance del proyecto con énfasis en la relevancia de la documentación durante los sprints.
  • Scrum en el Contexto del Software:

    • Se integrará la metodología Scrum a lo largo del curso, abordando conceptos clave, roles y procesos en desarrollo de software.
    • Aplicación práctica de la teoría: se aplicarán conceptos de Scrum en las actividades y en la elaboración del proyecto final.
  • Roles en Scrum:

    • Product Owner: Defiende los intereses del cliente, participa en el levantamiento de requisitos.
    • Scrum Master: Especialista en la metodología Scrum, facilita que el equipo cumpla las reglas de Scrum.
    • Team: Compuesto por analistas, programadores y diseñadores que llevarán a cabo el trabajo efectivo.
  • Eventos Clave en Scrum:

    • Sprint Planning: Planificación de tareas y objetivos del sprint.
    • Daily Scrum: Reuniones diarias para hacer un seguimiento del progreso.
    • Sprint Review: Revisión de las tareas completadas con el usuario para su aprobación.
    • Sprint Retrospective: Reflexión sobre el trabajo realizado en el sprint y mejoras futuras.
  • Artefactos en Scrum:

    • Product Backlog: Lista priorizada de requisitos y mejoras del producto.
    • Sprint Backlog: Lista de las tareas a completar durante un sprint.
    • Incremento: Resultado de un sprint que aporta valor al cliente, puede considerarse como un entregable.
  • Gestión del Alcance y Riesgos:

    • Meaning sobre el alcance del proyecto, incluyendo requisitos y expectativas del cliente.
    • Proactividad en la gestión de riesgos: planificación anticipada para mitigación, reacción o aceptación de riesgos.
  • Criterios de Aceptación:

    • Descripción de las condiciones que deben cumplirse para que el cliente acepte la historia del usuario.
    • Los criterios deben incluir requisitos funcionales y no funcionales.
  • Objetivos del Producto y del Sprint:

    • Definición de los objetivos del producto y del sprint que estarán alineados con las necesidades del cliente.
    • Importancia de redactar estos objetivos claramente para asegurar su cumplimiento.
  • Uso de Herramientas y Software:

    • Se enfatiza la creación de prototipos utilizando softwares relevantes para la implementación del sistema.
    • Ejemplos de programas útiles incluyen Figma y otras herramientas de diseño de interfaz.
  • Refinamiento de Historias de Usuario:

    • Las historias deben ser refinadas y adaptadas conforme el proyecto avanza, asegurando que sean alcanzables en un sprint.
    • Importancia de incorporar feedback continuo del cliente en las historias y criterios de aceptación.
  • Cierre del Proyecto:

    • Importancia de un cierre y retroalimentación final para evaluar el proyecto y asegurar mejoras para futuras iteraciones.
  • Bibliografía y Fuentes:

    • Referencias a obras clásicas sobre ingeniería de software y Scrum que respaldan el aprendizaje en el curso, como los trabajos de Roger Pressman e Ian Somerville.
  • Tareas y Progresos:

    • Envío de objetivos y definiciones requeridos al instructor para ser revisados.
    • Creación de grupos de trabajo y organización de tareas semanales.