Herramientas Métodos Procesos Ingenieria Software 🔥
Historias de Usuario
Metodologías Ágiles
Descripciones cortas y simples que representan un requisito de software desde la perspectiva del usuario final. Deben caber en un POST-IT para no ser muy extensas
Ayudan a los equipos a entender las necesidades del usuario y a construir funcionalidades que aporten valor real
Posee dos partes importantes
Descripción: Como [usuario], quiero [acción], para [resultado]
Criterios de aceptación: definen las condiciones bajo las cuales la historia se considera completa
Mantiene los principios INVEST para alta calidad
Independiente: La historia debe ser autosuficiente.
Negociable: Debe permitir discusión y ajustes.
Valiosa: Debe entregar valor al usuario final.
Estimable: Debe ser posible estimar su tamaño y dificultad.
Pequeña: Debe ser lo suficientemente pequeña para ser manejable.
Testable: Debe ser posible probar que se ha completado
Conceptos ágiles
DevOps: Metodología de trabajo para colaborar e integrar el área de TI y las fábricas de software, con el fin de mejorar la eficiencia y colaboración multidisciplinaria
CI/CD: Constante integración, y constante entrega. Se refiere a la automatización del proceso de desarrollo y despliegue de software
Sprint: Es un período de tiempo fijo para el desarrollo, término que proviene de SCRUM. Se seleccionan historias del backlog para trabajar en ellas en el ciclo en curso
Documentación 4+1 vistas: Describe la arquitectura de software mediante un modelo que contempla cinco perspectivas: lógica, desarrollo, proceso, física y escenarios. Esto hace parte de la documentación del software que incluye manuales, guías de instalación y ayuda en línea
Backlog: lista priorizada de trabajo pendiente en el Sprint o en el proyecto
Tablero Kanban: es una herramienta visual para gestionar el trabajo en curso, maximizar la eficiencia y mejorar la fluidez del proceso de desarrollo. Por ejemplo: Trello integra tableros Kanban donde se pueden agregar las historias de usuario. Además, cada proyecto puede poseer varios de estos tableros para representar las cargas paralelas de desarrollo en curso
Extreme Programming (XP)
Scrum:
Alternativa a los enfoques tradicionales de desarrollo de software. El elemento clave en las metodologías ágiles es el ciclo de vida iterativo e incremental.
Tiene varias fases pues aplica conceptops de la reingeniería de finales de los 1980. Estas son:
Principios se complementan son los tres pilares de SCRUM : Transparencia, adaptación e inspección.
Metodología ágil que ayuda a los equipos a estructurar y gestionar el trabajo mediante un conjunto de valores, principios y prácticas.
Iterativo e incremental: Trabajo en sprints cortos y entregas frecuentes.
Roles definidos: Scrum Master, Product Owner y Equipo de Desarrollo.
Artefactos: Backlog del producto, Backlog del sprint y el incremento.
Ceremonias: Reuniones diarias, planificación de sprint, revisión de sprint y retrospectiva.
Pre-juego: En esta fase, se planifica el proyecto y se establecen los roles y responsabilidades.
Juego: Durante los sprints, se desarrollan las funcionalidades basadas en historias de usuario.
Post juego: Se revisa el sprint y se ajusta el proceso para el siguiente.
Enfoque técnico
Principios:
Metodología ágil de gestión de proyectos que se centra en la velocidad y la simplicidad con ciclos de desarrollo cortos y menos documentación. Es una implementación popular entre desarrolladores
Pruebas tempranas: Pruebas antes de escribir el código de producción.
Programación en parejas: Trabajo colaborativo entre desarrolladores.
Integraciones continuas: Entrega de código de alta calidad de manera sostenible.
Comunicación: Interacción constante entre el equipo y los stakeholders.
Simplicidad: Diseño y código sencillos.
Feedback: Pruebas tempranas y frecuentes.
Coraje: Aceptar cambios y enfrentar problemas.
Propiedad colectiva del código: Todos son responsables del código.
Programación en parejas: Dos programadores trabajan juntos.
Cuarenta horas semanales: Evitar el agotamiento.
Metáfora del negocio: Lenguaje común para describir el sistema.
Cliente in situ: El cliente está disponible para aclaraciones.
Entregas frecuentes: Incrementos funcionales en cada iteración.
Planificación del juego: Planificación detallada para cada sprint.