Más con Symfony

15.2. Devolviendo parte a la comunidad

Cualquier comunidad se basa en el principio de dar y recibir. Si nadie ofrece nada a la comunidad, entonces no habría nada que obtener de la comunidad y por tanto esta no existiría. Así que como vas a recibir muchas cosas de la comunidad, puede que sea una buena idea devolver una pequeña parte. ¿Cómo puedes colaborar para que la comunidad crezca y sea todavía mejor? Las siguientes secciones ofrecen algunas alternativas.

15.2.1. Los foros y las listas de correo

Como ya se ha comentado, los foros y las listas de correo son un buen lugar para obtener soporte en forma de respuestas a tus preguntas, sugerencias sobre cómo resolver los problemas o comentarios sobre cómo desarrollar un determinado elemento de tu aplicación.

A medida que utilices Symfony ganarás experiencia y podrás ayudar a otros usuarios más principiantes que tu a resolver sus problemas. Cuando ya seas un usuario avanzado de Symfony podrás resolver cualquier duda y también podrás participar en las discusiones de mas nivel. En ocasiones es suficiente con indicar a la persona el lugar en el que puede obtener la documentación que necesita leer para resolver su problema. Como seguramente ya estás suscrito a las listas de correo, no dudes en compartir tu experiencia con Symfony porque se trata de un pequeño esfuerzo que ayuda mucho a otras personas.

15.2.2. IRC

La comunicación más directa con Symfony es el canal IRC, donde puedes echar un vistazo de vez en cuando para ver si se han planteado preguntas en las que puedes echar una mano.

La mayoría de usuarios del canal #symfony no están pendientes continuamente de lo que se escribe, sino que aprovechan los pequeños descansos de su trabajo para comprobar las conversaciones del IRC. Si te encuentras en el IRC, aunque no estés pendiente de el todo el rato, permite a los demás usuarios dirigirte mensajes personalmente utilizando tu nick. La mayoría de clientes de IRC te avisan cuando alguien te escribe directamente un mensaje, para que no se te olvide responderle. Así que aunque no estés muy activo en el canal IRC, te aconsejamos que estés presente para que puedas ayudar a los demás usuarios.

15.2.3. Aportando código

Aportar código al proyecto es seguramente la forma más fácil de colaborar para la mayoría de usuarios de Symfony. Como todos los usuarios de Symfony son programadores, se trata además de la forma más divertida de devolver algo a la comunidad. Existen diferentes formas de aportar código, tal y como se explica en las siguientes secciones.

15.2.3.1. Parches para el núcleo de Symfony

En ocasiones es posible que al utilizar Symfony descubras un error o alguna carencia dentro de las funcionalidades del framework. No es recomendable parchear el código fuente del framework porque luego se producirán problemas al actualizar Symfony. Además, si descubres un error es aconsejable avisar a los creadores del framework. ¿Cómo se puede hacer?

En primer lugar, modifica los archivos del código fuente de Symfony para corregir el error o para incluir la funcionalidad deseada. A continuación, si los cambios se han realizado en una versión de Symfony instalada mediante Subversion, ejecuta el comando diff para crear un parche con los cambios realizados en el código de Symfony. Si utilizas Subversion, debes ejecutar el siguiente comando:

$ svn diff > mi_parche.patch

Este comando se debe ejecutar en el directorio raíz donde se descargó Symfony, para asegurar que cualquier cambio realizado en su código fuente tenga reflejo en el parche.

El siguiente paso consiste en acceder al bugtracker de Symfony y crear un nuevo ticket. Al crear el ticket, no olvides rellenar todos los campos posibles, para facilitar a los programadores de Symfony la reproducción del error o la detección de las partes que han sido modificadas.

En la opción "Ticket Properties" asegúrate de seleccionar la versión correcta de Symfony para la que se ha creado el parche. Además, siempre que sea posible, selecciona el componente de Symfony que se verá afectado por el parche. Si existen varios componentes afectados, selecciona el componente más afectado de todos y no olvides mencionar en el campo "Full Description" el nombre de los otros componentes afectados.

