12 Otras Lecturas

Anuncio
Software libre y la La Psicología del programador
Por allá en el año 1971 el sociólogo Gerald P. Wienberg escribió un libro llamado La Psicología de la
Programación de Computadoras en cual presenta este tema como parte importante de la actividad humana
y cuenta los resultados de sus observaciones y experiencias.
En un artículo anterior de esta columna escribí una nota llamada Monumento al programador desconocido
tratando de hacerle un homenaje a este tipo de profesionales que de manera han vendido influyendo en el
comportamiento de la gente hasta tal punto de que el software es considerado como un producto de
seguridad nacional en el los planes estratégico del software para el 2015 de los Estados Unidos.
En el software libre se hace presente esa actividad humana de manera muy especial teniendo en cuenta su
participación de manera libre en la creación de estándares que han llegado a conformar toda una Ingeniería
de software.
En mi conferencia sobre Desarrollo en ambientes libres del Salón de informática de Acis en el 2007
comentaba el hecho que en el caso de los desarrollos de tipo propietario estos nacen por las necesidades
del cliente, mientras que en el software libre nacen de las “necesidades” del programador que haya
identificado un tema de su personal interés. En estos casos la actividad que desarrolla es de una entrega
sin precedentes loc aul de por si tiene influencia muy positivas sobre la calidad del desarrollo.
Referente al que podríamos llamar los procesos basados en la libertad Wiemberg cuenta
sobre un experimento llamado “Disonancia cognitiva” en el cual hacen dos grupos
separados de personas y les ponen la tarea de defender una idea sobre la cual cada
grupo tiene un rechazo comprobado consistiendo el trabajo en hacer un documento que la
defienda.
A un grupo se le ofrece dinero por hacerlo y al otro nada.
Weimber comprueba en su experimento cómo aquellos que reciben dinero dificilmente
logran producir un resultado “satisfactorio” debido a que media en su trabajo aspectos
como la ética, la defensa de sus propios principios y otros aspectos de tipo moralista.
En cambio el grupo que hace el trabajo sin pago adopta una actitud de ejercicio intelectual
que no juega contra sus aspectos morales sino netamente intelectuales logrando así que
si roduzcan resultados “satisfactorios”.
Ese aspecto de la libertad juega entonces un papel preponderante en la psicología del
programador que lo hace muy eficiente intelectalmente en el momento dedesarrollar sus
prototipos.
Cuenta Weimberg en otro episodio de su trabajo cómo enuna Universidad había un
servicio académico para que los estudiantes pudieran asesorarse de los profesores para
la resolución de problemas de programacón de computadores. Alrededor de las oficinas
había máquinas de Gasesosasy de café y ventas de comestibles convietiéndo el lugar en
un sitio un poco ruidoso y muy poco uso de los servicios de tutorias lo cual hizo que la
administración quitara las máquinas y cerrara las ventas de comestibles para que los
estudiantes de programación hicieran colas ordenadas para utilizar los servicios de los
profesores.
Sucedió entonces que el sitio comenzó a tener una asistencia mínima y si bien se
solucionó el problema del ruido y la congestión no dió resultados la tutoriía que se
pretendía organizar.
El estudio de este fenómeno dio como conclusión un hechointeresante. Cuando el sitio
tenía cierta apariencia de reunión social, los estudiantes mismos creaban tertulias
suficientes para compartirse los problemas y resolverlos entre ellos mismos.
Reutilización de código propio y de terceros
Esta famosa frase sobre la importancia de la reutilización de código cobra un valor
superlativo en el software libre pues va más allá del desarrollo de las propias librerías con
el claro propósito de aumentar la productividad y de facilitar el mantenimiento futuro.
Trasciende a la reutilización del código de “otros programadores”. Si bien a los hackers se
les identifica por tener una vanidad excesiva, es curioso que no sientan ninguna pena de
reutilzar el código de otros y considerar que la búsqueda del camino más fácil, como lo
pregona Torvals, es un síntoma de mayor inteligencia.
El sociólogo Gerald Weimberg autor del libro la Psicología del programador [3] se permite
hacer una discusión sobre la "programación sin ego", y concluye que cuando no hay
propiedad del código y se estimula la búsqueda de los errores el avance es más rápido.
Enséñame tu código y te diré quién eres
En el software propietario el código fuente no está expuesto al público en general, por lo
que no es común sentir ansiedad por la exposición de esta faceta de la personalidad. El
mismo Weimberg en su libro sobre la Psicología del programador, ya citado, demuestra
cómo el mismo problema es resuelto de diversas formas según la persona que lo haya
escrito y explica cómo, en él código, hay una expresión de la personalidad de quien lo
haya hecho. En el software libre se debe estar sujeto a esta exposición de si mismo ante
un público casi siempre muy experto.
En la visita a Colombia de Rasmus Lerdorf el creador del lenguaje php tuve la oportunidad
de preguntarle cómo era ese proceso en el cual un colaborador es o no aceptado para
trabajar en un grupo de desarrollo abierto y él me comentaba que era un proceso
netamente social en donde la aceptación o el rechazo era producido por la misma
comunidad. “Enseñarme tu código y te diré quién eres”. Pero tal vez más enfático sería
decir si seguimos las normas de Raymond: “Dime cómo son las estructuras inteligentes
de tus datos y te diré quién eres”.
Hay casos en que la búsqueda de la perfección hace daño. Hay quienes dicen que lo
perfecto es enemigo de lo bueno. Pero más filosóficamente lo dijo Antoine De SaintExupýýry [4], en el Principito, como lo comenta Raymond: "La perfección se alcanza no
cuando ya no hay nada que agregar, sino cuando ya no hay algo que quitar”
Gerald Weinberg La Psicología de la Programación de Computadoras plantea, visto en retrospectiva, una
corrección esencial a Brooks. En su discusión de la "programación sin ego", Weinberg señala que en los
lugares donde los desarrolladores no tienen propiedad sobre su código, y estimulan a otras personas a
buscar errores y posibles mejoras, son los lugares donde el avance es dramáticamente más rápido que en
cualquier otro lado.
Pero, ¿qué es el estilo de liderazgo y qué estos hábitos? No pueden estar basados en relaciones de poder,
y aunque lo fueran, el liderazgo por coerción no produciría los resultados que estamos viendo. Weinberg cita
un pasaje de la autobiografía del anarquista ruso del siglo XIX Kropotkin Memorias de un Revolucionario,
que está muy acorde con este tema:
"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, ordenar, 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 sólo puede lograrse mediante el esfuerzo serio de muchas voluntades convergentes."
El "esfuerzo serio de muchas voluntades convergentes" es precisamente lo que todo proyecto estilo Linux
requiere; mientras que el "principio de orden y disciplina" es efectivamente imposible de aplicar a los
voluntarios del paraíso anarquista que llamamos Internet. Para poder trabajar y competir de manera
efectiva, los hackers que quieran encabezar proyectos de colaboración deben aprender a reclutar y
entusiasmar a las comunidades de interés de un modo vagamente sugerido por el "principio de
entendimiento" de Kropotkin. Deben aprender a usar la Ley de Linus.
La "función utilidad" que los hackers de Linux están maximizando no es económica en el sentido clásico,
sino algo intangible como la satisfacción de su ego y su reputación entre otros hackers. (Uno podría hablar
de su "motivación altruista", pero ignoraríamos el hecho de que el altruismo en sí mismo es una forma de
satisfacción del ego para el altruista). Los grupos voluntarios que funcionan de esta manera no son escasos
realmente; uno en el que he participado es el de los aficionados a la ciencia ficción, que a diferencia del
mundo de los hackers, reconoce explícitamente el "egoboo" (el realce de la reputación de uno entre los
demás) como la motivación básica que está detrás de la actividad de los voluntarios.
12 Otras Lecturas
He citado varias partes del clásico de Frederick P. Brooks The Mythical Man-Month debido a que en muchos
aspectos, todavía se tienen que mejorar sus puntos de vista. Yo recomiendo con cariño la edición del 25
aniversario de la Addison-Wesley (ISBN 0-201-83595-9), que viene junto a su artículo titulado Ninguna Bala
de Plata.
La nueva edición trae una invaluable retrospectiva de veinte años, en la que Brooks admite francamente
ciertas críticas al texto original que no pudieron mantenerse con el tiempo. Leí por primera vez la
retrospectiva después de que estaba esencialmente terminado este artículo, y ¡me sorprendí al encontrar
que Brooks le atribuye a Microsoft prácticas semejantes a las del bazar!
La Psicología de la Programación de Computadoras de Gerald P. Wienberg (Nueva York, Van Nostrand
Reinhold, 1971) introdujo el concepto infortunadamente denotado de "programación sin ego". A pesar de
que él estaba muy lejos de ser la primera persona en comprender la futilidad del "principio de orden" fue
probablemente el primero en reconocer y argumentar el tema en relación con el desarrollo del software.
Richard P. Gabriel, al analizar la cultura de UNIX anterior a la era de Linux, planteaba la superioridad de un
primitivo modelo estilo bazar en un artículo de 1989: Lisp: Buenas Noticias, Malas Noticias y Cómo Ganar
en Grande. Pese a estar atrasado en algunos aspectos, este ensayo es considerado correcto en algo por
los admiradores de Lisp (entre quienes me incluyo). Uno de ellos me recordó que la sección titulada Lo Peor
es Mejor predice con gran exactitud a Linux. Este artículo está disponible en la WWW en http://alpha-
bits.ai.mit.edu/articles/good-news/good-news.html.
El trabajo de De Marco y Lister, Peopleware: Productive Projects and Teams (Nueva York; Dorset House,
1987; ISBN 0-932633-05-6) es una joya que ha sido subestimada; fue citada, para mi fortuna, por Fred
Brooks en su retrospectiva. A pesar de que poco de lo que dicen los autores es directamente aplicable a las
comunidades de software libre o de Linux, su visión sobre las condiciones necesarias para un trabajo
creativo es aguda y muy recomendable para quien intente llevar algunas de las virtudes del modelo bazar a
un
contexto
más
comercial.
Este
documento
esta
disponible
en
http://www.agorics.com/agorpapers.html
Descargar