Curso de desarrollo de software con enfoque DevOps para equipos ágiles distribuídos. Obtendrás tu certificación de la Scrum Alliance. TDD, integración continua
En este curso online en vivo aprenderás a construir productos de software dentro de equipos auto-organizados distribuidos. Durante cinco jornadas ejercitaremos las prácticas ágiles más modernas de desarrollo de software.
Veremos temas como identificación de requerimientos, estimación y planificación, entregas incrementales, Integración Continua, TDD y Refactoring.
Son 5 jornadas de 3 horas. Cada una incluye actividades interactivas facilitadas por los instructores, tanto en forma individual como en grupos y entre todos (mob programing). El objetivo es tener una experiencia de desarrollo distribuido sostenible.
Te pediremos que prepares un ambiente de trabajo y una base de conocimiento. Para ello recibirás material e instrucciones con una semana de anticipación. Para esa preparación el asistente dedicará alrededor de 1hr adicional a las horas de clases.
Certified Scrum Developer
Al finalizar el taller y completar el examen, obtendrás la certificación Certified Scrum Developer (CSD) de la Scrum Alliance.
Todos los ejemplos y prácticos se realizan en JavaScript ES6 y HTML y se ejecutan en Containers de Docker basados en Linux.
Como editor de código utilizamos Visual Studio Code
Para facilitar el trabajo distribuido utilizamos Discord, Visual Studio Live Share y Zoom.
Para repositorio e integración continua usamos GitHub.
¿Debo saber programar?
Durante el curso vamos a aplicar prácticas de diseño y desarrollo de software, algunas de ellas implican trabajo con código, como TDD y Refactoring. Es deseable tener conocimiento de programación.
Por otro lado, el curso está planteado como espacio de trabajo de un equipo completo, a veces trabajando todos juntos (Ensamble o Mob programming). Esperamos desarrollar un lenguaje común en el que todos los participantes del equipo colaboren. Por ejemplo:
Esperamos participación de todos en la traducción / creación del producto que cumpla las expectativas de los usuarios. Es necesaria la participación en este contexto de los que conocen el dominio del problema, de los piensan los riesgos y cómo experimentar con el producto o sin él. Estos aportes suelen ser hechos en los equipos por personas que tienen roles de Analistas o testers.
También trabajaremos en la gestión interna del equipo, buscando transparencia y gestión visual, necesaria para lograr autonomía y gestión colaborativa. Esta mirada suele ser aportada por roles de facilitadores, scrum master o líderes de equipo.
¿Por qué JavaScript?
Es imposible en un curso abierto elegir un stack tecnológico en el que todas las personas tengan experiencia.
Buscamos un stack que tenga:
Bajo costo de preparación de ambientes de desarrollo y requerimientos de computadora (hardware / sistema operativo).
Sencillez: Que sea sencillo dar los primeros pasos y aprender (documentación disponible).
Aplicabilidad: Dado que en algunos casos significará aprender algo nuevo, mejor es si luego pueden usarlo. Nuestro pequeño aporte al desarrollo de perfiles full stack :D
Certificación Certified Scrum Developer (CSD®) de la Scrum Alliance
Experiencia de primera mano desarrollando software en el framework Scrum y prácticas ágiles de desarrollo de software en un equipo distribuido
Beneficios por ser parte dede la comunidad de la Scrum Alliance
Estrategias, riesgos y casos reales sobre cómo llevar estas prácticas a tus equipos, seas miembro, coach o líder.
Material de referencia para utilizar durante y luego del curso
Equipo completo de desarrollo de software: programadores, analistas, diseñadores y testers que van a construir software ágilmente.
Líderes de equipo, ScrumMasters, facilitadores que quieren comprender el trabajo interno del equipo de desarrollo de software.
Introducción al Desarrollo de Software Ágil, Lean y Scrum
De la idea al producto: las historias de usuario, el refinamiento, la definición de terminado, el sprint backlog
Visual Management y comunicación en el equipo distribuido
Test Driven Development (TDD)
Integración Continua
Diseño simple y slicing
Refactoring