Archivo de la categoría: Programación

Cosas que se van descubriendo sobre la programación

Nuestro humilde Coderetreat

El pasado sábado 14 de Diciembre celebramos en Alicante nuestro primer Coderetreat. Si quieres detalles de qué es un Coderetreat aquí los tienes.

Gracias a Santiago Melía conseguimos un aula muy buena en la Universidad de Alicante y fue el pistoletazo de salida para empezar a prepararlo. Creé el evento en la web del Coderetreat y en Eventbrite para que la gente se pudiera apuntar de manera sencilla.  Sabía que debía conseguir que algún patrocinador que pagara el almuerzo o la comida del día y poder traer la comida a la propia aula. Para ello contacté con empresas locales de papelería, componentes informáticos, bancos, el ayuntamiento, la diputación… «Rien de rien». Lo único que conseguí fue alguna respuesta diciendo «No vamos a patrocinar nada pero suerte en el evento».

Angel Armenta se propuso prepararse el papel de facilitador. Así yo podría estar en las conexiones con otras ciudades del mundo, actualizando el estado de nuestras sesiones, poniendo la publicidad y estar atento al evento. Los días pasaban y pocos apuntados iban apareciendo. Llégó la fecha del 14 de Diciembre con sólo 6 inscritos. Sin embargo, tras hacer cancelado un par de eventos por ser poca gente y haberme arrepentido despues,  tiré millas hacia delante con el evento.

Llegó el día. Como no conseguimos patrocinador yo compré unas empanadillas y dulces para comer allí y Ángel se encargaba de las bebidas y el café. Puse los carteles para indicar bien cómo se llegaba al aula (no sea que alguien se fuera a perder). Cuando llegó la hora de comenzar nos encontramos 4 personas en el aula: Angel, dos inscritos y yo.

Total, que tanto Ángel como yo hicimos parejas con ellos y dejé aparcado el tema de conexiones globales y hangouts. Como dicen los mismos organizadores, lo más importante es la gente que hay dentro. Fueron unas sesiones muy interesantes. Abordamos el juego de la vida desde todos los puntos de vista posibles: la vida y muerte de la celula, cómo contar sus vecinos, qué criterio se elige para que sobreviva o no. Al medio día nos fuimos a comer a un restaurante y cerramos las sesiones de tarde con un Randori compartiendo la pantalla con un proyectos y resolviendo entre todos una vez más el juego.

Resultado: A la vista está. Esperamos repetir el próximo año. IMG_20131214_173632

Preguntas que tal vez te hagas de los Coderetreats

Apuntaros esta fecha todos los desarrolladores: Sábado 14 de Diciembre del 2013. Ese día se celebra en distintas ciudades de todo el mundo el Día Global del Coderetreat.

«¿Y qué es esta frikada?» Esta frikada es una oportunidad única de aprender a mejorar la calidad personal del desarrollo de software.

«Pero yo ya programo mucho en el trabajo». Sí, pero cuando se trabaja la atención está en acabar lo antes posible. Normalmente se programa del modo que se cree más rápido sin intentar buscar nuevas maneras de hacerlo. Haciendo un kata, como el del Juego de la Vida que es el que se suele hacer ese día, te puedes permitir el lujo de hacerlo de esa forma que has leído u oídopero que nunca te habías atrevido a probar. El objetivo NO es terminar el kata. De hecho, a los 45 minutos tienes que borrar el código que has hecho.

«¿Queeee?, ¿Borrar lo que he hecho?» Cierto. Cada 45 minutos vas a enfrentarte al problema desde distintos ángulos y con determinadas restricciones que van cambiando.

«¿Y crees entonces que aprenderé algo?» Ciertamente. Mejorarás estas habilidades:

TDD: +4 Todas las sesiones se realizan haciendo primero los tests y después la solución.
Código limpio: +3 El foco constante está en trabajar con ese código ideal que nunca te has atrevido a escribir por falta de tiempo
Programación en parejas: +3 Todas las sesiones son en pareja mediante el método de PingPong. Uno escribe el test y hace que falla, el otro lo desarrolla,lo pasa a verde y escribe el test para el otro miembro.
Otros lenguajes: 30% de probabildades En cada sesión podrás trabajar con otros que usan otros lenguajes de programación como su segunda lengua madre
Carisma: +2 Trabajar codo con codo con gente con la que nunca has trabajado servirá para mejorar tus habilidades sociales en el trabajo.

