#OSWGuilds

Work. 4: Scrum y Cultura de equipos en proyectos Open Source

  • Agile y sus cosas...
  • Scrum y sus cosas...
  • ¿Son amigos Scrum y GitHub? Live Session con Ulises!
  • Scrum y los roles
  • ¿Los equipos tienen "cultura"?
  • ¡Preguntas!

Theba Gomez

Embajadora de los Guilds en Open Source Weekends &

Desarrollo de personas, equipos y organizaciones con Design Thinking, coaching, creatividad y metodologías ágiles.

Diseño de proyectos de CX y Transformación Cultural.

Instructor @Fictizia

#FutureJuniorDeveloper

Ulises Gascón

Desarrollador Full Stack y orgulloso co-organizor de la comunidad Open Source Weekends (OSW)

 

Colaborador activo en la Comunidad Open Source

 

Trabaja como freelance, además de ser profesor en Fictizia.

#01-Guilds

Novedades

Novedades 

Apúntate para ser Guilder! guilds.osweekends.com  

 

Novedades 

Nuevo portal para Guilders! guilds.osweekends.com  

 

Novedades 

  • Hackaton para Guilds! - todo un finde para los Guilders! OSW de Marzo y Mayo '18 
  • Sesiones mensuales teóricas y muy prácticas :)  
  • Meta Guild: org. team, mentoring, advisors
  • Onboardings para nuevos Guilds - Abril '18

 

Presentaciones de los Guilders durante el Hackaton!! - '15 mins - temática libre - ¿¿quién quiere practicar??

Novedades 

GitHub for Education como Sponsor!

Pronto, pronto...

Recursos (en inglés)

Student developers packs

y pegatinas!! 

Ponentes 

Visibilidad de los Guilds 

Otros programas de GitHub 

Agile y sus cosas!

Origen Agile 

Entornos inciertos, no predecibles, con necesidades cambiantes...requieren mayor flexibilidad de toma de decisiones

Agilidad = adaptación y resiliencia

  • Capacidad de adaptación al cambio
  • Velocidad para responder a las demandas del entorno
  • Identificar más y mejores oportunidades
  • Mejora continua - experiencias!

Reacción a la falta de soluciones a problemas históricos de desarrollo de proyectos!!!

Agilidad =

APREDER MÁS Y MÁS RÁPIDO

FLEXIBILIDAD

ADAPTACIÓN

SIMPLICIDAD

...nueva forma de pensar y actuar!

...nueva forma de pensar y actuar!

¿Quieres compartir qué significa para tí tener "una nueva forma de pensar y actuar"?

Enfoque Agile 

...nueva forma de pensar y actuar!

Recursos

Fechas

Requisitos (implementar la funcionalidad +valiosa para usuarios)

Fijado

Estimado

¿¿Y cómo se consigue??

  • Colaboración + comunicación constante
  • Trabajo por iteraciones e incrementos
  • Equipos auto-organizados
  • Experimentar a pequeña y múltiple escala
  • Despejar incertidumbre (p.ej. prototipos)
  • Orientación a ayudar 
  • APREDER MÁS Y MÁS RÁPIDO

  • FLEXIBILIDAD

  • ADAPTACIÓN

  • SIMPLICIDAD

Agilidad =

...y con mil soluciones de gestión

Lean 

StartUp

DSDM

...y qué sucede con su adopción?

Enfoque 

táctico

No Buy-in

No venimos

"de serie"

Intereses

personales

Resistencia

al 

cambio

Desconoci-miento

práctica

Liderazgos

anticuados

...y tí, ¿por qué te gusta Agile?

Integración

sencilla

miembros

Pequeñas 

victorias

Soluciones

rápidas

Cliente y 

equipo

unidos

Entregas

aseguradas

Aprendizaje

sobre la 

marcha

....

Estamos descubriendo formas mejores de desarrollar
software tanto por nuestra propia experiencia como
ayudando a terceros. A través de este trabajo hemos
aprendido a valorar:

