Recientemente me uní a un joven hackerspace que todavía está en proceso de configuración. Somos afortunados porque el espacio tiene algunos proyectos internos que necesitan trabajar y no hay escasez de voluntarios para trabajar en ellos.
Ha habido algunas discusiones sobre cómo organizar estos proyectos. Mi experiencia profesional más reciente ha sido con Scrum, así que estoy considerando lanzar un enfoque Scrum para nuestros proyectos de software, pero no estoy seguro de que sea una buena opción.
Aunque he visto a Scrum funcionar bien para pequeños equipos de tiempo completo, la naturaleza de esta organización es diferente:
- Los miembros son voluntarios . Algunos son estudiantes a tiempo completo. Otros trabajan trabajos a tiempo completo. No podemos esperar un nivel constante de contribución de nadie, ya que sus vidas reales tienen prioridad.
- Si bien casi todos tienen años de experiencia escribiendo software, no muchos miembros lo han hecho de manera profesional o en equipo.
- No hay dueño del producto . Los requisitos para estos proyectos son determinados por un comité. Los miembros de este comité también estarán trabajando en la implementación. Esto significa que no tendremos un propietario de producto único y dedicado.
- No tenemos plazos (blandos o duros). Los proyectos se realizarán cuando se realicen.
Estas son diferencias bastante significativas, pero no estoy convencido de que sean bloqueadores para aplicar Scrum. Creo que algunos pequeños ajustes podrían superar este obstáculo:
- Si cambiamos los Sprints para que tengan un tamaño de punto de historia fijo, pero una duración (tiempo) fluida , aún podemos beneficiarnos de lanzamientos iterativos sin ejercer una presión de entrega poco realista sobre los desarrolladores voluntarios.
- Podemos deshacernos de las tablas de quemado y el cálculo de la velocidad . Si entiendo correctamente, estas son herramientas y métricas que funcionan como un puente entre el equipo de desarrollo y la Administración. Sirven para informar el progreso en una forma que sea significativa tanto para los desarrolladores como para las partes interesadas. Teniendo en cuenta que no tenemos a nadie a quien informar (sin Gerente de Proyecto, sin Propietario de Producto y sin partes interesadas externas), creo que podemos abandonar esto por completo.
Cosas que creo que podríamos beneficiar de las cuales no requerirán ajustes:
- La (s) reunión (es) de reunión de requisitos . Donde todos se sientan alrededor de una mesa y discuten Historias de usuarios, bosquejan simulacros de UI y construyen una cartera de productos.
- Retrospectivas de Sprint . Esta será una forma interesante de converger en un proceso de desarrollo que funcione para nosotros como equipo de voluntarios.
Cosas de las que no estoy seguro:
- ¿Cómo se deben tratar los Stand-ups diarios ? Me pregunto si tendrían mucho valor en nuestro entorno. Mi comprensión del ritual de pie es que ayuda a la comunicación al diseminar información de forma natural en todo el equipo. Teniendo en cuenta el hecho de que nuestros Sprints probablemente ofrecerán mucha menos complejidad que un Sprint promedio, es posible que haya menos necesidad de estar al tanto de los avances / desarrollos de todos los demás miembros del equipo.
- ¿Debería presionar para obtener cosas de XP como integración continua, revisiones de código y TDD? Me preocupa que esto pida mucho. Me sentiría más tentado a incorporar estos conceptos en proyectos futuros una vez que las personas estén más familiarizadas con Scrum y trabajen en equipo.
Mis preguntas:
¿Se puede adaptar Scrum a un entorno voluntario?
¿Y mi enfoque planificado va en la dirección correcta hasta ahora?