Archive for the 'Del viejo blog' Category

22 OctInformática Profesional

Por fin tengo en mis manos el libro de Roberto Canales, Director General de Autentia. Se titula “Informática Profesional” y es un pedazo de libro. No sólo por sus 548 páginas, sino por todo lo que lleva dentro. Debería ser un libro de texto obligado en las universidades por todo lo que de transmisión de experiencia hay en él. Roberto retrata nuestro sector de una manera amena y didáctica. ¿Qué más se puede pedir? Pues si además le pides que dé consejos prácticos, que haga autocrítica y que tome partida, pues también.

Además, se puede leer a varias velocidades. Las excelentes ilustraciones de Jorge Crespo en formato cómic hacen que puedas hacer una primera lectura en “modo tebeo” (con breves incursiones al texto) y luego, más reposadamente leer todo el texto, que es mucho y con consejos muy sabios.

Reconozco que aún no lo he leido completamente, ni tan siquiera a velocidad “tebeo”. Me he quedado justamente antes de empezar el capítulo 5 “Vender Tecnología”. Pero he echado un vistazo en profundidad al índice y ojeado algunos capítulos que me resultaban especialmente interesantes (como el de “Metodologías”, claro), y creo que, como dice Jorge Crespo en la penúltima página:

Guarda bien este ejemplar. ¡¡Será la revolución del conocimiento empresarial!!

Estamos a punto para el Agile Open Spain 2009, que será mañana por la tarde y…

¿¿Mañana por la tarde?? ¡¡Maldita sea!! ¡¡Y todo lo que me queda por hacer todavía!!
Lo siento, os tengo que ir dejando…

Por cierto, y a propósito del Agile Open, me ha gustado mucho el cómic de la página 123. ¡Ah! Os lo tendréis que comprar… Sólo os daré una pista:-)

Enhorabuena, Roberto. Y muchas gracias. De mayor quiero ser como tú (bueno, puestos a pedir, un poco más guapo) :-)

21 OctNubes de etiquetas


Hoy va a ser uno de esos días “apretados”. Tengo muchas cosas en la agenda esperando desde hace demasiado y además el día es un poco más corto porque tengo que ir a Madrid para la reunión de nuestro grupo local de Agile Spain. Hoy va a ser divertido porque vamos a hacer presentaciones de 5 minutos para ayudarnos a montar el backlog de temas de esta temporada. Yo he propuesto el tema “Pruebas de aceptación automatizadas con Concordion”, que ya tocaba. Aunque me acabo de dar cuenta de que aún nos queda por tratar el tema del Manifiesto Ágil, que lo hemos ido posponiendo durante el verano y al final se ha quedado en nada. Bueno, si algún compañero se lo quiere “apropiar”… libre es de hacerlo.

Pero a pesar de lo apretado del día, no he podido evitar arrancar el ScribeFire para dar una referencia rápida de este artículo al que he llegado vía el twitter de Kevlin Henney. Se trata de usar Worlde (herramienta que ya he citado en otra ocasión) con el código fuente de un proyecto Java. Hace una comparación de nubes de palabras muy curiosa. El estilo de programación y el diseño de los dos proyectos en comparación hace que, visualmente, sea muy evidente en uno de los casos de qué va el proyecto pero que, por el contrario, en el otro sea prácticamente imposible (visualmente) decir de qué va. En el caso de este artículo se compara un diseño guiado por el dominio (DDD) con otro más “tradicional” (¿guiado por los datos?) pero a mi me gusta más por la reflexión que ofrece de fondo. ¡Jo!, cómo me gustaría tener más tiempo para probar esto y meterlo en la documentación a generar en los builds de integración continua. Se me antoja que si en una retrospectiva nos encontramos con que resulta difícil (visualmente) decir de qué va un proyecto/módulo… mmm, algo en el diseño debe estar fallando y una refactorización se “ve venir”. :-)

[La foto es de ... bueno, si hay alguien de Alicante o alrededores leyendo, quizás sepa de dónde es... y me invita a verlo en directo. :-) ]
Tags:

18 OctUna de Concordion

Con esto del Agile Open Spain 2009 estoy dejando de mano muchas cosas, pero no quiero abandonar el blog, así que aunque sean casi “microblogs” voy a intentar no dejar de escribir.

Dicho esto, voy a aprovechar que para el próximo miércoles en el grupo de Agile Spain en Madrid me he comprometido a hacer una presentación de 5 minutos para defender el tema “Pruebas de Aceptación Automatizadas con Concordion” y voy a dejar un par de apuntes aquí.

En el estupendo blog “Dos Ideas” he visto hace poquísimo un artículo con un par de screencasts en español sobre cómo usar Concordion + Selenium. Muy útil.

Para los que utiliceis .NET y queráis usar Concordion.NET, éste es vuestro blog (en inglés).

Lo siento, no hay tiempo para más. :(

15 OctParado, pero no ocioso

Aunque estoy en las filas del INEM, es decir, en el paro, no estoy ocioso ni mucho menos.

Por un lado estoy bastante involucrado en la organización del Agile Open Spain 2009. Parece mentira que un evento tan sencillito, con un formato tan ligero como openspace y con tan “pocos asistentes” (hemos limitado las invitaciones a sólo 150), pudiera ser tan laborioso. Supongo que tiene que ver también con el hecho de que ninguno nos dedicamos a esto de organizar eventos, que estamos geográficamente dispersos y que es la primera vez que hacemos algo así. Y por si fuera poco, me tengo que preparar alguna cosilla para el Open como el “mortal kombat” con Xavi Gost (un ejercicio de TDD y programación en parejas “en vivo y en directo”, que queremos grabarlo y todo) o un breve discursito de bienvenida a los que vengáis.

Por otro lado, estamos constituyendo Agile Spain como asociación, lo cuál no es mucho, pero suma (o resta, según se vea). Igual que las “relaciones exteriores”. Mantener el contacto con Red.es y otros contactos que puedan ayudar a Agile Spain en el futuro es algo necesario, que a veces quizás ocupa más de lo necesario.

El grupo de Agile Spain en Madrid requiere un poco más de energía y para eso tengo que “soltar lastre” en otros asuntos. Pero es difícil dejar de hacer… porque me había comprometido, por ejemplo, a participar como revisor del libro de Carlos Blé sobre TDD y colaborar con una breve reseña sobre DDD. Buff… hago lo que puedo, Carlos. ;-)

También estoy arrancando un proyecto personal llamado agilismo.es. Pretendo que sea un portal donde ofrecer contenidos de calidad relacionados con las metodologías y prácticas ágiles. No os puedo contar mucho más porque hay que ir creando expectativa…

He estado preparando mi CV (ya os contaré sobre la única respuesta que he tenido hasta el momento) porque “a Dios rogando y con el mazo dando”, ¿no?

Y por si fuera poco, ahora me he dejado enredar por iExpertos.com (Gregorio Mena y Carlos Blé) para dar un pequeño curso en Tenerife sobre Buenas prácticas en Integración Continua, donde explicaré cómo montar un ecosistema software muy sencillo y las mejores prácticas que conozco para tener una integración continua decente. Teniendo en cuenta que los que vengan van a salir con “recetas” para irse a su casa y ponerse a jugar enseguida, creo que es tremendamente barato (apenas 35€), sobre todo si lo comparas con esos cursos de tres cifras que apenas te sirven para irte a tu casa y pensar en cómo pones en práctica todo aquello (si algún día siquiera tienes la oportunidad de hacerlo). Pero es tan barato porque en realidad se trata sólo de cubrir los gastos de mi desplazamiento y poco más. No hay un verdadero interés por parte de los organizadores (ni de mi mismo) de lucrarnos con esto. Hombre, si vais muchos quizás haya para darme un paseo por alguna otra isla. :-) Pero debo confesar que me gustaría comenzar a “redituar” todos estos esfuerzos.

Necesariamente, toda esta actividad hace que la regla del “no me aprietes que no te abarco” entre en juego. Hay iniciativas que arranqué con mucho cariño, como la lista de DDD en español, o algunas lecturas que quería ir resumiendo en este blog (que también tengo un pelín abandonado, lo sé).

¡Ah! Se me olvidaba, tengo dos pequeños a los que tengo que llevar y traer del cole y demás actividades. Menos mal que el mayor se baña solo. :-D

En fin, lo dicho, parado sí, pero no ocioso.

07 OctAgile Spain en red.es

La semana pasada estuvimos Ángel Medinilla, Agustín Yagüe y un servidor representando a Agile Spain en una reunión con red.es. Nos recibieron Marta Ferrero (Subdirectora Adjunta de Relaciones Externas) y Borja Manso (Responsable de Gabinete de Dirección General). Para el que no sepa qué es red.es le diré que, entre otras cosas, es un ente público dependiente del Ministerio de Industria que se encarga de promover la Sociedad de la Información en España. Dicho así suena un poco rimbombante, pero realmente es que lo es. Se encargan de promover el DNI-e, el TDT, el SIMO, el FICOD y otro montón de iniciativas cuyo nexo común es la utilización del las TIC para mejorar (a veces complicar) la vida de las personas.

Cómo llegamos a hablar con red.es es verdaderamente curioso. A la vuelta de las vacaciones estuve desayunando con Abel Muiño, que me comentó que hablara con gente de Iniciador, que siempre tenían buenas ideas. Me puso en contacto con María Encinar, de Iniciador Galicia. Y chateando con ella a las tantas de la madrugada me dijo que tuiteara a Sebastián Muriel (el mismísimo Director General de red.es y una verdadera fuerza de la naturaleza). ¡Venga ya! Pues sí, le tuiteé y le envié un correo. Y al día siguiente ya se estaba moviendo todo. ¡Increíble!

