La catedral y el bazar
La catedral y el bazar: reflexiones sobre Linux y código abierto de un revolucionario accidental (abreviado CatB) es un ensayo, y más tarde un libro, de Eric S. Raymond sobre métodos de ingeniería de software, basado en sus observaciones del proceso de desarrollo del kernel de Linux y sus experiencias en la gestión de un proyecto de código abierto, fetchmail. Examina la lucha entre el diseño de arriba hacia abajo y de abajo hacia arriba. El ensayo fue presentado por primera vez por el autor en Linux Kongress el 27 de mayo de 1997 en Würzburg (Alemania) y fue publicado como el segundo capítulo del libro del mismo título en 1999.
La ilustración de la portada del libro es una pintura de 1913 de Liubov Popova titulada Composición con figuras y pertenece a la colección de la Galería Estatal Tretyakov. El libro fue lanzado bajo la Licencia de Publicación Abierta v2.0 en 1999.
"La Catedral y el Bazar"
El ensayo contrasta dos modelos diferentes de desarrollo de software libre:
- El Catedral modelo, en el que el código fuente está disponible con cada lanzamiento de software, pero el código desarrollado entre versiones se limita a un grupo exclusivo de desarrolladores de software. GNU Emacs y GCC fueron presentados como ejemplos.
- El Bazaar modelo, en el que se desarrolla el código a través de Internet en vista del público. Raymond acredita a Linus Torvalds, líder del proyecto Linux kernel, como inventor de este proceso. Raymond también proporciona cuentas anécdotas de su propia implementación de este modelo para el proyecto Fetchmail.
La tesis central del ensayo es la proposición de Raymond de que "con suficientes ojos, todos los errores son superficiales" (que él llama la ley de Linus): cuanto más disponible esté el código fuente para las pruebas, el escrutinio y la experimentación públicos, más rápidamente se descubrirán todas las formas de errores. Por el contrario, Raymond afirma que se debe gastar una cantidad excesiva de tiempo y energía buscando errores en el modelo de la Catedral, ya que la versión funcional del código está disponible solo para unos pocos desarrolladores.
Lecciones para crear un buen software de código abierto
Raymond señala 19 "lecciones" aprendido de varios esfuerzos de desarrollo de software, cada uno de los cuales describe atributos asociados con buenas prácticas en el desarrollo de software de código abierto:
- Cada buen trabajo del software comienza arañar la picazón personal de un desarrollador.
- Los buenos programadores saben qué escribir. Los grandes saben qué reescribir (y reutilizar).
- Planea tirar una [versión] lejos; lo harás, de cualquier manera (copiada de Frederick Brooks's El Hombre-Mes Místico).
- Si tienes la actitud correcta, te encontrarán problemas interesantes.
- Cuando pierdes interés en un programa, tu último deber es entregarlo a un sucesor competente.
- Tratar a sus usuarios como co-desarrolladores es su ruta menos difícil para mejorar rápidamente el código y depurar eficazmente.
- Libera pronto. Suelta a menudo. Y escucha a tus clientes.
- Dada una base beta-tester y co-desarrollador lo suficientemente grande, casi todos los problemas se caracterizan rápidamente y la solución obvia para alguien.
- Las estructuras inteligentes de datos y el código tonto funcionan mucho mejor que el otro lado.
- Si usted trata a sus beta-testers como si fueran su recurso más valioso, responderán convirtiéndose en su recurso más valioso.
- Lo siguiente mejor para tener buenas ideas es reconocer buenas ideas de tus usuarios. A veces este último es mejor.
- A menudo, las soluciones más llamativas e innovadoras provienen de darse cuenta de que su concepto del problema estaba equivocado.
- La perfección (en diseño) se logra no cuando no hay nada más que añadir, sino cuando no hay nada más que quitar. (Atribuido a Antoine de Saint-Exupéry)
- Cualquier herramienta debe ser útil de la manera esperada, pero una herramienta realmente grande se presta a los usos que nunca se esperaba.
- Al escribir software de gateway de cualquier tipo, tome dolores para perturbar el flujo de datos lo más poco posible, y nunca tire información a menos que el destinatario lo obligue a!
- Cuando su idioma no está cerca de Turing-complete, el azúcar sintáctica puede ser su amigo.
- Un sistema de seguridad es tan seguro como su secreto. Cuidado con los pseudo-secretos.
- Para resolver un problema interesante, empezar por encontrar un problema que es interesante para usted.
- Siempre que el coordinador del desarrollo tenga un medio de comunicación por lo menos tan bueno como Internet, y sepa conducir sin coacción, muchos jefes son inevitablemente mejores que uno.
Legado y recepción
En 1998, el ensayo ayudó al impulso final de Netscape Communications Corporation para lanzar el código fuente de Netscape Communicator y comenzar el proyecto Mozilla; fue citado por Frank Hecker y otros empleados como una validación independiente externa de sus argumentos. El reconocimiento público de Netscape de esta influencia le dio a Raymond fama en la cultura hacker.
Cuando O'Reilly Media publicó el libro en 1999, se convirtió en uno de los libros completos distribuidos comercialmente, si no el primero, publicado bajo la Licencia de Publicación Abierta.
Marshall Poe, en su ensayo "The Hive", compara Wikipedia con el modelo Bazaar que define Raymond. El propio Jimmy Wales se inspiró en el trabajo (así como en los argumentos presentados en trabajos anteriores a Internet, como el artículo de Friedrich Hayek "El uso del conocimiento en la sociedad"), argumentando que " "Me abrió los ojos a la posibilidad de una colaboración masiva".
En 1999, Nikolai Bezroukov publicó dos ensayos críticos sobre las opiniones de Eric Raymond sobre el software de código abierto, el segundo titulado "Una segunda mirada a La catedral y el bazar&#. 34;. Produjeron una respuesta aguda de Eric Raymond.