Las implicaciones de usar un CMS
Hace años que existen en el mercado diferentes sistemas CMS (Content Management System) cuya finalidad es la de facilitar la tarea de construir portales de internet y otro tipo de webs. Este tipo de herramienta permite la creación de una web en cuestión de horas pero como cabe esperar tiene sus inconvenientes.
A diferencia de lo que se cree comunmente sobre que un CMS te permite crear cualquier tipo de website, los CMSs son sistemas creados por grupos de personas para cubrir necesidades específicas. Esto quiere decir que un CMS concreto no es la solución ideal para cualquier proyecto web, de hecho esta debe ser una de las razones por las que hay cada vez más y en distintos lenguajes de programación.
Drupal, Joomla, Plone, PHP-Nuke, OpenCMS, WordPress y así hasta la saciedad. Creo que hay casi tantos CMS como equipos de desarrolladores web y esto es por una razón muy simple, porque es muy dificil que un CMS cubra las necesidades de tu proyecto a no ser que este proyecto coincida en un 98% con las características del CMS que has escogido. Esto nos lleva claramente a la conclusión de que al menos deberíamos de controlar 2 o 3 CMS para tener un abanico de posibilidades que cubra la mayoría de casos.
Claro que controlar un CMS no significa saber seguir las instrucciones del README o el INSTALL para instalarlo, bajarse un par de temas de internet, cambiarles dos colores y ya tenemos un super proyecto nuevo. No, controlar un CMS significa conocer las APIs, saber cómo se ha de crear un tema en concreto para él, saber como hacer plugins, etc. Esto quiere decir que tenemos que aprender un montón de cosas que luego vamos a tener que ir refrescando cada dos por tres a medida que el equipo que desarrolla el CMS que hayamos escogido va cambiando cosas, actualizando versiones, etc.
Desgraciadamente el problema no solo está en aprenderse todo lo anterior y luego seguir poniéndose al dia. En ocasiones te vas a encontrar que la nueva versión trae algún cambio importante que no es compatible para atrás con las anteriores versiones del CMS y te encuentras en la tesitura de que o metes horas extras para que tu proyecto siga funcionando al actualizar la versión del CMS o no actualizas a la nueva versión. ¿Quién se arriesga a no actualizar a la nueva versión? Teniendo en cuenta que las actualizaciones suelen traer importantes mejoras de seguridad creo que nadie se arriesga. Al estar online necesitas tener tu CMS bien parcheadito con todos los bugfixes de seguridad si no quieres encontrarte desagradables sorpresas.
Entonces llegamos a la conclusión de que tu has escogido usar un CMS porque en principio te permite ahorrarte un montón de horas de trabajo y porque se supone que para hacer un proyecto con él no necesitas un gurú del teclado y la red. Craso error porque si tu proyecto requiere alguna funcionalidad que no está pensada en el CMS o encuentras un plugin o vas a necesitar un experto en el CMS para ajustar esas diferencias. Lo mismo para poder hacer un buen look&feel personalizado, etc. De hecho cuantas porquerías de webs vemos a diario porque gente poco capacitada a dicho: “¡Corcholis! Si con el CMS este hago páginas como churros como el mejor”.
Creo que deberías plantearte si realmente te merece la pena invertir todas esas horas de tu tiempo para ahorcarte a la manera que le viene bien a otro porque eso es lo que estás haciendo en realidad. Invertir mucho tiempo para ahorcarte como quiere el grupo que desarrolla el CMS que hayas escogido. De hecho esta es otra razón por la que debe de haber tantos CMS, porque ya que te vas a ahorcar que sea a tu manera, ¿no?









