Si me hubierais preguntado hace 3 meses por Drupal 8, os hubiera dicho que no tenía sentido empezar un proyecto hasta mediados de 2016 y solo lo haría antes si el proyecto es sencillo y el objetivo principal es formar al equipo en su uso. Sin embargo, en enero tuvimos que tomar la decisión de usar Drupal 8 vs Drupal 7 en dos grandes proyectos. Posiblemente dos de los proyectos más grandes que se desarrollarán con Drupal este 2016 en España: los nuevos portales de unicef.es y del Museo Thyssen-Bornemisza.
Nuestra recomendación en ambos casos fue ir a Drupal 8 (y en ello estamos…). ¿Por qué? ¿Qué tipo de proyectos creemos que tienen que ir de cabeza a Drupal 8? Los motivos son muchos, así que intentaré resumir los que creo que deben inclinar la balanza a uno u otro lado.
Desde el punto de vista de desarrollo, se han escrito ya cientos de posts sobre la idoneidad de usar Drupal 8 frente a Drupal 7. Por el estado de madurez de Drupal 8 y, sobre todo, del ecosistema de módulos contribuidos que se necesitan para construir un gran proyecto, no deja de ser un riesgo tomar esta decisión. Sin embargo, creo que se trata de una decisión correcta en el caso de grandes organizaciones que buscan implantar un nuevo CMS. Elegir Drupal 8 implica que el ciclo de vida de esta tecnología se alargará al menos 3 años más que si se elige Drupal 7, por tanto a nivel de ROI se trata de una decisión importante. Además creo que Drupal 8 se adapta mucho mejor que sus predecesores a los principales casos de uso con los que se enfrenta una gran organización, como son, entre otros:
- Omnicanalidad o publicación de contenidos en web, apps, smart tvs, APIs, etc.
- Globalización y publicación en múltiples idiomas
- Multi-sites (publicación de múltiples portales con la misma infraestructura)
Omnicanalidad y publicación multidispositivo
Por omnicanalidad hoy en día entendemos la capacidad de una marca o compañía en proveer una experiencia de usuario consistente integrando distintos canales (si esto de la omnicanalidad te suena a buzz, pásate por los post de Diego o Ujué). Por tanto, si queremos tener éxito en estos nuevos escenarios necesitamos disponer de una herramienta que nos permita crear contenidos para todos estos canales de forma consistente y dirigirnos a nuestros usuarios allá donde estén en el formato más adecuado.
Drupal 7 ya permitía la publicación de contenidos para diferentes canales, aunque a costa de implantaciones complejas basadas en módulos contribuidos.
En Drupal 8 la construcción de un API alrededor de los contenidos se convirtió en una prioridad y, gracias a ello, Drupal 8 es capaz de distribuir y obtener los contenidos en multitud de formatos, facilitando, por ejemplo, la creación de apps mobile que se alimenten de los mismos contenidos creados para el canal web.
Además con la modernización de la arquitectura técnica y el uso de las últimas tendencias en desarrollo PHP, ya no solo es que Drupal exponga fácilmente sus contenidos, sino que además la arquitectura del mismo está mucho más preparada para realizar integraciones complejas con sistemas empresariales, APIs REST, CRMs, herramientas de automatización de marketing, etc. Algo que es el pan nuestro de cada día en una implantación compleja en una gran organización.
Globalización y multiidioma
Otro de los grandes retos de una gran organización es la publicación en diferentes países e idiomas de sus contenidos. Quizás esta era la funcionalidad más compleja de resolver en un portal construido con versiones anteriores de Drupal. No quiero decir que imposible, pero seguro que si has construido un portal complejo multilingüe, sabes de lo que hablo…
En Drupal 8, el tratamiento de multiidioma se ha incluido desde el principio en core y se ha reconstruido totalmente. En Drupal 7 para resolver un proyecto multi-idioma, multi-país, multi-moneda como es el portal de formación internetAcademi.com, que construimos para ISDI, requiere de la implantación de más de 15 módulos con sus problemas e interacciones inesperadas. Sin embargo, en Drupal 8 basta con utilizar 4 módulos que están disponibles en el core. Además:
- Drupal se encuentra disponible en más de 100 idiomas.
- Todo (repito, todo) es traducible.
- Si un literal no está traducido, se dispone de una interfaz visual a disposición de los editores para traducirlo.
- La actualización y descarga de traducciones es automática.
- Y mil cosas más: https://www.drupal.org/8/multilingual
Por tanto, si lo que tienes entre manos tiene un requisito de publicación multiidioma complejo, no lo dudes, la elección es clara.
Multisite
En una gran organización o gran proyecto, la gestión de configuración es algo crítico, sobre todo si la implantación del CMS en la organización va a ser global y a medio plazo se van a construir varias decenas de portales. Todo proyecto complejo debe tener unos niveles de estabilidad y alta disponibilidad de los que dependerá el negocio. Por tanto es habitual que cualquier evolución del portal requiera el despliegue de cambios en diferentes entornos antes de su puesta en producción para testar su comportamiento.
En Drupal 8 una de las iniciativas más complejas abordadas (y quizás la más demandada) ha sido la iniciativa CMI (Configuration Management Initiative), que facilita la exportación e importación de configuraciones entre distintos entornos (desarrollo -> preproducción -> producción). Gracias a esta iniciativa todas las configuraciones del gestor son exportables a ficheros de texto (concretamente en formato YAML) que pueden ser incluidos fácilmente en un control de versiones y desplegados entre diferentes entornos. Decirlo es fácil, pero hasta ahora el mantenimiento de configuraciones y su despliegue entre entornos en grandes portales Drupal requería del uso de varios módulos (features, ctools, strongarm, …) creados para cubrir las carencias del core de Drupal 7 y el trabajo de varios desarrolladores en paralelo está muy condicionado y limitado por las carencias de Drupal en este ámbito.
Solo esta mejora compensa todos los riesgos del uso temprano de Drupal 8 si lo que tienes entre manos es un gran proyecto o una implantación global del gestor en varios portales a largo plazo. https://www.drupal.org/8/deployment
¿Y los riesgos?
Sin embargo el uso de Drupal 8 en su estado actual de implantación conlleva también una serie de riesgos que hay que mitigar y asumir dentro del ámbito del proyecto:
Migración de módulos
La construcción de un portal con Drupal implica el uso de módulos que no están incorporados en el core del producto. Estos módulos se llaman módulos contribuidos y su migración comienza normalmente cuando el producto está maduro. Actualmente se está en pleno proceso de migración de muchos de los principales módulos contribuidos que se utilizan de forma masiva en cualquier gran desarrollo Drupal. Algunos disponen de versiones beta y otros no han comenzado a desarrollarse. Esto implica que a lo largo del proyecto habrá que buscar alternativas, testar módulos no maduros y volver atrás en algunas decisiones técnicas tomadas. Por tanto, antes de arrancar un nuevo proyecto en Drupal 8 es necesario analizar los requisitos del mismo y revisar el estado de los módulos que se van a necesitar, sobre todo si estos módulos son algunos de los grandes elefantes del espacio contrib. Nosotros hicimos este análisis hace un par de meses para los proyectos que tenemos en curso (seguro que se queda obsoleto en nada, ya que el ritmo de migración de módulos está superando con creces al que se siguió con la salida de Drupal 7. Si te toca, revisa la iniciativa Contrib Tracker):
- Media (base para construir una biblioteca de recursos multimedia reutilizables), en su estado actual es usable, pero tiene algunas carencias serias desde el punto de vista de UX para los editores.
- Commerce se encuentra a varios meses de su versión lo suficientemente estable como para abordar ya un proyecto de ecommerce complejo con Drupal 8.
- Búsquedas es operativo pero no es estable al 100 %, aunque se puede usar en el estado actual para construir un gran buscador facetado.
- Organic Groups, en plena migración, si lo que tienes entre manos es un portal que requiere la creación de grupos de usuarios, con contenidos privados para el grupo, etc. esto es lo que necesitas. Sin embargo todavía está en un estado temprano de migración.
Nuestra estrategia de mitigación de este riesgo pasa por:
- Ajustar la planificación del proyecto para retrasar algunas funcionalidades que requieren de módulos en plena fase de migración (estimamos que en 3 meses gran parte de las necesidades estarán cubiertas en un porcentaje muy alto).
- Comenzar por tareas CMS y Migración de datos y aplazar en la medida de lo posible lo relacionado con multimedia y workflow de contenidos e, incluso, dejar para una segunda fase del proyecto algunas de ellas.
- Colaborar en la migración y testing de módulos contribuidos como parte del proyecto.
Experiencia en Drupal 8
El uso de una nueva tecnología implica un periodo de aprendizaje, en el caso de Drupal, la curva de aprendizaje siempre ha sido un verdadero problema. Con la llegada de Drupal 8 ha llegado la revolución, al menos en lo que a su arquitectura técnica se refiere, no así en los conceptos clave que hay detrás del gestor.
La incorporación de técnicas de programación orientada a objetos, librerías symfony, adopción de composer, etc. cambia totalmente la forma de construir proyectos en Drupal. Por tanto es necesario planificar un periodo de formación para el equipo, sobre todo si se trata de desarrolladores puros Drupal 7. El riesgo se puede mitigar con la incorporación al equipo de desarrolladores con experiencia en desarrollos a medida (symfony preferiblemente) y la inclusión de nuevas técnicas de desarrollo desacoplado para procesos transaccionales (por ejemplo AngularJS).
No obstante, las buenas noticias son que después de esa primera pendiente en la curva de aprendizaje, las nuevas técnicas de desarrollo incorporadas a Drupal 8 harán que tu equipo de desarrollo sea más rápido. Por tanto, piensa en una carrera de fondo más que en los 100 metros lisos a la hora de planificar el proyecto.
En definitiva, si lo que tienes entre manos es un proyecto que tiene alguna de las siguientes palabras: omnichannel, multiidioma, multisite… Drupal 8 es una buena elección a pesar de los riesgos identificados.
Además, si bien es cierto que la inversión inicial se incrementará de forma significativa, la vida útil del proyecto podrá alargarse varios años más que si se decide utilizar Drupal 7: la plataforma que se construya será más fácil y económica de mantener y la tecnología no será un lastre en el desarrollo de negocio digital de la compañía en los próximos años. Sobre todo a la hora de afrontar los retos que plantea la movilidad y la tendencia creciente hacia la omnicanalidad, que tantos beneficios puede aportar en la captación de clientes y en la mejora de la relación con ellos.
Johan Valencia Escobar dice:
Muchas gracias, muy buen artículo.
Estoy investigando acerca de Drupal para construir una aplicación y este artículo me ayudó mucho. Iniciare con la investigación de los posibles módulos que necesite e identificar su estado para iniciar con Drupal 8.
Alejandro Sales dice:
Muy buen artículo… Esperamos que nuestro proyecto en Drupal 8 sea un éxito!!.
DKV Seguros