No has iniciado sesión.

#1 2012-05-10 16:13:24

OmeGa
Administrador
Registrado: 2012-05-05
Mensajes: 79

¿Cómo contrubuir al software libre sin ser un genio programador?

El software de código libre ha cambiado a la computación y al mundo, y muchos de ustedes quisieran contribuir. Desafortunadamente, muchas personas son intimidadas por lo que imaginan ser una gran barrera para unirse a un proyecto. Normalmente escucho a personas decir que les encantaría contribuir, pero no pueden debido a tres razones:

  • «No soy un buen programador».

  • «No puedo dedicarle mucho tiempo».

  • «No sé en qué proyecto trabajar».

Existen tres principios clave que hay que recordar, cuando se buscan oportunidades para colaborar:

  • Los proyectos requieren contribuciones de parte de todos, de todo tipo de experiencia y niveles de habilidad.

  • Las pequeñas contribuciones son incluso más que ninguna.

  • El mejor proyecto para comenzar a trabajar es alguno que ya utilices.

La idea más dañina que he observado entre los novatos en el software libre es que para contribuir al código abierto requieres ser una clase de genio programador. Esto es falso. Ciertamente, hay algunos dentro del mundo del código libre que son vistos como estrellas de rock, pues de hecho son genios programadores. Sin embargo, la gran mayoría de nosotros no lo somos. Somos simplemente gente que colabora. A veces hacemos un poco, en ocasiones mucho. A veces es programación, y a veces no.

Lo que hace funcionar al software libre es trabajo verdadero, tiempo invertido en hacer que las cosas sucedan para el proyecto. La mayoría de estas cosas no requieren el cerebro o la visión de un Larry Wall, creador de Perl, o un David Hainemeier, creador de Rails. Diseñar un nuevo lenguaje o una estructura web requiere inspiración, pero lo que hace exitosos a proyectos como Perl y Rails es esfuerzo. Este trabajo puede que no obtenga toda la gloria, pero no obstante es necesario, y después de poco, tus contribuciones serán notadas.


Comienza por escuchar

Todo en el mundo del código libre involucra a otras personas. Estás buscando unirte a un equipo, y eso significa entender a la comunidad, y cómo esta funciona. Entrar en un proyecto y decir: «Hola, esto es lo que pienso que debiese estar haciendo el proyecto», no es normalmente tomado de buen modo. Algunos proyectos pueden apreciar tal tipo de propuestas, pero si el proyecto ha estado funcionando durante un buen tiempo, probablemente tal actitud será considerada como poca cosa. Escuchar es la mejor manera de entender qué necesita un proyecto.

Unirse a una lista de correo: Para muchos proyectos, las listas de correo son el medio de comunicación principal, donde se discute el desarrollo del mismo. En proyectos de gran escala, existen muchas listas de correo para elegir. Por ejemplo, el proyecto PostgreSQL no tiene menos de doce listas —orientadas para los usuarios—, y seis listas para desarrolladores, en su página principal. Recomiendo seguir la lista dedicada para los usuarios, y la lista principal de desarrollo, en la cual puedes comenzar a prestar atención.

Seguir un blog: Los blogs mantenidos por los desarrolladores centrales a menudo ofrecen información acerca de lo que está por venir, en futuros lanzamientos, y lo que se necesita para lograrlo.

Unirse un canal IRC: Muchos proyectos de código abierto cuentan con canales de chat IRC, donde los desarrolladores y usuarios se encuentran para discutir problemas y el desarrollo. Revisa el sitio web del proyecto para obtener detalles sobre cómo se llama el canal, y en qué red IRC se puede hallar.


Trabaja con tickets

El código es el corazón de cualquier proyecto libre, pero no creas que escribir código es la única manera de contribuir. El mantenimiento del código y los sistemas que lo rodean son muchas veces olvidados, debido a la prisa por crear nuevas funciones, y resolver errores. Mira estas áreas como una manera fácil de iniciarte en un proyecto.

Muchos proyectos tienen un sistema de tickets visible, enlazado a la página principal del sitio web, y se incluye en la documentación. Es el medio de comunicación primario entre usuarios y desarrolladores. Mantenerlo actualizado es una gran manera de ayudar. Tal vez necesites permisos especiales en el sistema de tickets, los cuales seguramente te serán otorgados con gusto por parte de los líderes del proyecto, cuando les dejes saber que te interesa ayudar con los tickets.

Diagnostica un error: Los bugs son comúnmente reportados de mal manera. Diagnosticar y clasificar un bug puede ahorrar tiempo a los desarrolladores con el trabajo sucio de averiguar los detalles específicos del problema. Si algún usuario reporta: «El software no funciona cuando hago X», invierte un poco de tiempo en descifrar los detalles específicos que causan el problema. ¿Se puede repetir? ¿Puedes crear una serie de pasos para ocasionar el problema reiteradamente? ¿Puedes reducir el problema; es decir, que solo suceda en un navegador pero no en otro, o en una distribución pero no en otra?

