“La Catedral y el Bazar” y sus lecciones
La Catedral y el Bazar es un ensayo escrito por Eric Raymond, uno de los líderes del movimiento del Código abierto y una figura algo controvertida, en el que comenta sus experiencias como líder de un proyecto de código abierto, fetchmail, y es comparado su desarrollo con el de Linux (el bazar) y el del Software propietario o libre pero con un modelo de desarrollo algo cerrado (la catedral).
Si quieren pueden descargarlo desde acá: La Catedral y el Bazar (PDF)
También pueden verlo online (ponerlo a pantalla completa mediante el ícono de la parte inferior izquierda del visor para poder leerlo correctamente):
Una de las cosas interesantes que tiene el ensayo, son las lecciones que aprendió Eric Raymond durante su experiencia como líder de fetchmail y que las resalta en texto. Las mismas son:
- Todo buen trabajo de software comienza a partir de las necesidades personales del programador. (Todo buen trabajo empieza cuando uno tiene que rascarse su propia comezón)
- Los buenos programadores saben qué escribir. Los mejores, qué reescribir (y reutilizar).
- “Considere desecharlo; de todos modos tendrá que hacerlo.” (Fred Brooks, The Mythical Man-Month, Capítulo 11)
- Si tienes la actitud adecuada, encontrarás problemas interesantes.
- Cuando se pierde el interés en un programa, el último deber es heredarlo a un sucesor competente.
- Tratar a los usuarios como colaboradores es la forma más apropiada de mejorar el código, y la más efectiva de depurarlo.
- Libere rápido y a menudo, y escuche a sus clientes.
- Dada una base suficiente de desarrolladores asistentes y beta-testers, casi cualquier problema puede ser caracterizado rápidamente, y su solución ser obvia al menos para alguien. O, dicho de manera menos formal, “con muchas miradas, todos los errores saltarán a la vista”. A esto lo he bautizado como la Ley de Linus.
- Las estructuras de datos inteligentes y el código burdo funcionan mucho mejor que en el caso inverso.
- Si usted trata a sus analistas (beta-testers) como si fueran su recurso más valioso, ellos le responderán convirtiéndose en su recurso más valioso.
- Lo mejor después de tener buenas ideas es reconocer las buenas ideas de sus usuarios. Esto último es a veces lo mejor.
- Frecuentemente, las soluciones más innovadoras y espectaculares provienen de comprender que la concepción del problema era errónea.
- “La perfección (en diseño) se alcanza no cuando ya no hay nada que agregar, sino cuando ya no hay nada que quitar.”
- Toda herramienta es útil empleándose de la forma prevista, pero una *gran* herramienta es la que se presta a ser utilizada de la manera menos esperada.
- Cuándo se escribe software para una puerta de enlace de cualquier tipo, hay que tomar la precaución de alterar el flujo de datos lo menos posible, y ¡*nunca* eliminar información a menos que los receptores obliguen a hacerlo!
- Cuando su lenguaje está lejos de un Turing completo, entonces el azúcar sintáctico puede ser su amigo.
- Un sistema de seguridad es tan seguro como secreto. Cuídese de los secretos a medias.
- Para resolver un problema interesante, comience por encontrar un problema que le resulte interesante.
- Si el coordinador de desarrollo tiene un medio al menos tan bueno como lo es Internet, y sabe dirigir sin coerción, muchas cabezas serán, inevitablemente, mejor que una.
| [?] |






“y el del Software propietario (la catedral).”
En ningun momento Eric se refiere al software privativo en la catedral. Es más dos ejemplos de catedral usados en esa época eran Emacs y GCC, ambos totalmente libres y del proyecto GNU.
Su crítica principalmente atañe a que Emacs por ejemplo aunque liberaba su código con cada versión no lo hacía en mitad de cada una de estas y el desarrollo era algo cerrado entre los programadores, en el que era difícil que entrasen ideas externas. Pero tantos sus ejemplos de Catedral y Bazar se referían entonces a proyectos de software libre.
Como nota decir que Emacs y GCC más tarde adoptarían un modelo de desarrollo más al estilo de linux y que actualmente la mayoría de proyectos libres muestran su código a través de SVN/CVS/GIT/Etc y aceptan colaboraciones, parches, ideas, etc ya que como Eric comentaba en aquella época favorecen al desarrollo del proyecto.
@Guu: Muchas gracias por la corrección. Ya edité el post corrigiendo el error.