Día de contribución de noviembre

Dos de las cosas que más me gustan de trabajar en Ymbra son su vocación de comunidad y sus valores. Un ejemplo de esta vocación son los llamados "días de contribución" que realizamos cada último viernes de mes. Durante estos días, cada uno de nosotros aparca momentáneamente su trabajo habitual en ymbra y la sustituye por alguna cosa de su interés que mejore la comunidad drupalera o la opensource. Pese a que hace ya mucho tiempo que esta práctica se viene realizando en la empresa, la edición de noviembre fue un poco distinta a las experiencias anteriores: en lugar de dedicar tiempo a buscar alguna cosa en la cola de issues de drupal en la que poder ayudar, esta vez nos hemos repartido en equipos de dos o tres personas para trabajar en un proyecto específico. Previamente cada uno de nosotros expresó sus intereses y expectativas y Pedro coordinó el resto proponiendo grupos equilibrados en función de lo que habíamos manifestado y proponiendo también un tema en el que poder trabajar.

En este post quiero resumir nuestra primera experiencia con este sistema, que ya adelanto, fue muy positiva.

Ramon, Rodrigo y yo mismo estuvimos trabajando en un sandbox llamado Commerce Checkout Suite que sirve para añadir panes al proceso de checkout de commerce. Actualmente existen distintos módulos contribuidos que pueden añadir nuevos panes de nodos, fieldgroups, beans, mensajes de texto, views, métodos de pago o incluso profiles, sin embargo todos ellos utilizan distintos enfoques. Commerce Checkout Suite pretende ofrecer una solución integrada y consistente que, en lugar de ser una solución monolítica, propone una API con un sistema extensible que permita añadir elementos de forma fácil.

Esta es la teoría. La práctica no es tan fácil y no se trata de algo que pueda conseguirse en un solo día, así que pasamos bastante tiempo investigando como funcionan los plugins de Ctools (encontramos información muy útil en advanced help y en esta pregunta de stackexchange) y, sobretodo, estuvimos discutiendo sobre cual sería la mejor arquitectura posible. Finalmente optamos por descartar la utilización de submódulos en favor de plugins basados en Ctools, de forma que cada plugin sea una clase distinta que extienda la clase "Commerce pane". En estos momentos el módulo todavía no es funcional, pero conseguimos tener las primeras funciones y clases que permiten leer un plugin muy básico. ¡Esto es el principio!

En lo que respecta al resto de equipo, Pako y Cristina trabajaron en esta issue de Drupal 8: Align the styling of tool tips to be more consistent with Seven  y realizaron una primera aproximación para resolver la inconsistencia de estilos en el tema de administración por defecto de Drupal 8. Incluso realizaron un patch que está a la espera de ser revisado. Modesto y Oriol trabajaron un módulo de integración de Instagram que muestre todas las imágenes que tengan el mismo hashtag que el valor de un campo específico. Empezaron a partir de Instagram Hashtag's Sandbox y al final de la mañana consiguieron una primera implementación funcional que puede encontrarse en este repo de github.

Lo cierto es que todos estamos muy contentos con los resultados obtenidos y la metodología seguida, y todos estamos de acuerdo en la importancia de trabajar en equipos y hacer peer-programming, además del hecho de que tener objetivos claros desde el principio evita tener que perder tiempo en encontrar algún tipo de trabajo en el que poder contribuir.

A nivel personal he disfrutado mucho trabajando en equipo y trabajando con desarrolladores de nivel como Ramon y Rodrigo, de quienes he podido aprender mucho (y seguiré aprendiendo más en el futuro). También me ha gustado tener un papel propositivo en algo en lo que no me hubiera atrevido ni a empezar en caso de estar solo. También creo que tener un proyecto específico garantiza cierta continuidad con futuros días de contribución, que a su vez se traduce en un mayor reto pero también en mayor implicación y motivación. Adicionalmente estoy convencido de que tan pronto como tengamos resultados, estos tendrán un impacto mayor dentro de la comunidad drupalera.