23 de octubre de 2006

El desarrollo de software libre como aplicación del liberalismo

Acabo de leer un blog que terminaba diciendo algo que en el software libre ya se ha dicho algunas veces: ¿Como es posible que unos universitarios con gafas aficinados a Star Treck y que en clase están más pendientes a la compañera del asiento de adelante que al profesor se pongan y escriban programas que dejan en verguenza a proyectos propietarios? Los que viven en el mundo del software libre tal vez no entiendan lo que digo a la primera. En serio: ¿Como es posible que el software libre pueda existir? ¿Como es posible que alguien cree de manera gratuita y sin recursos algo que podría crear cualquier compañía con tan solo mover un dedo? Microsoft tiene unos ingresos de 40.000 millones al año. ¿Qué tipo de virus es el que le impide, con semejante presupuesto, parar los pies al software libre?

Mi teoría es que el software libre funciona gracias al liberalismo, del mismo modo que el liberalismo económico funciona. Hhasta cierto punto, no trato de hacer aquí un post pro-capitalista, pero si explicar que las teorías capitalista podrían aplicarse exitosamente al desarrollo de software al margen de que sean buenas o malas en la economía. Lo cierto es que Europa y Estados Unidos son parte de la civilización más avanzada, rica y con menos pobreza y muerte de la historia de la humanidad y que el capitalismo es uno de los pilares de esa civilización, asi que perdonen si me rio cuando oigo decir "el capitalismo es malo malísimo". Yo no creo que sea perfecto, pero probablemente sea el mejor que tenemos, o al menos uno de los mejores. He de confesar aquí que me identifico con el 'liberalismo' económicamente hablando: No con el neoliberalismo radical de las ondas episcopales de este pais, ni con el de las multinacionales que están consiguiendo mandar a tomar por el saco un poquito más a este mundo, que son gente que no tienen nada de liberal, pues han pasado a tener como objetivo no la libertad total del ser humano que sería lo suyo, sino la libertad total de las empresas, con la excusa de que como están regentadas por humanos tienen sus mismos derechos; e incluso llegan a interponer los derechos de las empresas sobre los de los individuos.

Al igual que ocurre con los economistas y las economías, los expertos en desarrollo de software han creado mil teorías sobre como se debe desarrollar el software. Formulas perfectas que, según ellos, permitirán a los desarrolladores alcanzar todos sus objetivos, crear software con un diseño perfecto, sin fallos, que contenta a los usuarios. Y nunca aciertan.

El software libre tampoco alcanza la perfección, pero a diferencia del software propietario, el software libre suele carecer de toda estrategia. Resulta curioso que los proyectos propietarios gozen de presupuestos multimillonarios y de una cuidadosa metodologia de desarrollo y de unos expertos con las mejores notas del mundo, y que el software libre sea capaz de crear productos casi similares, similares o incluso mejores con una carencia absoluta de presupuesto y sin metodología alguna

"El software libre viola todas las metodologías de desarrollo de software conocidas



No se de quien es esa cita, pero es cierta: La metodología de desarrollo del software libre se caracteriza por la ausencia de metodología. ¿Tal vez sea esa la razón de su fuerza? El software libre da total libertad al programador para hacer lo que realmente le de la gana. Las estrategias de gestión de proyectos de software, sin embargo, siempre imponen normas al programador. Tratan de tomar decisiones por él, en un modo muy similar a las economias gestionadas por el estado que trataban de decidir por los trabajadores qué había que producir. En principio, al igual que las economías de estado, funcionan. ¿Pero y en la práctica?

"I didn't design it this way. This happens because this is the way people work. It's very natural." - Linus Torvalds



En las economías capitalistas del mundo real no hay un liberalismo absoluto. Hay cierta regulación, dependiendo de donde vivas. En el software libre tambien hay cierta regulación mínima: Respetar los ciclos estables, no incluir una super-caracteristica el día antes de la salida de la versión 2.0. Arreglar los fallos que crees. No romper la compatibilidad en una versión estable. Pero quitando eso, la libertad es absoluta. Creo firmemente que esa es la base del éxito del software libre: Aunque sin ninguna duda las metodologías de gestión utilizadas por muchas empresas tienen en principio buenas intenciones y buscan el bien del objetivo final - igual que lo buscaba el comunismo -, el hecho de no dejar libertad a los programadores, decirles lo que tienen que hacer, hacen que el producto final sea peor.

Principio supermeganeoliberal generalizado de desarrollo de software: Cuanta más libertad tengan los programadores, mejor será el producto.



Este principio no es cierto - al igual que tampoco son ciertas las teorías económicas neoliberales radicales -. pero como principio vale y da lugar a interesantes teorias: ¿El kernel Linux, al estar continuamente en desarrollo y no respetar la compatibilidad de la API interna del kernel, tiene un desarrollo más veloz por ser más neoliberal? Cada uno que explore las posibles respuestas. Esto por cierto no tienen nada que ver con que el software sea libre o no, pero se da la circunstancia de que es el software libre donde esto se da de manera más radical. Apostaría que el estilo de gestión de compañías como Apple se caracterizan por dar bastante libertad a sus desarrolladores.

