Adam Olshansky habla sobre Salesforce DX y el control de versiones
Adam Olshansky, MVP y desarrollador de Salesforce, comparte su trayectoria con la plataforma, sus certificaciones y sus opiniones sobre Dreamforce y el control de versiones.
Por Randalyn Hill-Coffer·Revisado por el equipo de Blue Canvas··12 min de lecturaEn este artículo, conoce la trayectoria de Adam Olshansky en el desarrollo con Salesforce, su experiencia con las certificaciones y sus opiniones sobre la facilidad de uso de la plataforma y sus futuras novedades.
Estas son nuestras 5 conclusiones clave:
1. Adam Olshansky se enamoró de Salesforce por su sistema fácil de usar y su enfoque en construir y crear cosas.
2. Completó 5 certificaciones en 6 semanas, una experiencia que le resultó desafiante, pero gratificante.
3. Su formación en ciencias de la computación le ha sido muy útil para comprender la base de datos relacional y la lógica de Salesforce.
4. La baja barrera de entrada y las tecnologías estándar del sector hacen de Salesforce una excelente plataforma para que cualquiera empiece a crear aplicaciones.
5. Adam está entusiasmado con las futuras novedades de Salesforce, en particular Einstein y Salesforce DX, que espera que faciliten las implementaciones y el control de versiones.
Hace poco conversamos con Adam Olshansky para conocer sus opiniones sobre Dreamforce, el desarrollo en la plataforma Force.com, el control de versiones y otros temas.

Adam Olshansky es un MVP de Salesforce y desarrollador con 11 certificaciones que vive en San Francisco. Ha escrito mucho sobre su experiencia aprendiendo a usar la plataforma Salesforce en su blog Adam to Architect. Puedes seguirlo en Twitter como @adam17amo.
¿Cómo empezaste con la plataforma Salesforce? ¿Cuánto tiempo llevas usándola?
Trabajo con Salesforce desde agosto de 2014. En parte fue por casualidad: me ascendieron a un equipo de Honeywell que trabajaba con Salesforce y terminé enamorándome de la plataforma.
Antes trabajaba en operaciones de SAP, donde no solo te ocupabas de SAP, sino también de todos los servidores, el almacenamiento y los sistemas operativos. Administrar y monitorear todo eso era mucho trabajo. Luego llegué a Salesforce, un sistema en la nube agradable y fácil de usar que, como ingeniero, me permite concentrarme en construir, crear y aportar valor real, en lugar de dedicar tiempo a que todo siga funcionando entre bastidores. Por eso me enamoré de Salesforce.
Asistí a mi primer Dreamforce dos meses después y todo lo que vi me impresionó. Me gustó mucho la idea de la comunidad que estaba creciendo allí. Me entusiasmé con la idea de aprender sobre la plataforma y certificarme después de ver una sesión en escenario con David Liu. Así que intenté que eso también formara parte de mi camino. Me certifiqué y pude participar activamente en la comunidad. Conseguí otro trabajo dedicado al desarrollo con Salesforce a tiempo completo, que luego me llevó a este nuevo empleo, también como desarrollador de Salesforce a tiempo completo. Así que estos últimos años han sido muy divertidos y han pasado muchas cosas.
Completaste 5 certificaciones en 6 semanas. ¿Cómo fue esa experiencia? ¿Fue intensa?
Sí, más o menos. Cuando asistí a ese primer Dreamforce, casi no había usado Salesforce. Creé mi primera organización de desarrollador. Hice algunas capacitaciones prácticas. Tomé la capacitación de desarrollo con clics. Hice algunas más y las completé rápido. También tomé una de introducción al desarrollo con Apex.
Había trabajado bastante con Java en la universidad, así que conocía los conceptos de programación. Por eso me pareció bastante similar y se me dio con naturalidad. Entonces, cuando vi la presentación de David Liu y él hablaba de su sitio web SFDC99 él habla de ayudarte a certificarte. Así que pasé gran parte de mis vacaciones de invierno y de la segunda mitad de diciembre trabajando con el manual de ejercicios de fundamentos de Salesforce y aprendiendo cómo funciona la plataforma. Además, Honeywell es un cliente Premier, así que tenía acceso a los cursos de capacitación Premier. Esto fue antes de Trailhead, o al menos antes de que yo lo conociera. Pude completar varios módulos de ayuda y capacitación en mi tiempo libre. Era aprendizaje adicional, pero me resultaba divertido. No lo veía como trabajo extra.
Una de las grandes habilidades de un administrador es representar las necesidades del negocio y poner en práctica sus procesos.
Como soy competitivo, vi una historia sobre Mayank Srivastava, que había completado cinco certificaciones en seis semanas. Así que me pregunté si podría hacer algo así. Fue como decir: reto aceptado. Entonces seguí ese camino. En realidad, muchas eran similares; por ejemplo, Advanced Admin y Force.com Developer son bastante parecidas. Sales Cloud y Service Cloud Consulting solo agregan una capa más. Fue muy divertido y requirió mucho trabajo. Me alegra haber hecho ese esfuerzo.
¿Estudiaste ciencias de la computación antes de usar Force.com?
Estudié ingeniería con una especialización secundaria en ciencias de la computación. Parte de esa especialización incluía una introducción a la programación. Nunca había programado antes de la universidad, pero se me dio bien. Me gustaba la lógica de cómo funcionaba. Me gustaba cómo encajaba todo. A partir de ahí empecé a tomar más clases de ciencias de la computación y algunas de programación comparada. En el posgrado estudié ingeniería de software. Tomé una clase de computación en la nube y, de hecho, un día Adam Seligman vino a hablar con nosotros. Fue la primera persona de Salesforce que conocí. Así fui aprendiendo.
Apex es bastante similar a Java, C y muchos otros lenguajes orientados a objetos.
¿Te ha servido esa formación?
Muchísimo. Creo que Brent Downey, de AdminHero tiene un excelente artículo sobre esto en su blog, pero Salesforce es una base de datos relacional al fin y al cabo. Es un conjunto de tablas y filas de datos relacionadas entre sí. Una vez que entiendes eso y cómo encajan todas las piezas, al agregar campos y objetos personalizados ves que son solo piezas adicionales del rompecabezas. Cuando tienes esa visión integral, lo entiendes.
Lo mismo ocurre al escribir código. Sí, Apex es un lenguaje diferente, pero al final no es más que lógica. Si pasa esto, haz aquello. Para todos los registros de esta lista, haz algo con ellos. Verifica algo. Cuando ocurra este evento, haz esto otro. Parte de la razón por la que me gusta tanto Salesforce es que puedes hacer muchísimo de forma declarativa y es muy fácil empezar. Si entiendes la lógica y cómo encaja todo, te recomendaría explorar la programación, porque comparte los mismos conceptos y principios.
Avanzaste muy rápido. ¿Cuál fue el mayor desafío al empezar?
Probablemente, la terminología y entender el lado del negocio. No tengo experiencia en ventas ni en marketing. Para ser honesto, todavía me confunde un poco cómo funciona el marketing. Admiro a quienes realmente lo dominan.
Una de las grandes habilidades de un administrador es representar las necesidades del negocio y poner en práctica sus procesos. Al principio me costó un poco. Entendía cómo crear excelentes procesos, pero si no aportaban valor al negocio, en realidad no le servían a nadie.
Entonces, se trata de esa conexión entre conocer mejor el negocio y tu sector, y saber cómo hacer que Salesforce funcione para ti.
¿Qué hace que Salesforce sea una plataforma tan buena? ¿Qué te enamoró?
La facilidad de uso. Sobre todo porque venía del mundo de SAP. SAP es mucho más engorroso. Salesforce era muy claro y fácil de usar. Todo tenía sentido: aquí están las pestañas, aquí los objetos, aquí los campos, aquí las fórmulas. Todo está en un lenguaje sencillo y entendía cómo encajaba cada cosa.
La barrera de entrada es baja: cualquiera puede hacer clic aquí y allá y crear cosas. Obviamente, implica un poco más que eso, pero me parece increíble que cualquiera pueda empezar con una organización de desarrollador gratuita y crear aplicaciones en cuestión de horas. Siento que Salesforce le da esa oportunidad a cualquiera.
¿Qué fue lo más destacado de Dreamforce ‘16 para ti?
Me gusta el rumbo que está tomando la plataforma. Salesforce ya me gusta mucho, pero saber que cada pocos meses se agregan novedades también me entusiasma.
Algunas de las cosas que están haciendo con Einstein, aunque todavía falten unos meses, serán muy emocionantes. Será interesante ver hasta dónde podemos llegar con ellas.
La otra novedad es Salesforce DX, que seguramente conoces muy bien: el concepto de control de versiones y gestión de versiones. Ahora parte de eso viene integrado, lo que te permite usar herramientas adicionales que los desarrolladores conocen bastante bien.
Con el control de versiones… si algo sale mal y necesitas revertir los cambios, puedes hacerlo. He estado en varias situaciones en las que una implementación propia o de otra persona dañó algo que habías hecho, y tienes que revertir los cambios e identificar qué líneas hay que quitar.
Me gusta que Salesforce generalmente procure usar tecnologías estándar de la industria, por ejemplo, integrar Javascript con los componentes de Lightning, el concepto de programación orientada a objetos, los lenguajes de consulta y las bases de datos relacionales. Si mañana pasara algo y Salesforce desapareciera, Dios no lo quiera, tus habilidades como administrador y desarrollador de Salesforce seguirían siendo relevantes para la industria tecnológica en general. Es bueno especializarse, pero también es importante ser flexible por si alguna vez necesitas cambiar de rumbo.
¿Qué opinas de Einstein?
El Presentación principal de Einstein realmente me ayudó a ver algunos de sus casos de uso. Todavía le falta desarrollo para estar listo y que la gente empiece a usarlo. Pero sin duda me gusta el rumbo que está tomando. Creo que tiene un potencial enorme. Espero que algunas de esas funciones se integren en la plataforma y no sean complementos, para que todos puedan aprovechar Salesforce y sus capacidades de aprendizaje automático desde el primer día.
Si lo piensas, las computadoras son más precisas que las personas en muchos aspectos, así que dejar que hagan gran parte de ese trabajo te da más tiempo como administrador o desarrollador para encontrar soluciones que tu empresa pueda aprovechar. Eso te hace mucho más eficaz como administrador o desarrollador.
Nos encantaría saber qué opinas de Salesforce DX. ¿Cómo realizas tus implementaciones actualmente? ¿Usas la herramienta de migración Ant o conjuntos de cambios?
Me da vergüenza decir que hoy uso conjuntos de cambios. La interfaz no me entusiasma, pero al final funcionan. Personalmente, me encanta la idea de Git, pero no me gusta usarlo. Puedo trabajar en la línea de comandos, pero es poco amigable y no es algo que disfrute. A veces, lo que Git considera que se debe fusionar no coincide con lo que yo creo. Así que sigo revisando línea por línea con cierta paranoia. Sería bueno automatizar eso.
Todavía no hay sistemas de control de versiones integrados de forma nativa en Salesforce, así que tenemos que implementar los cambios en el control de versiones y luego, por separado, en Salesforce. Si no están sincronizados, nadie tendrá forma de saberlo, lo cual probablemente no sea ideal. Estamos avanzando en esa dirección. Hay bastante margen de mejora.
Me gusta que DX ofrezca organizaciones temporales para poder crear una organización completamente nueva y probar mis cambios. No tengo que modificar mi sandbox. Puedo crear un entorno, probarlo y luego descartarlo. Eso me gusta mucho.
Sin duda, me gusta la idea de que DX incluya control de versiones y siga los estándares de la industria para la integración continua. Me gusta que faciliten el control de versiones para que, si algo sale mal y necesitas revertir los cambios, puedas hacerlo. He estado en varias situaciones en las que una implementación propia o de otra persona dañó algo que habías hecho, y tienes que revertir los cambios e identificar qué líneas hay que quitar.
Sin duda me gusta el rumbo que están tomando, aunque todavía faltan unos meses. Es bueno ver cómo va tomando forma. Espero poder incorporar más buenas prácticas de la industria en mi propio ciclo de lanzamientos.
¿Qué usas actualmente para el control de código fuente?
Google tiene su propio sistema interno de control de versiones. En Salesforce usamos ese sistema y conjuntos de cambios y, como medida de seguridad, copiamos y pegamos archivos antiguos y los guardamos en mi escritorio. Hacemos revisiones de código y cosas por el estilo. No tenemos un proceso integrado para revertir cambios.
Todavía no hay sistemas de control de versiones integrados de forma nativa en Salesforce, así que tenemos que implementar los cambios en el control de versiones y luego, por separado, en Salesforce. Si no están sincronizados, nadie tendrá forma de saberlo, lo cual probablemente no sea ideal. Estamos avanzando en esa dirección. Hay bastante margen de mejora.
¿Cuánto tiempo pasas en la interfaz de usuario frente a las herramientas de desarrollo? ¿Usas Force.com IDE o MavensMate?
Desde que me pasé a MavensMate, no he vuelto al IDE de Force.com. Uso Atom con MavensMate. Sé que podría usarlo para las implementaciones, pero no lo he hecho. Lo intenté una vez, recibí un error y no me tomé el tiempo de investigarlo.
Cuando tengo que hacer cosas como actualizar campos, lo hago en la interfaz. Todos los cambios de código los hago en MavensMate, excepto los bloques anónimos, que creo que también se pueden ejecutar en MavensMate, pero normalmente uso la consola de desarrollador para eso.
¿Qué novedades de Salesforce esperas con más entusiasmo este año? ¿De qué crees que hablaremos en Dreamforce ‘17?
Es una pregunta difícil. Parece que cada año hay algo realmente importante. El año pasado fue Lightning, hace dos años fue Wave y este año fue Einstein. Tendría que pensar en qué otras adquisiciones han hecho últimamente. CommerceCloud también salió este año.
Creo que este año Lightning está madurando mucho más. No creo que el próximo año haya algo nuevo y revolucionario, pero sí veremos que Lightning se vuelve más habitual. La gente está migrando poco a poco, aunque muchos siguen aferrados a Classic. Creo que Winter ‘17 y Einstein impulsarán a la gente hacia Lightning. A medida que eso ocurra, la arquitectura de Lightning permitirá a Salesforce innovar y desarrollar mucho más rápido.
Hoy en día, tienes la oportunidad de aprender lo que quieras y participar en lo que te interese. Solo tienes que dar el primer paso e ir por ello.
Creo que actualmente muchos productos siguen estando separados, así que me gustaría ver un poco más de integración. Más funciones con Einstein. Creo que la IA (inteligencia artificial) es la nueva tendencia que muchas empresas están adoptando, y Salesforce está de lleno en ella. La inteligencia de negocios y la analítica tuvieron mucho protagonismo hace un par de años.
Es demasiado pronto para decirlo con certeza, con lo rápido que avanza la tecnología hoy en día. Me entusiasma ver hacia dónde va.
¿Qué consejo le darías a alguien que quiere empezar con la plataforma Salesforce?
Mi consejo es que siempre empieces con Trailhead. Es una excelente forma de familiarizarte con los conceptos y aprender todo lo que quieras sobre la plataforma. Participa activamente en la comunidad. Encuentra tu espacio, ya sea en Success, Twitter o LinkedIn: hay personas a las que les encanta ayudar sin cobrar, así que aprovéchalo. Si tienes preguntas, hay personas que estarán encantadas de responderlas. Hoy en día, tienes la oportunidad de aprender lo que quieras y participar en lo que te interese. Solo tienes que dar el primer paso e ir por ello.



