Evitar la deuda técnica en Magento

Publicado: 2019-07-30

Según wikipedia, “la deuda técnica (también conocida como deuda de diseño o deuda de código) es un concepto en el desarrollo de software que refleja el costo implícito del retrabajo adicional causado por elegir una solución fácil (limitada) ahora en lugar de usar un mejor enfoque que tomaría más tiempo. .”

Muchos de los comerciantes con los que hemos participado en discusiones de descubrimiento de proyectos en preparación para migrar a Magento 2 se han enfrentado a una deuda técnica grave de Magento 1. La historia suele ser más o menos así..."tenemos muchas extensiones y personalizaciones de Magento 1 que se han acumulado con el tiempo... tanto que en realidad no sabemos qué extensiones se necesitan aún... y ahora cada vez que necesitamos actualizar o parchear Magento 1 lleva mucho tiempo, porque las cosas se rompen y las extensiones están desactualizadas y las personalizaciones tienen que ser actualizadas o reparadas”.

No es raro que estos comerciantes tengan costos de deuda técnica anual que son del 25 al 50 % (o más) de la construcción inicial del sitio. En el transcurso de unos pocos años, esta deuda se convierte en un factor importante en el costo total de propiedad y convierte a Magento en una solución no tan económica.

Entonces, ¿cómo pueden los comerciantes que migran ahora a Magento 2 evitar acumular toda la deuda técnica que vemos con Magento 1? A continuación se presentan algunas pautas para evitar la deuda técnica en Magento 2.

Producto Mínimo Viable (MVP)

La gran idea aquí es comenzar con los "imprescindibles", esas extensiones o personalizaciones que son absolutamente necesarias además del producto base de Magento. Recomendamos a los comerciantes que construyan un nuevo sitio con las necesidades básicas y lo lancen primero. Una vez que el sitio esté activo, recomendamos monitorear de cerca la participación de los usuarios con herramientas como Google Analytics, Hotjar (grabación de sesiones) y técnicas como las pruebas A/B. Seguir ese proceso hace posible perfeccionar las mejoras de características que realmente se necesitan y que seguramente proporcionarán un retorno de la inversión.

Hemos visto muchas extensiones instaladas en Magento 1 porque el comerciante intentaba copiar la experiencia del usuario de los sitios de comercio electrónico de mega marcas. Si bien sería bueno tener un sitio con todas las funciones de rei.com, target.com, walmart.com y amazon.com combinadas, a menudo no es práctico y todas esas funciones adicionales (extensiones) conducen a muy poco o ninguna mejora de la usabilidad y conversión del sitio. Los comerciantes medianos están mucho mejor con un enfoque minimalista (MVP) para las funciones adicionales para que puedan centrar sus esfuerzos y presupuestos en una mejor comercialización, contenido del catálogo de productos y comercialización.

Ediciones de plantilla en lugar de instalar extensiones

Supongamos que un comerciante quiere expandir por completo la navegación filtrada (comprar por funcionalidad) en Magento 2. Existen varias extensiones o temas de terceros que se pueden instalar para lograr este diseño. Sin embargo, también se pueden realizar algunas ediciones simples de CSS en la plantilla para lograr el mismo diseño. Esas ediciones de CSS tendrán un costo mucho menor de mantener con el tiempo y es posible que no necesiten actualizarse durante 5 años o más.

Entonces, para la personalización del front-end, siempre es bueno consultar primero con un desarrollador antes de usar una extensión. La personalización puede lograrse de manera mucho más eficiente simplemente editando los archivos de plantilla de Magento.

No use extensiones de plantillas de temas de terceros

Si bien puede ser tentador comprar una extensión de plantilla de tema para su interfaz de usuario frontal de Magento (es decir, de Theme Forest), el uso de una plantilla de tema puede generar una gran cantidad de deuda técnica.

