jump to navigation

Caminando por Babel April 24, 2008

Posted by jguridi in : Eric S. Raymond, etica hacker , 1 comment so far

Hoy voy a repetir personaje a tratar y no, no es Himanen. Voy a hablaros de Eric S. Raymond de nuevo, esta vez de su publicación “La Catedral y el Bazar” y para mi sorpresa (sobre todo después de lo comentado por Iñaki en la anterior entrada sobre Raymond), esta vez el tono es más correcto y ya no parece tan prepotente. Al lió.

Sigo tratando el tema de la ética hacker, y Raymond sigue poniendo el ejemplo del software libre para expresarla. Esta vez, nos viene a decir las ventajas que tiene el modelo Bazar frente al modelo Catedral en la creación de software, sobre todo en la de gran envergadura, como sistemas operativos o herramientas grandes. El modelo Catedral viene a representar a un grupo cerrado de unos pocos eruditos trabajando en un proyecto de la que no se publican versiones experimentales hasta tener más o menos un resultado. En contraposición, el modelo Bazar representa a un grupo “colmado de individuos con propósitos y enfoques dispares” que hacen público todo el proceso para ir enriqueciéndolo desde el principio.

Linus Torvalds dijo “libere rápido y a menudo, delegue todo lo que pueda, sea abierto hasta la promiscuidad” y esto sorprendió a Raymond, más aun cuando vio que el modelo Bazar parecía funcionar bien. Se animó a lanzar un proyecto de software libre para poder comprobar de manera consciente este modelo de creación, que empezó con un problema con el correo electrónico y terminó en un programa llamado Fetchmail. Este proyecto aparece estructurado en lecciones que Raymond nos imparte.

Aunque algunos trabajen a cambio de un salario en programas que no necesitan, la necesidad de solucionar problemas o hacer más fácil una tarea suele ser la causa más común de emprender un proyecto SCA (Software de Código Abierto), además de las ganas de saber más sobre cierto problema o tarea que ha creado curiosidad en el hacker. Me gustaría resaltar la palabra “personales” de la primera lección, ya que si nace de una necesidad o curiosidad personal la implicación de la persona en el trabajo será completa, mientras que si no existe esa necesidad, como en el caso del trabajador a cambio de un salario al que no le interesa lo que programa, tanto la implicación como la motivación serán menores, y por lo cual, la eficiencia se verá mermada.

Siempre es más fácil coger algo que ya está hecho y modificarlo que empezar a construirlo desde el principio. Recuperamos la idea de que “Ningún problema tendría que resolverse dos veces” que escribió en “Cómo convertirse en hacker”. Deberíamos empezar reutilizando todas las partes que funcionan bien y modificar solo aquella que da problemas, aunque al final acabemos con algo completamente distinto en todos los aspectos. Es un método bastante utilizado entre los estudiantes en trabajos que se repiten año tras año en la universidad, coger trabajos de años anteriores y partir de ahí reutilizando todo aquello que se pueda.

Aunque cueste hacerlo, habrá un punto en el que será necesario desechar al menos una parte de la solución inicial porque uno se habrá dado cuenta de la realidad del problema y que hay otra solución mejor que la que había empezado a construir, así que “disponte a empezar de nuevo al menos una vez”.

Raymond tenía esta creencia y en el caso que cuenta en este texto, pasó de enviar una serie de mejoras de un programa (fetchpop) a identificar las partes que más interesantes le parecían de dos programas (fetchpop y popclient), hacerse cargo de una de ellas (popclient) y crear uno que integrase lo bueno de los dos con algunas mejoras adicionales (fetchmail). Este cambio explica el modo en el que los proyectos evolucionan en el software libre, pasando el control de una persona a otra cuando se ha perdido el interés e implementando mejoras a estos programas en la medida de lo posible.

Si consideras que el usuario también tiene esa necesidad y que puede ser una parte importante en la creación de software, en otras palabras, si eres consciente de que entre los usuarios hay otros hackers y si liberas código según lo vas generando, te darás cuenta que “pueden convertirse en magníficos asistentes”. Además, los usuarios pueden hacer que se produzca el cambio de rumbo en el proyecto que antes he citado.