Incluso si no conoces las causas de problema, el esfuerzo que pones en reducir las circunstancias hace más fácil para alguien más encontrar una solución. Sin importar lo que descubras, añádelo al ticket, en el sistema de bugs, para que todos lo vean.

Cierra bugs resueltos: A menudo los bugs son solucionados en el código base, pero los tickets que han reportado acerca de ellos no son actualizados en el sistema de tickets. Limpiar esto puede consumir mucho tiempo, pero es valioso para todo el proyecto.

Comienza por consultar el sistema de tickets, con una antigüedad mayor a un año, para ver si el bug todavía existe. Revisa el registro de cambios del proyecto, para ver si el bug ha sido corregido, y se puede cerrar. Si se sabe que ha sido resuelto, indica el número de versión en el ticket, y ciérralo.

Intenta recrear el bug con la versión más reciente del software. Si no puede ser recreado con la versión más reciente, anótalo en el ticket, y ciérralo. Si aún existe, hazlo saber en el ticket también, y déjalo abierto.


Trabajando con código

Los programadores con todo nivel de habilidades pueden ayudar con el código, en un proyecto. No creas que es necesario ser un genio para hacer contribuciones reales a tu proyecto favorito.

Si tu labor implica modificar el código, investiga el método que se utiliza para obtener el código de los contribuyentes. Cada proyecto tiene su propio flujo de trabajo, así que pregunta cómo hacerlo, antes de entregar código.

Por ejemplo, el proyecto PostgreSQL es muy riguroso en este proceso: las modificaciones al código son enviadas a manera de parches a una lista de correo, donde los desarrolladores centrales escudriñan cada aspecto de los cambios. Por otra parte, existe otro proyecto como Parrot, donde es sencillo obtener privilegios para enviar al código base. Si el proyecto usa GitHub, puede haber un flujo de trabajo que utilice la característica pull request de GitHub. No hay dos proyectos iguales.

Siempre que modifiques el código, asegúrate de actuar como un miembro responsable de la comunidad, y haz que tu estilo de código concuerde con el resto del código base. El código que agregas o modificas debe verse como el resto. Tal vez no te guste el estilo de los paréntesis, o cómo se maneja la indentación, pero es descortés enviar código que no se adecue a los estándares. Es como decir: «No me gusta tu estilo, creo que el mío es mejor, deberías hacerlo a mi manera».

Prueba una versión beta: Todos los proyectos diseñados para ejecutarse en múltiples plataformas pueden tener todo tipo de problemas de portabilidad. Cuando un lanzamiento se acerca, y una versión beta es publicada, el líder del proyecto espera que sea probada por mucha gente distinta, en diferentes plataformas. Puedes ser una de esas personas, y ayudar asegurándote de que el paquete funcione en tu plataforma.

Típicamente solo necesitas descargar, compilar y probar el software, pero el valor para el proyecto puede ser enorme si te encuentras en una distribución poco común, o utilizas un hardware nada frecuente. Simplemente hacer un reporte diciendo que el software funciona, ayuda a los líderes a saber que el lanzamiento próximo es sólido.

Resuelve un bug: Aquí es donde normalmente los contribuyentes desean trabajar con código comienzan. Es simple: encuentra un bug que resulte interesante en el sistema de tickets, e intenta resolverlo en el código. Documenta el arreglo en el código, si es apropiado.

Es una buena idea añadir un test a la suite de pruebas, para verificar el punto particular del código que has resuelto; algunos proyectos requieren que las soluciones de bugs incluyan pruebas. Crea notas mientras te mueves  en este código base poco familiar. Aun si no eres capaz de resolver un bug, documenta en el ticket lo que has descubierto, como parte de tu intento por resolverlo. Lo que hallas ayuda a otros que vienen después de ti.

Escribe una suite de prueba: Muchos proyectos tienen una suite de prueba que verifica el código, pero es difícil imaginar una suite de prueba que no requiera más comprobaciones. Utiliza una herramienta de análisis como gcov para C, o Devel::Cover para Perl, para así identificar áreas en el código base que no están verificadas por la suite de prueba.


Trabaja en la documentación

La documentación es normalmente la parte del proyecto que recibe poca atención. También es posible que haya sido escrita desde el punto de vista de aquellos que están familiarizados con el proyecto, en vez de alguien que comienza a familiarizarse con él. Si alguna vez lees documentos de un proyecto donde piensas: «es como si este manual esperase que yo supiera ya como utilizar el paquete», sabes a qué me refiero. A menudo un par de ojos frescos pueden advertir deficiencias en la documentación, que aquellos cercanos al proyecto no perciben.

Crea un ejemplo: No existe un proyecto que tenga demasiados How-Tos. Ya sea una API web, una librería de rutinas, una aplicación GUI como Gimp, o una herramienta de línea de comandos; un buen ejemplo del uso apropiado puede más rápida y claramente explicar el correcto uso del software que páginas de documentación.

