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

image

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

image

image

image

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.

image

image

image

image

image