Así que los tres nos plantamos en el edificio Bronce de Madrid. Teníamos preparada una presentación con 9 diapositivas que me costó preparar toda la noche, pero al final Ángel Medinilla no la usó. El portátil se quedó toda la reunión encima de la mesa sin abrir. Mejor. Ángel estuvo fantástico. Modestia aparte, creo que todos estuvimos bastante bien. El ambiente era más propicio para una charla que para un powerpoint. Marta es una persona muy accesible, que desde el principio demostró mucho interés por lo que habíamos ido a contarle.

Decidimos que fuera Ángel quien liderara la exposición porque es quien más “vis comercial” tiene de los tres. Nuestro discurso estaba consensuado, pero pensamos potenciarlo con sus tablas por “los escenarios de todo el mundo”.

¿Por qué fuimos 3? Porque queríamos escenificar el hecho de que Agile Spain aglutina a tres colectivos muy importantes en nuestro sector:

  • los profesionales
  • las empresas
  • la Universidad

Ángel explicó muy bien cómo el agilismo es algo que está siendo adoptado fuera de España, que representa una ventaja competitiva frente al resto y que red.es nos podía ayudar (por su relación con las Administraciones Públicas) a conseguir que éstas lo fueran adoptando también (dada la influencia que tienen en el sector en España).

Entre todos les explicamos cómo Agile Spain, desde sus distintas perspectivas, está trabajando en esta difusión. Ángel explicó que hay muchas pequeñas empresas interesadas en mejorar su productividad y la satisfacción de sus clientes. También habló del Plan Avanza y otras iniciativas ministeriales en las que
podríamos encajar algunas de nuestras iniciativas y que Agile Spain
puede ayudar a que iniciativas de red.es lleguen a las empresas
españolas. Agustín, por su parte, explicó cómo desde la Universidad se puede contribuir a capacitar a los futuros profesionales y dar fundamento a las organizaciones que quieran adoptar estas metodologías. Además, explicó la posibilidad de crear una red de excelencia (que podemos articular en base
a los grupos locales, apoyándolos, dinamizándolos) y de las conexiones
con otros países. Finalmente, yo expliqué que nuestra comunidad surge principalmente desde abajo, desde los profesionales (programadores, jefes de proyecto,…) que, insatisfechos con la manera de trabajar, estamos dando un paso adelante para cambiar las cosas

Puestos en esto, le pedimos a red.es que nos apoyara institucionalmente dando sobre todo respaldo frente a las administraciones púbicas por la influencia que tienen en nuestro sector. Ángel insistió en que no podemos perder “el tren del agilismo” ya que en otros países están consiguiendo aumentar su competitividad gracias a ello y es algo a lo que podemos y debemos aspirar.

Por último, les explicamos los eventos que estamos organizando, les hablamos de los grupos locales y de los planes de futuro que tenemos: potenciar los grupos locales para crear una comunidad real, organizar un evento en un formato más formal aproximadamente en primavera y, si conseguimos que nos nominen, organizar un evento a nivel internacional (quizás una XP).

Marta nos explicó que estaba muy interesada, que contáramos con red.es para el presupuesto que viene (el de 2009 ya está cerrado y para el Agile Open no puede hacer nada) y que le enviaramos más detalles porque quería escalar esto hacia arriba para explicarlo y nos emplazó para futuras ocasiones donde podamos hacer un brainstorming y encontrar maneras de concretar la colaboración tanto de red.es con Agile Spain como de Agile Spain con red.es. Nos dijo que seguramente enviarían a alguien (por supuesto que ampliaremos el aforo, porque donde comen 2 comen 3). ¡Qué pelota! ¿Verdad?

Resumen

Creo que todos salimos MUY satisfechos de la reunión. Sabíamos que no ibamos a obtener nada concreto porque era una primera toma de contacto, pero nos trajimos una muy buena impresión de red.es y el firme compromiso de buscar maneras concretas de colaborar conjuntamente. ¡Y pensar que hace un año esto de Agile Spain estaba más muerto que vivo!

28 SepJugar a mejorar

Estaba leyendo un artículo publicado por Xavi Albaladejo en su ProyectosAgiles.org sobre un juego de simulación para enseñar Scrum y me ha venido la idea de hacer un pequeño recopilatorio de artículos que he ido leyendo en los últimos meses y que puede servir para aquellos que queráis venir al Agile Open Spain 2009 con algo visto y, quién sabe, con algo incluso probado.

Empezaré por recomendar una introducción de Scrum en 10 minutos (realmente 7:59). Lo siento, está en inglés, pero merece la pena. Sería genial que algún voluntario le pusiera subtítulos en español, ¿verdad? ;-)

