diciembre 29, 2008

Cuatro años y feliz año nuevo

No todos estos últimos años he celebrado el cumple de este blog. Pero este año es (debe de ser) diferente.
Hace cuatro años ya que empecé a escribir: 200 posts, aunque no es mucho, este es un blog modesto :) . Empecé hablando de software libre, para dar a conocer mi tesina sobre ello. Después pasé a temas más de programación y que leía por otros blogs, pasando por temporadas de muy pocas publicaciones, y últimamente hablo especialmente de gestión de proyectos: me ha invadido el "gusanillo ágil". El año que viene espero seguir con un ritmo un poco constante de publicaciones, ahondando en este tema del desarrollo de software. Quizás entre todos podamos encontrar la nueva síntesis surgida de las metodologías ágiles y formales.
Así que aprovecho para felicitaros el nuevo año a todos, y desearos que descubrais el mejor camino a seguir!!

diciembre 15, 2008

Retrospectiva anual

Dos libros me tienen enganchado últimamente: "Software for your Head", y "Agile Retrospectives: Making good Teams Great". Y con estos, he preparado una retrospectiva anual, basándome en algunos conceptos y actividades interesantes que plantean.
Ya decía anteriormente que un concepto muy importante de las metodologías ágiles es la comunicación de banda-ancha entre los miembros del equipo. Sin duda, "Software for your Head" es uno de los libros que más te puede aportar en ese sentido.
Las retrospectivas en las metodologías ágiles son una práctica muy útil para la mejora continua de los procesos de desarrollo, del equipo, de las metodologías. Así que ahora que vamos introduciendo poco a poco metodologías ágiles en el desarrollo, se me ocurrio hacer una retrospectiva no ligada a una iteración o un proyecto, si no al año que termina. Una retrospectiva anual para establecer objetivos de mejora por el equipo para el año siguiente.
Y por si a alguien le interesa, estos pueden ser unos buenos pasos para hacerse la suya en casa (al menos creo que a nosotros nos han sido útiles), basados en el libro de Derby.

  1. Set Stage:
    Actividad 1
    : Check-in. Los participantes comentan su estado de ánimo.

    Introducción a la retrospectiva: Objetivos: Aprender y mejorar.
    Actividad 2: ECRP (Decide your role in this retro: Explorador/Consumidor/Relajado/Prisionero)

  2. Gather Data:
    Actividad 3
    : Timeline. Se desglosan por equipos los eventos/hechos ocurridos el año 2008 en el equipo, pintándolos sobre una linea temporal.

  3. Generate Insights:
    Actividad 4: Brainstorming. Desglose de cosas que podemos mejorar. En resumen, y sin orden de importancia, todo lo que salga.

  4. Decide What To Do:
    Actividad 5
    : Definir objetivos SMART. Decidir qué hacer. Objetivos para el 2009 de todo el equipo, como equipo.

  5. Close:
    Actividad 6
    : +/Delta. Retrospectiva de la retrospectiva. ¿les ha gustado?
Esto es simplemente un esquema, los libros están realmente detallados. Se podrían hablar de muchas cosas de cada punto o actividad, pero me gustaría que me contaseis si haceis vosotros este tipo de cosas en vuestras empresas, o si creeis que sería interesante. ¿Haceis retrospectivas a todos lo niveles?

Actualización (30/12/2008): Acabo de descubrir que han hecho un pequeño resumen del libro sobre Retrospectivas en castellano. Utilísimo como referencia una vez que te has leido el libro! Gracias Juan por tu trabajo!

diciembre 07, 2008

El declive y caida de lo ágil

Un reflexión de tic-tac (sobre una frase: "El hombre que actúa con métodos, ignorando los principios, es seguro que tendrá problemas.") me hace pensar en la carga de profundidad que tiene este otro artículo de James Shore: The Decline and Fall of Agile.
Habla sobre los problemas que está dando la proliferación de implantaciones que se están haciendo del método Scrum, pero haciendolo sin preocuparse de los principios que lo sustentan.

"These teams say they're Agile, but they're just planning (and replanning) frequently.. ""Agile is hard, and you can't master it by sitting through a two-day course."
Ciertamente hay una serie de cuestiones que escapan al "método Scrum", que deben ser parte fundamental de una metodología ágil. En el mismo artículo comenta algunas:
  • shared workspaces: La comunicación en espacios compartidos fluye mejor, es más fácil compartir una visión y el trabajo.

  • high-bandwidth communication: El equipo debe mantener en todo momento un canal de comunicación de alta capacidad. No hay excusas para guardarse información, no preguntar, o no compartir.

  • on-site customers: Es muy importante la disponbilidad del cliente cuando sabemos que los requerimientos van a evolucionar, y el equipo necesita aclaraciones en cualquier momento.

  • work in cross-functional teams: Los equipos multidisciplinares deben estar intrgrados en la solución del proyecto, deben ser un equipo al completo, no una serie de grupos de personas que resuelven cada uno su papel. Así se pierde enseguida la visión compartida.

  • let alone deliver releasable software: El avance de los proyectos se mide por producto terminado.

  • use good engineering practices: El concepto de deuda técnica aclara muy bien este punto. Si te hipotecas tecnicamente, el futuro del software no será sostenible.

Pero, ¿realmente son necesarias todas estas prácticas anteriores para ser ágil? Pues... ¡quizás no! Hay que conocer los principios, y aplicarlos para cada problema, que necesita una respuesta adaptada. En un comentario del grupo de Yahoo de lean-agile-scrum, la genial Mary Poppendieck lo dice en una respuesta muy interesante:
It sounds to me like you are taking the Scrum recipe much too seriously. If you want to be successful, you have to spend some time thinking creatively about what will work in your world. Lifting recipes from others and expecting them to work in your environment doesn't have a good track record of success.
Creo que por aquí estamos bastante lejos de pensar en el declive de Scrum, cuando no me parece que esté demasiado implantado por estas tierras. Pero si podemos llegar a la lección antes de qué nos peguemos con los problemas, eso que habremos ganado.