domingo, 31 de enero de 2010

Guerrero de la Basura



Gracias a mi amigo Andres, ayer vi esta película que trata sobre la historia de un hombre construyendo casas de basura durante casi 30 años:

Algo que me llamó la atención, fue el espíritu colaborativo de su equipo, que más que un equipo parecía una familia. Es hasta contagiosa la pasión que esta gente siente por lo que hace.

Me pareció muy bueno cómo ayudaron a las personas víctimas del tsunami en India y del huracán Rita a construir lugares sanos donde puedan refugiarse. Creo que lo más emocionante fue ver como despertaron un nueva esperanza en una comunidad que perdió todo.

Sus ideas me parecieron muy ingeniosas, creativas y simples. Es admirable ver como luchó con un sistema tan lento y pesado cómo el jurídico para impulsar sus ideas y el enorme contraste que encontró en lugares que pasaron por crisis terribles. Como él mismo dice, después de una crisis, las personas están más abiertas a nuevas ideas.

Por otro lado, su filosofía y esencia se alinean muy bien con las metodologías ágiles. Cuando dice:

acá en 14 días pudimos hacer los que en Nuevo Mexico no conseguimos en años. En menos 5 minutos puedo explicar a ingenieros indios el principio de sus casas, sin escribir kilos de documentación que nadie va a leer.

Esto es favorecer un producto funcionando sobre documentación llevado al extremo.

La verdad que me inspiró a pensar en hacer cosas por los demás, algo grande, importante. Algo que ayude a personas con poco recursos a mejorar su calidad de vida.

Otra cosa que tomo de la película es la buena predisposición de la gente que tiene una necesidad. Parecería que en estos casos hay mas “si, entonces”, “si, y”, que “si, pero”, “no”. Me hace pensar que estos son buenos escenarios para usar un enfoque ágil, basado en la colaboración, el ritmo, empirismo, auto organización, es decir, creatividad orgánica.

saludos!

viernes, 29 de enero de 2010

Improvisación para Equipos


Al igual que el post anterior, no quiero detallar qué fue lo que hicimos en el taller, para no sesgar o influir de alguna manera a quienes lo quieran hacer. Creo que es mejor ir a este tipo de actividades sin conocer mucho de antemano, así se disfrutan más. Lo que si me gustaría comentar, son las cosas que me llevé y sobre las que me quedé pensando.

En palabras de Alan, la improvisación se trata de:

Aprender a escuchar lo que pasa a mí alrededor, a los otros actores y a escucharme a mí mismo. Improvisar es aceptar lo que me proponen. Cuando me proponen algo y lo acepto, desarrollo mi capacidad de escuchar a los demás. Cuando propongo, aprendo a escucharme a mí mismo y a ver que tengo para ofrecer.

A partir de pequeños movimientos, pequeñas acciones que surgen de lo espontaneo, otra acción igual de pequeña surge, seguida de otra y otra más, creando un efecto de continuidad y fluidez.

La colaboración permite crear formas más ricas de las que puede crear una sola persona, incluso inimaginables, imposibles. Pero, que trabajen 2 personas juntas no quiere decir que estén colaborando. Hicimos varios ejercicios donde notamos que bajo ciertas combinaciones la cosa se vuelve lenta, torpe. Me llevo el desafío tomar otras situaciones y pensar en cómo combinar de distinta manera para crear colaborativamente.

Me pareció muy bueno cómo se generaron distintas experiencias desde lo físico. A partir de algunas actividades, entendí claramente lo que significa la visión, tener un objetivo y que sea claro, que no es lo mismo que tener un plan. Un plan me hace rígido, poco flexible y puede resultar frustrante si por algún motivo no se puede realizar. En cambio, un objetivo claro me permite adaptarme al entorno, entender mejor cómo me afecta y proponer un nuevo cambio.

Creo que el primer taller me sirvió para entender y reforzar la importancia de los valores de scrum y su porqué.

El segundo todavía me dejó pensando. Me di cuenta que con hacer daily meetings, restrospectivas y usar story points no es suficiente para generar auto organización, colaboración, ritmo. Son herramientas que ayudan un poco a conseguirlo, pero lo realmente valioso es dominar esa magia que genera movimiento orgánico en el equipo, para pasar a explotar un potencial mayor del que podemos entender.

saludos!

El Espíritu de Scrum

