Salesforce DX: Mayor practicidad y reducción de costos

Salesforce Developer Experience (SFDX o Salesforce DX) ha cambiado para siempre la forma en que desarrollamos aplicaciones y en que hacemos management de nuestras releases dentro del ecosistema de Salesforce. Luego de probarlo y utilizarlo durante algunos meses, se puede afirmar que es notoria la mejora en la dinámica de los equipos y también en la reducción de costos de implementacion.

Quienes venimos de trabajar con Java, sufrimos muchísimo la separación de nuestros amados Eclipse e IntelliJ para comenzar a caminar de la mano de la developer console. Hay quienes trabajaron durante mucho tiempo con el plugin de Eclipse o incluso el ya deprecado IDE de Force.com

Lo cierto es que esos dolores de cabeza ya no corren mas para los developers. Incluso, podemos dejar a un lado los tediosos changesets, pero eso es tema para otro artículo.

Resultado de imagen para salesforce characters"

¿Mi equipo sigue lidiando con los desafíos que presentaba hasta ahora la experienci a de desarrollo en SalesForce?

 

Sin lugar a dudas que Salesforce ayuda a las organizaciones a crecer más rápido y a ofrecer una experiencia superior al cliente bajando notoriamente los costos. Sin embargo, a medida que las organizaciones crecen, la demanda de desarrollo de nuevas aplicaciones, personalización y nuevos flujos de trabajo aumentan con ellas. Cualquier desarrollador de Salesforce puede decirnos qué tan desafiante puede ser la plataforma cuando se trata de desarrollo continuo, integración, pruebas y lanzamiento de nuevas características y funcionalidades.


Enfoques tradicionales para implementar metadatos en organizaciones de producción y sus desafíos

Tradicionalmente, las organizaciones utilizan tres enfoques para implementar metadatos en las organizaciones de producción:

  • Ant Migration Tool: este es un mecanismo de implementación basado en ANT donde uno construye la aplicación, crea el paquete y usa la utilidad ANT para implementar el código en cualquier sistema de control de versiones o en cualquier organización de Salesforce. Este modelo tiene sus problemas en términos de fusión de código y seguimiento de dependencias. La realidad es que no tuve el honor de trabajar con esta herramienta asi que no puedo dar demasiadas referencias.
  • Changesets: este es un feature Out Of the Box incluido en nuestras Salesforce Orgs. Estos pueden contener unicamente cambios que puedas generar desde el menu de la consola de Setup. La gran desventaja de esto es que la persona que lleve adelante la tarea necesita ser MUY meticulosa para rastrear todos los cambios que se hicieron. Muchas veces, los changesets no toman algunas configuraciones. Y Para concluir, el tiempo que lleva desplegar el código de un entorno a otro es enorme.
  • Unmanaged Packages: una vez que se crea una aplicación y se crea el paquete, el desarrollador lo implementa en la organización de Salesforce. Como toda la visibilidad está en el paquete, si uno pierde algún código / clase / configuración, encontrar el problema será difícil.

Usando Git para compartir el código y la metadata entre los miembros del equipo, la tarea se simplifica aún más.

Salesforce Developer Experience (DX) proporciona un ciclo de vida integrado de extremo a extremo que nos da la posibilidad de trabajar de modo mas agil. Salesforce DX es una actualización prometedora que aborda la mayoría de los desafíos que los enfoques tradicionales no pudieron resolver. Este nuevo concepto de desarrollo dentro de la plataforma se aleja del modo «Happy Soup» al permitir que el desarrollador, el tester y el manager colaboren y trabajen en diferentes entornos limitados.


Componentes principales de un Salesforce DX

Si bien Salesforce DX viene con un amplio conjunto de características, los siguientes son los componentes principales que aseguran equipos de desarrollo más productivos, una reducción rápida de los errores manuales y una release de alta calidad.

Source-Driven Development

Salesforce DX es una plataforma abierta que permite a todo el equipo utilizar cualquier tecnología de colaboración para poder mantener el código, la configuración de la organización y los metadatos. Al poner el foco en el codigo y la metadata, se simplifica la CI / CD, permitiendo la gestión de dependencias y el armado de los paquetes.

Scratch

Las Scratch Org, sean quizás la característica más popular de Salesforce DX, es una implementación desechable de código y metadatos de Salesforce. Los desarrolladores ahora pueden replicar diferentes ediciones de Salesforce y compartir el archivo de configuración con otros miembros del equipo, por lo que todos tienen la misma organización básica. Scratch org reduce significativamente el síndrome de la “Happy Soup” y garantiza la trazabilidad de cada dependencia.

Unlocked Packages

Los Unlocked Packages permiten organizar los metadatos en un paquete y luego implementarlos en diferentes organizaciones. De hecho, el paquete de segunda generación (2GP) permite crear paquetes en un entorno de desarrollo “sourve-driven”. Estos paquetes son actualizables, los elementos que contienen metadatos no están bloqueados para que los administradores del sistema puedan cambiarlos, y permiten construir aplicaciones de forma modular.

Beneficios de Salesforce DX

Salesforce DX está diseñado para reducir la complejidad de las etapas de desarrollo, prueba y gestión de releases dentro de Salesforce. Esto se traduce en una mejor utilización de la plataforma, reducción el consumo de ancho de banda del equipo de desarrollo, mejora en la calidad de las releases, ahorros significativos en los costos de tiempo de desarrollo y un tiempo de comercialización más rápido mediante la iteracion de implementaciones frecuentes.

La organización de los metadatos es más simple

SFDX permite organizar los archivos de metadatos que componen a la organización en distintos módulos asi como tambien mantener todos los modulos en repositorios de codigo como proyectos independientes.

Con DX, cada miembro del equipo puede trabajar sobre una parte del desarrollo sin entorpecer las tareas de otra persona.

Paquetes pequeños y flexibles

SFDX facilita el armado de pequeños modulos que luego puedan convertirse en paquetes para trabajar con herramientas como controladores de verisiones. La magia radica en organizar bien la division de la metadata. (EJ: core, community, integrations, etc).

La incorporación del empaquetado en el ciclo de vida del desarrollo significa ayuda a que el equipo de desarrollo en su totalidad pueda tener idea de cómo los paquetes son implementados, disminuyendo la necesidad de que una persona sea la responsable de esta tarea.

Versiones en el ciclo de vida de desarrollo

Mediante el uso de “Unlocked Packages” ahora es posible trabajar con versiones de paquetes e instalación de los mismos durante el ciclo de vida de desarrollo de nuestra aplicacion.

Para ver los aspectos tecnicos que hacen al correcto empleo de SFDX, recomiendo enormemente la realizacion de este Trail en Trailhead

Build Apps Together with Package Development

Resultado de imagen para salesforce characters"

 

Por Martin Larizzate, Enthusiastic Salesforce Developer

2 comentarios

Añade el tuyo →

Deja una respuesta