🔝  Más importante 👔 Menos importante
Individuos e interacciones  Procesos y herramientas
Software funcionando Documentación exhaustiva
Colaboración con el cliente  Negociación contractual
Respuesta ante el cambio Seguir un plan estricto
Satisfacción cliente: entregas frecuentes  Medida de progreso: software funcionando
Requisitos cambiantes
 
Agilismo=desarrollo sostenible
Entrega software funcional: períodos 2 sem.-2 meses Excelencia técnica y buen diseño es agilidad!
Colaboración negocio-desarrollo  Simplifica! Es esencial
Entorno motivador y apoyo al equipo Son necesarios equipos auto-organizados!
Comunicación abierta, cara a cara Revisiones y reflexiones frecuentes, ajustes a tiempo!

... y sus 12 principios (framework)

¿Con qué nos quedamos?

  • Colaboración entre tod@s - elemento clave!

  • Constante comunicación

  • Construir de manera incremental

  • Sencillez y sentido común!

Scrum y sus cosas!

En Sillicon Valley...

Métodos ágiles y prácticas

Scrum, me lo puedes resumir?

Scrum y Kanban sirven como procesos de gestión; en el caso de desarrollo de software, hay que seguir unas buenas prácticas de programación, como las que ofrece XP

Scrum propone un marco de trabajo basado (fundamentalmente) en que los equipos se auto gestionen y en iteraciones o Sprints

Scrum es el método ágil más aplicado y con más elementos aplicables. 

Scrum, me lo puedes resumir?

Principios:

  • Inspección y Adaptación: iteraciones, análisis, mejoras!
  • Auto-organización y colaboración: responsabilidad y compromiso!
  • Priorización de los requisitos
  • Mantener el ritmo de desarrollo. Optimización, predictabilidad, estimación, fechas clave!
  • Iteraciones: planificación, análisis, creación y comprobación de entregas

Scrum: flujo de trabajo resumido

Scrum: flujo de trabajo resumido

Product Owner (rol)

  • Responsable desde el punto de vista del negocio.

  • Intermediario entre equipo y Stakeholders

  • Gestiona el Product Backlog

Sprint 0 (viabilidad?)

  • Recursos y marco temporal (fechas entrega, releases...)
  • Herramientas, procesos...
  • Hªs de usuario: priorización y criterios de cumplimiento
  • Entregable: P. Backlog

Product Backlog

  • Define el amplio trabajo del proyecto con detalle
  • Temas, épicas e historias de usuario y prioriza 
  • Criterios que definan ya cumplido

Scrum: flujo de trabajo resumido

Sprint Planning Meeting, Scrum Master y Equipo

Scrum Master (rol)

  • Facilitador del trabajo
  • Responsable del proceso
  • Aplica las mejores prácticas y mejorar el trabajo en equipo
  • Identifica puntos de mejora y ayuda a resolver conflictos

Equipo (auto org.) (rol)

  • Ejecutan el trabajo

  • Responsables técnicos

  • Preocupados por mejoras de Calidad y Productividad

Sprint Planning Meeting

  • Estimación requisitos P.B.
  • Alcance Sprint

  • Historias de usuarios > tareas!

  • Entregable: Sprint Backlog!

Scrum: flujo de trabajo resumido

Sprint Backlog

  • Definición del trabajo a desarrollar
  • Viene del S. Planning en base al P.B. y sus prioridades
  • Responsabilidad del equipo y SM
  • Incluye las tareas en lenguaje técnico (subdiv. de las historias de usuario) realizables por 1 persona entre medio y 3 días
  • Impediment Backlog: la pila de impedimentos

Scrum: flujo de trabajo resumido

Duración Sprints y Burndown Chart

Burndown Chart

  • Evolución del trabajo durante el Sprint
  • Herramienta visual evolutiva
  • X=Horas; Y=días (calendario)

Duración Sprints

  • Entre 2 y 4 semanas
  • Fechas y tareas fijas

Scrum: flujo de trabajo resumido

Daily Meetings, Review y Retrospectiva

Daily Meeting (SM facilita)

  • Sincronización diaria trabajo durante el Sprint (fin, comienzo, impedimentos...)
  • Reuniones ágiles - 10/15mins
  • Busca mejorar la comunicación