El miércoles pasado se dio este taller, guiado por Tobías y facilitado por Alan, que trató sobre los principios de scrum. La dinámica consistió en experimentar y explorar mediante juegos y actividades los significados de:
  • Empirismo
  • Auto-organización
  • Ritmo
  • Colaboración
  • Priorización
Salí del taller con mucha información para digerir, nuevas ideas, sensaciones, experiencias. Mientras volvía a mi casa en colectivo y con un calor aplastante, me quedé pensando en varias cosas:

Sobre lo orgánico de un equipo auto organizado. Es cómo que hay una fuerza invisible que va ordenando y dando sentido al caos. Desde afuera es sutil es imperceptible. Pero desde adentro, cuando se vive en carne propia mediante este tipo de actividades, te deja una buena sensación, como un gusto agradable.

En las posibilidades. Si alguien le dice al equipo cómo hacer las cosas, me pierdo de un montón de posibilidades. Lo mismo si alguien no participa. Nadie mejor que el mismo equipo para encontrar el mejor camino.

En el movimiento como una manera de generar valor constantemente. Genero valor porque hago, porque me equivoco, porque aprendo, porque se me ocurre una idea y vuelvo a probar. Moviéndonos sin pensar ni planificar de antemano pudimos hacer cosas que al principio nos resultaban imposibles o muy difíciles. Realmente llegué a sorprenderme por las cosas que conseguimos hacer teniendo al movimiento como principal estrategia.

En la importancia de la colaboración. Es como un círculo virtuoso, la colaboración genera más colaboración.

En el ritmo. Nos fue fácil mantener un ritmo y nos fue costoso cambiarlo y adaptarnos a uno nuevo.

En los valores. Sin valores nada de esto es posible ni sustentable en el tiempo. Los valores lo transforman en algo con sentido y energizante.
En tener clara una visión / objetivo trascendente, que sea más grande que yo, como motor y aliciente frente a las dificultados.

Siempre es un gusto asistir a estos eventos para conocer otras personas y encontrarme con otros colegas. Está muy bueno compartir este tipo de actividades con gente con gran motivación y pasión por lo que hacen.

saludos!

sábado, 16 de enero de 2010

Una herramienta simple para expresar ideas

Hoy me enteré por un RT de @emaraschio, sobre SimpleDiagrams, una herramienta para expresar ideas de manera visual y simple.

Tiene una versión free, que puede bajarse y usarla para empezar a crear diagramas. La verdad me pareció una muy buena manera de comunicar ideas, de hecho, la usé para explicar Kudewe Reports a un cliente:



No hay como la simplicidad...

saludos!

miércoles, 6 de enero de 2010

Home, una película sobre la importancia de cambiar

Gracias a Andrés Navarro, me enteré de la película Home, la cual se puede ver por youtube:

Esta trata sobre cómo se desarrolló la vida en la tierra, desde sus inicios, hasta la llegada del ser humano. La película tiene imágenes y escenas de la tierra que son realmente impactantes. Pero lo más impactante es la retrospectiva que hace sobre nuestro impacto en el planeta.

Algunas frases de la película que me parecieron geniales:
  • El motor de la vida es el vínculo.
  • Nuestra tierra reposa en un equilibrio en el cual cada uno tiene su lugar y solo existe gracias a la existencia del otro.
  • En la gran aventura de a tierra, cada especie tiene un papel, cada especie tiene su lugar, ninguna es inútil o dañina, todas se equilibran.
  • No hemos tomado conciencia de que estamos agotando lo que la naturaleza nos ofrece.
  • Lo orgánico es el vínculo entre el agua, el aire, la tierra y el sol.
  • Estemos donde estemos, nuestras acciones tienen repercusiones en el resto del planeta.
Ver las imágenes de terrenos modelados para aprovechar mejor la agricultura, me hizo acordar cuando caminé por los valles de Nepal con mi amigo Rober. Ya pasaron muchos años de ese viaje, pero no me olvido de las personas simples y alegres que habitaban esas tierras.

Esta película me hizo ver que el humano es la única especie que rompe equilibrios.

Me resulta interesante la sabiduría que esconde la naturaleza detrás de su simplicidad. En la película pude notar algunos defectos de nuestra manera de organizarnos:
  • Reemplazar la diversidad por la estandarización.
  • La desigualdad provoca desplazamientos de personas, de los cuales no hemos tomado realmente conciencia.
  • Cerrar los ojos, no ser adaptativo y ágil
  • No somos capaces de hacer un balance y ver todo aquello de lo que somos responsables
