lunes, 29 de febrero de 2016

¿Y si los bugs del software tuvieran sentido?

Siempre me ha llamado la atención el fenómeno de los 'bugs' en el software, el hecho de que un producto terminado y comercializado tenga fallos. Lo raro no es sólo el que tenga fallos y que el fenómeno sea relativamente frecuente. Lo más llamativo es que los usuarios parecemos habernos acostumbrado y admitirlo

¿Cómo explicarlo?

Creo que dos factores explican la presencia de los bugs en el software:

  • Por un lado, la complejidad intrínseca del software. Una complejidad que no sólo viene dada, que también, por la gran cantidad de componentes que lo integran, sino por su propia esencia, la programabilidad, el hecho de que la misma pieza de software pueda hacer cosas diferentes según las entradas que reciba.

  • Por otro, que es una industria que, a pesar de los años que ya la contemplan, no ha conseguido disponer de una metodología productiva ni lejanamente comparable en madurez a la de la fabricación de productos más tradicionales.

El que los usuarios y clientes se acostumbren, creo que tiene más que ver con la frecuencia con que se producen los fallos. La frecuencia hace que sea un fenómeno habitual y, por tanto, al que nos acostumbramos. Quizá no sea del todo racional, pero sí es muy práctico. Los clientes / usuarios se acostumbran a los fallos y están dispuestos a sufrirlos a cambio del beneficio que obtienen.



La lectura del libro 'Exponential Organizations' de Salim Ismail et al. me ha sugerido, sin embargo, una interpretación diferente, algo más positiva...aunque creo que falsa al fin y a la postre.

En el libro se habla de empresas con un fuerte peso de información y se apuesta, además, por el método Lean Startup, un método que pone énfasis en la pronta puesta en el mercado de soluciones, lo que denomina el Producto Mínimo Viable, como una forma de conseguir los primeros beneficios y, sobre todo, de obtener feedback sobre lo que los clientes y el mercado realmente desean y cómo reciben nuestros productos y nuestra propuesta de valor.

En efecto, se trata de experimentar en el mercado, y experimentar rápido.

Y cuando los autores de 'Exponential Organizations' comparan las empresas basadas en información con las que están basadas en productos físicos nos dicen:

the ability to fail is much easier in software and information-based environmentss because iteration is so much easier.

Según esto, podríamos pensar que el software por ser más maleable y adaptable que lo físico, nos permite asumir mayores riesgos en forma de fallos. 

¿Podría ser eso una explicación para el fenómeno de los 'bugs'¿ Podría resultar, al final, que es una buena opción correr el riesgo de sacar al mercado un producto con errores si ello nos permite experimentar con la respuesta de los clientes?

Pues creo que si, y no... más cerca del no...

Ciclo Lean Startup y Producto Mínimo Viable
En realidad, lo que propone Lean Startup, lo que se adopta en 'Exponential Organizations', no es el fallar en el sentido de hacer un producto defectuoso. Lo que propone Lean Startup es arriesgarse a que el producto sea inadecuado para el mercado, que no hayamos acertado con la necesidad de los clientes o la demanda del mercado. Pero inadecuación para el mercado no significa defectos de funcionamiento. En realidad, se trata de cosas diferentes.

Sin embargo, y por vía indirecta, podría existir una relación.

Si tomamos como una buena estrategia el sacar rápido productos al mercado para ver su funcionamiento comercial, acortaremos ciclos de desarrollo. En el caso del software eso puede, seguramente, suponer acortar los ciclos de pruebas...y eso convierte al software en más vulnerable a los fallos, a los temidos 'bugs' y a que éstos pasen inadvertidos hasta que el software está ya en manos de los clientes.

¿Tienen sentido, pues, los 'bugs'? 

En el fondo, no, por supuesto que no. Sin embargo, pueden ser la consecuencia indeseable, pero hasta cierto punto tolerable, de una apuesta por la rápida innovación y de la dura competencia...