Lógicamente, luego os recomendaría leer la explicación un poco más extensa que hace Xavi en ProyectosAgiles.org. Simplemente pulsad en la pestaña “Qué es Scrum”, pero no os quedéis en leer sólo esa página, profundizad en los hipervínculos a medida que vayáis aumentando vuestro interés. Merece la pena.

Si os ha picado la curiosidad, hace unos meses Xavi Albaladejo, Xavier Quesada y un servidor grabamos un podcast para JavaHispano, donde no hablamos exactamente de Scrum, pero sí hacemos un repaso bastante completo a los fundamentos ágiles en general, que lógicamente son compartidos por Scrum. Creo que merece la pena también, modestia aparte, que echéis un vistazo a la presentación que hice no hace mucho titulada “Los principios ágiles” y que hace un recorrido del Manifiesto Ágil y sus Principios. He adjuntado también mis notas porque sin ellas os podéis quedar un poco perplejos.

Radiadores de información

La vida de un equipo que hace Scrum está muy vinculada al tablón donde se publica la información que produce el propio equipo de manera completamente transparente, entre otras cosas para evitar interferencias por parte de los gestores con la típica preguntita impertinente “¡Qué, chaval! ¿Cómo lo llevas?” (que en realidad quiere decir “¿te falta mucho para acabar?”). Por eso os recomendaría también visitar el blog titulado “Visual Management” (desgraciadamente en inglés) donde Xavier Quesada nos enseña cómo mejorar la gestión del proyecto mediante un mejor uso de los elementos visuales que empleamos para “radiar la información” (es decir, las pizarras, los post-its, etc) y nuestra relación con ellos. Por ejemplo, podemos elegir un tipo de rotulador u otro para escribir en nuestros post-its. Si escribimos con un “boli medio gastado” y con una letra garabateada, estaremos disminuyendo la eficacia de nuestro tablón. Estoy seguro de que si muchos le pedís a Xavier que traduzca su blog, él estará encantado. No en vano es el primer CSC (Certified Scrum Coach) de habla hispana.

Pero si nos quedamos sólo con el tablón, los post-its, las pizarras y las reuniones diarias, probablemente nos estaremos quedando en la parte más cercana al folklore.

Historias de usuario

El trabajo en Scrum se reparte en forma de historias de usuario, que se estiman y priorizan para formar parte de una pila de producto (o “product backlog” en inglés). La mejor referencia para este tema es, sin duda, esta presentación de Mike Cohn, aunque preferiría que os leyérais su libro “User Stories Applied” porque es excelente (y cortito). En cualquier caso, creo que también os podría valer este artículo en español del compañero de Viçenc García.

A mi, todo este tema de las historias de usuario me parece básico, porque si no escribimos bien lo que queremos hacer, ¿cómo vamos a poder hacerlo después? Por eso me interesa tanto todo lo relacionado con las pruebas de aceptación, que algunos preferimos llamar “especificaciones ejecutables” para hacer más énfasis en el hecho de que se escriben antes y no después de la construcción del software. Pero esto ya quedaría fuera de lo que es Scrum (estrictamente hablando).

Si ya habéis llegado hasta aquí, creo que estaréis en la mejor de las disposiciones para aprovechar al máximo el curso gratuito de “Introducción a Scrum” que ofrecieron hace ya unos meses Agustín Yagüe y Juan Gutiérrez en las instalaciones que Autentia nos prestó.

Literatura (en español)

Libros sobre Scrum (y agilismo en general) hay muchos, pero en español hay muchos menos. Yo me atrevo a recomendaros la lectura de dos (elegid vosotros mismos):

Formación

Y si queréis más, podéis ir echando un vistazo al calendario de cursos de Scrum que desde Agile Spain tratamos de mantener actualizado. Si quieres ofrecerte como voluntario para ser tú el que lo mantenga actualizado… no tienes más que ofrecerte. :-) O mejor aún, puedes intentar arrancar un grupo local de Agile Spain. Hay uno en Barcelona y otro en Madrid. Para esto no tienes más que buscarte un lugar donde hacer la primera reunión (tu oficina, la oficina de un amigo, un bar, una escuela… cualquier sitio es bueno para empezar) y avisar por todos los medios que se te ocurran (tienes la lista de correo de Agile Spain a tu entera disposición y a todos nosotros para echarte una mano). Lo demás depende de lo que se os vaya ocurriendo y las ganas que tengáis.

<publicidad>
Yo estoy estudiando seriamente dedicarme a dar formación y coaching ágil en breve, aunque tengo cierto reparo al leer comentarios en contra de los que desgastan el término ágil para su aprovechamiento mercantil. Sea como sea, si alguien está interesado, que se ponga en contacto conmigo y quizás sirva para decidirme definitivamente.
</publicidad>

