miércoles, 5 de junio de 2013
domingo, 2 de diciembre de 2012
Aprendiendo mientras "enseñamos"
Aprender de los compañeros
Desafíos
Dificultades
![]() |
| no me gustó no saber leer inglés |
Empirismo
Reconocer
Rotar
Variedad
Palabras
Si enseñar y aprender es algo que pasa al mismo tiempo, estaremos necesitando otra palabra para esto que estamos haciendo?
sábado, 27 de octubre de 2012
El juego del mercado
Al final, tachamos donde dice juego, escribimos sociedad y debatimos sobre si encontramos alguna similitud en el juego y en la sociedad que vivimos.
Toda esta actividad hizo una buena conexión de los participantes con el tema y con otros participantes.
Nosotros, los profesionales
Luego nos dividimos en grupos de 3. Cada grupo conversó sobre el lugar de los profesionales en la sociedad, que tenemos para ofrecer, que necesitamos. Y pensó en una idea para que la sociedad sea un poco mejor.
Manos a la obra
Para cerrar cada persona se propuso un objetivo para hacer en 1 semana. Nos intercambiamos los mails con los compañeros del grupo, para escribirnos a la semana y preguntarnos como nos fue con lo que nos propusimos.
saludos!
miércoles, 26 de septiembre de 2012
Proyección debate: la educación prohibida
Conexión
Hola, bienvenido a la proyección debate sobre la educación prohibida. Te invitamos a recorrer el salón y leer las afirmaciones de los carteles. Buscá una que te interese y charlá con quien tengas al lado de si es un mito o un hecho:
Buscá a alguien que opine distinto a vos. Buscá a alguien que no conozcas y preguntale que opina. Estos fueron los mitos / hechos:
- Los chicos aprenden mejor teniendo un profesor en frente.
- Separar a los chicos por edades es un método eficiente.
- El problema de la educación actual es la hiperactividad y falta de concentración de los
- chicos.
- La escuela disminuye la creatividad.
- Es posible aprender en un ambiente competitivo.
- El sistema de calificaciones es la mejor forma de medir el progreso del aprendizaje.
- En la escuela se tiene en cuenta el contexto personal de cada chico.
- Repitiendo aprendo. Repitiendo aprendo.
Vimos la película.
Debate (chaaancho va!)
Para hacer el debate usamos una forma conocida como world café, en donde en cada rincón se charló de un tema, que fueron:
Cadá 10 minutos los grupos rotaban de rincón (chaaancho va), el embajador los recibía contándoles lo que charlaron en el grupo anterior y continuando el debate.
Al finalizar, cada embajador presentó lo charlado en su rincón:
Conclusión
Cómo llevamos lo que aprendimos hoy a nuestro día a día, para, como bien dijo Clarita, "vincular lo que se enseña con lo que uno vive"? Qué cosa nueva empezaríamos a hacer?
Retro en 1 palabra
Pensá en 1 palabra que resuma el encuentro de hoy. De ronda y todos de pié, cada uno dijo su palabra y nos contamos que nos pareció la actividad que hicimos entre todos. Porque estas cosas, se hacen entre todos.
Fue una muy linda actividad, entre amigos, para amigos, donde cada uno hizo su aporte y entre todos creamos un espacio para debatir sobre estas ideas.
sábado, 4 de agosto de 2012
Implementando SOLID – LSP
Esta es la solución de Nelo: http://nelopauselli.blogspot.com.ar/2012/08/implementando-solid-lsp.html
El código del ejercicio es este:
El problema es que el método WithEntity hace un tratamiento especial para cada una de las subclases. El principio de Liskov nos dice que si dependemos de una clase base, debemos poder usar objetos de clases derivadas sin saberlo. Y este no es el caso. Los problemas que presenta no seguir este principio son:
- Quien usa el método WIthEnity puede pensar, con todo derecho, que pasándole cualquier objeto derivado de ContactInformation va a funcionar.
- Quien agrega otro subtipo de ContactInformation, puede olvidarse que existe este método WithEntity con tratamiento especial y usarlo.
- El ejemplo está reducido y simplificado p/poder ser entendido fácilmente. En realidad se trata de un caso real, con muchos subtipos y una jerarquía algo más compleja. Modificar esta MailBuilder era realmente un problema, ya que implicaba volver a probar todos los casos.
Seguramente hay otras formas de eliminar la duplicación. Podemos por ejemplo crear un MailBuilderString con la responsabilidad de armar un mail y usar este objeto dentro de cada uno de los MailBuilders para cada ContactInformation.
saludos!
lunes, 16 de julio de 2012
Implementando SOLID - OCP
Esta es la solución de Nelo: http://nelopauselli.blogspot.com.ar/2012/07/implementando-solidocp.html
y la de Martín: http://blog.martincoll.com.ar/refactorizando-para-cumplir-con-ocp/
A veces, cuando miramos / escribimos código, lo hacemos mirando dentro del método. Pero que pasa si esta vez nos paramos fuera del método, del lado de quien usa el código? El amigo Carlos Peix escribió un muy buen post al respecto.
En este caso vemos que se trata de un filtro que permite:
- filtrar por color
- filtrar por talle
- filtrar por color y talle
Para agregar criterios sin tener que modificar la clase existente, una posible solución es tener una clase por criterio (especificación). En este caso estamos dando a la clase una única razón para cambiar y aplicando también el principio de responsabilidad única.
Ahora, para agregar un criterio (extender), no es necesario modificar las clases existentes.
Se dice que la decisión qué parte es fija (dura de cambiar) y cual es móvil (fácil de cambiar / extender) en una aplicación es una decisión estratégica. No puedo hacer todo open / closed, ya que con eso pago un costo de complejidad. La parte que me conviene encapsular p/hacer movil es la que varía.
jueves, 12 de julio de 2012
Implementando SOLID - SRP
Así que vamos a empezar por el principio de responsabilidad única (single responsability / SRP), que nos dice que una clase debe tener una única razón para cambiar.
Esta es la resolución de Nelo: http://nelopauselli.blogspot.com.ar/2012/07/implementado-solid-srp.html
la de Martín Coll: http://blog.martincoll.com.ar/refactorizando-para-cumplir-con-srp/
la de Juan Tripode: http://altaprogramacion.blogspot.com.ar/2012/08/srp-single-responsibility-principle.html
El ejemplo trata de una aplicación winform que permite abrir un xml de productos y mostrarlos en una grilla. En este se programa todo "atrás del botón"
El formulario es responsable de la persistencia, de recuperar la información (de un archivo) y de conocer el formato (xml). El primer paso que proponemos es encapsular esto en un repositorio, por lo que nos quedaría algo así: Ahora el repositorio es responsable de recuperar datos, abrir el archivo y convertir de xml a objetos. Vamos a quitarle la responsabilidad de abrir el archivo: Y la responsabilidad de convertir xml a objetos: Ahora el repositorio tiene otra responsabilidad, la de conocer sus dependencias. Pero esto es otro principio. saludos!
lunes, 2 de julio de 2012
Compartiendo lo aprendido en SOLID
Sobre los primeros minutos antes de empezar
En general, cuando empezamos una actividad, las personas no llegan todas al mismo horario. A veces proponemos alguna actividad para que vayan empezando a hacer algo. Esta vez se nos ocurrió pegar 3 preguntas en distintas paredes:
- Porqué es importante aprender principios de diseño?
- A quién puede interesarle?
- Cómo podemos enseñarlo?
- Nombre
- Qué te gusta hacer?
- Qué te gustaría aprender?
Lo bueno de esto es que el concepto se construye a partir del aporte de todos. Al final de cada presentación se hacían preguntas que a veces respondían los presentadores, pero a veces otras personas. Dado que aprendemos de distintas maneras, es útil poder escuchar distintas miradas de un tema, contadas por distintas personas y dar mi mirada también.
miércoles, 27 de junio de 2012
SOLID Aprendiendo y compartiendo
Con la colaboración de la gente de Kleer, estamos realizando un taller de principios solid. La propuesta es:
- Trabajar grupalmente en un espacio donde todos enseñamos y aprendemos a la vez
- Invitamos a los participantes a devolver lo que aprendimos a la comunidad, para reforzar el aprendizaje y experimentar que pasa si agregamos un propósito a una actividad.
Con esta idea en mente desarrollamos el taller, que por ahora va por el 1er encuentro. Como nosotros somos parte del taller y también estamos aprendiendo, nos sumamos a la propuesta y elegimos contribuir a la comunidad haciendo disponible las actividades y el material del taller, para que cualquiera lo pueda hacer y mejorar.
Actividades
Las preparamos tomando ideas del libro Trainning from the Back of the Room. Por si les interesa como es esto de facilitar un espacio de aprendizaje, donde todos enseñan y aprenden a la vez, les dejo este post:
http://blog.kudewe.com/2011/06/solid-training-from-back-of-room.html
Material
https://dl.dropbox.com/u/49465904/solid/solid.zip
El material sale principalmente del blog Los Techies, el libro Head First Design Patterns y otros blogs de internet.
Ejemplos
http://solidexamples.codeplex.com/
Los ejemplos por ahora son en .net (VS 2010) y nUnit.
Esperamos sea de utilidad. Cualquier consulta es bienvenida. Y si lo quieren tomar, hacer, mejorar y nos cuentan como les fue, nos va a poner muy contentos.
jueves, 21 de junio de 2012
Acuerdos de trabajo
Qué es un acuerdo de trabajo? Me parece mejor contarlo con una historia. El año pasado conocí una amiga, con la que fuimos al Lanin. Un día nos juntamos a tomar un café para preparar el viaje, y me cuenta, así como hablando del clima, que había cruzado el Océano Atlántico remando con 3 amigas. Me dejó helado. Por suerte íbamos a tener como 40hs de micro en las que le pregunté todo lo que se me podía ocurrir sobre una aventura así. Tienen un blog donde fueron contando la historia: http://atlantique.blogs.liberation.fr/Una de las cosas más interesantes que me dijo y que cada tanto me sirve recordar, es que ellas antes de subir al barco, firmaron un acuerdo de trabajo. Durante el viaje en bote podían hablar y discutir de un montón de cosas, pero nunca se podía poner en discusión lo que firmaron en el acuerdo. Sobre esa base, es sobre la que construían todo. El acuerdo decía cosas como:
Cada una iba a dar lo mejor de si misma, siempre
Imagínense remando 2 hs, descansando 2 hs, así durante 2 meses. Si tu compañero empieza a aflojar, en un bote 1 tonelada, eso se siente y afecta a todos.
Si alguien dice algo, es por el bien del equipo, no por su bien invididual
Cuando uno está andando tanto tiempo en un medio tan inhóspito, como es el océano, cansado, con hambre, la piel salada, lejos de casa, etc. es muy probable que la cabeza empiece a maquinar cosas por si sola. A asumir cosas que no lo son (no se quiere levantar porque ya no le importa), a sentir que quizás nos están tratando de manipular con las palabras (me trata bien, porque quiere que la ayude), etc.
Resulta muy sano tener estas reglas de equipo claras. Cosas que todos aceptamos y que estamos dispuestos a cuidar con responsabilidad, por el bien de todos.
Hasta los 3 mosqueteros tenían acuerdo de trabajo: todos para uno y uno para todos.
martes, 12 de junio de 2012
Sugata Mitra y el Futuro de la Educación
La segunda, fue ayer en la facultad de abogacía, donde vino a hablar del futuro de la educación. Y dijo cosas muy interesantes.
Primero que es difícil hablar del futuro de algo, porque todo cambia. Pero tenemos opciones, podemos reaccionar (intentando hacer lo mejor), podemos anticiparnos o podemos ser parte del cambio, hacer que el cambio suceda.
A veces, para mirar al futuro es bueno volver a los orígenes. Y nos contó de los orígenes de la educación, nos habló de Sócrates, Platón y Aristóteles. Del imperio Británico y como fue que tuvieron que inventar un sistema para manejar algo tan grande. Así fue que crearon el sistema victoriano, que produce personas idénticas. El siguiente gran imperio fue Norte América, con las líneas de producción, a quien les venía muy bien esto de la uniformidad.
La pregunta es, porque seguimos usando un sistema educativo que fue creado en un contexto militar / industrial? Que tiene que ver esto con el siglo XXI, donde lo importante ahora es el conocimiento?
Nos hablo de un concepto interesante, la desmaterialización. Antes una radio era algo tan grande como una mesa.
Luego se transformó en algo tan chico como un walkman. Ahora es una tira de unos y ceros que entra en cualquier celular. Qué pasa con la educación cuando google entra en tu bolsillo?
Yo no soy contador. Pero por cuanto tiempo puedo fingir serlo (usando google y acceso a internet)? Hace unos años, cuando hacía esta pregunta a mis estudiantes, ellos me decían que unos meses. Ahora me responden que 3 años. Si paso 3 años fingiendo ser contador, estaré fingiendo? O me volveré contador?
Otra cosa de la que nos habló es de uno de los problemas actuales de la educación. Los chicos en áreas remotas no tienen buenos profesores. En el caso de India, lo remoto tiene que ver con la geografía, los buenos profesores prefieren estar en Delhi, esto es un problema social de migración. Pero en caso de UK, lo remoto tiene que ver con el nivel socio económico, los profesores elijen las zonas más desarrolladas.
Nos contó de su experimento, el agujero en la pared (lo pueden ver en la charla ted). Y un resultado interesante. En 9 meses, los chicos aprenden en grupos, por ellos mismos las mismas habilidades que necesita una secretaria (usar facebook, twitter, youtube, bajar archivos, etc.)
Guiado por la pregunta (no por la respuesta)
Si hago una pregunta (ej: cómo recordamos y porqué olvidamos?) y me voy (hizo este experimento muchas veces), entonces descubrí que:
Un grupo de chicos usando internet pueden conseguir objetivos educacionales por ellos mismos.Cómo hacer buenas preguntas? Esta es la parte difícil. Por ejemplo para los chicos es aburrido aprender trigonometría. Pero si pienso para que la puedo usar, entonces puedo preguntar mejor. Por ejemplo, como puedo hacer para medir la altura de ese edificio, sin ir hasta allá.
Otro método pedagógico: Yo no se
Observar a quienes estan aprendiendo. Nunca agregar nada a lo que ellos dicen. Y si noto que falta algo, hacer otra pregunta.
Otro más: el de la abuela.
Te parás atrás y decís "que bueno!" y los alentás con cada cosa que hacen.
Un grupo de chicos en presencia de un mediador amigable, pero no necesariamente conocedor, puede aprender casi cualquier cosa por ellos mismos.La emoción del desafío
Quieren algo fácil o algo realmente difícil? Siempre me piden algo difícil. La emoción del desafío mejora el aprendizaje.
Abuelas en la nube (un entorno auto organizado de mediación)
Un grupo de abuelas en UK (las abuelas extrañan a los chicos) comparten 1 o 2 horas por semana con un grupo de chicos en India (que quieren a las abuelas) y mejoran su inglés.
SOLE (Self Organized Learning Environment)
- Grupos de 4 chicos
- 1 agente de policia (1 chico)
- 1 computadora para cada grupo
- Se permite hablar, moverse, discutir
- Una gran pregunta y dejarlos solos 45 minutos. Es importante irse y dejarlos solos. Nuestra presencia no solo los inhibe, sino que al irnos estamos confiando en ellos.
- Presentaciones en grupo
La educación es un sistema auto organizado y el aprendizaje es un fenómeno emergente.
viernes, 18 de mayo de 2012
Colaborando con una pyme del Tirol
Este puede parecer un post colgado. A quien se le ocurre escribir sobre programación estando de vacaciones. Seré como los simuladores, que no pueden ver un problema que pueden resolver sin hacer nada? Además, no todo es ir a las montañas. A veces hace mal tiempo, a veces necesito descansar o simplemente tengo ganas de colaborar con gente que hace algo bueno. Paso a contar esta otra historia que tiene que ver con e-commerce y un poco de scripting.
El lugar es Mieders (foto), un pueblito en Tirol, Austria. Aca vivo con una famila que me trata muy bien. Sophie, la dueña de la casa, es una madre emprendedora que tiene un negocio de productos bio. Son productos naturales, comprados a pequeños productores de distintos lugares del mundo.
Los productos son ecológicamente más responsables. Por ejemplo se diseñan los paquetes para que contengan menos materiales evitando el uso de plástico y sean más fácilmemte reciclables. Otra cosa es que por cada producto se paga un impuesto en función del peso del envase a una empresa de reciclado que se encarga luego de su tratamiento. Además toda la cadena de proovedores busca el comercio justo, es decir, que no haya uno en la cadena que aumenta mucho el precio del producto al consumidor sin agregar valor. Otra cosa interesante es que las empresas chicas hacen una mejor distribución de la riqueza (uno de los problemas raíces de la sociedad moderna).
La cuestión es que hacer esto en Austria para una pyme no es fácil. Primero porque a diferencia de Argentina, aca no se hace nada en negro. Segundo porque ya hay grandes empresas en el mercado y los grandes corren con ventaja. Son los grandes los que a veces rompen con lo justo del comercio, exigiendo descuentos, plazos, imponiendo sus reglas.
El acceso a la tecnología es un poco difícil para una pyme. Por ejemplo implementar una solución de e-commerce puede costar entre 2.000 y 20.000 euros, un precio que no es accesible para empresas chicas. Sin embargo, son las que hacen más sano al ecosistema (gracias Medina por la información).
Entre días de descanso, mal tiempo y mates, fuimos trabajando con Sophie en un sitio de e-commerce b2b y b2c. Había una gran cantidad de posibilidades y detalles por resolver. Así que hicimos algo para lidiar con esta complejidad, priozamos qué era lo más importante y avanzamos de a un paso a la vez haciendo lo más simple posible. El resto, se resolverá en su momento.
Instalamos y probamos oxid, xt commerce hasta que finalmente llegamos a magento. Algo no menor era resolver la integración con su erp, lo cual resolvimos con un simple script que transforma un csv de productos (generado por el erp) en un csv que entiende magento. Después de algunos pocos días, teníamos el sitio el linea con todos los productos (son más de 3000): http://shop.nokomis.at. Incluso creamos una extensión para que los comercios puedan agregar al carrito varios productos a partir de su código.
Saben porqué es interesante ayudar a un emprendedor? Además de lo que les contaba antes, se aprende mucho haciendo con alguien que crea un emprendimiento (yo no tengo la capacidad de hacer eso). Por otro lado me permite estar en contacto directo, sin intermediarios, con la persona que mejor conoce del negocio y eso abre otras posibilidades al "proyecto" de generar valor. Por ejemplo Sophie hizo un doctorado en física y en sus estudios aprendió fortran. Y desde siempre sintió curiosidad por la programación. Así que este pequeño proyecto sirvió además para que aprendiera en la práctica qué es un script, para qué puede servirle e inclusive cómo modificarlo. También aprendió a usar el firebug y de forma autodidacta instaló un template y lo customizó a su gusto.
Y esa es para mi la mejor parte de trabajar con un emprendedor. La de estar en contacto con la persona y conocer, como aprendí de Juan Carlos Lucas, cuál es su preocupación, entendiendo por preocupación el futuro que quiere construir. Descubrir esto y poder colaborar de alguna manera, es algo que vale la pena.
lunes, 27 de febrero de 2012
Historias de Alejandra - parte 2

