Ha llegado la hora de profundizar un poquito más en la pequeña historia de Frogtek.

Cuando a finales de 2008 se empezó el desarrollo de un primer prototipo la situación era la siguiente. Un CEO que vivía en Nueva York, que quería crear una herramienta en un teléfono móvil para ayudar a los tenderos de países emergentes (México, Colombia) a llevar la contabilidad y un par de programadores en Huesca y Zaragoza (España) que en sus ratos libres aprendían a programar para Android. Interesante panorama, y no porque CEO y programadores estuvieran deslocalizados o Android fuera una plataforma en pañales, ni nada por el estilo... si no porque la probabilidad de que el bueno de David diseñara algo remotamente útil para un comerciante de Bogotá y lo especificara sin ambigüedad para su desarrollo en España era exactamente igual a cero. Sin embargo, se intentó. Ahí va una de waterfall...

Imagen 1(2)

Waterfall (o cascada) es la metodología clásica industrial que define distintas fases secuenciales a la hora de implementar un producto. Simplificándolo mucho sería algo así como:

  1. Planificación y análisis
  2. Diseño
  3. Implementación
  4. Test

Qué fácil ¿no?. Pues no. ¿Y por qué no?. Pues como diría nuestro amigo Medinilla:

"porque el software no es un tornillo".

Parece una afirmación de perogrullo y doy fe de que esgrimida delante de cualquier grupo de estudiantes de ingeniería provoca una media sonrisa que bien puede venir a querer decir "cada día traen a tipos más raros a dar charlas" o "eso lo he entendido", una de dos. Para los más curiosos: el software no es un tornillo porque, y que no se me enfade ningún ferretero (seguro que el mundo de los tornillos es también complejo y está lleno de magia y pasión), los tornillos son "fáciles". Cuando uno dice "tornillo" todo el mundo piensa en algo más o menos parecido y si además le añades las palabras "cabeza plana", "4 mm de sección", "paso de rosca de 1 mm", "dextrógiro", "de latón"... seríamos incluso capaces de construir tornillos idénticos de forma totalmente independiente (el que sepa como diablos se hace un tornillo, claro, que no es mi caso). Lo curioso es que, si bien todos parecemos estar más o menos de acuerdo en que "el software no es un tornillo", intentemos aplicar el mismo método de fabricación para un tornillo que para... pongamos... ¿Facebook?.  ;)

Imagen 2(2)

Pero volvamos al caso de Frogtek. Nuestro intento de crear un documento de requisitos para TiendaTek (nuestra caja registradora inteligente para teléfonos móviles) vía Waterfall-Cowboy (¡gracias por la corrección Pablo!) reunía todos los ingredientes para un fracaso sin paliativos...

  1. Sistema complejo de describir, ¿alguien ha intentado describir en un word y sin ambigüedad ninguna Facebook?, pues una caja registradora no es mucho más fácil.
  2. Producto final desconocido, como toda start-up que se precie de serlo una cosa es la idea original y otra lo que alguien acabe comprándote.
  3. Cliente remoto, ya no es que cambie de idea, es que ni siquiera es único, son millones, en países exóticos y lejanos y con prácticas y problemas que ni aquí, ni en Estados Unidos podemos entender.

... así que el análisis en cuestión no pasó de la versión 0.9. Enseguida, cansados de actualizar un documento infumable que siempre estaba obsoleto decidimos (o más bien David "el devora blogs" decidió) que tenía que haber una manera mejor de hacer las cosas. Una manera que no se basara en intentar adivinar qué necesita un cliente que desconoces, y que no planificara el trabajo de varios meses en base a dicha esotérica "adivinación" (interesante temática para un post, por cierto). Se trataba principalmente de no trabajar en balde... nos gusta programar, pero no tanto.

To be continued...