martes, 27 de marzo de 2012

H.L. Mencken vs la navaja de Occam

Existe desde hace tiempo, y he podido verlo en blogs, artículos, y comentarios, el mito de la navaja de Occam.

La navaja de Occam (u Ockham, pues así también aparece escrito en diversas fuentes), permite identificar como correctas, las explicaciones más simples a una cuestión, en igualdad de condiciones.

Esto que se aplica a las explicaciones de la realidad, se ha tratado de llevar a las soluciones de los problemas de la realidad. Es decir, a tratar de identificar mediante esta sentencia, las soluciones más apropiadas a los problemas de nuestro trabajo.

El problema de la simplicidad, radica en que es muy fácil caer en el simplismo: en soluciones que parecen darnos la salida a un problema, cuando no es así. De hecho, el problema es que no es fácil determinar esa "igualdad de condiciones". Pero por otro lado, a pesar de esta visión simplista de la realidad, existe la idea de que hay que dar con las soluciones adecuadas, no con las simples. Vése por ejemplo, esta otra frase famosa de H.L. Mencken que yo personalmente alabo:

"For every complex problem, there is an answer that is short, simple, and ...wrong"
Que viene a ser:
"Para todo problema complejo, hay una respuesta que es corta, simple,...y errónea"
Es decir, siempre encontraremos quien trate de vendernos soluciones simples, y que mediante argumentos tan pueriles como la navaja de Occam, trate de vendérnoslas como definitivas.

Todo esto viene a colación de mi querido Steve McConnell, ya que estaba este fin de semana pasado releyendo por encima su "Rapid Development". Un libro que a pesar de contar en sus espaldas con unos cuantos añitos (es nada menos que de 1996), sigue siendo para sus afortunados lectores toda una referencia en ya casi dos décadas.

En uno de sus primeros capítulos, Steve ilustra la necesida de identificar soluciones adecuadas, ya que las soluciones simples, no han funcionado (y siguen sin funcionar, Steve). El dilema, es que el desarrollo de software es un problema complejo, y tal y como establece H.L.Mencken, vamos a encontrar múltiples, posibles y simples soluciones. Todas ellas erróneas en la práctica, pero que en teoría, venden. Y digo venden, porque parece que hay una plétora de personas esperando soluciones y metodologías simples, con la esperanza de que cada una resuelva el problema del desarrollo de software (y de paso explique porqué la anterior no lo hizo).

No hay comentarios:

Publicar un comentario