martes, 17 de septiembre de 2013

Katas de GIT

Git es manejador de versiones de código distribuido (DVCS) de mucho uso. Para los que venimos de SVN es a la vez familiar (algunos conceptos no cambian) y extraño (da mucha más flexibilidad, que nos deja a veces usando Git como hacíamos con SVN).

Hay mucho material disponible, por ejemplo:
Ahora que ya lo tenemos instalado y leímos sobre Git, ¿sabemos Git?

Creo que sin el uso y práctica, no sabemos sobre Git (¡o cualquier otra cosa!) al nivel necesario para nuestra día a día laboral.


Por que una Kata

Una forma de incorporar la práctica es con ejercicios en ambientes seguros. La posibilidad de repetición permite incorporar los conceptos hasta que salgan naturalmente, y el ambiente seguro nos permite explorar formas alternativas, sin miedo de perder nuestro trabajo. Ver como ejemplo las Code Katas.

Katas

Crear ambiente para las Katas

cd
mkdir gitkata
cd gitkata
git init --bare repo
git clone repo a_local
git clone repo b_local

Nota: en vez de usar un repositorio local, como este caso, podemos usar un repo remoto en Github,  Bitbucket u otro.

Kata 1 - básico

Crear un archivo en a_local, subirlo al repo y actualizar b_local para que refleje los cambios.

Kata 2 - branch

Crear un branch en a_local y subir cambios al branch, publicar al remoto (repo)
Actualizar branches y contenido en b_local

Kata 3 - merge

Crear un branch dev, aplicar cambios
Crear un branch fix (a partir de mastter), y aplicar los cambios a master y a dev

(hint: gitk)

Kata 4 - merge con conflictos

cd a_local
touch hola
git add hola
git commit -m "Nuevo saludo"
git push
cd ../b_local
git pull
echo "Hola, como estas?" > hola
git commit -a -m "Saludo mejorado"
cd ../a_local
echo "Bueno días" > hola
git commit -a -m "Saludos de inicio de dia"
git pull
Resolver un conflicto en los commit.

Kata avanzados

  • ordenar la historia (hint: rebase)
  • trabajando en el branch equivocado (hint: rebase).
  • un commit incorrecto (descartar un commit).
  • demasiados commit (hint Squashing)
  • elegir una feature (hint cherry-pick).

¡Contame que te parece!

domingo, 19 de mayo de 2013

Escalera de inferencias por Mariano Stampella

Mariano Stampella dió una clase de Coaching Ontológico, en particular sobre la Escalera de Inferencias en la materia que compartimos en la FIUBA (Administración y Control de Proyectos Informáticos II).
Como parte de nuestra idea de experimentar con formas nuevas de enseñar, en esta clase Mariano aplicó el método de las 4 C, según está descripto por Sharon Bowman en Training from the Back of the Room (conexión, concepto, concreción, conclusión).


Alumnos participandoMariano explicando


En la parte de concepto, me pidió que documentara gráficamente lo que el explicaba.
Tenía algunas ventajas: es algo que escuché varias veces, Mariano usaba el pizarrón y anotaba algunas cosas y tenía a Leonardo Fernández que también conoce del tema y me ayudó cuando perdí alguna frase o concepto. 

Y algunas desventajas: llegué tarde y nervioso, me costó prepararme y enfocarme, y había poco lugar para trabajar.
Y algo que no sé si fue bueno o malo. Al documentar en la parede contraria al pizarrón, y por la distribución y forma de los bancos, no fue posible para los alumnos simultáneamente seguir a Mariano y mirar la documentación.

Este es el resultado


Hay innumerables cosas que no me gustaron de mi documentación, pero algo quiero decirles: el cambio positivo del agregado de color fue inmenso. Lamentablemente no saqué fotos del dibujo sin colores.
Los alumnos miraron luego de la explicación, y algunos sacaron fotos. Por lo que estimo que le encontraron algo de valor. Espero que les haya servido, y me gustaría que opinen!

domingo, 14 de abril de 2013