Por supuesto, tenéis las listas de Agile Spain (la comunidad ágil española) y Ágiles (la comunidad ágil latinoamericana) para cualquier duda o sugerencia que se os ocurra.

Corolario

En cualquier caso, implementar Scrum no os va a garantizar nada más que, si tenéis éxito o fracaso, lo sabréis cuanto antes. Pero no va a reemplazar el que tengáis que tener unas buenas prácticas de ingeniería y una actitud profesional frente al trabajo. Si tenéis inútiles y vagos en vuestros equipos, Scrum sólo os ayudará a identificar que tenéis este problema (ni siquiera os permitirá identificar quién es el más inutil y vago del equipo). Eso sí, si conseguís armar un equipo con ganas de mejorar y capaces de adoptar una alta dosis de autodisciplina, con un poco de paciencia veréis que podréis ir mejorando en las prácticas de ingeniería y, finalmente, consiguiendo éxitos para vuestros clientes, es decir, también para vosotros. Citando a  Alfredo Casado en un hilo de la lista de Agile Spain: “sin excelencia técnica no hay agilismo, sólo post-it pegados por las paredes”.

Como habréis podido comprobar, la mayoría de los recursos que he ido citando en este resumen tiene un cierto tono informal. Incluso los cursos y talleres incluyen juegos (como el que me servía de excusa para arrancar el artículo). Y no es casualidad. Desde el primer momento el agilismo ha estado relacionado con la idea de cambiar la forma de ver el lugar de trabajo como un sitio donde se va a sufrir por otro donde, a cambio de hacernos responsables de nuestro trabajo, nos lo podemos pasar bien.

Nos vemos en el Agile Open Spain 2009. No olvides tu cámara. ;-)

[La foto es una reliquia familiar (aclaro que de alguien que yo no conozco en absoluto) y representa a un grupo de chavales jugando a la pelota. Me pareció que destilaba una cierta ternura y por eso la elegí.]

28 SepCuidado, soy un tipo peligroso

Mientras estoy terminando el artículo sobre Scrum que dentro de un ratito publicaré, me he topado, gracias a un amigo en twitter, con este otro artículo que, por una parte me ha parecido muy acertado, sobre todo recordando que los métodos ágiles no son balas de plata, es decir, que no siempre son la mejor solución. Pero por otra parte me ha hecho plantearme si es correcta la imagen que transmito de mí mismo al declararme “evangelizador agilista” (“agile evangelist” si echáis un vistazo a mi perfil en LinkedIn).

Después de pensarlo bien y echar mano de mi ejemplar de “Fearless Change”, he llegado a la conclusión de que sí, de que es correcta. Es más, es la que quiero tener en este momento. Porque tengo una pasión y me gustaría poder transmitirla. Esta pasión es el desarrollo de software.

He descubierto que hay formas mejores de desarrollar software y me gustaría que fueran las que se usaran mayoritariamente en las empresas de desarrollo de software de nuestro país. No quiero parecer un “talibán”, alguien que dogmáticamente, sin reflexión alguna, trata de imponer su criterio a todos los demás. Por eso no me autodenomino “Emperador de lo ágil” ni nada por el estilo. Y es que no creo que tener una pasión sea malo, ni tratar de que los demás compartan tu pasión (sin imponerla ni ponerse muy “pesao”) sea malo. Así que creo que, aunque es cierto que hay que empezar a tener cuidado con los que recién llegan a aprovecharse de la marca “agile” y de los que quizás han creado marcas a partir de estos conceptos para “monetizarlos”, también creo que no debemos descartar directamente a aquellos que te tratan de mostrar su pasión simplemente porque se ha convertido en una “buzzword”.

Bueno, lo dejo que no me quiero poner “pesao”. :-)

[La foto es una obra de Warhol que está expuesta en el MOMA de Nueva York y que representa una infinidad de latas de sopa de una misma marca, con lo que no es fácil distinguir una sopa de otra. ¿Moraleja o simplemente arte?]

23 SepEl fin del verano


El fin del verano llegó. Ya estamos de vuelta en el cole, se acabaron las vacaciones, la playa, también se acaba el calorcito, las terracitas… Igual que con el principio de año, las listas de propósitos de enmienda proliferan. En mi caso, mi periodo sabático se ha acabado y comienza un periodo diferente: el de salir del desempleo. Para mi particular inicio de curso tenía algunas tareas e incluso asignaturas pendientes. Con vuestro permiso voy a hacer un recuento público del estado de las mismas.

Mi caja de herramientas

