Hacer las preguntas adecuadas ayuda tanto a los dueños de tiendas como a los desarrolladores a tomar decisiones adecuadas.
Partiendo de estas 2 preguntas fui hilando algunas ideas para tratar de ir más allá de lo obvio.
Lo obvio sería, en este caso, que mantener el software actualizado implicaría beneficiarse de las mejoras de rendimiento, calidad y seguridad. (aunque sabemos que en el universo Magento esto no siempre es 100% así 🙂 )
Algo un poco menos obvio es que el costo y los riesgos que se corren son mucho menores cuando el salto entre versiones es poco.
Generalmente las empresas que dejan pasar mucho tiempo (años!!) sin actualizar la plataforma el día que por el motivo que sea ya no tienen opción se encuentran en muchos casos con presupuestos tan abultados que los llevan a pensar en migrar a otra plataforma.
Lo que es menos obvio es que es una manera de evaluar al proveedor que ha hecho el desarrollo.
En los desarrollos “sanos” la actualización de la plataforma no debería ser un problema de mayor calibre.
De hecho un desarrollo “bien hecho” es aquel que también tiene en cuenta que la plataforma debe poderse actualizar fácilmente. Que en el caso de Magento es bastante seguido.
Por tanto, la dificultad para actualizar la versión pone en evidencia las falencias (o los aciertos) de desarrollo en cuanto a incorporación de código legacy, personalizaciones, acoplamiento, mala elección en proveedor de extensiones de terceros, cantidad de extensiones de terceros, integraciones, desarrollo de frontend y buenas prácticas en general.
Esto quiere decir que siempre debería ser fácil actualizar la plataforma?
No necesariamente, un proyecto puede dar más o menos trabajo, pero algo es seguro, la actualización en un proyecto bien hecho se completará en forma segura y no terminará siendo un dolor de cabeza mayor que los problemas que motivaron la actualización.
En mi experiencia en el 90% de los casos (cifra incomprobable pero que da una idea de abrumadora mayoría) los problemas a la hora de actualizar derivan de proyectos con falencias en el desarrollo y no de la complejidad del proyecto.
Desde el punto de vista de las agencias de desarrollo mi opinión es que deberían prestar especial atención a estos temas y activamente alentar a sus clientes a actualizar la plataforma (subsidiando los costos, ofrecer como servicio postventa, etc) ya que una plataforma que no se actualiza termina siendo obsoleta en poco tiempo.
Con el paso del tiempo la obsolescencia hace que los costos de evolucionar la plataforma suban, y se entra en un círculo vicioso donde la falta de evolución acentúa los problemas que termina desgastando la relación y la pérdida del cliente o en el mejor de los casos un cliente que solo solicita algún ajuste puntual eventualmente.
Hoy por hoy la oferta de plataformas para tiendas de comercio electrónico es amplia y variada y Magento se percibe como una plataforma “compleja”. Las malas prácticas solo hacen crecer esta percepción.
Magento tiene grandes ventajas sobre la mayoría de las plataformas para cierto tipo de proyectos, pero se acabó el tiempo donde era líder único e indiscutible.
En tiempos de incertidumbre económica y variedad de competidores la cantidad de proyectos nuevos ha caído drásticamente por tanto debería ser una prioridad estratégica mantener vivos y saludables los proyectos.
Adobe permanentemente saca pequeñas actualizaciones de seguridad y calidad, varias veces al año versiones de seguridad (security patch release) y una vez por año una nueva release, oportunidades para hacer actualizaciones nunca faltaran…