No olvides que el campo "Short Summary" debe contener el prefijo [PATCH] cuando el ticket tiene un parche adjunto. Al final del formulario puedes activar el checkbox que permite adjuntar el parche al ticket.

15.2.3.2. Creando plugins

No todos los programadores tienen los conocimientos suficientes como para modificar el núcleo de Symfony. Sin embargo, los usuarios de Symfony trabajan en proyectos que contienen funcionalidades propias. Algunas de estas funcionalidades son muy específicas del proyecto, pero otras pueden ser muy útiles para otros usuarios y proyectos.

Una buena práctica consiste en colocar la mayor cantidad posible de la lógica de la aplicación dentro de plugins, de forma que se pueda reutilizar posteriormente con facilidad, al menos de forma interna en la empresa. Si además quieres ayudar a la comunidad, también puedes publicar el plugin como software libre para que cualquier miembro de la comunidad pueda utilizarlo.

Crear un plugin público es muy sencillo. Puedes leer la documentación sobre cómo crear un plugin y subirlo al sitio web de Symfony, que dispone de varias herramientas de publicación mediante Subversion o mediante el canal de plugins del servidor de Symfony. Si vas a publicar un plugin esta es la forma recomendada de hacerlo, en vez de publicarlo en tu propio servidor de Subversion o a través de tus canales PEAR.

15.2.4. Documentación

Uno de los puntos fuertes de Symfony es su documentación. Los propios creadores de Symfony han escrito un montón de documentación sobre cómo utilizar Symfony, pero gran parte de la documentación también es debida a la comunidad. Se han desarrollado incluso proyectos conjuntos entre los creadores de Symfony y la comunidad de usuarios, como por ejemplo el tutorial Jobeet. La documentación siempre ayuda a los programadores novatos y sirve como referencia de consulta para los programadores más avanzados. ¿Cómo puedes ayudar a crear documentación?

15.2.4.1. Escribiendo en tu propio blog

Compartir tu conocimiento y tus propias experiencias con Symfony es muy importante para la comunidad, sobre todo cuando resuelves algún problema complicado. De esta forma, los usuarios que tienen el mismo problema pueden encontrar tu blog mediante los buscadores.

Así que cuando escribas un post en tu blog no hace falta que sea una introducción genérica sobre Symfony (que también lo puede ser), sino que puede ser sobre tus experiencias con el framework, las soluciones a los problemas que te has encontrado al trabajar en algún proyecto o alguna nueva característica recién presentada por Symfony.

Si escribes sobre Symfony, no olvides añadir tu blog en la lista oficial de blogueros de Symfony. Los contenidos de todos estos blogs están sindicados en la página de la comunidad Symfony. Para que tu blog sea incluido en la lista debe disponer de un canal RSS que incluya solamente artículos sobre Symfony. Por el momento sólo se admiten blogs, así que tampoco incluyas el canal RSS de tu cuenta de Twitter.

15.2.4.2. Escribir artículos

Las personas más acostumbradas a escribir pueden ir un paso más allá, ya que existen multitud de revistas dedicadas a PHP a las que puedes proponer la publicación de algún artículo. Normalmente estos artículos son más avanzados, mejor estructurados y tienen una calidad mayor que los artículos de un blog, pero también son leídos por muchísima más gente.

Cada revista define su propia política para aceptar artículos, así que comprueba sus normas en su propio sitio web para conocer los pasos que hay que dar hasta la publicación del artículo.

Además de las revistas, también se puede publicar artículos en los sitios web de los grupos de usuarios de PHP o de Symfony y en los sitios web genéricos dedicados al desarrollo web.

15.2.4.3. Traduciendo documentación

La mayoría de programadores PHP son capaces de entender la documentación en inglés, aunque para algunas personas resulta complicado leer tanta documentación técnica en un idioma en el que no son nativos. Symfony fomenta la traducción de la documentación y la facilita proporcionando a los traductores el acceso completo al repositorio de documentación. Además, Symfony publica todas las traducciones en el sitio web oficial.

La traducción de la documentación se discute y coordina mediante la lista de correo symfony-docs. Si quieres ayudar a traducir la documentación a tu idioma, este es el primer lugar al que deberías acudir, ya que es probable que debas coordinarte con el resto de traductores de tu idioma.

15.2.4.4. Aportar contenido al wiki

Un wiki es la forma más libre y abierta de crear documentación. Symfony dispone de un wiki en el que cualquiera puede aportar documentación. Además de añadir nuevos contenidos, también puedes modificar o corregir los contenidos existentes. Una de las tareas más útiles consiste en limpiar todos los contenidos que han quedado obsoletos, de forma que la gente que busque información siempre encuentre contenidos relevantes.

Si quieres conocer los contenidos que ya están incluídos dentro del wiki, puedes visitar la página principal del wiki de Symfony.

15.2.5. Presentaciones

Otra bena forma de compartir tus conocimientos y tu experiencia es a través de las presentaciones. Puedes realizar presentaciones muy diferentes en función de la situación:

  • En conferencias de PHP o Symfony
  • En reuniones de un grupo de usuarios de PHP o Symfony
  • En tu propia empresa (dirigida a tus compañeros de trabajo)
  • En tu propia empresa (dirigida a tus jefes)

Adaptar los contenidos de tu presentación es esencial, ya que mientras a tus jefes no les importan los detalles técnicos, a los asistentes a una conferencia de Symfony no les interesa una introducción básica del framework.

Si necesitas ayuda para preparar la presentación, no dudes en consultar a la lista de correo de la comunidad de Symfony, donde encontrarás ponentes con mucha experiencia y visitantes asiduos a conferencias técnicas. Si no sabes dónde realizar una presentación, en el grupo se suelen publicar los "Call for Papers" de las próximas conferencias.

15.2.6. Organizar un evento

Además de realizar presentaciones en eventos y conferencias, tu también puedes organizar tu propio evento, sea grande o pequeño. Incluso es posible organizarlo como parte de otro evento existente.

Un ejemplo de este mismo caso fue la celebración de una reunión sobre Symfony dentro de la conferencia PHPNW en 2008. Todo comenzó en el Twitter y el IRC de la conferencia, donde los usuarios de Symfony preguntaba por las novedades de la entonces futura versión 1.2 de Symfony. La organización preparó una sala en la que se pudieron reunir de forma improvisada todos los usuarios interesados en Symfony 1.2.

Otros buenos ejemplos de eventos y conferencias organizados por la comunidad son SymfonyCamp y SymfonyDay Cologne. Las dos conferencias fueron organizadas por empresas dedicadas al desarrollo con PHP y que quieren devolver algo a la comunidad. Las conferencias fueron un éxito tanto de público como de organización y de contenidos impartidos.

15.2.7. Muévete en tu propio entorno

Como se mencionó anteriormente, no todas las personas son capaces de entender la documentación técnica en inglés. Además, en ocasiones es mejor hablar de Symfony en persona en vez de a través de Internet. Por esta razón han surgido multitud de grupos locales de usuarios de Symfony por todo el mundo. Muchos de ellos ya han organizado quedadas para todos aquellos interesados en Symfony o en conocer a otros programadores del framework. Estos eventos son gratuitos, informales y organizados completamente por la comunidad.

La lista de correo symfony-community o la lista symfony-es son un buen punto de partida para buscar grupos locales de usuarios en tu ciudad, así como para crear tu propio grupo. Puedes contar co la ayuda de otros miembros de la comunidad que ya han creado sus propios grupos de usuarios.

Además de las actividades organizadas de forma física, también puedes fomentar el uso de Symfony en tu país o región a través de Internet. Una buena idea puede ser crear un portal local sobre Symfony, como por ejemplo el portal de Symfony en español, que publica noticias sobre lo que sucede en el mundo de Symfony. También publica una gran cantidad de documentación, por lo que se trata de un recurso imprescindible para que los programadores de Symfony que hablan español aprendan y estén al día de todo lo que acontece alrededor de Symfony.

