Martijn Schwärzer, Salesforce MVP, sobre el futuro de Force.com
El arquitecto técnico de Salesforce Matijn Schwärzer habla sobre su experiencia con la plataforma, incluida la adopción de Lightning y los beneficios de Salesforce DX.
Por Randalyn Hill-Coffer·Revisado por el equipo de Blue Canvas··10 min de lecturaEn este artículo, conoce las experiencias y perspectivas de un arquitecto técnico de Salesforce sobre la plataforma Salesforce, Einstein, Lightning, Salesforce DX y CI/DevOps.
Estas son nuestras 5 conclusiones clave:
1. El entorno en la nube de la plataforma Salesforce ofrece capacidades de desarrollo, despliegue e integración más rápidas que los sistemas locales.
2. La adopción de Lightning está creciendo, especialmente entre clientes nuevos, pero la transición desde Classic puede ser difícil para empresas con implementaciones consolidadas.
3. Salesforce DX promete transformar el desarrollo y la calidad de las aplicaciones, especialmente para los ISV, y puede mejorar la velocidad, la calidad del código y el tiempo de lanzamiento al mercado.
4. CI/DevOps es cada vez más común entre empresas con implementaciones continuas de Salesforce y hojas de ruta que abarcan años.
5. Es recomendable contar con una estrategia ágil de sandboxes que comience a pequeña escala y crezca junto con el proyecto o la base de código. Crear nuevos sandboxes a partir de un entorno de preproducción puede ser útil.
Matijn Schwärzer, también conocido como @DrSmuggler fue el primer MVP de Salesforce en los Países Bajos. Es arquitecto técnico de Salesforce en Beethree.nl, una consultora de Salesforce en los Países Bajos. Pasó por el blog para hablar de Einstein, Lightning y Salesforce DX.
¿Cuánto tiempo llevas como desarrollador de Salesforce? ¿Cómo llegaste a la plataforma?
Llevo casi siete años como desarrollador de Salesforce. Mi experiencia previa era con sistemas locales. Uno de mis directores me dijo que investigara Salesforce porque tal vez podría ofrecernos algo. Exploré las posibilidades de la plataforma, descubrí todo lo que permitía hacer y, básicamente, nunca miré atrás.
¿Qué tenía de especial la plataforma Salesforce?
Es una plataforma en la nube, algo nuevo para mí: en ese entonces, todo con lo que trabajaba estaba alojado localmente. Con Salesforce, puedes tener un entorno listo y funcionando en minutos, mientras que con un entorno local podía tomar varios meses. Eso, por sí solo, fue una maravilla.
Quienes trabajaban con sistemas locales siempre tenían que usar alguna capa de middleware para realizar una integración. Eso tomaba varios días y había que lidiar con firewalls y todo lo demás. La plataforma Salesforce te quita esa carga y se encarga de ello para que puedas concentrarte en generar valor para tus clientes.
Me impresionó mucho la velocidad de todo, desde el desarrollo hasta ver los resultados de lo que habías creado y llegar al despliegue. Antes, en los proyectos en los que trabajaba, el calendario de puesta en producción solía tener uno, dos o tres lanzamientos al año. En Salesforce puedes pasar a producción varias veces al día. Para mí fue toda una revelación.
Por supuesto, la plataforma era mucho más pequeña cuando empecé. En realidad, solo tenían Sales y Service. Creo que apenas estaban empezando con marketing. No había Wave Analytics, ni IOT, ni Einstein. Era muy sencillo y me alegra haber empezado en esa época. Para los colegas que apenas comienzan ahora en la plataforma, todo el ecosistema puede resultar un poco abrumador por la cantidad de cosas que permite hacer. En ese entonces era muy sencillo. Era muy fácil tener una visión general. Las capacidades de la plataforma eran mucho más limitadas que ahora.
Dices que IOT y todos estos productos increíbles pueden resultar abrumadores. ¿Algún consejo para no sentirse así?
Empieza con algo pequeño, enfócate en una cosa a la vez y en lo que mejor conoces. Por ejemplo, si tienes experiencia en ventas, empieza por ventas. Puedes aprender sobre los demás productos a medida que avanzas.
Tengo muchas ganas de trabajar con Einstein, especialmente cuando tengamos acceso para desarrolladores y podamos empezar a entrenarlo mediante nuestro código para analizar nuestros datos y hacer cosas increíbles con ellos. Creo que las posibilidades son infinitas.
Salesforce tiene un par de grandes conferencias próximamente, TrailheaDX y Dreamforce. ¿Qué es lo que más te entusiasma de cada una?
Bueno, TrailheaDX Todavía no he asistido y, lamentablemente, este año tampoco podré porque estaré en Dreamforce. TrailheaDX es una conferencia increíble para desarrolladores, pero Dreamforce es su hermano mayor: ¡el evento de TI más grande del mundo! En Dreamforce hay mucha diversidad. TrailheaDX reúne principalmente a desarrolladores, pero en Dreamforce puedes conocer a personas de cualquier rol: socios, clientes, colegas, gerentes de producto de Salesforce y muchos más.
Lo que más suele entusiasmarme es el ánimo de todos. Todos tienen ganas de aprender algo nuevo y ayudarse mutuamente. Conocer en persona a quienes tratas por redes sociales o correo electrónico es, para mí, lo más emocionante. Por supuesto, los grandes anuncios también son algo que esperas y a lo que realmente quieres asistir. Para mí, lo importante son las personas, los contactos y la comunidad. La pasas bien mientras hablas de lo que te apasiona, compartes conocimientos y aprendes de los demás.
¿Tienes alguna predicción para los próximos 12 meses?
No, lamentablemente no. Por supuesto, he escuchado algunas cosas, ya que soy Salesforce MVP, pero como estoy sujeto a un acuerdo de confidencialidad, no puedo compartir nada. Asegúrate de seguir todas las noticias de TrailheaDX y Dreamforce porque habrá anuncios interesantes. Especialmente sobre aprendizaje y certificaciones de Salesforce. Así que mantente atento. Es todo lo que puedo decir por ahora.
¿Estás trabajando en muchos proyectos con Einstein? ¿Por qué sí o por qué no?
Por ahora no, por varias razones. Primero, es muy nuevo, así que necesitamos familiarizarnos. Debo decir que Einstein ya incluye muchas funciones listas para usar, así que, como desarrolladores, todavía no es el momento ideal para empezar a trabajar con él. Sí creé algunas demostraciones con Einstein Vision, la herramienta de reconocimiento de imágenes, pero tengo muchas ganas de trabajar con Einstein, especialmente cuando tengamos acceso para desarrolladores y podamos empezar a entrenarlo mediante nuestro código para analizar nuestros datos y hacer cosas increíbles con ellos. Creo que las posibilidades son infinitas.
En Salesforce puedes pasar a producción varias veces al día. Para mí fue toda una revelación.
¿Y qué hay de la adopción de Lightning? ¿Está despegando?
Sí, lo veo, pero debo decir que lo veo más en empresas que apenas están empezando a implementar Salesforce. Eligen la experiencia Lightning desde el principio. A las empresas que llevan cinco años o más usando Salesforce les cuesta mucho más hacer la transición a Lightning. Han invertido en su implementación y hay mucho código Apex y muchas páginas Visualforce que debes adaptar para Lightning. Hacer el cambio a esa escala supone una gran inversión.
La mayoría de los clientes nuevos empiezan directamente con Lightning, a menos que tengan requisitos que Lightning todavía no pueda cubrir. Hace unos meses trabajé con un cliente que realmente quería usar cuentas personales. En ese momento, Lightning no las admitía, así que eligieron Classic. Pero cuando Lightning agregó compatibilidad con las cuentas personales, hicieron la transición sin problemas. El mayor obstáculo para los clientes es que haya funciones clave que todavía no sean compatibles. Veo que Lightning mejora cada vez más y admite cada vez más funciones. Están incorporando las funciones de Classic a Lightning, pero todavía falta. Debemos darle tiempo a Salesforce para que ponga todo a nuestra disposición y luego convenceremos a nuestros clientes de hacer el cambio, porque las posibilidades de Lightning son mucho mayores que las de Classic. Es el futuro. Además, cada vez más aplicaciones de AppExchange creadas por ISV están disponibles para Lightning. Esto ayuda mucho en el proceso de transición.
Trabajas con muchas organizaciones para mejorar su implementación de Salesforce y hacerla más eficaz: ¿cuál es uno de los cambios más importantes que pueden hacer los equipos para mejorar su base de código de Salesforce?
Por supuesto, depende de la situación. ¿Es una implementación grande con mucho código personalizado? ¿O una pequeña donde casi todo se configura con clics? Veo que Salesforce se orienta cada vez más hacia lo que podríamos llamar el desarrollador ciudadano. ¡Es decir, clics en lugar de código! Muchos clientes que han invertido fuertemente en Salesforce deberían revisar sus requisitos e intentar trasladar su código a Process Builder y otras herramientas de automatización, como Flows. Tal vez suene un poco extraño, pero eso mejorará tu base de código porque todo lo que crees será compatible con la próxima versión. Si tienes cosas, digamos, «interesantes» en tu código, este podría dejar de funcionar con la próxima versión. Todo lo que puedas trasladar a herramientas de automatización, hazlo.
¿Qué opinas de Salesforce DX?
¡Prometedor! Tengo muchas ganas de que esté disponible para todos. Están pasando muchas cosas con Salesforce DX. Me entusiasman especialmente las organizaciones temporales porque cambiarán la gestión del ciclo de vida de tus aplicaciones y de tu desarrollo. Antes de DX tenías sandboxes y, básicamente, el sistema de registro y la fuente de verdad de tu código estaban en la organización. Con DX, eso pasará al control de versiones. La verdad está ahí afuera.
Mantener los sandboxes sincronizados puede ser complicado. Con CI también puede ser difícil. Todavía hay tareas que no se pueden realizar con CI. Aún hay cosas que debes hacer manualmente porque la API de metadatos todavía no las admite. Por supuesto, también tendrás esos problemas con Salesforce DX, pero al menos podrás crear organizaciones temporales para cada funcionalidad que desarrolles y guardarla en un repositorio central. Además, puedes eliminar organizaciones temporales y crear otras nuevas. Así habrá menos complicaciones.
DX transformará especialmente el trabajo de los ISV, porque puedes crear una organización temporal con Enterprise Edition o Unlimited Edition y con ciertas funciones activadas o no. Eso realmente ayudará a los ISV a preparar su producto para cualquier situación.
Creo que aumentará la velocidad de desarrollo, mejorará la calidad del código, reducirá el tiempo de lanzamiento al mercado y realmente mejorará las aplicaciones de AppExchange.
Mencionas la integración continua. ¿Ves que las empresas invierten en integración continua y DevOps para Salesforce? ¿Por qué sí o por qué no?
Sí, lo vemos cada vez más. Debo decir que todo depende un poco del proyecto. Las implementaciones pequeñas, con unos pocos desencadenadores y algunas integraciones, normalmente no quieren invertir en configurarlo. Por otro lado, si tienes una implementación continua con una hoja de ruta que abarca años, definitivamente veo el valor de la CI. Lo vemos cada vez más. Cada vez más clientes gestionan todo su negocio en Salesforce: ventas, servicio, marketing, análisis, muchas integraciones, etc. En los últimos 5 equipos con los que he trabajado, hay equipos de 30 o 40 desarrolladores y hojas de ruta que abarcan 3 o 4 años. Si quieres hacer eso sin CI, te esperan grandes desafíos.
¿Cuál es la mejor estrategia de sandboxes y flujo de trabajo que has visto? ¿Sugieres que cada persona tenga su propio sandbox y que se configure un entorno de preproducción?
No sé si es una práctica recomendada, pero abordamos la estrategia de sandboxes de forma ágil. Si empezamos con algo pequeño, como suelen hacer los clientes, puede ser tan sencillo como tener un sandbox de desarrollo y producción si solo tienes un desarrollador. Tu entorno de desarrollo también es tu entorno de aceptación. A medida que crecen tu proyecto, tu base de código o tu equipo de desarrollo, lo mínimo recomendable es tener un entorno de desarrollo, uno de pruebas y uno de producción. Uno de los clientes con los que trabajo ahora le da a cada persona su propio sandbox, pero muchas veces vemos que mantenerlos actualizados es complicado. Tienes 5 desarrolladores trabajando cada uno en su sandbox e integran los cambios en un entorno de preproducción. Replicar los cambios en el sandbox de cada desarrollador puede ser difícil, sobre todo si tienes referencias cruzadas y cosas por el estilo.
Sería muy útil poder crear un sandbox a partir de otro. Una vez que integras todas las funcionalidades en UAT o preproducción, sería ideal poder crear un nuevo sandbox a partir del entorno de UAT, para desarrollar tu siguiente funcionalidad en un entorno similar al de preproducción. Eso ayudaría mucho.
Una de las mayores dificultades de un entorno de CI es que hay entidades de metadatos que no están disponibles en la API de metadatos. Hace un tiempo tuvimos un nuevo requisito y decidimos implementar equipos de oportunidades. Para poder desplegarlos, primero debes ir a tu organización de destino y habilitarlos manualmente, porque Salesforce crea objetos estándar adicionales que necesitas: tus perfiles hacen referencia a ellos cuando los despliegas y tu código también. En este escenario, tu CI fallará. Es especialmente difícil si tienes un equipo multidisciplinario.
¿Algún comentario final?
Como mencioné antes, recomiendo que todos se enfoquen en una sola cosa y crezcan desde ahí. Y asegúrate de, al menos, explorar Salesforce DX. Sé que muchas empresas tienen sus propias herramientas, pero DX realmente les quita gran parte del trabajo pesado. Tengo ganas de ver qué hará IoT Cloud. Y Einstein: no veo la hora de que lancen la plataforma subyacente para poder empezar a entrenar Einstein con nuestros datos como queramos.



