Comprender el motivo de la adopción de la agilidad en Salesforce
Después de completar esta unidad, podrá:
- Explicar por qué Salesforce utiliza los principios de la agilidad
- Enumerar algunos beneficios de la agilidad
- Definir Scrum
- Explicar la “definición de hecho”
- Comprender por qué los procesos ágiles funcionan mejor para Salesforce
Imagine dirigirse a Dreamforce y descubrir que no hay presentaciones, nuevos productos o anuncios de servicios, ni tampoco innovaciones o funciones listas para la producción disponibles para el próximo año.
Esto casi ocurrió en Salesforce en 2006, pero eludimos ese escenario implementando un nuevo flujo de trabajo que revolucionó la forma con la que desarrollamos y entregamos productos.
Desde 1999, cuando se fundó Salesforce, nuestro equipo de Tecnología y Productos (T&P) desempeñaba sus funciones como un mecanismo de relojería. La comunicación entre los equipos de T&P era siempre fluida y sencilla. Pero en 2006 habíamos experimentado un crecimiento extraordinario: teníamos más clientes, más ingresos, más productos y éramos una compañía más grande. Y como cualquier racha de crecimiento, no fue un proceso indoloro.
Todas las cosas que solían ocurrir con facilidad ya no eran tan sencillas. Como resultado, empezamos a experimentar una reducción en la innovación.
Ampliar la comunicación, la colaboración y la gestión, todo ello cumpliendo nuestras fechas de lanzamiento se convirtió en un reto. Estaba claro que necesitábamos un nuevo enfoque, uno que estuviese centrado en un proceso de entrega de productos fluido: uno que garantizara que no hubiera retrasos en los lanzamientos.
Así que hicimos lo que mejor sabemos hacer: Nos arriesgamos y reinventamos nuestra manera de entregar soluciones. Adoptamos un conjunto de principios y prácticas de agilidad.
¿Por qué la agilidad?
Mucho del trabajo que hacemos en Salesforce está basado en la innovación y la iteración. Esto quiere decir que el resultado final no siempre se conoce de antemano, y la ruta para llegar allí es un trabajo en curso. ¡Siempre es una nueva aventura!
Eso no quiere decir que todos los equipos de Salesforce utilizan procesos ágiles. Algunos equipos utilizan el marco de trabajo en cascada, que es un proceso de gestión de proyectos mucho menos flexible. El proceso que elija depende de lo que sabe, o no sabe cuando inicia el elemento de trabajo.
Este es un vistazo rápido a las prácticas en cascada.
- Todo está planificado de antemano.
- Los requisitos se recopilan al detalle antes de la implementación.
- Cada paso debe completarse antes de pasar al siguiente.
- El resultado se determina al principio.
Planificar frente a adaptar
Si está intentando decidir qué proceso funciona mejor para usted, tenga en cuenta lo siguiente: Si está pintando un cuadro y decidió sus colores, su disposición, el tiempo que empleará en pintarlo y el aspecto final de la imagen, habrá dejado poco espacio para realizar cambios a lo largo del camino. Eso no quiere decir que el cuadro no sea un Picasso, pero su proceso no está configurado para incorporar nuevas ideas o comentarios que puedan variar el cuadro final (para mejor, por supuesto). Este es el enfoque para utilizar las prácticas en cascada.
Pero cuando pinta iterativamente, puede esperar realizar cambios basados en comentarios precoces, nuevas ideas o incluso nuevos conocimientos (¡esos colores no mezclan!) en vez de pintar de una manera planificada, incremental y ordenada. Ese es un enfoque ágil.
Esta es una representación visual de esos dos procesos de pintura:
Imagen basada en el trabajo de Jeff Patton, utilizada con permiso, jpattonassociates.com
Complejidad del trabajo
Ahora sabe que hay procesos diferentes aptos para diversos tipos de trabajo. Así que ¿cómo determina qué proceso es el mejor para usted y su equipo?
Cuando intente elegir un proceso de flujo de trabajo, pregúntese estas cuestiones.
- ¿Cuánto sabemos sobre el proyecto de antemano?
- ¿Cuál es la claridad de los objetivos y los requisitos del proyecto?
- ¿Cómo está de clara y bien definida la solución?
- ¿Cuál es la experiencia del equipo y de las partes interesadas en estas metodologías?
- ¿Cuál es la complejidad del trabajo?
Cuándo elegir la cascada
Trabajo sencillo:
- El trabajo es sencillo y predecible.
- Cualquiera puede terminar cómo completar el trabajo.
Trabajo complicado:
- El trabajo es predecible, pero necesita competencia.
- El trabajo puede ser automatizado.
Cuándo elegir la agilidad
Trabajo complejo:
- El trabajo se basa en comentarios, riesgos e innovación constantes.
- Hay que probar cosas, ver cómo funcionan y cambiar el curso según los nuevos conocimientos.
- Está creando nuevos productos, software y servicios y está haciendo cosas que no se hicieron nunca antes.
Ampliar Salesforce a la manera ágil
En ese momento, la directiva de Salesforce se embarcó en un piloto para implementar prácticas ágiles en diversos equipos. Hubo algo de reticencia, pero los ejecutivos de Salesforce apoyaron el concepto, y en 2006, el equipo de Tecnología y Productos de Salesforce se reorganizó en un equipo de desarrollo ágil.
¿Qué aspecto tenía? Hicimos lo siguiente.
- Adoptamos una nueva mentalidad para las entregas
- Implementamos procesos estandarizados
- Adoptamos principios ajustados (¡hablaremos más de ello después!)
- Estandarizamos lo que significa “trabajo finalizado”
Nuestra nueva mentalidad ágil
¿Qué es este proceso ágil exactamente? Con palabras sencillas: ágil es el término genérico para varias prácticas, procesos, marcos de trabajo, principios y valores técnicos que exigen flexibilidad con los flujos de trabajo y los cambios iterativos en un producto.
Es un enfoque iterativo hacia el trabajo, en el cual los equipos realizan entregas de forma gradual desde el inicio del proyecto, en vez de entregar un producto final cuando este termina. Ágil ayuda a la alineación entre los equipos, impulsa la calidad y fuerza a todos a medir y gestionar el progreso para ofrecer más valor a los clientes con mayor rapidez.
Funcionó perfectamente con Salesforce, ya que estábamos buscando resolver nuestros problemas crecientes de comunicación y ampliación.
Nuestro nuevo proceso ágil: Una vista desde 15 000 metros
Uno de los procesos ágiles que elegimos implementar en Salesforce es Scrum, y lo apoyamos con principios específicos que definen cómo trabajamos en la actualidad.
¿Qué es Scrum?
Scrum (melé en rugby) es un proceso, con funciones, reuniones y entregas definidas que proporciona el marco de trabajo para ofrecer valor de alta calidad a nuestros clientes de manera más rápida.
¿Por qué adoptamos Scrum?
Scrum nos proporciona un marco de trabajo flexible para averiguar qué funciona y qué no con nuestros productos y realizar cambios en consecuencia. Con Scrum, todo el mundo tiene la propiedad y las expectativas compartidas en lo referente al trabajo que tiene delante.
¿Qué apariencia tiene el proceso Scrum en Salesforce?
Cuando lo adoptamos, 150 personas estaban organizadas en equipos pequeños interfuncionales, que trabajaban en iteraciones cortas (nosotros las llamamos sprints). El objetivo era estabilizar la entrega y organizar nuestros procesos. En este momento, la mayoría de los equipos de Salesforce que trabajan en la nube utilizan alguna versión de Scrum.
¿Qué son los principios ajustados?
También adoptamos principios ajustados. Estas son las siete afirmaciones que describen nuestro flujo de trabajo y proceso de entrega. Reflejan nuestra cultura de Ohana, resaltando cómo trabajan mejor juntas las personas para promover nuestra estructura para el éxito. Los trataremos con más detalle más adelante.
La nueva definición del “trabajo finalizado”
Cuando tuvimos una nueva manera de trabajar, los equipos podían iterar satisfactoriamente sus procesos a medida que conocían nueva información sobre sus flujos de trabajo y el producto. ¿Pero cómo sabíamos que habíamos terminado realmente los elementos de trabajo?
Fácil. Creamos una definición de terminado (DoD) estándar en los equipos de Tecnología y Productos, de modo que todos podían ser claros explícitamente cuando algo está terminado.
Este es un escenario a tener en cuenta: Imagínese que hay una nueva función de un producto que necesita crear. Asigna esta nueva tarea a su equipo y le pide que la implemente este mes. Lo hacen y siguen adelante. Avanzamos rápido algunos meses y el elemento de trabajo finalizado vuelve a aflorar con nuevos problemas. Quizá sean quejas de clientes debido a que las integraciones no estaban probadas completamente. Quizá los problemas de seguridad no estaban solucionados o el desempeño no estaba a la altura. La conclusión: El elemento de trabajo no estaba realmente terminado, al menos no lo suficiente para implementarlo.
Nuestra definición de terminado es un conjunto de directrices que dictan todo lo que tiene que hacer un equipo antes de que puedan decir que el trabajo está terminado realmente. La creación de un estándar para ello es vital para salvaguardar uno de nuestros valores principales en Salesforce: la confianza.
En resumen
Nos preguntamos continuamente: “¿Estamos haciendo lo correcto de la manera correcta?”. Este es el modo con el que garantizamos que estamos manteniendo a nuestros clientes en el centro de todo lo que hacemos.
El rigor del proceso Scrum, junto con las mentalidades ágiles y ajustadas son el núcleo para mejorar nuestra entrega y garantizar lanzamientos fluidos. Esto es clave, ya que Salesforce tiene tres lanzamientos principales anualmente para nuestros clientes.