Esta vez vinieron unas 15 personas, de distintas edades e intereses por la tecnología. Ademas de los tipicos juegos de apertura que hacemos para conectarnos, romper un poco el hielo y la timidez de algunos, esta vez propusimos 3 actividades para que los participantes elijan: periodismo, agua y ushahidi.
domingo, 12 de febrero de 2012
Match de improvisación ágil
lunes, 23 de enero de 2012
Historias de Alejandra - parte 1
lunes, 12 de diciembre de 2011
Desarrollando América


- Tener una visión clara: En este caso, después de la pizza y antes de empezar una noche larga, cada uno comentó porque participaba del concurso, cual era nuestra motivación.
- Un proceso colaborativo: Entre todos identificamos qué queríamos hacer y lo priorizamos, buscando para cada caso la solución más simple que se nos ocurría.
- Prácticas como TDD y pair programming. Si pudimos resolver la parte difícil (extraer la información importante de los PDFs) fue gracias a TDD, una vez más nos salvó las papas del fuego.
- Usar herramientas de gestión visual. Decoramos el ventanal de la casa de Nestor con papelitos de colores.
- Trabajar cerca del usuario, tener feedback rápido y adaptarnos a eso. Unas horas antes que termine el concurso, hicimos una demo con periodistas, que nos dieron muy buen feedback y sobre eso, modificamos la aplicación, agregando por ejemplo un semáforo visual y detalles que eran valiosos para ellos.

