Desmitificando el sueño: por qué el verdadero desarrollo basado en código fuente en Salesforce sigue siendo un mito
En este revelador artículo de blog, exploramos los desafíos de implementar un verdadero desarrollo basado en código fuente (SDD) en el ecosistema de Salesforce.
Por Randalyn Hill-Coffer·Revisado por el equipo de Blue Canvas··4 min de lectura
El desarrollo basado en código fuente (SDD) se ha convertido en un estándar de referencia en la ingeniería de software moderna, con la promesa de mejorar la colaboración, el control de versiones y la consistencia de las implementaciones. Sin embargo, en el ecosistema de Salesforce, lograr un verdadero SDD sigue siendo un objetivo difícil de alcanzar. Este artículo de blog profundiza en las razones detrás de este desafío y explora los aspectos únicos de la arquitectura y el modelo de desarrollo de Salesforce que hacen que implementar SDD sea una tarea compleja. Conclusiones clave:
- La naturaleza de Salesforce, basada en metadatos, crea obstáculos para las prácticas tradicionales de SDD.
- La combinación de desarrollo declarativo y programático de la plataforma complica los esfuerzos de control de versiones.
- Las inconsistencias en los metadatos y la falta de integridad transaccional en los cambios dificultan una implementación fluida del SDD.
- Aunque son útiles, herramientas como Salesforce DX no cierran por completo la brecha hacia un verdadero SDD para todos los usuarios.
- Existen soluciones alternativas, como la implementación parcial del SDD y herramientas de terceros como Blue Canvas, Gearset y Copado.
- El futuro del SDD en Salesforce sigue siendo incierto, con mejoras continuas en la plataforma que deben equilibrarse con la necesidad de mantener su atractivo de bajo código.
- Las organizaciones pueden adoptar un enfoque gradual del SDD, centrándose en componentes basados en código mientras exploran soluciones para los elementos declarativos.
Estos puntos clave ofrecen una guía para comprender los desafíos y las posibles soluciones al buscar un desarrollo basado en código fuente dentro del ecosistema de Salesforce.
El atractivo del desarrollo basado en código fuente (SDD) ha cautivado a la industria del software con la promesa de una colaboración más ágil, control de versiones y consistencia en los despliegues. Sin embargo, a pesar de los esfuerzos de Salesforce por fomentar el SDD mediante iniciativas como Salesforce DX, el verdadero desarrollo basado en código fuente sigue siendo difícil de alcanzar en esta plataforma por varias razones.
¿Qué es el desarrollo basado en código fuente?
El desarrollo basado en código fuente consiste en gestionar y dar seguimiento a los cambios de código y configuración mediante sistemas de control de versiones como Git. En las plataformas de software tradicionales, el SDD funciona sin problemas, ya que toda la aplicación suele estar basada principalmente en código. Los desarrolladores pueden dar seguimiento a los cambios, colaborar y mantener una única fuente de verdad en sus repositorios con facilidad.
El ecosistema de Salesforce
La arquitectura única de Salesforce plantea desafíos para implementar un verdadero SDD. La naturaleza de la plataforma, basada en metadatos, y su combinación de desarrollo declarativo (mediante clics) y programático (mediante código) crean un entorno complejo. Aunque Salesforce DX busca facilitar el SDD, requiere que los usuarios dominen la interfaz de línea de comandos y Visual Studio Code, herramientas que muchos administradores y desarrolladores declarativos consideran difíciles de usar.
Desafíos del verdadero desarrollo basado en código fuente en Salesforce
Inconsistencias en los metadatos
La API de metadatos de Salesforce no siempre representa por completo el estado de la plataforma, lo que genera inconsistencias entre distintos entornos. Cada operación de extracción puede producir resultados diferentes debido a cambios en el orden de los elementos XML o a paquetes SiteDotCom cifrados.
Falta de integridad transaccional
Los cambios en Salesforce a menudo no son atómicos, lo que genera discrepancias entre el control de versiones y los cambios desplegados.
Configuración vs. código
Gran parte de la personalización de Salesforce se realiza mediante configuración en lugar de código, lo que dificulta su seguimiento mediante el control de versiones. Algunas configuraciones no se pueden exportar o importar por completo mediante metadatos.
El desafío del desarrollo con distintos perfiles: involucrar tanto a administradores como a desarrolladores en un único flujo de trabajo de SDD puede ser complejo debido a sus distintos enfoques y preferencias de herramientas.
Limitaciones de los conjuntos de cambios y DX
A pesar de la llegada de Salesforce DX, muchos equipos siguen dependiendo de los conjuntos de cambios, que no se integran bien con los sistemas de control de versiones. La brecha entre los métodos tradicionales y la adopción completa del SDD suele ser demasiado amplia para que los equipos la superen rápidamente.
Soluciones alternativas
Muchos equipos de Salesforce aplican el desarrollo basado en código fuente solo al código (Apex, LWC, etc.), mientras utilizan procesos manuales para la configuración. Los pipelines de CI/CD y herramientas como Gearset, Copado o Jenkins funcionan como soluciones provisionales para las limitaciones de la plataforma.
Una alternativa prometedora es el flujo de trabajo de Blue Canvas, que ofrece un enfoque más accesible para administradores y desarrolladores:
GIT ↔ FÁCIL DE USAR PARA ADMINS Y DESARROLLADORES BlueCanvas ↔ Organización ↔ ¡¡OPCIONAL!!! VSCode para desarrolladores
Este flujo de trabajo busca cerrar la brecha entre el desarrollo tradicional de Salesforce y el verdadero SDD.
Perspectivas a futuro
Salesforce sigue mejorando la cobertura de metadatos y la evolución de Salesforce DX. Sin embargo, conviene actuar con cautela, ya que los cambios drásticos podrían alterar el ecosistema, especialmente para los muchos administradores que dependen del desarrollo declarativo.
Conclusión
Aunque el verdadero desarrollo basado en código fuente sigue siendo un mito en Salesforce, se están logrando avances. Los equipos deberían explorar alternativas como Blue Canvas, Gearset o Copado para mejorar sus procesos de desarrollo. A medida que evoluciona el ecosistema de Salesforce, mantenerse al tanto de nuevas versiones y herramientas será fundamental para las organizaciones que busquen optimizar sus flujos de trabajo de desarrollo.
Preguntas frecuentes
P1: ¿Es completamente imposible el desarrollo basado en código fuente en Salesforce?
Aunque el verdadero desarrollo basado en código fuente es un desafío en Salesforce, no es del todo imposible. Muchos equipos implementan prácticas parciales de SDD, centrándose en componentes basados en código y utilizando soluciones alternativas para los elementos declarativos. Herramientas como Blue Canvas, Gearset y Copado ayudan a cerrar la brecha entre el desarrollo tradicional de Salesforce y el SDD.
P2: ¿Puedo usar Git con Salesforce sin Salesforce DX?
Sí, puedes usar Git para controlar las versiones de tu código de Salesforce (como clases de Apex, páginas de Visualforce y componentes de Lightning) sin Salesforce DX. Sin embargo, gestionar los cambios declarativos y los despliegues seguiría requiriendo herramientas adicionales o procesos manuales.
P3: ¿En qué se diferencia Blue Canvas de Salesforce DX?
Blue Canvas ofrece un enfoque más fácil de usar para el desarrollo basado en código fuente en Salesforce. A diferencia de Salesforce DX, que requiere dominar la CLI y VS Code, Blue Canvas proporciona una interfaz gráfica accesible tanto para administradores como para desarrolladores. También busca capturar y versionar los cambios declarativos, algo que DX no admite por completo.
P4: ¿Existen soluciones nativas de Salesforce para el control de versiones?
Salesforce ofrece algunas funciones nativas de control de versiones, como el historial de versiones de ciertos componentes, entre ellos los flujos. Sin embargo, estas funciones son limitadas y no ofrecen todos los beneficios de un sistema de control de versiones especializado como Git.
P5: ¿Cómo puedo convencer a mi equipo de adoptar más prácticas basadas en código fuente?
Comienza por explicarle a tu equipo los beneficios del SDD, como una mejor colaboración, reversiones más sencillas y mayor consistencia en los despliegues. Implementa el SDD gradualmente, comenzando por los componentes basados en código. Considera usar herramientas como Blue Canvas, que ofrecen una curva de aprendizaje más accesible para quienes no conocen los flujos de trabajo tradicionales del SDD.
P6: ¿Salesforce llegará a admitir por completo el verdadero desarrollo basado en código fuente?
Aunque Salesforce sigue mejorando su compatibilidad con el SDD mediante iniciativas como Salesforce DX, lograr una compatibilidad completa requeriría cambios importantes en la arquitectura central de la plataforma. Es poco probable que Salesforce abandone por completo su enfoque declarativo de bajo código, ya que es un diferenciador clave de la plataforma.
P7: ¿Cómo encajan las herramientas de CI/CD en el desarrollo de Salesforce?
Las herramientas de CI/CD pueden ayudar a automatizar muchos aspectos del ciclo de desarrollo de Salesforce, incluidos los despliegues y las pruebas. Aunque no resuelven todos los desafíos del SDD, pueden mejorar considerablemente los flujos de trabajo de desarrollo y ayudar a los equipos a acercarse a las mejores prácticas del SDD.



