Ley de Linus Imprimir
Escrito por Administrator   
Miércoles, 12 de Mayo de 2010 13:04

La Ley de Linus establece que "dado un número suficientemente elevado de ojos, todos los errores se convierten en obvios". A esta frase de Linus Torvalds, Eric S. Raymond lo bautizó como la Ley de Linus.

Todo problema deberá ser transparente para alguien. Las personas que entienden y las que resuelven un problema no deben ser necesariamente las mismas, ni siquiera en la mayoría de los casos. Linus Torvalds dice que "alguien encuentra el problema y otro lo resuelve". Pero el punto está en que ambas cosas suelen suceder muy rápidamente.

Eric S. Raymond establece que si la Ley de Linus fuera falsa, entonces cualquier sistema suficientemente complejo como el kernel de Linux, que está siendo manipulado por tantos, debería haber colapsado bajo el peso de interacciones imprevistas y errores "muy profundos" inadvertidos. Pero si es cierta, bastaría para explicar la relativa ausencia de errores en el código de Linux, y para demostrar la superioridad, en cuanto a la calidad del producto final, del modelo de desarrollo de software libre, sobre el modelo tradicional usado para desarrollar software propietario.[1]

Aquí, hay una diferencia esencial entre los dos estilos. En el enfoque usado para desarrollar software propietario, los errores y problemas de desarrollo son fenómenos complejos y profundos. Generalmente toma meses de revisión exhaustiva para que unos cuantos confíen en que los errores han sido eliminados. Por eso se dan los intervalos tan largos entre cada versión que se libera, y la inevitable desmoralización cuando estas versiones, largamente esperadas, no resultan perfectas.[1]

En el enfoque usado para desarrollar software libre, se asume que los errores son fenómenos relativamente evidentes, o por lo menos que pueden volverse relativamente evidentes cuando se exhiben a miles de entusiastas desarrolladores que colaboran sobre cada una de las versiones. Por lo tanto, se libera con frecuencia para poder obtener una mayor cantidad de correcciones en menos tiempo.[1]

Una mayor cantidad de usuarios detecta más errores debido a que tienen diferentes maneras de evaluar el programa. Este efecto se incrementa cuando los usuarios son desarrolladores asistentes. Cada uno enfoca la tarea de la caracterización de los errores con instrumentos analíticos distintos, desde un ángulo diferente.[1]

Por lo tanto, el agregar más beta-testers podría no contribuir a reducir la complejidad del "más profundo" de los errores actuales desde el punto de vista del desarrollador, sino que aumenta la probabilidad de que alguno de ellos vea claramente el error y pueda solucionarlo.[1