#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?
-
Fases del proyecto al estilo OSWeekends
-
Elementos de un proyecto
-
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.
#OSWGuilds_Work. 4: Scrum y Cultura de equipos para proyectos Open Source
By Teba Gómez
#OSWGuilds_Work. 4: Scrum y Cultura de equipos para proyectos Open Source
Workshop n.4 de plan de formación para Guilders. Veremos en teoría y práctica como adaptar Scrum para los proyectos Open Source de los @OSWGuilds con GitHub y cómo influye en el desarrollo de proyectos la cultura de los equipos.
- 1,731