Pensamientos Ágiles - Martín Pérez

Distribuir contenido
Blog acerca de informática, tecnología, negocios, etc.
Actualizado: hace 23 mins 42 segs

TV oriented development

Sáb, 02/13/2010 - 20:20


En una de las empresas en las que trabajé en rlanda me pasó lo que probablemente fue ha sido el momento más rocambolesco de mi carrera. Y es que a veces los managers tienen una extraña concepción de lo que puede y no puede motivar a un equipo.

Os pongo en situación: Un banco pagando X dinero (mucho, mucho) al mes durante 24 meses y la aplicación no ha llegado a nada. Ya se sabe como son estas cosas. Grandes especificaciones que tardan meses en completarse y mientras tanto ni una línea de código, a vivir. Llega el momento y resulta que no llegamos a esos 50000 usuarios concurrentes que necesitamos. Hay que contratar personal extra. Ahí llego yo, con seis meses ya de retraso acumulado y sin rumbo claro. Pasan los meses y poco cambia. Por mucho que queramos hacer cosas todo está dirigido por especificaciones inamovibles e irrealistas. Proyecto abocado al fracaso.

Llega el momento del ultimatum. El banco lo quiere ya y necesitamos la aplicación en quince días. ¿Cómo podemos motivar al equipo? Pues a alguien se le ocurrió la siguiente idea tan fenomenal y que he bautizado como TVDD o TV-Driven Development:


  1. Comprar una televisión de 42 pulgadas (doy fe de que se puede reusar posteriormente para apostar a las carreras de caballos).

  2. Colocar la televisión en la entrada para que sea lo primero que ven los empleados al entrar en la oficina.

  3. Mostrar lo más grande que se pueda la cuenta atrás para el día fatídico. 15,14,13,12,...

  4. Preparar un PowerPoint cada día donde figuren las incidencias más críticas en JIRA y mostrarlo en grande como índice.

  5. En sucesivas páginas del PowerPoint, relatar la incidencia y el responsable de arreglar esas incidencias.

  6. Hacer saber a los empleados que esta medida es para que todos mantengamos el foco en el objetivo a conseguir en las próximas dos semanas y que nadie se dedique a otra cosa más que a solucionar sus incidencias.



Así que los "afortunados", y me incluyo porque a mi me tocó alguna, llegábamos por la mañana tan tranquilo y nos encontrabamos con un pantallón donde veías los días, y si "tenías suerte" tu nombre saldría en grande y tendrías tus minutos de gloria ya que alguien te habría asignado un marrón del que probablemente nunca habías oido hablar porque se había colado entre los cientos de documentos Word que los business analyst habían estado reenviando de aquí para allá.

Si alguno está interesado en aplicar esta metodología en su empresa, por favor que me avise primero para evitar acercarme a un kilómetro a la redonda :-) No os tengo que decir que la metodología falló estrepitósamente. En realidad nos lo tomamos bastante a guasa. Lamentablemente la cuenta atrás terminó en el número 7. El banco canceló el proyecto y hubo que despedir a la mitad de la plantilla.

El final es feliz ya que la empresa perdió mucha de la gente que no estaba favoreciendo al rumbo. De hecho, eramos !9 arquitectos! (para unos 50 desarrolladores) y nos quedamos en 3, lo que es un número mucho más razonable. Conseguimos que se cambiase la forma de trabajo a una metodología ágil y reconstruir el producto con iteraciones claras. La empresa por fin, tras unas semanas consiguió un producto que vender, y de hecho se consiguió vender a varios bancos mucho más pequeños. Han pasado varios años, muchos nos hemos ido y la empresa no está pasando los mejores momentos, pero es uno de los lugares donde más he aprendido sobre como transformar algo que está podrido desde su raíz incapaz de sacar algo a la luz en una empresa que realmente produce productos y vende software que funciona.

En definitiva, que si un proyecto está retrasado, seguramente ni el no tener una televisión de 42", ni el no tener una cuenta atrás, ni el no tener JIRAs amenazantes, ni el traer refuerzos de última hora van a hacer que el proyecto se salve. Profesionalidad y asumir el "mea culpa", reconocer que las cosas se están haciendo mal y cambiar completamente el chip.

En mi opinión, sólo con la honestidad se puede salir adelante en proyectos como este. No sé si alguno tenéis experiencias parecidas. Os animo a compartirlas

Kanban vs. Scrum en castellano

Jue, 01/28/2010 - 09:54

A esto le hay que dar publicidad. Angel Medinilla lo comenta mucho mejor en su blog. Desde hace unos días en Agile Spain estaban traduciendo el libro Kanban vs. Scrum al castellano.

El resultado de la traducción ha quedado un poco grande (74Mb), pero están en ello. Los cracks que nos permiten disfrutar del contenido traducido son Rodrigo Corral, Teo Sánchez, Gregorio Mena, Laura Morillo Velarde, Ángel Agueda (Legnita), Jorge Uriarte, Agustín Yague, Juan Palacio, Xavier Quesada, Javier Sánchez, Jorge Jiménez y Juan Carlos Quijano.

Gracias a todos ellos. El libro lo podeís descargar desde aquí.

PS: Imagen via crisp.se

We Are Developers!

Jue, 01/21/2010 - 07:16
Se me pasa Enero y todavía no he escrito ningún post serio. Y esto no puede ser. En Diciembre tuve la suerte de ser invitado a las III Jornadas Java de Alicante donde hablé un poco sobre mi experiencia en el desarrollo ágil. Las transparencias de mi charla están aquí, pero como tuvimos mala suerte no hubo manera de recuperar el audio. Así que como hay una serie de diapositivas que necesitan su explicación, voy a ver si tengo la constancia para mantener una serie de posts sobre el tema.

La primera imagen que mostraba en la charla era super llamativa:



Es un cartel de la película 300. Esta es una de las cosas que he aprendido desde que soy desarrollador. Y es que un equipo pequeño puede hacer las cosas mucho mejor que un equipo 50 veces mayor. Parece una barbaridad, pero al menos a mi la experiencia me ha mostrado que es así. En mi caso personal tengo a Jobsket. No nos quiero tirar flores. Somos tres personas y hacemos lo que podemos, lo mejor que podemos. Pero todos los clientes a los que vamos se quedan alucinados con el producto y con el hecho de que seamos tres personas en el equipo. Técnicamente todo el mundo coincide en que somos mucho mejores que las alternativas. El aspecto comercial ya es otra historia, claro :)

Pero no quiero ser egocentrista aquí. En la charla hablaba de otra historia. Una historia de tres amigos que fueron capaces de hacer un producto mejor y más querido que el desarrollado por una empresa con más de cien personas dedicadas al mismo. Mis amigos tenían el software funcionando a los pocos meses, mientras que a la empresa en cuestión le llevó años ponerlo en marcha, y creo que aún están en ello. Cuando lo puso en producción causó el caos absoluto: pésimo rendimiento y consumo de memoria y recursos, falta de usabilidad, quejas de los usuarios, vamos que casi causan una huelga general.

Por el contrario todos los usuarios del software de mis amigos lo quieren con locura. ¿Cómo lo consiguieron? Pues siguiendo una serie de medidas muy simples y de mucho sentido común:

  • Desarrollo iterativo.

  • Despliegue de versiones cada poco tiempo.

  • Implementar sólo las funcionalidades que quieren los usuarios.

  • Reunirse frecuentemente con los usuarios y que sean ellos los que decidan como quieren que funcione el interfaz.

  • Evitar el desarrollo en cascada. No perder el tiempo con arquitecturas mastodónticas que tardan meses en materializarse.

  • No perder demasiado el tiempo en documentación. Es necesaria, pero al estar los usuarios tan metidos en el diseño del sistema, lo cierto es que todos ya sabían como se usaba la aplicación. Evitar documentar al principio.

  • Trabajo. No hace falta ser los mejores para que todo funcione. Normalmente con dedicación, empeño y disciplina todo se consigue.



Son unos cracks. La gran clave por la que los usuarios querían la aplicación artesanal y no la llamémosla industrial era sin duda la involucración de los usuarios. En realidad el equipo de mis amigos no eran tres personas, sino que eran ellos tres más los cientos de usuarios que participaron en su desarrollo. Usuarios que fueron construyendo ellos mismos la aplicación. Usuarios a los que se les tuvo muy en cuenta a la hora del desarrollo. Y a la hora de la verdad, los usuarios sienten esa aplicación como suya. Es algo en lo que han participado y que se ha desarrollado tal y como a ellos les es más útil para ahorrarse trabajo. Trabajando de esta manera, es muy difícil que los usuarios prefieran otro proyecto, lo desarrollen, 3, 30 o 300 personas.

No sé si soy yo pero para mi el cartel y la película de 300 me recuerda un montón a un departamento de desarrollo. Me imagino que otros departamentos pueden pensar lo mismo del suyo, pero el hecho de que somos un tipo de trabajadores que suele estar aislado, que sufre la ira de managers y usuarios :), y ahí estamos, resistiendo, intentando ser profesionales y hacer las cosas bien mientras los comerciales nos asedian con nuevos marrones y funcionalidades. No sé como lo veis vosotros, pero a mi se me asemeja la historia bastante. Eso sí, al final los espartanos siempre pierden. mmmm, da que pensar :)

Resumen de Agilismo.es en AdictosAlTrabajo

Mié, 12/30/2009 - 11:43
Que envidia la nota sobre el primer coding dojo organizado por agilismo.es en Madrid. En AdictosAlTrabajo publican una nota sobre como fue este evento. Destacan la edad de los participantes, parece que el preocuparse por tu código, por su calidad, por hacer bien lo que te gusta y en definitiva, por ser un buen profesional viene más a los treinta que a los veinte.

El video sirve para ponerle la cara a muchas de las personas que frecuentan Agile Spain. Y se nota que había muy buen rollo.

Podcast sobre test de aplicaciones

Vie, 12/11/2009 - 09:27
En javaHispano han publicado un podcast hace unos días donde participan Alfredo Casado, Julio César Pérez y Jose Luis Bugarín y que se lo recomendaría a todo el mundo ya que explica muy bien el por qué es tan importante hacer testing, sus beneficios y todo lo que no perdemos al no hacerlo. Al igual que comentaba yo mismo en mi charla en Alicante, de la que todavía tengo pendiente el escribir varios posts, estamos en un momento donde una persona que no haga tests no se puede considerar un buen profesional. Señores, quitémonos el chip de monos picateclas porque el desarrollo de software es mucho más, y el testing es sólo una de las habilidades que un desarrollador ha de tener. Muy buen podcast.



El podcast lo podéis escuchar aquí mismo o descargaros el MP3 original desde la página de javaHispano.

Transparencias III Jornadas Java de Alicante

Mié, 12/02/2009 - 09:45
Ayer estuve hablando en las III Jornadas de tecnología Java en Alicante donde estuve hablando de metodologías ágiles y de como aplicar algunos de sus principios en lenguaje Java.

Creo que la charla fue bien y bueno os dejo aquí las transparencias. Me reservaré unos cuantos posts para hablar de la parte de historietas de guerra que en las transparencias no queda muy claro lo que significa.

Desarrollo con Java y metodologías agilesView more documents from Jobsket.

Una pena no poder poneros el video pero a mitad de la charla se le acabó la pila al micrófono así que dejo de funcionar y no se oía nada por el streaming.

Estaré en la III Jornada de Tecnologías Java en la Universidad de Alicante

Mar, 11/17/2009 - 22:44

Dentro de dos semanitas, el 1 de Diciembre tendré el placer de participar en la III Jornada de Tecnologías Java en la Universidad de Alicante a las que muy amáblemente me invitó a participar Domingo Gallardo.

El título de la charla es "Desarrollo y pruebas de proyectos Java en un entorno ágil" y bueno hablaré un poco sobre lo que voy contando aquí en este blog. Meteré bastantes batallitas irlándesas que es donde más me he empapado de todo lo que implica el agilismo, pero sobre todo intentaré explicar lo que significa para mi el ser un profesional del software, que es lo que siempre he querido ser, y como conseguirlo aplicando técnicas ágiles.

La charla lleva la coletilla Java pero será simplemente para poner algunos ejemplos. El 95% por cien de la presentación se puede aplicar a cualquier lenguaje. Pues nada, que os animo a pasaros por allí.