Sprint Review

  • Revisión resultados Sprint - EL QUÉ
  • Resultados visibles; criterios de aceptación
  • PO determina la realización

Retrospectiva (+++)

  • Revisión de CÓMO hacemos las cosas
  • Foco en la mejora del proceso
  • Rev. evolución, objetivos, dificultades, mejoras, soluciones..

Scrum: Backlogs 

Scrum: Velocidad y estimaciones

Scrum: valores que adoptaremos

  • Mejora continua: identificar continuamente el área de mejora
  • Calidad: nunca sacrificar antes que plazos y costes
  • Time-boxing: aprovechar el tiempo en reuniones (p.ej.)
  • Responsabilidad compartida siempre. Sin ella, no hay auto gestión
  • Multidisciplinar: equipo autónomo para todas las tareas del proyecto
  • Flexibilidad ya que los requisitos pueden cambiar
  • Ritmo adecuado, que favorece la previsión, estimación, MOTIVACIÓN...
  • Compromiso, confianza y autonomía hacia el proyecto
  • Simplicidad que facilita el proceso presente y futuro
  • Respeto; Scrum se centra en las personas y sus relaciones
  • Valentía para tomar decisiones con autonomía
  • Foco: es importante trabajar para mantenerlo!
  • Predictabilidad: con el objetivo de valorar la cantidad de trabajo fácil
  • Personas: Scrum trata de favorecer su comunicación y lograr relaciones fluidas

Scrum: valores que adoptaremos

  • Revisión del trabajo para favorecer la calidad del mismo
  • Colaboración, imprescindible para el trabajo en equipo
  • Contar con el cliente: se integra en el trabajo del equipo
  • Iteraciones o ciclos cortos para resolver problemas rápidamente
  • Priorización: qué es realmente importante y asignar relevancia
  • Trabajo en equipo: uno de los valores supremos!
  • Generosidad
  • Comunicación
  • Capacidad y disposición a aprender

Kanban: la herramienta visual

  • Visualiza todo el flujo de trabajo
  • Estado de cada item
  • 1ª columna - Backlog Producto
  • Dividir el trabajo en items pequeños
  • Limitar el nº de items
  • Tiempo para completar el ciclo

Kanban con GitHub

Xtreme Progamming

  • Perfecto para proyectos con requisitos vagos y cambiantes
  • Método adaptativo
  • Desarrollo de código que permite fácilmente añadir nuevas funcionalidades
  • Trabaja con pequeñas iteraciones > feedback frecuente!
  • Forma incremental
  • Pruebas como base de la construcción: rápidas, frecuentes y automatizadas
  • Detención de fallos rápidamente
  • Iteración: planificación, análisis, desarrollo, diseño y pruebas del código

Scrum y Open Source

¿Con que nos quedamos?

Lo que usaremos:

  • Sprints!
  • Priorización y entregables
  • Backlogs
  • Aprendizaje continuo y más valores!
  • Revisiones y retrospectivas
  • Roles
  • Cultura Agile

Nuestra deconstrucción

El proceso que adaptamos:

  • NO somos Scrum ni nada estrictos
  • Somos Agile a nuestro modo :-D
  • Un weekly review es mejor que un daily
  • Sprints de un mes, que coinciden con OSW
  • Demo time en comunidad con presentación y debate con usuari@s
  • Sprints y Backlogs

Nuestra deconstrucción

Los Roles que adaptamos:

  • Equipo, por supuesto!
  • Product Owner | Líder del Guild/Proyecto
  • Scrum Master | Alguien del equipo elegido por el equipo

Y a aprender y pasárselo bien!!!

 Domingo con mentor@s!

Ser Agile en GitHub

Github Guide: Managing Projects

Muchas herramientas

  • Markdown
  • Readme.md
  • Issues
  • Pull Request
  • Labels
  • Millestones
  • Projects
  • ...

¿Cómo organizarnos?

  1.  Fases del proyecto al estilo OSWeekends

  2.  Elementos de un proyecto

  3.  Mecánicas de trabajo

Fase: Sprint 0 (Zero Code)