Estas plantillas son extensas en el sentido de que asumen el control completo del front-end. Por lo general, son una compilación de 20 a 30 extensiones de terceros, más personalización. La mayoría, si no todo, el código para estas extensiones es desarrollado por desarrolladores de bajo costo y puede tener algunos o todos los siguientes problemas:

  • Código hinchado (cargando muchas bibliotecas de javascript innecesarias, etc.)
  • No sigue las mejores prácticas
  • Disminuye la velocidad de rendimiento
  • Conflictos de Javascript
  • No funciona correctamente con Magento ni con caché Varnish
  • Deshabilita las funciones nativas de Magento (es decir, widgets, hacer clic para obtener precio, puesta en escena de contenido, etc.

Aunque las extensiones de temas parecen contener mucho valor por todas las opciones y características que brindan, su deuda técnica casi siempre supera sus ventajas. Según nuestra experiencia, es mucho mejor adoptar un enfoque menos invasivo para la tematización del front-end. Esto se puede lograr solo haciendo ediciones de CSS y aprovechando una cantidad mínima de personalizaciones y extensiones para lograr la apariencia, la sensación y las funciones requeridas correctas.

Comprar extensiones de la misma empresa

Cuando sea posible, es una buena idea comprar extensiones de la misma compañía. Por lo general, esto garantiza la compatibilidad entre todas las extensiones que compre. Algunos de los proveedores de extensiones más importantes, como Aheadworks, tienen muchas extensiones de calidad para Magento que, por lo general, son compatibles entre sí. Entonces, si, por ejemplo, está buscando una solución de búsqueda más robusta, un control deslizante de banner héroe de la página de inicio, un blog y un agregado avanzado al carrito, puede comprar varias de sus extensiones y evitar problemas de compatibilidad que de otro modo podrían existir si comprara todo. de estas extensiones de compañías separadas.

Vete antes de instalar

    Aquí en InteractOne, nuestros desarrolladores sénior revisan la arquitectura y el código de las extensiones antes de aprobar su instalación. Es fácil para un buen desarrollador de Magento detectar una extensión de Magento de mala calidad comprobando su arquitectura y código. Hemos salvado a nuestros clientes de muchas extensiones de baja calidad a través de esta práctica. Si la extensión es de baja calidad, se la devolvemos al proveedor para obtener un reembolso.

    Limpieza interna

    La revisión y limpieza programada y periódica de un sitio de Magento es una buena práctica que puede evitar que un sitio se hinche o se vuelva inestable a medida que madura. Es una buena idea revisar todas las extensiones en uso en un sitio de Magento de forma anual o semestral para asegurarse de que las extensiones y personalizaciones antiguas no utilizadas o inestables se limpien, reparen o eliminen.

    También es importante mantenerse actualizado con las versiones de actualización de Magento y los proveedores de extensiones. Si bien no es necesario estar siempre en la versión secundaria más reciente, recomendamos nunca tener más de 2 o 3 versiones secundarias atrasadas. Mantenerse actualizado garantiza que se mantenga la seguridad y que las extensiones no se vuelvan inestables a medida que avanza la tecnología móvil y de navegador.

    Dejar que un sitio de Magento se retrase unos años en los lanzamientos puede terminar requiriendo de dos a tres veces el esfuerzo normal para actualizar, ya que las rutas de actualización antiguas no siempre son compatibles con los proveedores de extensiones. Además, el lanzamiento de un salto de actualización realmente grande puede ser casi tan complejo como la puesta en marcha de un nuevo sitio, ya que hay muchos cambios importantes para factorizar y probar.

    Si bien esta lista de recomendaciones para evitar deudas técnicas con Magento no es exhaustiva, cubre los puntos clave que deberían ayudarlo a mantener su sitio Magento 2 funcionando de manera rápida, estable y segura en los años venideros.


    Si desea analizar el estado de su sitio o está listo para migrar a Magento 2, estaremos encantados de programar una consulta inicial sin compromiso. Déjanos una nota.