15.2.8. Formar parte del equipo de desarrollo de Symfony

El propio equipo que desarrolla Symfony también es parte de la comunidad. De hecho, todos ellos comenzaron como usuarios normales del framework y debido a su compromiso con Symfony se han convertido en miembros oficiales del equipo de desarrolladores. Symfony es un proyecto meritocrático, lo que significa que si demuestras lo bueno que eres, puedes llegar a formar parte del equipo oficial de desarrollo de Symfony.

Un buen ejemplo de ello es la incorporación de Bernhard Schussek. Bernhard se unió al equipo de desarrollo después de su excelente trabajo con la nueva versión del framework de pruebas Lime y después de enviar decenas de parches durante un gran periodo de tiempo.

15.2.9. ¿Por dónde empiezo?

Ahora que ya sabes todo lo que puedes obtener de la comunidad y cómo puedes contribuir, vamos a resumir de forma breve los puntos de partida más utiles para convertirse en un miembro activo de la comunidad de Symfony.

15.2.9.1. Lista de correo de la comunidad de Symfony

La lista de correo symfony-community es es lugar en el que los miembros de la comunidad discuten ideas sobre actividades futuras, se ofrecen como voluntarios en las actividades actuales y comparten cualquier otra idea o comentario sobre la comunidad.

Si quieres unirte a alguna de estas actividades, simplemente responde a la discusión surgida en torno a ella. Si tienes alguna nueva idea que pueda ser útil para la comunidad de Symfony, compártela en esta lista. Si tienes preguntas sobre la comunidad o sobre las diferentes formas de comunicarse con la comunidad, este también es el lugar adecuado.

15.2.9.2. La página "How to contribute to symfony"

Symfony dispone desde hace mucho tiempo de una página en su wiki titulada How to contribute to symfony. Esta página contiene un listado de todas las formas en las que puedes ayudar al proyecto Symfony y a la comunidad en función de tus conocimientos y habilidades. Se trata de una lectura obligada para cualquiera que quiera formar parte activa de la comunidad Symfony.

15.2.10. Comunidades externas

Además de todas las iniciativas comentadas anteriormente, existen muchas otras iniciativas creadas por la propia comunidad de Symfony en todo el mundo. A continuación se explican dos de las iniciativas más útiles para los usuarios de Symfony.

15.2.10.1. Symfonians

La comunidad Symfonians es una comunidad que conecta a las personas y empresas que utilizan Symfony para desarrollar sus proyectos. El sitio también permite a las empresas la publicación de ofertas de trabajo y permite buscar proyectos, empresas y personas en función de cada país.

Además de que es un sitio muy útil para estar en contacto con otros usuarios de Symfony, el directorio de aplicaciones es un buen recurso para conocer todo lo que puedes hacer con Symfony. Existe una enorme variedad de aplicaciones listadas en symfonians.net, por lo que te recomendamos que les eches un vistazo para comprobar lo que otros programadores de Symfony están haciendo con el framework.

Como todos los contenidos del sitio son creados por la comunidad, puedes crear tu propio perfil o el de tu empresa para añadir todas las aplicaciones que has desarrollado y para publicar ofertas de trabajo.

15.2.10.2. Grupo de Symfony en LinkedIn

Probablemente, todos los programadores profesionales de PHP conocen el sitio web LinkedIn e incluso disponen de su propio perfil. Para los que todavía no lo conozcan, LinkedIn es una red social profesional con la que puedes crear y mantener una red de contactos profesionales.

LinkedIn también dispone de grupos, donde se reúnen los usuarios con intereses afines, permitiendo la publicación de noticias, opiniones y la celebración de discusiones. LinkedIn también dispone de un grupo de Symfony en el que se pueden discutir asuntos relacionados con Symfony, se pueden seguir noticias relacionadas con Symfony y también se pueden publicar ofertas de trabajo para programadores, formadores, consultores y arquitectos de Symfony.