Resulta que te empece a escribir un comentario, y como ya era casi tan largo como el articulo preferí poner la respuesta en nuestro blog, y al final lo hice un poco más larga aún, y es que cuando se tocan las fibras sensibles….
http://www.yafaonline.com/portal/joomla/joomla-noticias/cms-o-desarrollo-web-personalizado.html
Como pongo allí para mi lo importante es tener claro el proyecto al que te vas a enfrentar, y para proyectos pequeños no me parece adecuado afrontarlos desde desarrollos personalizados por el coste, y para proyectos de cualquier tamaño pueden ser desaconsejables porque haces al cliente dependiente de tu solución.
Pero tanto el desarrollo con CMS como el personalizado tienen su hueco en el mercado, y el producto final se va a ajustar a lo que necesita el cliente si los desarrolladores en ambos casos son profesionales.
Voy contestando tu post respuesta
Primero yo no estoy en contra de los CMS Open Source como parece indicar tu respuesta, de hecho este blog, utiliza uno. Segundo este post no está hecho desde la perspectiva del cliente o el usuario final sino desde la del desarrollador. Al cliente le interesa que su aplicación web haga lo que debe y lo haga rápido, bien y con la mejor relación calidad precio posible. Por lo tanto, dependiendo de sus necesidades, será mejor un blog en WP, un site en Drupal o algo totalmente diferente. Hay infinitas opciones de lenguajes, CMS, frameworks, etc.
Con respecto a lo que comentas de las actualizaciones, es cierto que todos deben actualizarse y arreglar los bugs. La diferencia es que si el equipo de desarrollo de un CMS decide que para mostrar enlaces en lugar de utilizar la función showLinks() se cambie, en la nueva versión, a displayLinks() tu vas a tener que cambiar todos esos showLinks() que funcionaban perfectamente a displayLinks() si quieres actualizarte. Si tienes que hacer eso o pierdes pasta tu, que lo dudo, o le cargas las horas de trabajo al cliente por lo que la pierde él.
En lo que se refiere a que si una solución personalizada encierra al cliente en tu plataforma eso es una barbaridad. Si quieres encerrar al cliente con poner una licencia no open source a tu trabajo es suficiente pero si tu desarrollo tiene una licencia open source es igual de fácil o difícil modificar algo hecho con un CMS que hecho sin el CMS. Si sabes, por ejemplo, PHP, ¿qué te impide modificar algo que se ha hecho con PHP?
Sinceramente creo que tu no es que no estés deacuerdo conmigo sino que has entendido mal este post. Me da la sensación de que lo has entendido como un ataque a los que utilizan un CMS en sus desarrollos cuando la intención es que los que precisamente utilizan casi exclusivamente un CMS se den cuenta de algunas implicaciones que no siempre saltan a la vista.
Tu tienes más experiencia que yo en el desarrollo web, sobre todo en soluciones personalizadas, así que sabrás mejor si para el cliente puede suponerle un amarre al equipo de desarrollo inicial, pero para desarrollos complejos no estoy tan seguro de que para un equipo de desarrollo nuevo le sea fácil continuar el desarrollo de otro, especialmente porque normalmente no tendrá ningún tipo de documentación.
Y como pequeña empresa de desarrollo web, en este momento no veo otra posibilidad que no sea la de utilizar diferentes CMS para el trabajo diario, para desarrollos personalizados hace falta equipos más especializados y normalmente más grandes.
Y si, de acuerdo en que no pude entender bien el matíz de tu articulo, es un problema que tiene a veces el lenguaje escrito, pero gracias a esto comentarios todo aclarado
Los equipos nuevos que tengan que meter mano a un desarrollo personalizado que utiliza un CMS tienen los mismos problemas porque normalmente habrá bastantes plugins o módulos a medida que muy probablemente no traigan documentación por lo que no te queda otra que leer código.
En cuanto a los tamaños de equipos de desarrollo todo depende del desarrollo. Si tu haces el sistema web de La Caixa necesitarás un equipo grande tanto si usas un CMS opensource como si no lo usas porque la envergadura del proyecto lo requiere así. De hecho las implicaciones que comento se hacen patentes cuanto más necesites personalizar el proyecto.
La verdad que he comprobado que usar un CMS no siempre es una buena solución, Cuando yo empezé a programar en php mi meta era crear un cms, pero transcurridos dos meses me llevé una gran desilusión al enterareme de los cms open sourse, ya que me quitaron el sueño de crear un poderoso cms que me permita tener algo propio y exclusivo que pueda usar en todos mis desarrollos web.
Así que cedí a la tendencia y empezé a usar Joomla y Wordpress. Pasado el tiempo algunos clientes me pedían que sus web site tengan caracteristicas especificas que los cms no tenían, asi que buscaba en internet open source que me permitan obtener el plugin que el cliente me pedia, pero no me gustaba la idea sw modificar el diseño y funcionalidades, porque se vuelve engorroso ya que tal open source esta creado por un desarrollador “X” que no conocemos.
Por ahora sigo trabajando con Cms open source, pero a la vez vengo programando uno en PHP, el cual usaré en futuros proyectos en proporción a su complejidad. Con el tiempo espero dejar los cms, y “pasearme” haciendo web sites con mi propio cms el cual entenderé muy bien.
Aún falta mucho para lograr por la comunidad mundial el CMS “soñado”, y mientras eso suceda, me parece que lo mejor es usar las herramientas de acuerdo a la exigencia del cliente, osea a veces cms, aveces desarrollo personalizado.
Como dejo caer en el post, la mayoría piensa como tu y es por eso que hay tantos CMS. Porque cada uno, al final, necesita el suyo que le permita hacer lo que necesita sin tener que estar “ahorcándose a la manera de otro”.
La verdad me recuerdas al pibe de anfraf http://www.anfraf.com.ar que opta por el uso de codigo nativo pero yo uso cms por que no puedo aprender php por falta economica la teoria la se pero llevarla a la practica no es tan simple.
creo quien disponga del tiempo dinero y ganas de trabajar puede modificar su cms a corde con sus necesidades el mas simple de todos es drupal wordpress. joomla pesa 10mb y programar un componete es una tarea dificil.