Educación en Finlandia

Voy a comentar un documental que vi gracias a la referencia que pasó Fernando Claverino.
El documental, de Tony Wagner, es de aproximadamente 60 min, con subtítulos en español. También hay una nota aquí (gracias a referencias de Martín Alaimo) y video TED (gracias a referencia de Ezequiel Kahan).

La descripción me disparó muchas coincidencias con Lean Thinking y Training from the back of the room. 
Me llamó la atención la coincidencia con una anécdota de Mary Poppendieck (cito libremente, porque no recuerdo dónde lo leí): "Cuando estaba dando un curso en Suecia, en un break se acercó un asistente y me dijo 'La relación entre los jefes y los trabajadores que describís no es rara para nosotros, es la forma en que normalmente nos manejamos.' Lo que me hizo pensar que quizás la forma de trabajo en 3M fue influenciada en la inmigración escandinava en Minnesota".
Minnesota es el estado con mayor porcentaje de descendientes de escandinavos (cerca del 10% en la actualidad). En el video se compara a Finlandia con Minnesota, por ser el estado con la mejores resultados en test de educación de USA.

Paralelos con Lean thinking

Respeto a las personas: tanto a los docentes como a los alumnos, se cree que dando el contexto y ayuda adecuada, van a hacer lo mejor posible. El sistema se basa en la confianza. No en evaluaciones o controles. La confianza, a nivel global del sistema educativo, se desarrolló a lo largo de muchos años. En el documental dicen que tardaron 25 años en delegar el contenido de ente centra a los municipios. Hay responsabilidad en los estudiantes sobre el resultado del proceso de aprendizaje.
Práctica Consiente: llegar a ser docente es un proceso largo que incluye un master y muchas horas de  observación y práctica docente. Cada observador hace una devolución respondiendo tres preguntas: ¿Qué observaste? ¿Qué harías diferente? ¿Qué te gustó?
Mejora continua: los docentes y los estudiantes de docencia pueden entrar a cualquier clase, y luego dar su feedback. Las clases suelen ser filmadas y la filmación queda pública.
Trabajadores del conocimiento: los docentes como trabajadores del conocimiento. Pueden ser expertos en su área, pero deben aprender a enseñar: aprender como las personas aprenden. Comunidades de práctica para la mejora y presión de pares. Son los que hacen los mejor capacitados para decidir como hacer.
Foco en satisfacción del 'usuario': lo importante de una práctica o tecnología es como ayuda al estudiante, no como ayuda al docente.

Paralelos con Training from the back of the room

Salir del centro: El tiempo en que habla el docente vs el tiempo en que hablan los alumnos es 85% / 15% en USA, y en Finlandia se busca que se 40% / 60%.
Conexión: iniciar la clase con referencias a situaciones que los alumnos conocen, y trabajar a partir de ahí.
Enseñarse entre los alumnos: por ejemplo, cada uno tiene un proyecto de investigación, y el resultado de eso lo pone a dispocisión para que otros alumnos lo comenten.

Es más importante enseñar a pensar que transmitir conocimiento. Los alumnos aprenden más cuando descubren y crean el conocimiento que cuando lo reciben.

Otras ideas

Las escuelas son pequeñas, las clases tienen hasta 20 alumnos. No todos los alumnos seguirán luego una carrera universitaria. Los docentes son seleccionados entre los mejores y además de una preparación equivalente a un master, tienen muchas horas de prácticas consientes.
El sistema educativo surgió de un consenso nacional sobre que se espera de la educación, y un largo proceso de mejora continua sobre el mismos. Toda la educación es estatal, e igual para todos. Los docentes ganan bien, y son respetados socialmente.

¿Y que hacemos a partir de este ejemplo?

No tengo, en el ámbito educativo estatal en el que participo (Facultad de Ingeniería - UBA), algunas de las condiciones indicadas (consenso, buena remuneración, dedicación tiempo completo). Aún así, puedo llevar muchas de las ideas a mi día a día. ¡Eso haré! (de a una por vez :D)

