Libertad Cero: Uso

La libertad de usar el programa, con cualquier propósito.

Libertad Uno: Estudio

La libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a las propias necesidades.

Libertad Dos: Distribución

La libertad de distribuir copias del programa, con lo cual se puede ayudar a otros usuarios.

Libertad Tres: Mejora

La libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.

Formatos abiertos

Los formatos abiertos permiten al software libre mantener sus cuatro libertades y la libre difusión de todo el código y formatos utilizados, su distribución y estudio.

miércoles, octubre 15, 2008

Enseñanzas de "La Catedral y el Bazar" (I)

En el post anterior comenté acerca de "La Catedral y el Bazar", un ensayo de Eric S. Raymond que habla de sus experiencias con el Sofgüer Libre y Open Source y la comparación que hace entre los modelos de desarrollo de sofgüer privativo y sofgüer libre.

De las actividades que realizó el autor y que están recopiladas en el ensayo, se expone con frecuencia una experiencia aprendida a partir durante el proceso. A continuación me dispongo a hablar de ellas y comentar acerca de las mismas:

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)
De hecho así fue como todo el Movimiento de Sofgüer Libre comenzó... Ricardo Stallman se hartó de no poder modificar los programas que necesitaba cambiar para que funcionasen bien y empezó a programar todo desde cero junto con sus amigos.

2) Los buenos programadores saben qué escribir. Los mejores, qué reescribir (y reutilizar).
Si programar es difícil, sepan que entender el código de otro lo es aún más.

3) "Considere desecharlo; de todos modos tendrá que hacerlo." (Fred Brooks, The Mythical Man-Month, Capítulo 11)
La idea siempre es poner ladrillos encima de ladrillos que otra gente puso. No hay que inventar el agua tibia. Sin embargo, en algunas ocasiones, es más sencillo, más eficiente y más rápido el borrón y cuenta nueva y hacer todo de nuevo.

4) Si tienes la actitud adecuada, encontrarás problemas interesantes.
El truco de un buen programa es que resuelva problemas importantes, que tenga buenos aportes que nadie haya hecho. Ahí está el truco del éxito de un programa.

5) Cuando se pierde el interés en un programa, el último deber es heredarlo a un sucesor competente.
Pues sí... duele desprenderse de un hijo, pero si no puedes mantenerlo, mejor dárselo a alguien responsable que sí pueda.

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.
Todos sabemos que un programador inconscientemente podría probar un programa de forma que no falle. Para nadie es un secreto que cuando un programa es utilizado por los usuarios es cuando comienzan a saltar los problemas. ¿Entonces por qué no aprovechar esto para buscar errores en las versiones preliminares a la liberación de un programa?

7) Libere rápido y a menudo, y escuche a sus clientes.
¿De qué sirve un programa si nadie lo usa? Escuchar a los usuarios es la forma más fácil de entender lo que necesitan... (aunque ahora que lo pienso muchas veces me he topado a usuarios que no saben lo que quieren)... Bueno, el punto es que entre más pronto esté liberando versiones, más retroalimentación se puede obtener, y por tanto orientar mejor el rumbo que debe tomar el programa.

Del ensayito este se desprenden aún más experiencias importante, pero esas las estaré comentando en el siguiente post. Buenas noches.

"La experiencia no es lo que te sucede,
sino lo que haces con lo que te sucede."
Aldous Huxley