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.