Ley de Linus

afirmación sobre el desarrollo de software que, dada una gran base de desarrolladores, los errores se corregirán rápidamente

Existen dos afirmaciones que se han denominado ley de Linus, en referencia a declaraciones realizadas por Linus Torvalds, ingeniero de software finlandés, creador del núcleo Linux. La primera de ellas hace referencia a la capacidad de encontrar errores al abrir un programa a la comunidad, y la segunda a la motivación para el desarrollo de código libre.

Ley para encontrar errores

editar

La afirmación de Linus Torvalds que dice:

«Dado un número suficientemente elevado de ojos, todos los errores se vuelven obvios».

Fue bautizada por Eric S. Raymond 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 parte de los casos. Según Linus Torvalds: «Alguien encuentra el problema y otro lo resuelve». Pero el punto está en que ambas cosas suelen suceder muy rápidamente.

La ley de Linus según Eric S. Raymond

editar

Eric S. Raymond afirma que, si la ley de Linus fuese falsa, entonces cualquier sistema suficientemente complejo como el núcleo Linux, que está siendo manipulado por tantos, debería haber colapsado bajo el peso de interacciones imprevistas y errores «muy profundos» inadvertidos. Sin embargo, si es cierta, entonces 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]

He aquí 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 hacen falta 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 el inevitable desencanto 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 muestran 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 detectan 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 contribuir no tanto a reducir la complejidad del «más profundo» de los errores actuales desde el punto de vista del desarrollador, sino más bien a aumentar la probabilidad de que alguno de ellos vea claramente el error y pueda solucionarlo.[1]

Críticas

editar

Algunos estudios han analizado y criticado la ley de Linus. Los expertos en desarrollo de software Robert Glass, Michael Howard y David LeBlanc han determinado que la aplicación de la ley de Linus puede generar problemas en el mantenimiento y la seguridad del software,[2][3]​ para lo cual citan el número relativamente bajo de contribuciones hechas a los proyectos open-source por parte de «externos»: donde se entiende por «externos» a los contribuyentes que no pertenecen al pequeño núcleo de desarrolladores que trabajan en el proyecto.

Esto es el resultado directo de la atención necesaria que los desarrolladores deben tener al construir un entorno y comprender una porción de código antes de poder contribuir efectivamente en él. Algunos proyectos tienden a desconfiar de las contribuciones externas, con el temor de que traten de generar errores de código difíciles de encontrar o huecos de seguridad y, por lo tanto, esos proyectos crean un inconveniente proceso de revisión que puede desalentar el desarrollo externo.

La ley de Linus sobre motivaciones

editar

Linus Torvalds también habla sobre la ley de Linus en el prólogo del libro La ética del hacker. La ley de Linus dice:

Todas nuestras motivaciones caen en tres categorías básicas. Y lo que es aún más importante, el progreso consiste en ir pasando de una categoría a otra, como «fases» de un proceso de evolución. Las categorías, en orden, son: «supervivencia», «vida social» y «entretenimiento».[4]

Esta idea es similar a la pirámide de necesidades, que desarrolló el psicólogo humanista estadounidense Abraham Maslow.

Véase también

editar

Referencias

editar
  1. a b c d e Raymond, Eric S. «La catedral y el bazar» (pdf). Smaldone (Argentina). p. 4. Archivado desde el original el 19 de junio de 2004. Consultado el 22 de abril de 2020. 
  2. Glass, Robert L. Facts and Fallacies of Software Engineering. ISBN 0-321-11742-5
  3. Howard, Michael and LeBlanc, David. Writing Secure Code, Second Edition. ISBN 0-7356-1722-8
  4. Pekka Himanen; Linus Torvalds, Manuel Castells (2001-01-30). The Hacker Ethic. Random House. ISBN 0-375-50566-0

Enlaces externos

editar