Objetivos:

  • Analizar una Idea/Necesidad/petición...
  • Pensar una solución/producto tecnológico
  • Definir las funcionalidades con perspectiva técnica (backlog técnico de producto)
  • Entregamos un Readme.md, backlog.md y pitch del proyecto

Esta primera fase es la que nos ayuda a definir qué es lo que necesitamos para empezar a trabajar en el proyecto.

 

El objetivo principal es asentar la bases del producto y resolver las cuestiones técnicas generales, dejando todo documentado en el proceso.

Fase: Sprint 1 (Fast MVP)

Objetivos:

  • Actualizar documentación (readme, backlog, etc..)
  • Crear un Milestone (deadline)
  • Generar y resolver los Issues del sprint con detalles, asignados y etiquetados
  • Pedir Feedback (Demo day, presentación, etc...)

Esta segunda fase es la que nos ayuda a validar que lo que estamos haciendo tiene sentido y que estamos resolviendo un problema real con nuestr@s usuari@s.

 

El objetivo principal es crear una versión mínima viable del producto, que probablemente pivote o sea descartada posteriormente.

Fase: Sprint n+1 (template)

Objetivos:

  • Procesar feedback (feature request + bugs)
  • Listar y resolver bugs
  • Actualizar documentación (readme, backlog, etc..)
  • Crear un Milestone (deadline)
  • Generar y resolver los issues del sprint con detalles, asignados y etiquetados
  • Pedir Feedback (Demo day, presentación, etc...)

Esta plantilla de trabajo se extenderá a los próximos sprints que hagamos.

 

El objetivo principal es añadir nuevas funcionalidades en nuestro producto y resolver bugs, por supuesto presentando resultados en cada iteracción.

Elemento: Readme.md

EL readme.md es el punto de contacto de nuestro proyecto con el mundo. No solo con los participantes del proyecto, también con reutilizador@s y potenciales usuari@s

Componentes:

  • Descripcion del proyecto
  • Equipo
  • Tecnologías
  • ¿Cómo contribuir?
  • Demo
  • ¿Cómo usarlo?
  • Estado del proyecto y licencia
  • Histórico de releases

Elemento: CONTRIBUTING.md

El contriuting.md es el F.A.Q para contribuir a nuestro proyecto con el mundo. Desde aquí gestionamos todo tipo de posibles interacciones

Escenarios planteados:

  • Reportar un error(bug)
  • Iniciar una conversacion sobre el proyecto
  • Subir una aportación de código
  • Ayudar sin programar ni código
  • Proponer una nueva funcionalidad
  • ¡Quiero unirme al equipo!
  • ¿Cómo se trabaja en este proyecto?

Elemento: COC

EL code of conduct.md son las normas y estándares que rigen nuestro proyectos y determinan que clase de aportaciones o acciones de terceros serán rechazadas y perseguidas

Este Código de Conducta es una adaptación del Contributor Covenant, versión 1.4

Elemento: Issues

Contamos con una plantilla automática para notificar bugs.

Datos pedidos:

  • Resumen del problema (240-500 carácteres)
  • Pasos para reproducirlo (¿Qué tengo que hacer para generar ese error de nuevo?)
  • Comportamiento esperado (¿Qué debería de pasar si ese bug no existiera?)
  • Resultado final (¿Qué pasó cuando se disparó el bug?)
  • Más información (Cualquier detalle relevante que nos ayude)

Elemento: Milestone

Un milestone agrupa los issues de un Sprint y establece un deadline que será siempre 1 día antes del próximo OSW

Mecánicas: Markdown

Mecánicas: Git Flow

Mecánicas: Projects (kanban)

Scrum: roles y cultura de equipo

#SpoilerAlert

Scrum, roles y cultura de equipo

Por Slack:

  • Enviadme vuestras experiencias o lo que queráis compartir sobre la cultura en vuestras organizaciones
  • Preguntas que queréis resolver en el próximo Workshop
  • Si queréis hacer alguna dinámica
  • Ideas, sugerencias, dudas...

 

Questions

Thank U!

Explórate. Aprende. 

Escucha al mundo.

Y vuelve a aprender.