viernes, 25 de noviembre de 2011
Armando un mapa de la tecnología colaborativamente

El radar de tecnología, es una herramienta visual (sugerida por ThoughtWorks) que permite a una organización:
- Entender cuales son las tecnologías que nos dan más valor.
- Dar un poco de dirección a actividades de exploración, como pueden ser áreas investigación y desarrollo (I+D).
- Alinear actividades de capacitación.
- Ver que prácticas conviene empezar a hacer, seguir haciendo o dejar de hacer.
- Estar atentos para poder aprovechar oportunidades de evaluación y prueba de tecnologías nuevas para nosotros.
- Alinear distintos esfuerzos por trabajar mejor (más calidad, productividad y felicidad).
- Ver que cosas hay que forzar un poco para que pasen, porque nos conviene.
- Ver que cosas tenemos que pedir, porque exceden nuestro alcance.
- Qué es la tecnología?
- Para que sirve?
- Técnicas
- Herramientas / Frameworks
- Plataformas
- Lenguajes
- Adoptar: Lo recomendamos fuertemente. Lo usamos apropiadamente en nuestros proyectos.
- Intentar: Vale la pena intentar en un proyecto que pueda manejar el riesgo.
- Evaluar: Vale la pena explorar para entender como puede darnos valor.
- Esperar: Proceder con cuidado.
- Considerás que esa tecnología agrega tanto valor que vale la pena ponerla en el radar?
- En comparación a otras, la pondrías en intentar o adoptar?
- Cómo priorizarías esta tecnología respecto a otras?
- Pensás que es valiosa para toda la organización?
Enseñando desde atrás del salón en la Fundación Inicia

lunes, 21 de noviembre de 2011
Agile Coaching - Cómo preguntar?

Por estos días tengo en la mesa de luz Agile Coaching, de Rachel Davies y Liz Sedley. Siguiendo una idea de Pablo Tortorella, para fomentar su lectura, en lugar de recomendar el libro voy a comentar un párrafo.
domingo, 13 de noviembre de 2011
De donde vienen las grandes ideas
- Las condiciones nivo / meteorológicas las cambiaría por las condiciones del proyecto (contrato, plazos, expectativas).
- El terreno por la tecnología.
- El factor humano lo dejaría igual.
- Antes de empezar un proyecto.
- En el sprint planning.
- Antes de tomar una tarea.




















