La ley de Linus
En el desarrollo de software, la ley de Linus es la afirmación de que "dados suficientes ojos, todos los errores son superficiales".
La ley fue formulada por Eric S. Raymond en su ensayo y libro La catedral y el bazar (1999), y recibió su nombre en honor a Linus Torvalds.
Una declaración más formal es: "Dada una base suficientemente grande de desarrolladores beta y desarrolladores, casi todos los problemas se caracterizarán rápidamente y la solución será obvia para cualquiera." Presentar el código a múltiples desarrolladores con el fin de llegar a un consenso sobre su aceptación es una forma simple de revisión de software. Los investigadores y profesionales han demostrado repetidamente la eficacia de los procesos de revisión para encontrar errores y problemas de seguridad.
Validez
En Hechos y falacias sobre la ingeniería de software, Robert Glass se refiere a la ley como un "mantra" del movimiento de código abierto, pero lo llama una falacia debido a la falta de evidencia de apoyo y porque la investigación ha indicado que la tasa a la que se descubren errores adicionales no escala linealmente con el número de revisores; más bien, hay un pequeño número máximo de revisores útiles, entre dos y cuatro, y los revisores adicionales por encima de este número descubren errores a un ritmo mucho menor. Mientras que los practicantes de código cerrado también promueven un análisis de código riguroso e independiente durante el desarrollo de un proyecto de software, se enfocan en una revisión profunda por parte de unos pocos y no principalmente en el número de 'ojos'.
La persistencia del error de seguridad Heartbleed en una parte crítica del código durante dos años se ha considerado una refutación de la máxima de Raymond. Larry Seltzer sospecha que la disponibilidad del código fuente puede hacer que algunos desarrolladores e investigadores realicen pruebas menos exhaustivas que las que harían con el software de código cerrado, lo que facilita la permanencia de errores. En 2015, el director ejecutivo de la Fundación Linux, Jim Zemlin, argumentó que la complejidad del software moderno ha aumentado a niveles tales que es deseable la asignación de recursos específicos para mejorar su seguridad. Con respecto a algunas de las vulnerabilidades de software de código abierto más grandes del mundo en 2014, dice: "En estos casos, los globos oculares no estaban realmente mirando". No se han realizado experimentos a gran escala o encuestas revisadas por pares para probar qué tan bien se mantiene el mantra en la práctica.
El apoyo empírico de la validez de la ley de Linus se obtuvo comparando proyectos populares e impopulares de la misma organización. Los proyectos populares son proyectos con el 5% superior de estrellas de GitHub (7481 estrellas o más). La identificación de errores se midió utilizando la probabilidad de confirmación correctiva, la proporción de confirmaciones que se determinó que estaban relacionadas con la corrección de errores. El análisis mostró que los proyectos populares tenían una mayor proporción de correcciones de errores (por ejemplo, los proyectos populares de Google tenían una tasa de corrección de errores un 27 % más alta que los proyectos menos populares de Google). Dado que es poco probable que Google haya reducido sus estándares de calidad de código en proyectos más populares, esto es una indicación de una mayor eficiencia de detección de errores en proyectos populares.
Contenido relacionado
Detección automática de velocidad en baudios
ESPACIO DE EXPERIENCIA
Datos Generales Nova