03 September 2009

Evite las “buenas ideas”

Las buenas ideas matan los proyectos. A veces es una muerte rápida, pero frecuentemente es lenta y prolongada a causa de pérdida de entregas y un sin parar de errores en espiral.

Ya sabe a que clase de buenas ideas me refiero: Tentadoras, es pan comido, aparentemente inocentes, no-podría-quizás-intentar/probar esas pequeñas ideas. Eso le puede ocurrir a cualquiera en un equipo en la mitad del desarrollo de un proyecto cuando todo parece ir sobre ruedas. Las historias y las tareas se realizan a un buen ritmo, los primeros test van bien (pasan las pruebas), y las fechas de la planificación parecen sólidas. En fin, la vida es bella.

Alguien tiene una “buena idea”, y usted acepta o consiente, y de repente nos encontramos instalada la última versión de Hibernate para aprovechar las ventajas de sus últimas características, o implementando AJAX en algunas de las páginas web porque un desarrollador le mostró al usuario lo fantástico que es, o incluso revisando el diseño de la base de datos para utilizar las funcionalidades XML del gestor de la base de datos.
Luego acaba diciéndole al director del proyecto que necesita unas pocas semanas para implementar esa “buena idea”, pero que afectará a más código del que se esperaba, y que el calendario de entrega se retrasará.
Además, al permitir la primera “buena idea”, permitió al camello meter la nariz en su tienda, y pronto las buenas ideas seguirán viniendo hasta el punto que será difícil decir no (y el camello finalmente acabará durmiendo en su cama)

La insidiosa realidad a cerca de las “buenas ideas” es que son “buenas”. Todo el mundo puede reconocer y rechazar las “malas” ideas fuera de contexto – son las buenas las que se pueden colar y causar problemas con el alcance, la complejidad, y provocar verdaderos derroches de esfuerzo, al incorporar algo en la aplicación que no es necesario para realizar las necesidades del negocio.

Aquí hay algunas frases clave a identificar:
  • “No sería genial que …”. Cualquier frase con la palabra “genial” puede ser síntoma de peligro.
  • “Hey, se acaba de liberar la versión XXX del framework YYY. Debemos actualizarnos!”
  • “Sabes, podríamos ir reescribiendo (refactorizando) XXXX, mientras estamos trabajando en ZZZ …”
  • “La tecnología XXX es realmente potente!!! Podríamos usarla …”
  • “Hey, tuNombreAqui, estaba pensando en el diseño y tengo una idea!”

Bueno, bueno, puede ser que sea algo cínico en la última frase. Pero vigile las “buenas ideas”, ya que pueden hacer fracasar su proyecto.

Autor Greg Nyberg

Versión original en : Avoid "Good Ideas"




Como todo en la vida depende del contexto, el tipo de proyecto, la fase en la que se encuentra, ... entre otras. Las "buenas ideas" normalmente deberian salir en la fase de diseño, justo antes de empezar a implementar la solución. Pero deberíamos tener una batería de "buenas ideas" que sopesar, y elegir la más adecuada al contexto [estratégico|tecnológico|equipo|político] actual; y si puede ser posible aplicar pruebas de concepto sobre estas, no sea que luego nos escaldemos.

Pero creo que toda "buena idea" debería acercarse en lo posible a los principios de simplicidad y claridad.

Emmerson



Enlaces relacionados:
Principios de desarrollo software ("Equilibrio")

- FIN -

No comments: