Nombre: | Prácticas esenciales de ingeniería de sw para el agilismo |
Créditos | 2 |
Semanas | 8 semanas ( 8-12 horas por semana) |
Tipo: | High Touch. Encuentros síncronos semanales, |
Profesor responsable | Gloria Cortés y Rubby Casallas |
Prerrequisitos | Programación básica en python |
Al finalizar el curso el estudiante estará en capacidad de:
Más específicamente:
En este curso se estudiarán 4 prácticas de ingeniería de software: Historias de usuario, flujos de trabajo, desarrollo basado en pruebas e integración continua. Para cada práctica se estudian los conceptos asociados, se realizan tutoriales prácticos y se aplican en un proyecto, en parejas, que se desarrolla a lo largo del curso.
El elemento integrador de las prácticas es el proyecto. Es un proyecto pequeño, donde su alcance está definido y para el cual, los estudiantes analizarán el enunciado construyendo un modelo conceptual en UML y definen unas historias de usuario.
Cada estudiante debe desarrollar un conjunto de HU cuya implementación se hará utilizando la práctica de desarrollo basado en pruebas. El proceso de desarrollo es incremental. Para coordinar el trabajo, deben usar un sistema de control de versiones, un sitio para documentación del proyecto y definir un flujo de trabajo que les permita ir integrando de forma tal que el proyecto funcione en todo momento. Esta verificación se hace de manera automatizada utilizando una herramienta de integración continua que construye el proyecto y ejecuta las pruebas definidas, reportando el resultado.
La estrategia global del curso cubre dos aspectos:
Se realizará evaluación formativa y sumativa, tanto individual como en el contexto del proyecto en parejas así:
El curso está compuesto por 8 semanas. Cada semana puede tener varios módulos. Para cada uno se tiene sus objetivos y un conjunto de lecciones con distintas actividades para el estudiante. Las actividades son de distinto tipo: videos, tutoriales, ejercicios, lecturas, entre otras.
Cada semana hay una lección especial llamada Proyecto
donde se agrupan las actividades propias del proyecto.
Para iniciar se espera que los estudiantes vean el video de entrevista con el testimonio de la industria sobre la necesidad de la entrega de valor continuo. Motivación y experiencia. Se entrega a los estudiantes una preguntas orientadoras previas a la lectura complementaria y luego llevan a cabo el ejercicio de lectura sobre agilismo que presenta los conceptos básicos. Se evalúa la comprensión de lectura. Los estudiantes participan en un foro sobre agilismo.
A través de explicaciones en video, el estudiante revisa los conceptos de sintaxis básicos sobre los diagramas. Luegos e le proponen ejercicios para ser desarrollados de forma individual. Un validador automático le da una primera retroalimentación y luego el tutor complementa.
M10: Mentimeter rompe hielo sobre la entrevista.
CS10: Caso para hacer en grupos de 4. Cada grupo tiene un room en zoom. Todos los grupos tienen el mismo caso. El caso es sobre un proyecto de sw que no está saliendo muy bien. Hay 4 personajes involucrados en el caso y cada uno opina sobre el caso. Cada integrante tiene un rol (personaje) del caso. Cada estudiante debe explicar por qué cree que su personaje da la opinión que se describe en el caso. Cada grupo discute brevemente. Cada grupo concluye con 5 palabras que reflejen los 5 principales problemas del caso y contestan en mentimeter.
Concluye a partir de la nube de palabras.Atar con la lectura del agilismo y el foro. Pendiente: Adaptar el caso.
En este módulo se continúa con los diagramas de clases UML en construcción avanzada.
Se espera que los estudiantes vean el video de conceptos sobre requisitos y alcance del SW en este curso. Luego encuentran un video sobre Historias de Usuario e INVEST acompañando de un ejemplo y de un tutorial para Construir HU. Se realiza una lectura complementaria sobre HU y posteriormente se espera detallar una HU. Por medio de un tutorial sobre la revisión de pares con la rúbrica se lleva a cabo la actividad. Se realiza una evaluación sumativa sobre HU.
Esta semana está compuesta por las siguientes lecciones.
Discusión agilismo en grupos basándose en la lectura de Bertrand Meyer. Se organizan los grupos y se discute por temas del capítulo 2.
Esta semana se centra en el inicio del proyecto del curso. Primero se presentan sus objetivos, alcance, hitos y evaluación. Luego se introduce el enunciado del proyecto y se dan las instrucciones para la entrega del modelo conceptual individual, la identificación de las HUs (listado inicial). Se realiza un tutorial de Markdown. Los estudiantes se familiarizan con la guía para el proyecto sobre las HU en markdown y cómo subirlas al repo; y la guía para realizar inspección de HU. Se desarrolla un tutorial básico de Diseño UML.
Esta semana está compuesta por las siguientes lecciones.
Revisión de ejemplos correctos e incorrectos de HU, tips y errores típicos.
Se retoma el proyecto para verificar si hay dudas, cuales han sido los avances y cómo continuar.
Los estudiantes continuarán explorando y desarrollando los módulos 3 y 4 del MOOC de GIT. Además se abordarán los temas relacionados con flujos de trabajo, problemas y principios por medio de un video que se complementará con una lectura. También se presentará el tema de gitflow en un video explicativo y se complementará con un tutorial. Los estudiantes participan en un foro sobre su experiencia con los flujos de trabajo.
En el proyecto se plantea un ejercicio de gitflow en parejas implementando las HU del proyecto (las clases y las signaturas sin el cuerpo de los métodos).
Esta semana está compuesta por las siguientes lecciones:
Esta semana está compuesta por las siguientes lecciones:
Ver la entrevista sobre problemas relacionados con flujos de trabajo (Allen Polo, Endava, Bizagi)
A partir de los casos de los problemas proponer una solución (por parejas). Luego ver la entrevista sobre soluciones con los flujos de trabajo. Llegar a una conclusión que caracterice los problemas y las soluciones.
Esta semana inicia con la evaluación sumativa (parcial) en proctorio. Los temas del parcial corresponden a las semanas previas: HU, UML, Git, GitFLOW
Posteriormente por medio de un video se hace la introducción a Pruebas unitarias y self testing code. El trabajo práctico estará orientado con un tutorial básico de pruebas unitarias en python. Con dos videos introductorios se inician los temas de Pair Programming y TDD, los cuales están acompañados de las correspondientes lecturas. Los estudiantes trabajarán un
tutorial de cómo hacer una Kata y podrán observar un ejemplo sobre cómo desarrollar uno de los métodos del proyecto en TDD, esto será un trabajo individual. Luego en parejas desarrollan una Guia de Kata. Tendrán trabajo práctico al desarrollar los tutoriales básicos: cómo acceder a jenkins y el significado de los soles; git inspector.
En el proyecto se está preparando la Entrega 1 usando TDD (y pair programming) en parejas y las fuentes en github (git inspector, jenkins)
Esta semana está compuesta por las siguientes lecciones:
Continuación sobre flujos de trabajo a partir del análisis de otros casos.
Para indagar conocimientos previos se presentan una serie de preguntas sobre TDD y luego se realiza una lectura sobre TDD. Posteriormente se lleva a cabo una evaluación formativa sobre la lectura TDD y Pair Programming. Por medio de un video se presenta el tema de Pruebas unitarias, escenarios, y pruebas (regresión). Se consolida lo visto por medio de un tutorial de generación de datos de prueba.
En el proyecto se plantea continuar con la implementación de las HU utilizando las práctica de TDD y Pair Programming sobre el proyecto del curso
Discusión sobre TDD.
Organizar grupos pequeños con preguntas sobre las ventajas y desventajas de TDD. Cada grupo debe escribir sus respuestas en un padlet. El padlet puede estar organizado por "a favor" y "en contra". Retomar con un mentimeter.
Se presenta un video sobre Integración Continua y se invita a que los estudiantes consulten y comenten varios casos de IC en un Padlet (muro colaborativo). Se hace entrega de una guía de casos para que se revisen resultados de jenkins en otros proyectos cuyo entregable podrá ser un podcast o un video. Por medio de un video se hace una explicación sobre Pipelines que se complementa con una lectura. Será evaluado por medio de un cuestionario.
lectura complementaria sobre pipelines
En el proyecto se realiza una lectura sobre IC y pipelines y se espera que revisen jenkins.
Esta semana está compuesta por las siguientes lecciones:
Discusión sobre los retos de la Integración Continua. Explorar las experiencias de los estudiantes por medio de una encuesta sobre las prácticas en las empresas en las que trabajan. Se dividen en grupos a partir de lo que usan y lo que no usan. Discutir en el de no uso los problemas que tienen y los que usan los beneficios y los retos para escalar.
Se presenta el contenido sobre IC y DevOps por medio de video y una lectura. Se realiza la evaluación sumativa del curso y se finaliza el proyecto.
Esta semana está compuesta por las siguientes lecciones:
Presentaciones del proyecto y retrospectiva del curso.