Hace algo más de un año me dije que tenía que mejorar mis conocimientos teóricos y prácticos en varios aspectos de la Ingeniería del Software (concretamente SOA y DDD), montarme un ecosistema software (con su control de versiones, su integración continua, su wiki y todo) y añadir a mi caja de herramientas algunos frameworks, herramientas y lenguajes a los que hacía tiempo que les tenía ganas (concretamente Wicket y Spring 2.5, con sus anotaciones y todo, un DVD con herramientas de IBM que sigue en la estantería aún sin abrir, y Ruby y Groovy).

Bueno, SOA salió de la ecuación bastante rápido. Demasiadas cosas y ya se sabe: “el que mucho abarca, poco aprieta”. Aunque pude asistir a una charla que dió Udi Dahan en Madrid gracias a iMeta y que, además de aclararme un montón de dudas, me enseñó cómo hacer “SOA de verdad”, con servicios realmente autónomos. En cuanto a DDD, sigo ahí peleándome con el calendario y mis obligaciones diarias, pero algún día conseguiré tener mi ejemplo “end-to-end” para poder explicar esto de los repositorios, la “ignorancia de la persitencia” y todo eso que cuando lo lees resulta tan elemental pero a la vez tan difícil de traducir en líneas de código. Incluso creé en su momento un googlegroup, pero me temo que no le estoy dedicando tiempo ninguno y pido disculpas por ello.

El ecosistema software está funcionando en mi portátil a pleno rendimiento: Hudson, Subversion, Dokuwiki, Maven, Eclipse. ¿Se me olvida algo? ¡Ah! ¡Sí! Sonar. Aunque éste lo tengo un poco aparcado… Me quedan en el tintero afinar cosas como tener una buena estructura para los builds con Maven y las pruebas de integración y funcionales, probar cómo va eso de Git, probar el Testability Explorer de Misko Hevery (que por cierto tiene un blog sobre testing muy recomendable).

En cuanto a Wicket, he hecho mis pinitos, pero tengo que explotarlo aún más. Desde luego, lo que tengo claro es que antes muerto que JSF. :) Spring 2.5 está más o menos dominado: no era tan complicado. Y mi relación con Ruby-Rails y Groovy-Grails es un poco rara. No termino de creer en ninguno de los dos, pero aun así este verano he estado insistiendo a mi sobrino Nico para que aprendiera, le instalé el Aptana y le ayudé a refactorizar alguno de sus ejemplos de Ruby (el pobre no había llegado al capítulo de las subrutinas y yo dándole caña, ¡es que no tengo corazón!). El día 3 voy al curso que Escuela de Groovy organiza junto a JavaHispano. Este verano he estado jugando (no me atrevo a decir más) con Eclipse y un plugin bastante apañado, pero sigo sin “pillarle el puntillo”. No sé, debe ser que me pilla un poco viejo o que he perdido el gusto por programar…

Para no perder la práctica he estado entrenando un poco, pero claro, nada serio. Quizás lo más interesante fue el ejercicio del libro de Refactoring. Por cierto, me estoy haciendo (a ratos, porque no consigo tener la continuidad ni la serenidad de espíritu necesarios) un codekata que me está resultando bastante interesante.

De todos modos, hay temas que han salido de mi caja de herramientas (por lo menos por una buena temporada) como OSGi o JAX-WS.

Concordion

¡Ay! Mira que tengo ganas de poner lineas de código mías en Concordion. Incluso tengo un “issue” asignado desde hace la tira… pero de veras que no consigo sacar el tiempo necesario para programar. Ni pomodoros ni nada. Eso sí, conseguí mavenizarlo y que las “releases” se publiquen automáticamente en el Repositorio Central de Maven.

Tengo a medias un taller sobre especificaciones ejecutables que quiero armar usando Concordion, pero una vez más… “el que mucho abarca poco aprieta”.

Agile Spain

Realmente éste ha sido y es mi gran caballo de batalla. En principio mi interés consistía en formarme “formalmente” en esto del agilismo. Así que me apunté a un curso de Scrum de dos días que no tenía mala pinta y que no era “fu*ing expensive” como los CSM. Además lo daba un andaluz, como yo. Mala suerte. Me nació el pequeño en medio del curso. Por suerte, Ángel es un tipo muy amable y comprensivo y me dejó repetir el curso (desde el principio, je, je).