lunes, 8 de abril de 2013

Sonrisas y procesos

Sonrisas

Las personas que trabajan contentas transmiten esa alegría a los clientes. Los clientes que comparten esta experiencia placentera vuelven a comprar en el lugar. Y los empleados en ese ambiente quieren seguir en esa empresa y se ocupan de mejorar lo que hacen.

Acabo de hacer un resumen en un párrafo de Fish: Una manera probada de mejorar la moral y los resultados. Y es algo que suena muy razonable. 

Día de Furia (Falling Down)

Si creemos esto, el problema es  lograr que este círculo virtuoso se ponga en marcha en la organización. Quizás podemos aplicar "lo que se mide es lo que se mejora". Pero ¿que debo medir? No podemos medir "contento", necesitamos una características observable.

¿Y si medimos el porcentaje de tiempo que las personas están sonriendo?
Vean el video de la derecha a donde puede conducir esto.


Procesos

Las personas que se ocupan de mejorar acuerdan un proceso estándar, que corresponde a la forma en la que hacen el trabajo hoy. El estándar es la base a partir la cual se mejora.

Si, como organización, me interesa la mejora y quiero fomentarla, ¿cómo hago? ¿Puedo medirla? 
¿Y si medimos si existe un proceso estándar? ¿Y que existan mejoras sobre eso?
También me gustaría que lo hagan mis proveedores.
Y si como país queremos fomentar la mejora, podemos dar subsidios y beneficios impositivos para los que estén en esa situación.

La tristeza o ¿por qué vuelvo a hablar de esto?

Hey, ¿ya escribí sobre esto, por qué otra vez?

Me encontré en el último tiempo con varias situaciones en las que las mediciones que hacemos con la intención de mejorar provocan resultados no deseados. Es algo similar a lo que ocurre con los genios, como pueden leer en La pata de mono (un cuento breve y muy recomendable).

Uno de los resultados del caso de la sonrisa, es que ya no creemos en las sonrisas de los que nos atienden en los negocios. Asumimos que es forzada.
Forzar a que nos atiendan con una sonrisa no solo no sirve a esa empresa en el largo plazo, sino que la generalización del comportamiento nos ha llevado a descreer y no compartir la alegría ni siquiera en los casos auténticos de empleados contentos.
Esto también se nota desde el punto de vista de los empleados, que reaccionan con cinismo cuando se celebra un éxito individual o grupal. "¿Va aparecer tu foto como empleado del mes?"

Y en el caso de los procesos, ha llevado a que muchas personas descrean de los procesos y se revelen contra ellos. No se quiere reflejar las buenas prácticas actuales en procesos porque es "burocracia". Y si hay procesos, a pesar que fueron hechos por ellos mismos, no lo ven como una base sobre la cual mejorar, sino un objetivo a lograr y una vara contra la que se los medirá.

Y entonces, ¿tristeza nao tem fim?

No estamos condenados a la tristeza sin fin. Es un tema cultural, y así como nos metimos en esto, con el Taylorismo, podremos salir. 
Va para finalizar la moraleja "¡Cuidado con lo que deseas (y mides), porque puede cumplirse! (pero no de la manera que esperabas)"

martes, 12 de marzo de 2013

Innovación en Educación: Gente que hace Scrum sin saber que existe Scrum


Como parte de una serie de post que estoy haciendo sobre innovación en educación, voy a tomar el rol de escriba y difusor de lo que comentó Juan José Zapico (juanjzapico  en yahoo com) en un mail personal.
En este caso, es la detección de características de Scrum en la forma en la que se organiza una materia de creación de arte audiovisual.
A partir de acá habla Juan José, con sólo algunos cambios de formato. ¡Gracias por compartir, Juan José!

La charla la di en el Scrum Gathering Bs As 2012 ->  http://sg2012.agiles.org/programa/dia-1/
y en Ágiles 2012  -> http://agiles2012.agiles.org/programa/dia-2/gente-que-hace-scrum-sin-saber-que-existe-scrum/

