El énfasis del sistema esta en la colaboración. Se trata de una comunidad de usuarios/desarrolladores unida por un fin común. En el fondo todos son egoístas, trabajan en el proyecto porque lo usan y les interesa que funcione lo mejor posible y solucione sus propios problemas. De esta manera, todos se benefician.
Alguna persona o entidad comienza un proyecto para satisfacer una necesidad propia. Por lo general no tienen que empezar de cero ni hacer todo el trabajo, hay ya otros proyectos que hacen cosas similares y bibliotecas de funciones que hacen parte del trabajo. No tienen mas que coger lo que les interese de entre todo el software disponible a nivel mundial y mirar como se han resuelto otros problemas similares.
Cuando el proyecto se hace publico, otra gente puede utilizarlo, encontrar deficiencias y corregirlas.
Cuando se han hecho modificaciones, se tratan de integrar con el proyecto original, y son los autores originales los que deciden si los cambios se aceptan o no.
Si se aceptan los cambios, el proyecto mejora y la historia se repite.
En el caso de que los cambios sean rechazados, el autor de estos puede o bien mantener los cambios independientemente del proyecto original, o iniciar un nuevo proyecto (bifurcación/fork).
Es el modelo tradicional de desarrollo de software. De este tipo son las técnicas de desarrollo que se estudian en las asignaturas de Ingeniería del Software y se usan en las empresas.
Sus principales características son:
Paso a paso, avances pequeños
Siguiendo un diseño de un arquitecto magistral
Gran secreto
Grandes recursos
Solo se deja entrar a los feligreses una vez terminada
Es el modelo mas habitual en software libre. A menudo es considerado inviable por los expertos en ingeniería del software, pero el hecho es que funciona.
Sus principales características son:
Gran número de desarrolladores
Diferente lugar geográfico
Voluntarios
Diferente Idioma (Ingles LinguaFranca)
No hay un diseño escrito sino un problema por resolver
Bajo este modelo se ha producido software de gran calidad, como:
El núcleo Linux
Apache
Samba
The Gimp