El 7 de junio de 2008 creé la lista de correo “heredando” el nombre de una comunidad que había ido languideciendo en los últimos años, pero no hubo nadie más hasta el 21 de julio que se añadió Juan Gutiérrez desde Finlandia. Pasaron algunos meses hasta que Jorge Uriarte y Xavier Quesada propuesieron la refundación y ahora somos 230 en la lista (aunque seguro que hay más gente que la lee y no está suscrito, pero los Googlegroups no dejan poner Google Analytics :( ) e incluso vamos a organizar el primer Agile Open en España, con 150 asistentes y una lista de espera que nos lleva hasta los 233 que hay ahora mismo. Pero es que además, para primavera queremos organizar algo aún más grande, como ensayo para una conferencia a nivel internacional. El día 2 nos han invitado a una reunión en red.es para ver de qué manera podemos colaborar. !A mi se me ocurren muchas ideas! Y también estoy en contacto con Agoranews (los que están haciendo la cobertura audiovisual del SIMO). Ojalá de unos o de otros podamos conseguir que se graben algunas o todas las sesiones del Agile Open, pero queda poco tiempo así que no sé. ¡Pero apretaré para el evento que haremos en primavera!

Buff, pero éste no era mi objetivo cuando empecé con esto de Agile Spain. Yo sólo quería hacer que los que hacían agilismo en España “salieran del armario”, de esa manera, pícaro yo, sabría a quién enviar mi CV. Pero la cosa se ha salido un poco de madre y me han invitado a grabar un par de podcasts (uno para JavaHispano y otro para 32minutos). Pero el colmo ha resultado cuando desde la Tenerife LanParty 2009 me han invitado a dar una charla sobre esto del agilismo. Y encima han quedado muy contentos y todo. Total, que resulta que cuando escribes en Google “agilismo” salgo en casi todos los primeros resultados. Vamos, que casi sin haberlo querido estoy bien posicionado.

Viendo que esto parecía que me abría una oportunidad profesional interesante, decidí explorarla este verano. Para ello he empezado a trabajar en un estudio de mercado sobre “agile coaching” en España. Quiero aprovechar el Agile Open para pasar una encuesta a los asistentes y así poder sacar conclusiones un poco más científicas que simplemente una sensación. Luego dejaré el estudio a dominio público porque para mi ya será suficiente y, quién sabe, quizás ayude a otros a decidirse por un camino similar.

He hablado con varios emprendedores y freelancers (con Ángel, con Abel, con Leo, con Xavi) y todos me dicen que adelante, sin miedo. Pero yo soy un “cagao” y tengo muchas reticencias. ¿De verdad se vive mejor como autónomo? Mi madre, hace muchos, muchos años, era propietaria de una tienda de ultramarinos (que antiguo suena eso) y estaba esclavizada por su trabajo. Por cuenta ajena, al menos tienes un horario (que tienes derecho a respetar). Pero claro, conociéndome, ese argumento suena a “excusa barata”.

Así que, claro, ahora me surge una pregunta: ¿Y ahora qué? ¡Ah! ¡Sí! Pues decidir si preparo el CV y lo subo a Jobsket o, por el contrario, preparo un porfolio de servicios y me hago freelance “porlagloriademimadre”.

03 SepLa invasión de las métricas mutantes

El escéptico Abel Muiño, Manuel Recena y otros más de la lista de Ecosistemas Software son unos “adictos” a Sonar, de modo que no me ha quedado más remedio que evaluarlo. Con una conexión más o menos decente a Internet seguro que se instala bien y rápido, las instrucciones son muy sencillas. El problema que he tenido es que cuando la conexión a Internet falla, la cosa se complica porque hay muchos jar que descargar… Pero bueno, el proceso es bastate robusto. Requiere de una base de datos: yo he elegido MySQL, pero pueden ser otras.

Para el que no lo sepa, Sonar es una herramienta que sirve para recolectar métricas de muy diversa índole y mostrarlas juntas. Por ejemplo, recopila los tests (maven’s surefire), la cobertura de los mismos (Cobertura), análisis estático (PMD), acomodación a reglas de estilo (checkstyle), etc. Además, elabora históricos, con lo que podemos ver la evolución y todo… Se puede jugar con él durante horas para ver todas las métricas, hipervinculadas con el código, con los tests, etc. Muy chulo.

Examinar un “dashboard” de Sonar es, sin embargo, un tanto agobiante. Mucha información. En mi opinión: demasiada. Ya lo hemos discutido varias veces en la lista de “agile-spain” y en “foro-agiles”, pero mi postura sigue siendo la misma: mejor pocas métricas pero que ayuden que muchas pero que despisten. El objetivo fundamental de un equipo de desarrollo es, desde un punto de vista agilista, claro, entregar valor al cliente al final de cada iteración y de manera sostenible en forma de software que funciona. Y esto es relativamente fácil de medir: cuánto incremento de valor hay en cada iteración. Lo ideal sería medirlo en euros, pero quizás algo complicado… mejor en puntos de historias de usuario.

De todos modos, Sonar es una herramienta que, convenientemente afinada, puede ser de gran, gran ayuda para los perfiles responsables de mejorar la calidad interna de los proyectos. Con Sonar se pueden preparar sesiones de revisión de código muy productivas. En cualquier caso, ésta es una discusión muy rica.

01 SepEvaluación del desempeño ágil

Recientemente he leido una discusión muy interesante en foro-agiles titulada “Planning Poker vs Incentivos por productividad” y que luego pasó a llamarse “Evaluación del desempeño”. He llegado tarde a la discusión pero me ha salido un post tan largo que creo que merecía la pena sacarlo al blog.

Siento llegar algo tarde a esta discusión tan interesante. Quería compartir con ustedes mis experiencias.

En una empresa donde trabajábamos por objetivos, el Director del Departamento elaboró una lista de objetivos individuales y otros de equipo. Por ejemplo, un objetivo individual consistía en alcanzar una serie de capacitaciones internas, basadas en diversos criterios: recibir formación, impartir formación, asumir responsabilidades a nivel departamental, etc. Un objetivo de equipo podía ser conseguir una serie de éxitos en las entregas (resultado de una encuesta al cliente -interno-).

Muchos de estos objetivos se podían medir de manera totalmente objetiva, otros no. Por ejemplo, detalles como la implicación con los resultados del equipo, la aportación de soluciones, la colaboración con los demás, etc. Para esto no es posible tener una métrica y teníamos para ello informes que redactaban los jefes de equipo (rol que hacía de SM y además tenía autoridad jerárquica sobre el resto del equipo).

La última palabra la tenía siempre el Director del Departamento, que es quien realizaba las evaluaciones personalmente. (Era un departamento pequeño). Había una serie de escalones de cumplimiento de objetivos que, dependiendo de tu posición en el Departamento, debías cumplir. No llegar a los objetivos en una serie de trimestres seguidos era motivo de despido. (Previamente había “programas de recuperación” para aquellos que hubieran “suspendido” una o dos veces).

A primera vista parece un esquema que debería haber funcionado muy bien. Pero no. No funcionó PARA NADA. ¿Por qué? Buena pregunta. Creo que aún estamos preguntándonos por qué. :-)