La charla fue la misma, la segunda vez con el feedback de ya haberla puesto una vez en contacto con la gente, pero básicamente es la misma presentación y los slides son casi iguales.

La experiencia que yo comento tiene que ver con un colectivo docente donde colaboro, en una cátedra de una materia llamada Realización I, en la carrera de cine de la Facultad de Bellas Artes de la Universidad Nacional de La Plata . Ahora no estoy en aula porque estoy terminando mis estudios de informática, pero estoy en contacto permanente con ellos de manera virtual y cada tanto me junto de manera personal.

En mi charla lo que cuento es que he encontrado analogías entre las propuestas de las metodologías ágiles y la forma en la que trabajamos en la cátedra de Realización I de manera intuitiva desde años, una forma de trabajo que ha dado excelentes resultados y es reconocida por el alumnado de la facultad como una experiencia movilizadora. Tengo como objetivo para cuando regrese al aula (seguramente el año próximo) potenciar esas cosas intuitivas con las experiencias que he ido asimilando por el lado de la vinculación con la comunidad ágil.

Si bien los slides sólo son un ayuda memoria de lo que cuento y no suplen la presencia en la charla, creo que hay bastante como para dar una idea de cuáles son mis ideas y los paralelos que he hallado.

Los slides de ambas charlas están en Slideshare:

versión del SG: 
http://www.slideshare.net/JJZapico/gente-que-hace-scrum-sin-saber-que-existe-scrum
versión de Ágiles 2012: 
http://www.slideshare.net/JJZapico/gente-que-hace-scrum-sin-saber-que-existe-scrum-giles-2012

lunes, 11 de marzo de 2013

Innovación en Educación: Gamification

Como parte de una serie de post que haré sobre innovación en educación, voy a tomar el rol de escriba y difusor de lo que comentó Matias Iacono (nombre.apellido@gmail.com) en un mail personal.
En este caso, es una aplicación de gamification a régimen de cursada.
A partir de acá habla Matias, con sólo algunos cambios de formato. ¡Gracias por compartir, Matías!

Hace unos años que doy clases en UTN regional Córdoba, y desde el primer momento he intentado cambiar la forma en como se toman exámenes y se dictan clases.
Nunca me pareció adecuado el modelo clásico, pensaba que había cosas mal formuladas, que solo eran válidas desde la visión del profesor y no ayudaban al alumno.

Desde el profesor: 
  • Dictar temas
  • Hacer ejercicios
  • Tomar exámenes
Y esto se condimentaba desde el alumno:
  • Cerrar la boca
  • Entender que es inferior (Con ayuda del profesor)
  • Seguir un plan previamente estipulado que nada tendría de interesante para este
Con todo eso y sufriendolo nuevamente en Psicología, he ido cambiando de a poco algunas cosas.
Actualmente estoy aplicando el concepto de juegos de rol a la materia. Para tener una idea simple sobre el tema:
  • Al inicio del semestre cada alumno pasa a ser un personaje de un juego de rol: Gana XP (experience points) y ORO a medida que avanza en la materia.
  • Se requiere de más de 2401 puntos de XP para regularizar la materia, y más de 10000 para una promoción. Debido a que no puedo ir por arriba de las estructuras de la universidad, tengo que adaptarme a ellas de la mejor forma.
A nivel institucional un alumno regulariza si cumple con los siguientes requisitos:
  • Asistir un 80% de las clases
  • Aprobar 2 parciales
  • Tener LOS 3 trabajos prácticos aprobados
Bajo lo anterior, y tratando de adaptarlo al modelo, lo que hice fue separar cada "tarea" en una QUEST, que le daría al estudiante ORO y XP.

Por ejemplo, una quest que representa uno de esos 3 trabajos prácticos:
Mind Manster            XP:    400    Gold:    200    Resolución TP de Algoritmos    Implementación del patrón cadena de responsabilidades para validar una contraseña. (Hasta 7 validaciones)
Pero no me parecía correcto imponer estos trabajos, ya que caería en el mismo error anterior, así que hasta la fecha hay alrededor de 10 QUEST de este estilo, con su XP y su ORO, de las que el alumno puede elegir hacer o no.

