2014/05/05

El 80-20 en programación

Esta la observación de que el 80% de los problemas se debe a un 20% de las causas. Sin embargo, ocurre que con frecuencia la gente usa casi todo su tiempo en atender ese 20% que, en el mejor de los casos, dejará el 80% de los problemas sin resolver.

Lo hacemos. Y hasta nos sentimos orgullosos por el esfuerzo.... pero estamos apuntando al porcentaje equivocado.

Quizás lo hacemos por la misma razón que el hombre que busca su anillo bajo la luz del farol en lugar de en la esquina donde se le perdió... dice que porque aquí hay más luz.

Es muy difundido en la comunidad de programadores el hábito de procurar escribir código con el menor número de líneas, realizar el algoritmo más eficiente o la solución más elegante. Largas discusiones se arman en la búsqueda del mejor framework o incluso el mejor lenguaje de programación.

Y disfrutamos de los placeres que nos da lograr esas cosas.

Pero que nos de placer o nos haga sentir poderosos no significa necesariamente que estemos resolviendo algo.

En realidad, no importa si el código no es el más eficiente, ni si tu lenguaje de programación no es el más elegante. Lo que importa al final es los problemas que llegas a resolver con él.

Los programadores puristas sufren viendo como prosperan lenguajes feos como PHP y Javascript. Niegan con la cabeza. O se burlan. O los odian.

Quizás tengan que ver más allá y tratar de comprender la razón por la cual prosperan. No es una cuestión de lenguaje, sino de utilidad.

De modo parecido a como el valor de un bien no es cuánto te cuesta hacerlo, sino lo que el comprador está dispuesto a pagar por él (la razón de la oferta y la demanda), el valor de un programa no esta determinado por cuán pequeño has logrado tu código o que tan eficiente es tu solución... incluso en los casos que parece que así es, el verdadero valor es lo que le permite hacer al usuario.

Por ejemplo, PHP y Javascript empezaron como lenguajes de juguete. Algo que permitiera llenar fácilmente el vacío de un lenguaje de programación en un servidor web, o en un navegador. A pesar de todas las críticas técnicas que se les puedan hacer, el hecho es que ambos son de lo más útil. Democratizaron el desarrollo web y lo siguen haciendo.

El anillo que los programadores buscamos no está bajo el farol del código mínimo o más eficiente, o el purismo académico. Está en la desconocida esquina del uso que la gente le da, ahora.

Quizás debamos invertir más nuestro tiempo en apuntar a ese 80%.