Mi opinión (creo que alguien lo dijo ya antes) es que poner incentivos individuales hace que las personas se enfoquen en ellos mismos y se olviden a veces de los demás. ¿Saben que ocurría en la práctica? Que algunos individuos comenzaron a hacer trampa: por ejemplo, los que debían revisar código (por turno rotatorio) preguntaban qué código podían revisar y así siempre se entregaba código “bueno”. Digamos que “los bomberos no se pisaban la manguera entre ellos”. No se estaba favoreciendo a los buenos y honestos profesionales sino a los que sabían jugar con esas reglas del juego.

¿Cómo se podría haber evitado esto? Lógicamente, sin generalizar porque cada organización es un mundo, creo que los incentivos basados en métricas no son malos pero sí perversos. Son fáciles de implementar porque no obligan a nadie a tomar decisiones (son “objetivos”) pero llevan fácilmente a los individuos a enfocarse en cumplir con las métricas. Incluso a veces puede llevar a desenfocar tanto que los individuos dejen de mejorar todo lo que pueden y mejoren sólo lo justito para cumplir con la métrica. En consecuencia, yo no eliminaría radicalmente este tipo de incentivos “objetivables” o “guiados por métricas” y los reduciría a uno o dos en cada período de evaluación, con un espíritu básicamente pedagógico, tratando de mostrar a los escépticos (siempre los hay) que al aplicar ciertas prácticas se consiguen mejoras en la calidad del proyecto. Por ejemplo, una métrica de este tipo puede ser el número de builds rotos. El equipo (o incluso el individuo) que consiga mantener el build sin romper durante todo el período habrá conseguido no sólo mejorar sus métricas (y el consiguiente incentivo) sino que habrá adquirido unas costumbres saludables para el proyecto y para ellos mismos. Otra métrica para esto podría ser la velocidad del equipo. Incrementar de manera sostenible la velocidad del equipo es bueno para todos, sobre todo si es sostenible (porque si no estaríamos favoreciendo la generación de deuda técnica).

Por otro lado, los incentivos que no son “objetivables” son los más difíciles de implementar porque requieren que alguien “se moje” y diga quién se lo merece y quién no. En el caso de los objetivos de equipo es fácil. Delegamos esta responsabilidad en el cliente (si hacemos Scrum sería el PO). Nosotros eso ya lo teníamos con la encuesta de satisfacción, pero no tenía suficiente peso.

En cuanto a los incentivos individuales subjetivos, no creo que haya nadie mejor que tu jefe para esto. Eso sí, tu jefe debe ser alguien que te vea trabajar día a día (no de oídas, sino en las trincheras). El problema de esto es que requiere de jefes maduros y dispuestos a asumir esta responsabilidad. No todo el mundo puede y/o quiere hacerlo. Lo que nos lleva a… ¿cómo incentivar a los que incentivan? Dilema más conocido como “¿quién le pone el cascabel al gato?” :-)

¿Tenéis vosotros experiencias con este tema? ¿Os parece relevante o creéis que “la gente debe venir motivada de casa”? ¿Esto es cosa de “la gente de Recursos Humanos”?

Tags: