A todos nos gustaría trabajar o ser parte de un proyecto o una implementación como la que se ilustra en la siguiente imagen:
Tener varias nubes que se comunican entre ellas, compartiendo información, centralizando perfiles de clientes. Una capa de integración con un Enterprice Service Bus (ESB) o un ETL(Extract, Transform, Load). Todos los sistemas externos integrados como un ERP, CRM externos, aplicaciones personalizadas, aplicación móvil, sitio web y mucho más.
Esto sería un mundo ideal; sin embargo, en mi experiencia he trabajado en diferentes tipos de proyectos, algunos con un ampio y otros con un corto presupuesto. Esto no solo implica comprar licencias (lo cual ya implica un costo) para todos los productos y hacer una implementación, no es así de sencillo. Si el proyecto es pequeño, la imagen anterior debe considerarse más como una meta a futuro, pero lleva un largo camino.
Todo este ecosistema conlleva mucho por detrás, no solo comprar los productos y unirlos e implementarlos. Algunas de las cosas que se deben considerar en una implementacion de Salesforce son las siguientes:
- Usuarios
- ¿Cómo van a hacer login a los sistemas y a cuáles deben tener acceso?
- ¿Se tendrán varias regiones, idiomas o tipos de moneda?
- ¿Qué información podrá ver o no? De esto depende también el tipo de licencia que se le asignara.
- ¿Cómo se controla la visibilidad en todos los sistemas o productos a los que tendrá acceso?
- El volumen de usuarios.
- ¿Se les debe dar acceso a usuarios externos como clientes, partners, etc?
- Sistemas involucrados.
- ¿Qué tipo de integración soporta? (SOAP, REST, etc.)
- Es aplicación web, un servidor, producto en la nube, etc.
- Flujo de autenticación que soporta.
- Límites.
- Modelo de datos y funcionalidades de productos.
- Objetos estándar que soportan los requerimientos.
- ¿Cuáles objetos personalizados se crearán? ¿Con qué seguridad? Quién sería el propietario de ellos?
- ¿Se necesitan objetos externos? (Esto implica evaluar las opciones de tal vez incluir Heroku, que requerirá cargar la información y crear los objetos externos o Evaluar si el sistema soporta comunicación por OData)
- ¿Qué objetos podrían ser considerados como LDV? (Large Data Volume)
- Integraciones.
- Tipo de integración.
- Volumen de datos que se manejaran.
- Patrón de comunicación (Request & Reply, Request & Forget, Remote Call-In, Batch Sync, etc)
- Frecuencia.
- Migración de datos
- ¿Hay histórico de datos que se tengan que incluir el sistema? (Lo cual impacta en el almacenamiento de la plataforma).
- Migrar solo información crítica para la operación. ¿Todo lo demás puede ser archivado?
- Si se necesita tener reportes basados en información de años anteriores, considerar herramientas que acepten varias fuentes de datos.
- Gobierno.
- Hay empresas que tienen estructuras organizacionales desarrolladas que cuentan con áreas como un Centro de excelencia (CoE) y varios equipos funcionales o técnicos encargado de administrar diferentes aspectos. Como por ejemplo:
- Comité Ejecutivo:
- Función: Este comité toma decisiones estratégicas y proporciona dirección y visión para el CoE.
- Miembros: Ventas, Marketing, Patrocinadores Ejecutivos de TI.
- Comité Directivo:
- Función: Este comité podría ser responsable de guiar las iniciativas y proyectos del CoE, tomando decisiones operativas y tácticas.
- Miembros: Ventas, Operaciones de Ventas, Marketing, Liderazgo de TI.
- Líder del CoE:
- Función: Esta es la persona o posición que lidera el CoE, sirviendo como el principal punto de contacto y tomando decisiones clave para las operaciones diarias del CoE.
- Equipo Central del CoE:
- Función: Este es el equipo principal que ejecuta las operaciones y proyectos del CoE.
- Miembros:
- PMs: Gerentes de Proyecto que planifican, ejecutan y finalizan proyectos.
- Arquitecto Técnico: Persona encargada de diseñar soluciones técnicas y garantizar que se empleen las tecnologías adecuadas.
- Líderes Funcionales (SMEs): Expertos en áreas específicas que guían y toman decisiones sobre funciones o áreas particulares.
- Gerente de Lanzamiento (Release Manager): Responsable de la entrega y despliegue de soluciones o actualizaciones.
- Analistas de Negocios: Evalúan procesos empresariales y proponen soluciones.
- Administradores de Salesforce: Administradores de Salesforce que gestionan y configuran la plataforma.
- Líderes de QA: Supervisan y garantizan la calidad de las soluciones.
- Arquitecto de Integración: Diseña y supervisa integraciones entre sistemas.
- Comité Ejecutivo:
- Hay empresas que tienen estructuras organizacionales desarrolladas que cuentan con áreas como un Centro de excelencia (CoE) y varios equipos funcionales o técnicos encargado de administrar diferentes aspectos. Como por ejemplo:
- Ambientes y estrategia de versionamiento.
- ¿Cuáles van a ser los diferentes ambientes y para que se usaran? por ejemplo:
- Dev: Sandbox o Scratch. – Pruebas unitarias.
- QA: Developer Pro – Pruebas de regresión, Pruebas de integración de sistemas (SIT)?
- UAT: Copia Parcial – Pruebas de aceptación de usuarios (UAT)
- Stage/Pre-Prod: Full Sandbox – pruebas de carga, pruebas de performance, Pruebas de penetración.
- Control de versiones.
- Feature Branch Model.
- Release Branch Model.
- ¿Cuáles van a ser los diferentes ambientes y para que se usaran? por ejemplo:
Y así se pueden mencionar muchas otras cosas más a tener en cuenta, no solo en Salesforce core, tambien el realizar pruebas en otros sistemas, como se unirán todos los proceso, etc.
¿Y qué pasa cuando no contamos con el presupuesto para tener todos estos productos, sistemas e incluso el personal?
Cuando tenemos los productos básicos (Sales, Service y puede ser que Experience Cloud), varias herramientas de comunicación (Slack, Teams, etc.) NO integradas, e incluso un sitio web independiente. Además, quitando del mapa la capa de integración. Esto implica un reto muy grande que puede causar muchas dependencias por las integraciones punto a punto, datos duplicados entre sistemas no integrados, los perfiles de usuarios descentralizados, etc. Por ejemplo algo como se muestra en la siguiente imagen:
Este tipo de escenarios son muy comunes, y se requiere mucho más esfuerzo de hacer exitoso este tipo de implementaciones, ya que no solo tenemos que tener en cuenta lo mencionado anteriormente, sino algunas cosas más, sobre todo si el proyecto es nuevo y los usuarios no conocen Salesforce. Por ejemplo:
- Presupuesto. Esto es sumamente importante porque al estar limitados, no siempre podemos contar con la edición más completa de Salesforce, lo cual repercute en:
- Funcionalidad y Características: Cada edición de Salesforce tiene un conjunto específico de funcionalidades. Por ejemplo, algunas características avanzadas de personalización, automatización y desarrollo solo están disponibles en las ediciones Enterprise y Unlimited.
- Límites del Sistema: Las diferentes ediciones tienen distintos límites en términos de número de registros personalizados, campos, reglas de automatización, y otros límites técnicos. Elegir una edición que no se alinee con las necesidades de la organización puede resultar en limitaciones que afecten las operaciones.
- Escalabilidad: Algunas ediciones están diseñadas para pequeñas empresas con necesidades más básicas, mientras que otras están hechas para organizaciones grandes con necesidades complejas. Elegir una edición que no sea escalable con el crecimiento de la empresa puede resultar en costos adicionales y complicaciones más adelante.
- Integraciones: Las capacidades de integración pueden variar entre ediciones, limitando con qué sistemas externos se puede integrar Salesforce y cómo se pueden manejar esas integraciones.
- Soporte y Servicios: Salesforce ofrece diferentes niveles de soporte dependiendo de la edición. Las ediciones superiores suelen incluir un soporte más amplio y acceso a más recursos y servicios de consultoría.
- Personalización y Automatización: Las herramientas y opciones para personalizar la experiencia de Salesforce, como crear objetos y campos personalizados, procesos automatizados y flujos de trabajo, pueden estar restringidas en ediciones más básicas.
- Adopción de usuarios. El tener un plan de adopción y capacitación es muy importante, sobre todo cuando es su primer acercamiento con Salesforce, o con cualquier nuevo sistema, el éxito de un proyecto o implementación viene muy ligado a como ayuda el sistema a los usuarios, ellos tienen la última palabra. Tener en cuenta los siguientes aspectos desde el inicio:
- Capacitación Efectiva: Utiliza los recursos gratuitos para capacitar a los usuarios, como Trailhead, o los módulos de capacitación y webinars disponibles en la Salesforce Community.
- Facilitadores de Adopción Internos: Identifica y capacita a los embajadores o campeones de Salesforce dentro de tu organización. Pueden ser usuarios clave que ayuden a promover y apoyar la adopción entre sus colegas.
- Comunicación Continua: Mantén una comunicación regular sobre los beneficios y las novedades de Salesforce. Crea boletines internos, sesiones informativas o grupos de discusión para mantener a los usuarios informados y comprometidos.
- Retroalimentación de los Usuarios: Fomenta la retroalimentación continua y actúa en consecuencia. Al permitir que los usuarios compartan sus experiencias y sugerencias, puedes ajustar el sistema para satisfacer mejor sus necesidades.
- Adopción en Fases: Implementa Salesforce en fases. Comienza con las funciones más críticas y luego expande la funcionalidad a medida que los usuarios se vuelven más competentes y el presupuesto lo permite.
- Interface Sencilla: Personaliza la interfaz de usuario para que sea lo más intuitiva y fácil de usar posible. Elimina los campos innecesarios y asegúrate de que los usuarios vean solo lo que necesitan para su trabajo.
- Soporte y Recursos de Ayuda: Crea o cura una biblioteca de recursos de ayuda, como guías rápidas, preguntas frecuentes (FAQs) y mejores prácticas disponibles fácilmente para los usuarios.
- Recompensas y Reconocimiento:
- Implementa un sistema de recompensas para reconocer y celebrar a los usuarios que adoptan y utilizan eficazmente Salesforce.
- Prepararse para el futuro. Por pequeña que sea la implementación, con presupuesto limitado, un equipo pequeño, conocimientos básicos o grandes retos a lograr con los recursos que se tienen. Siempre hay que pensar a futuro, ya que si la implementación es exitosa, después puede escalar e ir metiendo en el mapa otros productos/sistemas que hagan más robusta la implementación y beneficie a la empresa. Siempre tener estos puntos a tener en cuenta:
- Adopta las Mejores Prácticas de Salesforce: Siguiendo las mejores prácticas recomendadas por Salesforce, te aseguras de que tu implementación esté alineada con los estándares que facilitan actualizaciones y escalabilidad.
- Entiende Tu Modelo de Datos: Diseña un modelo de datos que sea escalable y flexible. Asegúrate de que pueda manejar aumentos en el volumen de datos y cambios en los procesos de negocio.
- Automatización y Personalización Inteligentes: Utiliza la automatización de procesos y la personalización con moderación y de manera estratégica. Evita las personalizaciones excesivas que podrían complicar futuras actualizaciones y migraciones.
- Capacitación Continua: Fomenta la capacitación continua y el desarrollo profesional de tu equipo para mantenerse al día con las nuevas características y mejores prácticas de Salesforce.
- Utiliza las Funciones Declarativas Antes del Código: Siempre que sea posible, utiliza las herramientas declarativas de Salesforce antes de recurrir a la codificación. Esto no solo ahorra tiempo y recursos sino que también minimiza la complejidad a largo plazo.
- Preparación para Actualizaciones: Salesforce realiza tres actualizaciones importantes al año. Mantente informado sobre estas actualizaciones y prepara tu sistema y tus usuarios para cualquier cambio.
- Documentación Rigurosa: Mantén una documentación completa de tu implementación de Salesforce, incluyendo personalizaciones, integraciones y procesos. Esto facilitará la adaptación y el mantenimiento a medida que tu negocio y Salesforce evolucionan.
- Gestiona la Calidad de los Datos: Implementa prácticas para asegurar la calidad y limpieza de los datos. Un buen gobierno de datos es fundamental para una implementación escalable.
- Diseño de Arquitectura Flexible: Asegúrate de que tu arquitectura de Salesforce pueda adaptarse a nuevas aplicaciones, integraciones y tecnologías como la inteligencia artificial y el aprendizaje automático.
- Pruebas y Sandbox: Utiliza entornos Sandbox para probar nuevas características y actualizaciones antes de implementarlas en tu org de producción.
- Monitorización y Soporte: Implementa una estrategia de monitorización para detectar y responder a problemas de rendimiento y seguridad antes de que afecten a los usuarios.
- Planificación Financiera: Establece un presupuesto para futuras mejoras y escalabilidad de Salesforce. Esto incluye formación, adquisición de herramientas adicionales, y contratación de recursos si es necesario.
Hay miles de cosas a tomar en cuenta, y muchas diferencias que se pueden presentar con proyectos pequenos y otros mas grandes.
Conclusion.
En resumen, los proyectos de Salesforce pueden variar enormemente en términos de escala y recursos disponibles. Sin embargo, factores como la planificación cuidadosa, la adopción de usuarios, la gestión de la calidad de los datos y la preparación para actualizaciones son fundamentales para el éxito de cualquier implementación, ya sea grande o pequeña. Las organizaciones deben sopesar sus necesidades actuales con las futuras aspiraciones, garantizando que cualquier implementación de Salesforce esté alineada con los objetivos a largo plazo de la empresa y sea capaz de evolucionar junto con ella.