«¿Dónde me puedo apuntar a uno?» En España se están haciendo en varios lugares. Aquí tienes una lista

Alicante http://tinyurl.com/on39bq4
Barcelona http://agile-barcelona.org
Caceres http://tinyurl.com/p52qq3d
Madrid http://tinyurl.com/p884qtw
Ourense http://tinyurl.com/on72tsj
Valencia http://tinyurl.com/q3yyj5d
Zaragoza http://tinyurl.com/pa7xp6r

Para buscar en otros lugares del mundo puedes buscarlo aquí: http://coderetreat.org/events

Date prisa. Normalmente las plazas son limitadas.

Si te pica el gusanillo aquí puedes ver más información de los amigos de Agile Madrid. madridcoderetreat.wordpress.com

Si tienes una empresa o conoces alguna que esté dispuesta a patrocinar algo de estas sesiones. Todos los participantes estarán muy agradecidos de que por ejemplo traiga la comida del día o de algun regalo o alguna licencia de software. Animará mucho el día y todos los asistentes tendrán en muy buena imagen la empresa. Contacta con el organizador de la sesión y preguntale qué necesita si estas interesado.

Cuando el desarrollador se pregunta «¿Qué voy a hacer hoy?»

Esta pregunta se pueden hacer muchos desarrolladores todos los días cuando entran al trabajo. Hay mucho trabajo por completar pero.. ¿qué es lo más eficiente que se puede hacer?

Cuando se intenta tener un sistema Agile/Lean es muy importante que el flujo de trabajo sea llevado mediante sistema PULL. Para conseguir esto las tareas deben atraerse hacia las ultimas fases del desarrollo. También hay que intentar reducir la cantidad de Trabajo en Curso (Work In Progress,WIP) por lo que antes de empezar nuevas características hay que intentar completar antes las que estan en curso.

Para conseguir todo esto, y con el apoyo de un tablero kanban fisico o virtual, los desarrolladores pueden decidir qué hacer en base a estas preguntas.

1.- ¿TENGO ALGUN TEST FALLIDO QUE DEBO ARREGLAR?  –> ARREGLARLO

Muchas veces los tests fallidos se acumulan y sólo se arreglan al final de sprint. Esto provoca que haya una acumulación de desarrollos y tests que pueden hacer que el deadline o fin de sprint se retrase. Debería ser la prioridad principal el completar los desarrollos ya hechos arreglando esos fallos que se han encontrado antes de otra cosa.

2.- ¿EL NUMERO DE TESTS PENDIENTES HA ALCANZADO SU MAXIMO? –> PASAR UN TEST

En VSN, el equipo de desarrollo ha definido cómo número máximo de historias esperando el test a 3. Si en el daily stand-up se ve que ha alcanzado ese número, se reparten 2 tests entre los desarrolladores para aliviar esa saturación. Naturalmente, ningún desarrollador testea lo que él mismo ha desarrollado, sino lo que ha hecho otro.

3.- ¿TENGO ALGUN DESARROLLO EN CURSO? –> CONTINUAR CON EL DESARROLLO

Naturalmente, una buenísima manera de avanzar es seguir con la historia y las tareas que había en curso.

4.- ¿PUEDO AYUDAR A TERMINAR ALGUNA HISTORIA EN CURSO? –> AYUDAR CON ESA HISTORIA

Si hay desarrolladores a los que se puede ayudar hay que hacerlo llegado este punto. Puede ser mediante el pair-programming, puede ser haciendo alguna tarea que se puede paralelizar, puede ser invesigando algo en Internet que necesite. Lo que se pueda hacer para ayudar a terminar antes con las historias que ya están en desarrollo.

5.- EMPEZAR HISTORIA LISTA EN ORDEN DE PRIORIDAD

Si a las anteriores preguntas se ha respondido NO pues no hay mayor problema. Se elige una historia por empezar siguiendo el orden de prioridad  establecido y a desarrollarla