Pero se estan haciendo algunas cosas. Comienza una nueva aventura humana, basada en la moderación la inteligencia y el reparto. A nosotros nos queda escribir el resto de esta historia...

saludos!

150 x 300 Por una escuela

Otra de las iniciativas con impacto social que apoyamos, es la de Rodolfo Llanos (@soloenglish). Su proyecto consiste en construir una escuela en el Barrio Congreso Nacional, Cerrillos, Salta.

Para eso, Rodolfo corrío una carrera muy dura en patagonia (150km) y le propuso a la gente comprar cada kilómetro recorrido. Si ganaba, los vendía. El proyecto es interesante a nivel social y deportivo.

Para quienes estén interesados, todavía es posible comprar kilómetros para colaborar con la causa.

150×300

saludos!

Un viaje en bicicleta por America retratando pueblos

Como parte de esta idea loca de hacer un mundo mejor, nos sumamos como cómplice de Juan Villarino y su viaje de Mar del Plata a Alaska en americiclo.

Creo que su viaje puede ser una lección importante para toda la sociedad. Me da la sensación que hay mucho para aprender de los pueblos que viven con simpleza. Como dice Juan, la hospitalidad de estas personas es asombrosa. Reatratar el lado bueno de las personas es algo que refuerza nuestros valores humanos. El espíritu de su viaje me ayuda a recordar los valores con los que impulso este emprendimiento llamado Kudewe.

Por otro lado, su proyecto cultural se basa en la diversidad, en la mezcla de culturas distintas. Sin duda será una actividad muy interesante la de mostrar a los pueblos fotos de otros pueblos visitados. Se imaginan a un esquimal viendo fotos de pescadores en el amazonas y aprendiendo sobre sus costumbres?

Además, veo a su proyecto como una exploración a pueblos desconocidos para mi, donde puedo conocer comunidades a quienes ayudar en algún futuro.

Es interesante destacar cómo hay gente que con creatividad diseña su propia vida y encuentra su lugar en el mundo.

saludos!

martes, 5 de enero de 2010

Configurando Cruise Control .net + svn + MS Test desde 0

Hace poco incursioné en el mundo de la integración continua. Les dejo una breve guía de cómo configurar un Cruise Control .net + svn + MS Test desde 0.

1. Instalar CCnet http://confluence.public.thoughtworks.org/display/CCNET/Download.

2. Bajar nAnt http://nant.sourceforge.net/ y copiar a directorio local (yo los copié en c:\archivos de programa).

3. Bajar nAnt Contrib http://nantcontrib.sourceforge.net/ y copiar a directorio local.

4. Bajar svn command line http://nantcontrib.sourceforge.net/ y copiar a directorio local.

5. Configurar un proyecto de build en ccnet.config, ubicado en el directorio de instalacion de CCnet. Es recomendable hacer esto paso por paso, para ir probando como funciona

<cruisecontrol cb="urn:ccnet.config.builder">
<!-- This is your CruiseControl.NET Server Configuration file. Add your projects below! -->
<project>
<name>myProject</name>

<!-- Step1: trigger build from commit, check every 60 seconds -->
<triggers>
<!--<intervaltrigger seconds="60" buildcondition="ForceBuild">-->
<intervaltrigger name="Subversion" seconds="60">
</triggers>

