WikiJuanan: LaCatedralYElBazar

Mis LibrosEric S Raymond – El

Leer el libro en español: http://biblioweb.sindominio.net/telematica/catedral.html

Analizo un exitoso proyecto de software libre (fetchmail), que fue realizado para probar deliberadamente algunas sorprendentes ideas sobre la ingeniería de software sugeridas por la historia de Linux. Discuto estas teorías en términos de dos estilos de desarrollo fundamentalmente opuestos: el modelo catedral de la mayoría de los fabricantes de softaware comercial contra el modelo bazar del mundo Linux. Demuestro que estos modelos parten de puntos de vista contrapuestos acerca de la naturaleza de la tarea de depuración del software. Posteriormente, hago una argumentación, a partir de la experiencia de Linux, de la siguiente sentencia: «si se tienen las miradas suficientes, todas las pulgas saltarán a la vista''. Al final, sugiero algunas fructíferas analogías con otros sistemas autoregulados de agentes egoistas, y concluyo con una somera exploración de las implicaciones que pude tener este enfoque en el futuro del software.

Lecciones enumeradas en La Catedral y el Bazar de Eric S. Raymond

Desde Wikipedia: http://es.wikipedia.org/wiki/La_Catedral_y_el_Bazar

  1. 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)
2. Los buenos programadores saben qué escribir. Los mejores, qué reescribir (y reutilizar).

3. «Considere desecharlo; de todos modos tendrá que hacerlo.» (Fred Brooks, The Mythical Man-Month, Capítulo 11)

4. Si tienes la actitud adecuada, encontrarás problemas interesantes.

5. Cuando se pierde el interés en un programa, el último deber es heredarlo a un sucesor competente.

6. Tratar a los usuarios como colaboradores es la forma más apropiada de mejorar el código, y la más efectiva de depurarlo.

7. Libere rápido y a menudo, y escuche a sus clientes.

8. 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.

9. Las estructuras de datos inteligentes y el código burdo funcionan mucho mejor que en el caso inverso.

  1. 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.
  2. Lo mejor después de tener buenas ideas es reconocer las buenas ideas de sus usuarios. Esto último es a veces lo mejor.
  3. Frecuentemente, las soluciones más innovadoras y espectaculares provienen de comprender que la concepción del problema era errónea.
  4. «La perfección (en diseño) se alcanza no cuando ya no hay nada que agregar, sino cuando ya no hay nada que quitar.»
  5. 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.
  6. 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!
  7. Cuando su lenguaje está lejos de un Turing completo, entonces el azúcar sintáctico puede ser su amigo.
  8. Un sistema de seguridad es tan seguro como secreto. Cuídese de los secretos a medias.
  9. Para resolver un problema interesante, comience por encontrar un problema que le resulte interesante.
  10. 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.