La idea principal es que el alumno elija que hacer y así poder ver su progreso, y manejarlo. También está permitido proponer al principio nuevas QUEST.

Para solucionar el problema de las asistencias tengo estas dos quest:
Cannon Meat            XP:    2000    Gold:    600    80% de asistencia    
Unstopable Geek            XP:    3000    Gold:    800    100% de asistencia    

Que se calculan el último día de clases. Ellos ven esto como otra oportunidad de regularizar o promocionar, y que pueden manejarlo, por lo tanto, el presentismo aumentó de un cercano 60% a un 92%.

Lo interesante es que hacer con el ORO. En este caso hay "artefactos" que los alumnos pueden comprar con el mismo. Supongamos que el alumno quiere conseguir el 100% de asistencias, pero falta por el motivo que sea, desde: Me llovió... hasta: No me dio ganas de ir. Entonces podría usar el ORO para comprar el siguiente artefacto:
Wand of Smokes            Se puede faltar 1 clase sin alterar los resultados en conteos        Nivel:    1    XP:     1    Costo:    600
Otros artefactos:
Ancient book            Permite usar 1 bibliografía en el exámen        Nivel:    4    XP:     300    Costo:    600
Angel Soul            Válido para un exámen recuperatorio        Nivel:    1    XP:     1    Costo:    1500
En el caso de los artefactos, el nivel es para definir que nivel mínimo se debe ser para poder usarlo, el XP es la experiencia mínima necesaria, y el costo es cuanto se paga por el mismo.

La idea de lo anterior es que para poder usarlos y adquirirlos, en base a su beneficio, deban hacer algo, por lo menos algún ejercicio, o práctico.

En este sentido, la búsqueda de oro y XP por parte del alumno lo lleva a practicar, leer, ejercitarse activamente, y es lo que, como profesor, quiero, pero no se los impongo, si no que ellos lo hacen convencidos :)

Para los exámenes hay una tabla de ORO y XP en base a la nota:

Tabla de XP de acuerdo a Nota    
10    1500
9    1350
8    1200
7    1050
6    900
5    750
4    600

Tabla de Gold de acuerdo a Nota    
10    500
9    450
8    400
7    350
6    300
5    250
4    200

Por lo que también les resulta beneficioso sacarse una buena nota.

De cualquier manera, también hay un cambio en los exámenes. Generalmente intento que no sean para responder preguntas desde mi óptica, si no que puedan usar la cabeza para responderla.
Para esto hago algo inverso a lo que comúnmente se hace al crear exámenes.
Lo normal es que el profesor parte de la respuesta y luego formula la pregunta, lo que lleva a que las mismas sean, como se les suelen decir "muy finas", pero en realidad son sin sentido.
Por ejemplo, uno piensa que la respuesta es "I.P.", porque se vió algo de comunicación de paquetes y podríamos arrancar la pregunta con un:
  • "Que protocolo..." (No... les estamos dando muchas pistas)
  • "Las normas IEEE situaron para la ARP...." (Ahí vamos... esto es mas críptico... además está en el párrafo 5 de la página 455 del libro)
  • Ahora metamos las respuestas distractoras de alternativa múltiples: UDP, UDP y TCP/IP, IP, ninguna de las anteriores.

En mi caso parto de la forma inversa, simplemente busco soluciones de ingenio ante una pregunta. Así planteo primero la pregunta de algo que quisiera que esté presente en la cabeza de los alumnos, porque puede servirles para la siguiente etapa de la materia. Por ejemplo:
Como hago un hipervinculo?- link > google.com- <a href="google.com">...- <navigate a="google.com"

La efectividad es la misma si se quiere saber si se sabe eso. El que no lo sabe, dificilmente pueda responder. Pero con lo anterior (Lo del IP), el que sabe incluso se sentirá frustrado innecesariamente por saber la respuesta pero no poder contestarla.