El modelo Catedral se basa en la creencia de que liberar código de primeras versiones era una “mala política”, ya que suelen tener muchos errores y pueden ser agotadores para los usuarios. Por eso, se libera poco y cuando la mayoría de los errores están ya depurados. En el modelo Bazar, pasa todo lo contrario. Torvalds le dio una intensidad de publicación acorde con la complejidad del proyecto (en su caso, el kernel de Linux), “manteniendo a sus usuarios-hackers-asistentes constantemente estimulados y recompensados con la exhibición y mejora constante, casi diaria, de su trabajo”. En lo relativo a escuchar a los clientes, Raymond defiende que aunque no le den dinero a cambio del software (por ser libre), debe de seguir escuchándoles, ya que programa para y con ellos.

Si unos pocos tienen que revisar un programa, buscar los errores y depurarlos (modelo Catedral) lo más probable es que tarden mucho tiempo y además no aseguran que se encuentren todos los errores. Sin embargo, si hay muchos usuarios revisando un programa simultáneamente (modelo Bazar), detectaran más errores y en menos tiempo que los anteriores, dándose la posibilidad de que no sea la misma persona la que encuentre el error y la que lo resuelva. Esto ocurre gracias a que cada usuario tiene una forma distinta de evaluar el programa.

Trata de definir a ese líder-coordinador y a las motivaciones que llevan a una comunidad a seguir a ese líder. El líder ha de ser capaz de atraer a los demás usuarios hacia su trabajo no por coerción, sino por sus hábitos de cooperación. Raymond pone un pasaje del anarquista Piotr Kropotkin en “Memorias de un revolucionario” como ejemplo:

Habiendo sido criado en una familia que tenía siervos, me incorporé a la vida activa, como todos los jóvenes de mi época, con una gran confianza en la necesidad de mandar, ordena, regañar, castigar y cosas semejantes. Pero cuando en una etapa temprana, tuve que manejar empresas serias y tratar con hombres libres, y cuando cada error podría acarrear serias consecuencias, yo comencé a apreciar la diferencia entre actuar con base en el principio de orden y disciplina y actuar con base en el principio del entendimiento. El primero funciona admirablemente en un desfile militar, pero no sirve cuando está involucrada la vida real y el objetivo solo puede lograrse mediante el esfuerzo serio de muchas voluntades convergentes.

De éste texto Raymond resalta el concepto de trabajar con “muchas voluntades convergentes”, distintos individuos con inquietudes distintas trabajando en el mismo proyecto y que solo consiguen un resultado satisfactorio mediante el entendimiento entre todos ellos. Además, señala que el hacker (sea líder o no) trabaja por una reputación entre los demás, por “satisfacción de su ego”. Un líder no debe imponer su proyecto a sus colaboradores, ya que así, se producirían resultados de menor calidad, sino que debe estimular el ego de los demás para que estos trabajen de manera voluntaria recibiendo el reconocimiento por parte de la comunidad como recompensa.

Después de todas estas lecciones (hay más pero he quitado las que me parecían más técnicas) Raymond se lanza a describir las condiciones necesarias para poder desarrollar el modelo Bazar.

Y es que “si se tiene las miradas suficientes, todas las pulgas saltarán a la vista”.

Cómo hacer de uno mismo un hacker April 2, 2008

Posted by jguridi in : Eric S. Raymond, etica hacker , 9comments

Después de haber estado un tiempo ausente del barrio, voy a seguir hablando de hackers. He dejado de lado a Himanen (de momento) para coger un artículo de Eric Steven Raymond, titulado “Cómo convertirse en hacker”. Es un texto que habla básicamente sobre hackers informáticos pero como el mismo Raymond dice, “La mentalidad hacker no está confinada a esta cultura del software. Hay gente que aplica la actitud de hacker a otras cosas”. Sobre esto ya hablé cuando comente a Himanen.

Lo interesante de este texto es que ofrece unas directrices con las cuales uno puede llegar a ser un hacker, algo así como el camino que nos llevará a la iluminación. Según Raymond, la mejor manera de aprender un arte creativo es por imitación y nos invita a imitar la mentalidad (intelectual y emocionalmente) de un hacker.