Para un API o librería, crea un programa ejemplo, que utilice tal herramienta. Esto se puede extraer del código que has escrito, ajustado a las necesidades mínimas. Para una herramienta, muestra ejemplos reales de cómo la has utilizado en la vida diaria. Si te inclinas por lo visual, considera crear una captura de pantalla de un proceso importante; por ejemplo, cómo instalar la aplicación.


Trabaja con la comunidad

El software libre es solo parcialmente acerca del código. La comunidad hace que el código funcione. Aquí hay maneras en las que puedes ayudar a mejorarla.

Contesta una pregunta: La mejor manera de ayudar a construir una comunidad es ayudando a otros. Resolviendo dudas, especialmente las de aquellos que comienzan a involucrarse, es crucial ayudar a que el proyecto crezca y prospere. El tiempo que te toma ayudar a un novato, incluso si está haciendo preguntas que fácilmente podrías responder diciendo: «lee el manual», rinde frutos a la larga, haciendo que otro miembro activo se sume a la comunidad. Todos empezamos en algún punto, y los proyectos necesitan afluencia constante de personas, si es que han de mantenerse.

Escribe en un blog: Si tienes un blog, escribe acerca de tus experiencias con el proyecto que utilizas. Habla acerca de un problema que enfrentaste utilizando el software, y cómo lo solucionaste. Estarás ayudando a otros de dos maneras: manteniendo el proyecto en la mente de aquellos que te rodean, y creando un registro para cualquiera que tenga el mismo problema en el futuro, y busque en la web la respuesta.

Mejora un sitio web: Muchos programadores son malos diseñadores gráficos, y es raro encontrar un proyecto que no necesite algo de ayuda en el departamento de diseño. Si tienes habilidades para el diseño web, y puedes ayudar a mejorar un sitio —y de tal forma la imagen pública del proyecto—, será tiempo bien invertido. Tal vez se requiera una revisión gráfica, o un logotipo para identificar al proyecto. Estas pueden ser las habilidades que hacen falta en la comunidad.

Más que nada, escucha qué es lo que discute la gente cercana a ti. Ve si puedes reconocer una necesidad urgente. Por ejemplo, recientemente en la lista de desarrolladores de Parrot, se decidió utilizar GitHub como sistema de tickets, abandonando la antigua instalación de Trac que se tenía. Algunas personas estuvieron en contra de dicho movimiento, ya que no había forma de convertir los tickets al sistema de GitHub. Luego de un día de discusiones, me involucré, y dije: «¿Qué tal si escribo un convertidor?». La gente estuvo encantada con la idea. Dediqué el tiempo necesario a escribir el programa para los más de 450 tickets, así que conservamos todo nuestro historial. Fue un gran éxito. Yo ayudé, y los desarrolladores centrales se mantuvieron enfocados en trabajar en Parrot.

Existen muchas maneras de colaborar al software libre, si miramos más allá de los pasos obvios de escribir una nueva característica para el producto. Todos los que utilizan el software libre pueden aportar con sus destrezas a la comunidad, y ayudar a mantener al código abierto como una parte vital de la computación.

Artículo original escrito por Andy Lester.

Desconectado

#2 2012-06-23 13:00:34

emegeve
Miembro
Registrado: 2012-06-23
Mensajes: 3
Sitio Web

Re: ¿Cómo contrubuir al software libre sin ser un genio programador?

También la traducción es importante. Hace que tu proyecto favorito sea usado por mas gente en el mundo.

Desconectado

#3 2012-06-29 07:36:30

OmeGa
Administrador
Registrado: 2012-05-05
Mensajes: 79

Re: ¿Cómo contrubuir al software libre sin ser un genio programador?

emegeve escribió:

También la traducción es importante. Hace que tu proyecto favorito sea usado por mas gente en el mundo.

Cierto, y en la mayoría de los casos se le presta muy poca atención.

Desconectado

#4 2012-07-21 05:44:14

Aber
Miembro
Registrado: 2012-07-21
Mensajes: 30

Re: ¿Cómo contrubuir al software libre sin ser un genio programador?

exelente informacion!!!  smile

siempre escucho a gente decir que no pueden contribuir por que no son progamadores pero esto te demuestra que es nada mas falta de conocimiento y ganas de participar..

Desconectado

#5 2012-07-21 08:09:13

DiegoCh
Moderador
Registrado: 2012-05-06
Mensajes: 95
Sitio Web

Re: ¿Cómo contrubuir al software libre sin ser un genio programador?

Exactamente.
Cada cual puede aportar su granito de arena. Y por pequeño que éste fuera, es muy importante para la comunidad.
Ayudar, aportar, colaborar, de la manera que sea, nos hace parte del proyecto y (sobre todo) nos hace sentir útiles, lo que no es poca cosa. wink


Diego*

Desconectado

Pie de página

Powered by FluxBB