9 comentarios:

  1. Anónimo3:36 a. m.

    Excelente articulo, esta bueno.

    ResponderEliminar
  2. La metodología de desarrollo del software libre se caracteriza por la ausencia de metodología

    Eso no es cierto. No hay ningún proyecto medianamente decente que no tenga una metodología. Si quieres buscar desarrollo sin metodología mejor busca en software privativo (consultoras - proyectos caos, etc...)

    Piensalo. Sin metodología es absolutamente imposible hacer algo un poco grande. Ni siquiera se podría trabajar en equipo. Dudas de que las metodologías no ayudan en el desarrollo. ¿Has participado alguna vez en un proyecto un poco grande?. Yo no concibo como podría funcionar sin metodologías de documentación, organización de pruebas, calendarización... Ni siquiera podríamos cobrar nuestros proyectos si no pudiésemos estimar sus costes y duración!!

    Uno de los proyectos en que participo es ASwing (aswing.org), que es una impolementación de Java Swing para Actionscript-flash. Es un port, con lo que nos ahorramos fases de diseño y requerimientos. Somos pocos y no tenemos fechas de entrega, pero por lo menos llevamos una calendarización interna y externa, guías de desarrollo, de codificación, pruebas y despliegue. Y a pesar de tantas facilidades, se complica. No podría entender que otros proyectos pudiesen funcionar sin niguna metodología.

    ResponderEliminar
  3. Miguel, tal vez sea así en tu proyecto, te aseguro que en la mayoría de proyectos importantes de software libre (kernel, gnome, X11) NO es así y no hay una metodología estricta, solo hay unas reglas muy básicas (tiempo de meter nuevas características, tiempo de meter solo correciones de fallos, revisión por parte de otras personas del diseño y el código de forma democrática)...por lo demás nadie manda qué implementar, no hay una linea de evolucion clara, nadie sabe que va a haber dentro de dos versiones...

    Echa un ojo a como funciona el kernel y dime despues de verlo si sigues pensando que "Sin metodología es absolutamente imposible hacer algo un poco grande". Creo que fue Linus el que dijo alguna vez algo del estilo "yo no pongo ninguna regla, es como la gente trabaja cuando se junta a hacer algo"

    ResponderEliminar
  4. Anónimo3:53 p. m.

    vaya despues de todo eso no se si viene muy a cuento decirte que aunque lleven gafas les gustara Star Trek no Star Treck, :)

    ResponderEliminar
  5. Muy buen artículo, con el que estoy de acuerdo.

    Sobre la metodologia, me gustaría agregar algo. Se podría decir que existe una metodología de desarrollo, pero que es algo básico, cuasi-elemental, como la educación cuando vas por la la escalera de tu casa y le das los buenos días a tu vecino. Simple, sencillo y efectivo.

    ResponderEliminar
  6. Anónimo11:20 p. m.

    Hay cierta confusión en los términos.
    No se trata de liberalismo, sino de libertad y, sobre todo colaboración. El progreso humano esta basado en la coloboración. Desde hace un cierto tiempo, nos quieren hacer creer, interesadamente, que el liberalismo y el capitalismo, resumidos en la palabra "competencia", son los motores del progreso. Tu citas los Estados Unidos y Europa. Los Estados Unidos no son comparables a Europa, ya que esta debe su progreso a los avances sociales, fruto, sobre todo, de la mayor cultura y cohesión de la sociedad europea y, tambien, de las luchas sociales que propiciaron el estado del bienestar. Los Estados Unidos deben su riqueza a la politica de dominación que ejercen sobre el planeta, una nueva forma de colonialismo, pero colonialismo al fin y al cabo, al igual que antaño lo hizo la Vieja Europa. En los EEUU no existe el estado del bienestar y el reparto de la riqueza deja mucho que desear. Las clases más desfavorecidas viven igual o peor que en cualquier pais del tercer mundo. Europa, sino fuera por las luchas sociales, y tambien por la libertad, por supuesto, se habría quedado atras como tantos paises. Fijate, sino, en Argentina, que se adivinaba, junto a EEUU, como una de las grandes futuras potencias mundiales a principios del siglo XX. O los tigres asiaticos en los años 70-80. A pesar de algunas pocas excepciones, Japón por ejemplo y a que precio, el capitalismo y el liberalismo , solo sirven para el progreso de las clases dominantes.

    ResponderEliminar
  7. Anónimo4:13 p. m.

    Es obviamente, que dentro de toda corriente haya tambien diferencias, y en el caso de Miguel s, parece se confirma, No se hasta que punto puede considerar liberal a la revista on-line "Libertad Digital" pagina pro-liberalista en donde entre otros hereos para ellos esta Reagan.

    El punto es que este medio facista, para atacando al software libre reiteradamente, ataca a wikipedia, insulta a Richard Stallman y sobre todo cree que el Soft Libre es libertinaje.

    Siguen creyendo que Soft-Libre es Liberalismo??, que tenga matices de ello tal vez. pero en definivita no

    ResponderEliminar
  8. Anónimo3:32 a. m.

    Bueno, lo cierto es que no estoy muy seguro de que conozcas el desarrollo al menos de los proyectos grandes del software libre, si hay algo que se debate en las listas de correo, es como abordar los problemas y aunque no parece existir metodología, puedes estar seguro de que existe planificación en estos proyectos, y que cuentan con gente muy capacitada... en cuanto a presupuesto... te has preguntado cuanto dinero necesitas mientras escribes código?.. entiendo que te refieres a motivación económica... me gustaría saber que piensa Richard Stallman o Torvalds respecto a eso.. o los Debian Developer del mundo.. incluso yo.

    ResponderEliminar
  9. Anónimo2:19 p. m.

    esto no sirve..jejeje

    ResponderEliminar