/code-retreat-2019

Edición Remota del Global Day of the Coderetreat

Primary LanguageScala

Remote Global Day of the Coderetreat

El Global Day of the Coderetreat consiste en dedicar una jornada completa a la práctica deliberada, centrándose en los principios fundamentales del desarrollo de software y no en completar una funcionalidad concreta. Todo ello con el único objetivo de mejorar nuestras mecánicas de desarrollo, diseño, testing y refactoring.

El formato del Coderetreat comporta una serie de restricciones que nos auto-imponemos, y que hacen que sea realmente interesante afrontar el desafío que representa.

Principalmente la actividad del evento se centra en completar múltiples iteraciones de 45 minutos de duración, por parejas y haciendo TDD, de forma que nuestro foco se centre siempre en las formas y no en completar un problema que es bastante complejo ya por si y que sólo nos sirve como hilo conductor del evento: El juego de la vida de Conway.

En 2019, el Global Day of the Coderetreat se organiza a nivel mundial el 16 de Noviembre y, aunque habitualmente los Coderetreat se realizan en un localización física y se hacen "cara a cara", nuestro objetivo es destilar la esencia de este tipo de eventos para trasladarla al plano remoto.

¿Cómo puedo participar?

Una de las ventajas de ser un Coderetreat remoto es que no tenemos aforo máximo, aunque para esta edición vamos a limitarlo a 100 personas. Si quieres participar únicamente tienes que completar la inscripción enviándonos un pull request con tus datos siguiendo este JSON al directorio people:

{
  "nombre": "Tu nombre completo",
  "twitter": "Tu handler de twitter sin la @",
  "slack": "@TuHandleDeSlack",
  "ciudad": "Desde que ciudad del mundo te conectarás",
  "dirigir": [ "lenguaje que dominio", "lenguaje que dominio" ],
  "aprender": [ "lenguaje que quiero aprender", "lenguaje que quiero aprender" ]
}

Vamos a utilizar slack como herramienta de coordinación. Para poder comenzar a utilizarlo, únete aquí a este Slack.

¿En qué lenguaje se programará?

No hay restricción en cuanto al lenguaje a emplear. En cualquier caso y para facilitar el trabajo a la hora de probar nuevos lenguajes y entornos, os hemos preparado una serie de presets.

¿Tu lenguaje favorito no está entre los presets disponibles? Envíanos un pull request y lo incorporaremos a la lista :)

¿Qué tengo que tener instalado?

Visual Studio Code

Para simplificar la interacción entre los asistentes, hemos elegido Visual Studio Code como IDE de referencia a utilizar durante el evento.

El motivo principal es que su extensión Live Share permite la colaboración en tiempo real de una forma sencilla y efectiva.

Live Share

Podéis encontrar más detalles sobre su funcionamiento aquí.

Alrededor de Live Share, han surgido otras extensiones. De todas ellas, tambien utilizaremos la de Live Share Audio, que nos permite mantener una conversación hablada con nuestra pareja.

Si quieres instalar todas los plugins de Live Share que vamos a utilizar, más alguno que también está bastante bien, puedes hacerlo instalando únicamente el Live Share Extension Pack

Zoom

Cuando tengamos que hablar todos juntos, utilizaremos Zoom. Para unirte a la llamada, tendrás que instalar el software, pero no es necesario tener una cuenta.

Slack

Utilizaremos Slack como herramienta de coordinación. Consulta los apartados de ¿Cómo puedo participar? o ¿Cómo nos coordinaremos durante el evento? para más detalles.

Resumen

¿Qué haremos durante el Remote Coderetreat?

Iteraciones

Realizaremos varias iteraciones de 45 minutos, cambiando de pareja y/o lenguaje después de cada iteración. Al finalizar la iteración haremos una mini retrospectiva para poner en común ideas y avances.

Creación de parejas

Para llevar un control de las parejas creadas en cada iteración hemos creado un excel compartido en Google Sheets.

El documento tiene 4 hojas, una por iteración. En cada iteración identificaremos a las personas que van dirigir y a sus parejas utilizando el identificador de usuario de Slack de ambos. Adicionalmente, se indicará para cada pareja el lenguaje en el que van a trabajar y la URL de Visual Studio Code donde se llevará a cabo la sesión.

Es responsabilidad del que dirige el dar de alta su usuario, lenguaje y URL de Visual Studio Code en el documento.

A la hora de definir quien será su pareja durante la iteración, utilizaremos Slack para coordinarnos.

Si no quieres participar en una sesión de forma directa pero quieres aprender viendo como desarrollan otros, te puedes conectar a la URL de la sesión y asistir como oyente

Planning

A continuación, podrás encontrar una agenda provisional. Es posible que haya modificaciones durante los días previos al evento, así que consultala de nuevo cuando se acerque el día del evento.

08:30 - Configura tu entorno: Slot reservado para configuración y pruebas de conexión
09:00 - Presentación breve y confeccionar parejas
09:30 - Primera iteración
10:15 - Retro
10:30 - Segunda iteración
11:15 - Retro
11:30 - Almuerzo
12:00 - Tercera iteración
12:45 - Retro
13:00 - Cuarta iteración
13:45 - Retro final

Facilitador

El coderetreat será facilitado por Xavi Gost:

¿Cómo nos coordinaremos durante el evento?

Durante el evento utilizaremos Slack para lanzar avisos y coordinarnos a la hora de cambiar de pareja en cada iteración.

Mantendremos una videollamada utilizando Zoom. La vídeollamada de Zoom estará siempre abierta para que cualquier persona pueda unirse en cualquier momento y la compartiremos a través de Slack.

En Slack se han creado tantos canales como presets hay disponibles. Únete a los que más te interesen para estar informado de problemas de configuración o información interesante relativa a tu lenguaje.

¿Qué problema vamos a abordar?

Es costumbre que en los Coderetreats la kata elegida sea el Juego de la Vida de Conway. Como has podido comprobar en la agenda, no hay un slot concreto para explicar la kata, así que asegúrate de haberla leído y entendido antes del día del evento.

Reglas del juego de la vida

Tienes una descripción completa de la misma aquí.

Reglas básicas

  • Any live cell with fewer than two live neighbours dies, as if caused by underpopulation.
  • Any live cell with more than three live neighbours dies, as if by overcrowding.
  • Any live cell with two or three live neighbours lives on to the next generation.
  • Any dead cell with exactly three live neighbours becomes a live cell.