Con frecuencia nos encontramos con la necesidad de generar un sistema, sitio web, tienda eCommerce o aplicación y solicitamos a expertos que nos recomienden sobre la solución a implementar. Las propuestas y alternativas suelen ser múltiples, y ahí es donde caemos en la encrucijada. Algunas seguramente se basan en la implementación de un administrador de contenidos (CMS) existente, como por ejemplo el tan famoso y popular WordPress, o montar una tienda eCommerce sobre Magento, Prestashop o incluso WooCommerce (basado en WordPress), mientras que otras propuestas ofrecen una implementación personalizada, a través de programación a medida de los requerimientos exactos del proyecto.
En teoría, utilizar un CMS debería agilizar los tiempos de implementación y brindarnos estandarización (cualquier experto que conozca el CMS debería ser capaz de trabajar en nuestro proyecto) ya que implementarlo requiere seguir las reglas y formas que requiere, pero también nos puede imponer ciertas condiciones que no siempre son aceptables.
Entonces, ¿cuando conviene tomar un CMS existente y cuando construir un sistema propietario? Para poder responder a esta pregunta es necesario analizar con mucho cuidado el grado de personalización que se desea obtener. No olvidemos que si bien existen infinidad de plugins y módulos para incluso implementar una red social, WordPress nació como una plataforma para generar y administrar contenido editorial y blogs, y gracias a su excelencia en arquitectura, es posible extender su funcionamiento por medio del uso de componentes desarrollados por terceros. Pero es importante notar, que depender de muchos componentes de terceros puede ir en detrimento de la estabilidad de nuestro sitio web, ya que nada ni nadie nos garantiza que estos componentes sean compatibles con las nuevas versiones que surjan del CMS, o que se actualicen con la misma celeridad.
Como muchos ya saben, los CMS son plataformas de código abierto (Open Source) y se basan en la utilización de templates o plantillas, para la aplicación del estilo visual del sitio web. La pregunta que deberiamos hacernos es: ¿Existe una plantilla o template que cumpla con todos nuestros requisitos? Si no existe, siempre se puede personalizar o extender, pero esto nos lleva a la segunda pregunta: ¿Cuántas modificaciones necesitamos hacer para personalizar nuestro CMS? Por lo general, cuando el grado de personalización es muy alto, en ocasiones pierde sentido el uso de un CMS porque son tantas las modificaciones que se requieren que el esfuerzo en implementarlo se traduce en costos y tiempos más altos que una programación a medida.
No existe una regla general, pero a veces tener muchas exigencias sobre un CMS puede causar que pierda sentido su utilización. Ahora bien, debemos entender que una programación a medida implica un trabajo más laborioso y detallista y conlleva otro tipo de riesgos. Lo que ganamos en flexibilidad lo podemos perder en estandarización, y esto es una realidad porque en el mundo de la programación no existe una única forma de hacer las cosas. Los programadores son a menudo mañosos y trabajar con soluciones personalizadas puede causar que al cambiar de proveedor nos encontremos con la situación de que el nuevo no puede hacerse cargo del código existente. Para remediar esta situación es que existen los frameworks de desarrollo.
Un framework de desarrollo es un conjunto de herramientas y características que brindan un marco de referencia, estandares y políticas para realizar las tareas más frecuentes y librerías de funcionalidades listas para utilizar (envío de emails, validaciones de formularios, tratamiento de imágenes, etc.). Análogamente con los CMS, los frameworks permiten acortar la brecha que puede haber entre programadores, ofreciendo estandarización, reutilización de código y cobertura. Existe una gran variedad de frameworks, cada uno con sus ventajas y desventajas, y por supuesto depende también del tipo de lenguaje que se desee utilizar. Por ejemplo, si utilizaramos lenguaje PHP, entre los más populares se encuentran Symfony (https://symfony.com), Laravel (https://laravel.com/), Code Igniter (https://www.codeigniter.com).
En resumen, no existe una regla clara y definida que podamos seguir al pie de la letra, pero siempre debemos preguntarnos qué esperamos ganar de la plataforma a elegir y si estamos dispuestos a relegar o adaptarnos a los requisitos que nos imponga. En caso de decidir una solución totalmente personalizada, es altamente recomendable analizar el mercado y basar nuestra solución en alguno de los excelentes frameworks de desarrollo existentes, para no caer en el error de terminar reinventando la rueda y limitar la flexibilidad y escalabilidad de nuestra solución.
Si luego de leer esto te quedaron dudas a consultas, escribinos! Podemos asesorarte para que, entre ambos, encontremos la solución ideal para tu negocio. info@id4you.com