septiembre 28, 2006

Metodologías ágiles: malas, buenas,... y la de Google

Vía JoelOnSoftware llego a este interesantísimo, aunque larguísimo, post de Steve Yegge: " Good Agile, Bad Agile". En él hace un dura crítica a las metodologías ágiles como metodología de desarrollo de software. Lo curioso es que lo que comenta como ejemplo de una buena metodología de ágil es lo que nos cuenta de cómo trabajan en Google: (traducido "más o menos")

  • Existen "managers", pero la mayoría de ellos escriben código al enos la mitad de su tiempo, haciendoles más como "gurús-tecnológicos"
  • Los desarrolladores pueden cambiar de equipo o proyectos en cualquier momento que quieran, sin preguntas.
  • Google tiene la filosofía de no decir nunca a los desarrolladores en qué deben trabajar, y se lo toman muy en serio.
  • Los desarrolladores son fuertemente animados a gasta el 20% de su tiempo (de horario laboral) en trabajar en lo que ellos quieran, con tal que no sea en su proyecto principal.
  • No hay muchas reuniones. Quizás de media tres por semana, incluyendo una charla con su líder.
  • Hay tranquilidad. Los ingenieros están silenciosamente centrados en su trabajo, individualemtne o en pequeños grupos de 2 a 5 personas.
  • No existen diagramas de Gantt o hojas con tareas-personas-fechas ni otros artefactos de gestión de proyectos visibles, no que yo haya visto.
  • Incluso los relativamente raros periodos de estrés, la gente todavía va a comer y cenar, las cuales son gratuitas, y no se trabaja en horas intempestivas a menos que se quiera .
Vaya, Impresionante, no? Seguro que se te hace un poco raro trabajar en una empresa así. No parece una empresa típica-media de desarrollo de software, al menos de las que yo he pasado o conozco. En el artículo comenta que hay tres tipos de empresas que funcionan más o menos así: las "start-ups", las universitarias y Google. el mérito de Google es haber mantenido ese tipo de trabajo con su escala actual, con el tamaño que tiene, sin haberse burocratizado.
Pero de todas maneras ¿es esto una metodología ágil? más bien creo que esto son directivas de funcionamiento de la empresa, o su filosofía, pero de ahí a poder afirmar que estas técnicas son las buenas ágiles, y las de XP o Scrum las malas, me parece que va un abismo.
Hay que diferenciar claramente dónde y para quién se desarrolla el software. Según parece en Google !no tienen presiones con las fechas de lanzamiento! Vamos, la panacea. Parece que el interés de los desarrolladores en crear algo ya es suficiente. Cuando el proyecto está terminado, se lanza. ¿Dónde hay que firmar?... Pero bueno, en el mundo real, los clientes presionan, los de márketing anuncian un producto mucho antes de su finalización, los directores cuentan ya con sus ingresos... o sea, que las fechas existen, y sobre todo, un día llegan.
Y ahí es precisamente donde creo que las metodologías ágiles ayudan con sus ciclos cortos de desarrollo (entre otras cosas) para poder acercarse las fechas objetivo con productos cada vez más cercanos a las peticiones reales de los clientes.
Sin duda un gran artículo que os recomiendo leer sobre el funcionamiento interno de Google. Un funcionamiento que dificilmente puede ser extrapolado a otro tipo de empresas de software, pero del que se podrán aprender muchas cosas. Otra cosa es que como crítica a las metodologías ágiles ande un poco desencaminado, pues compara metodologías muy pragmáticas, con filosofías de empresa, que para nada son incompatibles, simplemente son niveles distintos en muchos aspectos.
Eso sí, un día Google dominará el mundo :D aunque sea únicamente por que tendrá los mejores desarrolladores de software. Bueno, menos a mi, que me pilla un poco lejos.

4 comentarios:

  1. Tenía un jefe que es un artista en eso. En otra empresa había mucho ruido sobre los proyectos. El se encargaba que nos llegase lo menos posible y que nos pudiesemos centrar en el trabajo.
    Tanto como que los desarrolladores no conozcan la fecha final me parece un poco utópico, y tampoco creo que sea malo, si todos caminan hacia el mismo lado, y cada uno sabe estar en su papel: desarrolladores, jefes de proyecto y gerentes, directores,...

    ResponderEliminar
  2. Yo creo que el secreto se llama PASTA.
    Cuando tus stocks suben como la espuma y tienes tiempo libre para hacer tus cosas, todo el mundo está contento en la empresa.
    Cuando las acciones toquen techo, empezará el mal rollito burocrático en Google.

    ResponderEliminar
  3. Pues es muy posible, Sergio. Pero también es verdad que han llegado donde estás ahora con ese sistema... o espera... ¿ha sido solo con un buscador y un sistema de publicidad? :)

    ResponderEliminar
  4. Anónimo6/1/07 21:44

    Google, ya era Google antes de que se fraguase toda esa política happy happy de recursos humanos.
    Mi argumento es que la política actual de laissez-faire es el efecto y no la causa del éxito de Google.
    Lo que sí me parece muy inteligente es dar libertad a los programadores, para luego quedarte con el fruto de su trabajo.
    Hay una razón obvia para dar a los programadores un 20% de tiempo para sus propios proyectos y es que el tiempo que dediquen a dichos proyectos quedará siempre en poder de Google.
    Buena práctica para impedir por la vía legal que los empleados se declaren república independiente y te roben el negocio.
    Recordemos que la peor amenazada para el dpto. de rr.hh. no son los dptos. de rr.hh. de las otras empresas, sino los trabajadores más aptos que deciden irse a montárselo por su cuenta.

    ResponderEliminar