Otra parte del exámen es la de hacer código, en la que debo sentarme con el alumno a que me explique como lo hizo, siendo que hay varias posibilidades de resolver un problema, no puedo esperar MI respuesta. Por supuesto, cuando encuentro mejores formas de hacerlo, aprovecho ese momento para mostrarle una mejor forma. 
Para que la famosa frase Piensen este examen como instancia mas para aprender se torne en verdadera. 


Matias presentó el resultado de la experiencia en un congreso en la Universidad de Palermo.

martes, 27 de noviembre de 2012

Agile Open Seguridad y charla sobre Desarrollo Ágil

El sábado pasado (24 de noviembre), participé en Agile Open Seguridad, un evento del Agile Open Tour que se hizo en la Universidad de Belgrano.

El evento fue organizado y facilitado por Carlos Pantelides. En la apertura se propusieron varios temas .

Carlos Pantelides y Juan Gabardini





Como no me quedé, pedí para hacer la sesión propuesta por mí (Qué es Ágil)en el inicio. Entre los asistentes había 3 alumnos de UB: de sistemas, de traductorado y de arquitectura. Tuve la alegría de encontrarme con Matías Wepfer, uno de los organizadores de Ágiles 2008.

Qué es desarrollo ágil

Para la charla, utilicé algo de lo aprendido en el curso de Facilitación Gráfica al que fui, usando solo tiza blanca sobre pizarrón verde.


Comenté la evolución del trabajo, partiendo de la producción artesanal, con cada producto (silla) individual, el orgullo del constructor y el sistema de aprendizaje con el maestro, oficiales y sus aprendices.
Luego la producción industrial, con la producción en serie, y al administración científica según Taylor y Ford. Lo que llevó a la división en 'los que saben' (white-collar worker, ingenieros) y 'los que hacen' (blue-collar worker, obreros). Los obreros son reemplazables fácilmente, con dos días de entrenamiento.
Llegamos a la situación actual de síntesis de las dos formas anteriores, en la que los trabajadores del conocimiento no pueden ser tratados como obreros tayloreanos. En software se vió el cambio en 2000 y se concretó con el Manifiesto Ágil (2001).
Una faceta de esto, en lo relacionado con la motivación son las ideas que presenta Dan Pink (videos TED, RSA). Nombré que existen otras visiones de la motivación.



Esta síntesis de la artesanía y la producción en serie no es única, según proponen Lee Devin y Robert Austin en el libro Artful Making.
Utilizamos Artful Making cuando:
  • Necesitamos innovación
  • Tenemos bajo costo de exploración
  • Tenemos bajo costo de reconfiguración
Usé de ejemplo la exploración y reconfiguración un viaje de vacaciones. Y también el caso de el aula en formato anfiteatro con sillas fijas.
Comenté sobre el beneficio de un loop rápido desde la idea al producto (feedback), sobre la Ley de Conway y el caso de organizaciones sin jefes (Github, Valve).
Por último, comente aplicación de estos conceptos en la industria (las máquinas hilanderas de Toyoda y las camionetas de Toyota) y el software, con la curva de costo de cambio, y como el desarrollo ágil (por ejemplo Extreme Programming) logró achatarla.

Luego comenté brevemente Scrum (reusé el pizarrón y no lo fotografié). 
Y más breve aún sobre Open Space (pueden ver otras entradas en este blog, por ejemplo uno hecho en el bar de Exactas)





¡Gracias!

A Carlos, que se puso el evento al hombro!
A Paula Angeleri, que desde su rol en la UB consiguió el lugar y el break!


Información de contacto y para sumarse a la comunidad

Sitio de la comunidad argentina: www.agiles.org/argentina 
Lista de anuncios y organización de eventos: http://tech.groups.yahoo.com/group/agiles-argentina/
Lista de intercambio de experiencias hispanolatinoamericana: http://tech.groups.yahoo.com/group/foro-agiles
Y a mí, Juan Gabardini, me pueden contactar en twitter (jgabardini) o por mail, con el mismo nombre de usuario en computer.org