Y deberíamos experimentar cierto placer o felicidad (“estremecimiento de tipo primitivo”, textualmente) cuando hayamos resuelto un problema, ya que solucionar problemas requiere esfuerzo y este a su vez requiere motivación. Aun así, es divertido ser un hacker, pero es una clase de entretenimiento que solo se consigue mediante el esfuerzo.

He aquí la razón por la que hay que compartir la información. El tiempo es cada vez un bien más valorado y se ahorraría mucho si nadie tuviese que resolver un problema ya resuelto anteriormente. De esta manera, se dedica todo el esfuerzo en resolver nuevos problemas que surgen continuamente.

El trabajo repetitivo impide al hacker utilizar su creatividad para resolver problemas. Por lo tanto, el hacker debe “automatizar las tareas rutinarias todo lo que se pueda” para poder dedicarse de pleno a aquello que le apasiona.

Cualquiera que pueda darte ordenes, puede obligarte a dejar de resolver ese problema que te esta fascinando. (…) Por eso, la actitud autoritaria debe ser combatida donde sea que se la encuentre, pues si se deja te asfixiara, tanto a ti como a otros hackers”. Los autoritarios no suelen ser propensos a compartir la información ni a cooperar en sus proyectos con otras personas, lo cual puede impedir al hacker realizar su tarea.

Deberíamos desarrollar las actitudes antes citadas pero no basta solo con la actitud para ser un hacker, hace falta “inteligencia, práctica, dedicación y trabajo duro”. Con esto conseguiremos desarrollar cierta competencia en las áreas de nuestro trabajo. Raymond destaca como buenas las competencias en habilidades que domina poca gente y las que exigen “agudeza mental, destreza y concentración”.

Aparte de estas directrices para desarrollar la actitud, un hacker debe desarrollar ciertas habilidades en el campo que este trabajando. Para ello necesita dominar herramientas que, no hace ni falta decirlo, irán cambiando con el tiempo. Esto obliga al hacker a tener capacidad para aprender a utilizar diferentes herramientas sin especializarse en una sola. Este aprendizaje no tiene que ser teórico, sino practico, para poder aprender directamente de la experiencia.

Otro concepto que desarrolla Raymond en este texto es el del estatus o reputación, que se consigue mediante la valoración que los demás hacen sobre nuestro trabajo y cuanto más compartamos nuestro trabajo adquiriremos mayor estatus. Él lo llama “donar” (“al donar tu tiempo, tu creatividad y el resultado de tu destreza”) y da otra serie de directrices para poder obtener “el respeto de los hackers”, de las que se pueden extraer las siguientes ideas:

Por último, nos ofrece unos consejos muy poco ortodoxos para poder desarrollar habilidades, sobre todo de estilo o forma, que nos pueden ayudar en la correcta comunicación de ideas. Cosas muy básicas que a veces olvidamos.

Personalmente no le veo mucho sentido a alguna de las actividades propuestas, se supone que son dirigidos a aquellos que se quieran convertir en hackers informáticos pero aparte de escribir correctamente no veo que utilidad pueden tener. “Por que estas cosas en particular y no otras es algo que no está completamente claro, pero todas están conectadas con una mezcla de la parte izquierda y la derecha de las habilidades de tu cerebro”. Parece ser que ayuda a utilizar la parte racional e irracional de nuestro ser.

Y otras muchas cosas son las que he encontrado en este “Como convertirse en hacker” de Eric S. Raymond, pero considero que no son relevantes por ser específicos de hackers informáticos (los lenguajes de programación mas sencillos, etcétera). Dos cosas me han llamado la atención considerablemente, que no tienen que ver con el tema: el tono prepotente que impera durante todo el texto y el FAQ (con preguntas como “¿Necesito odiar y golpear a Microsoft?”). Me ha recordado al personaje del Rey Xerxes en el film “300”, no se porque…

http://singularidad.files.wordpress.com/2007/03/jerjes.jpg

Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Spain
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Spain