<!-- configure svn repository -->
<sourcecontrol type="svn">
<trunkurl>http://svn.com/myProject/trunk/src/</trunkurl>
<workingdirectory>C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory\Source</workingdirectory>
<username>user</username>
<password>pass</password>
<executable>C:\Archivos de programa\CollabNet\Subversion Client\svn.exe</executable>
</sourcecontrol>
<tasks>
<!-- Step 2: Build solution -->
<nant>
<executable>C:\Archivos de programa\nant-0.85\bin\nant.exe</executable>
<buildfile>cruise.build</buildfile>
<targetlist>
<target>run</target>
</targetlist>
</nant>
<!-- Step 3: Run tests -->
<exec>
<!--Call a batch file that contains del testResults.trx -->
<!--this is required as MsTest will not create the file if it exists-->
<!--this could be merged with the mstext action in a single batch file-->
<executable>deleteTestLog.bat</executable>
<basedirectory>C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory</basedirectory>
<buildargs></buildargs>
<buildtimeoutseconds>30</buildtimeoutseconds>
</exec>
<exec>
<!--Call mstest to run the tests contained in the TestProject -->
<executable>C:\Archivos de programa\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe</executable>
<basedirectory>C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory\Source</basedirectory>
<!--testcontainer: points to the DLL that contains the tests -->
<!--runconfig: points to solutions testrunconfig that is created by vs.net, list what test to run -->
<!--resultsfile: normally the test run log is written to the uniquely named testresults directory -->
<!-- this option causes a fixed name copy of the file to be written as well -->
<buildargs>/testcontainer:Test\bin\Debug\Test.dll /runconfig:LocalTestRun.testrunconfig /resultsfile:testResults.trx</buildargs>
<buildtimeoutseconds>120</buildtimeoutseconds>
</exec>
</tasks>
<publishers>
<!--to get the test results in the dashboard we have to merge the results XML file -->
<!--the project working directory is used as the base path here -->
<merge>
<files>
<file>Source\testResults.trx</file>
</files>
</merge>
<!--this is the line I missed for ages, without it you get strange missing publisher log errors -->
<xmllogger>
</publishers>
</project>
</cruisecontrol>

Este es el archivo cruise.build que compila la solución VS2008 usando nNant (ubicado en C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory):

<?xml version="1.0"?>
<project default="run">
<property name="nant.settings.currentframework" value="net-3.5">
<property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe">
<property name="SolutionFile" value="C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory\Source\myProject.sln">
<property name="SolutionConfiguration" value="Debug">

<target name="run" depends="build">
</target>

<target name="build">
<exec program="${MSBuildPath}">
<arg line="'">
<arg line="/property:Configuration=${SolutionConfiguration}">
<arg value="/target:Rebuild">
<arg value="/verbosity:normal">
<arg value="/nologo">
<arg line="'/logger:">
</exec>
</target>
</project>

6. Configurar dashboard. Simplemente hay que crear un virtual directory en IIS y apuntarlo a C:\Archivos de programa\CruiseControl.NET\webdashboard.

Luego ingresar a http://localhost/ccnet, para ver que el dashboard funciona. Debería verse el proyecto de build. Para agregar los resultados de los test hay que entrar a administer dashboard e instalar MS Test Results y modificar los plugins de dashboard.config (ubicado en C:\Archivos de programa\CruiseControl.NET\webdashboard)

<buildplugins>
<buildreportbuildplugin>
<xslfilenames>
<xslfile>xsl\header.xsl</xslfile>
<xslfile>xsl\modifications.xsl</xslfile>
<xslfile>xsl\MsTestSummary2008.xsl</xslfile>
<xslfile>xsl\compile.xsl</xslfile>
</xslfilenames>
</buildreportbuildplugin>
<buildlogbuildplugin>
<xslreportbuildplugin description="MSTest Report" actionname="MSTestBuildReport" xslfilename="xsl\MsTestReport2008.xsl"></xslreportbuildplugin>
<xslreportbuildplugin description="NAnt Output" actionname="NAntOutputBuildReport" xslfilename="xsl\NAnt.xsl"></xslreportbuildplugin>
<xslreportbuildplugin description="NAnt Timings" actionname="NAntTimingsBuildReport" xslfilename="xsl\NAntTiming.xsl"></xslreportbuildplugin>
</buildplugins>

7. Instalar CC Tray. Esta es una aplicación que corre en el system tray y que muestra mediante semáforos el estado del build. La aplicación se baja desde el dashboard. Luego se agrega el servidor de build y se selecciona el proyecto de que se quiere monitorear.

Algunos links que me fueron útiles

Tutoriales:
http://confluence.public.thoughtworks.org/display/CCNET/Resources
http://www.codeproject.com/KB/dotnet/cruisecontrol_continuous.aspx

Configurar frw 3.5:
http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/28/upgrade-nant-for-use-with-vs2008-solutions-and-net-3-5.aspx

Configurar build:
http://stackoverflow.com/questions/1195389/msbuild-task-or-msbuild-exe-with-nant

Configurar MS Test:
http://blogs.blackmarble.co.uk/blogs/bm-bloggers/archive/2006/06/14/5255.aspx
http://stackoverflow.com/questions/362208/mstest-failing-in-2008-from-build-script


saludos!