Principios de producto de Intercom: construir en pequeños pasos para ofrecer el máximo valor al cliente
Publicado: 2022-09-07Los cambios grandes son difíciles de entender y más difíciles de depurar.
En Intercom, ofrecemos cambios complejos en una serie de pasos pequeños, controlados y fáciles de entender. Los pequeños cambios son más fáciles de crear y más rápidos de revisar, lo que nos permite ofrecer valor a los clientes con mayor rapidez.
Esta es la séptima publicación de una serie que explora los principios de nuestros productos . Aquí, Aidan analiza nuestro principio de ingeniería "Construir en pequeños pasos".
Nadie lo hace bien todo el tiempo
Los errores ocurren en todos los equipos, en todas las empresas del mundo. Una vez que acepta que no lo hará bien todo el tiempo, puede ajustarlo de una de dos maneras:
- Intente corregir los errores antes de enviarlos, tomando medidas para validar o verificar su trabajo.
- Permítase espacio para equivocarse, aprenda del error y ajústese rápidamente para corregirlo.
Si ya ha invertido semanas en un cambio, a menudo hay menos espacio para equivocarse. Esto puede llevarlo a confiar en la validación para evitar sorpresas cuando envíe su cambio. La validación tiene su lugar, pero es un sustituto pobre para implementar algo de verdad. Cuanta más validación necesite llevar a cabo antes del envío, más tiempo llevará antes de que pueda iterar o pasar a la siguiente función; en última instancia, lo ralentizará.
Al enviar un cambio, nuestro objetivo es controlar:
- El número de variables afectadas: Cuantas más variables se vean afectadas durante un cambio, más difícil será averiguar qué parte del cambio ha causado el problema. Al reducir el tamaño de cada paso, reforzamos el ciclo de retroalimentación y nos preparamos para aprender y ajustarnos mucho más rápido si es necesario.
- El tamaño del cambio: al reducir el tamaño de nuestros cambios, también reducimos el radio de explosión de cada cambio. Es importante probar los cambios, pero solo hay un límite que la validación inicial detectará. Los cambios más pequeños nos permiten centrar nuestra atención en alcanzar gradualmente su objetivo y no quedarnos demasiado atrapados en garantizar que cada cambio sea perfecto.
- Qué clientes experimentan el cambio: confiamos en los indicadores de características para validar los cambios en la producción y publicarlos gradualmente para los clientes.
No sabemos con certeza si la función resolverá el problema de un cliente hasta que lo tenga en sus manos. Este compromiso de enviar pequeñas iteraciones se relaciona rápidamente con otro principio de Intercom: enviar para aprender.
Gestión de la complejidad
Construir dentro de sistemas complejos es un desafío. Cuando surgen errores en grandes cambios, o cuando las características infladas no dan en el blanco, es difícil identificar el problema específico. Los pequeños pasos facilitan la validación, el cambio y el avance, con la seguridad de que está construyendo sobre terreno firme.
Los grandes cambios incluyen muchas suposiciones:
- Suposiciones externas sobre cómo su cambio afectará los flujos de trabajo de sus clientes.
- Suposiciones internas sobre cómo las diferentes partes de su cambio interactúan y dependen unas de otras.
Si bien puede hacer todo lo posible para verificar las suposiciones externas, a menudo es más rápido y sólido enviar su cambio y validarlo o ajustarlo. Las suposiciones internas son donde la complejidad puede colarse. Cuando su cambio es lo suficientemente grande como para abarcar varios componentes básicos que dependen unos de otros, probarlos juntos puede ser arriesgado. Es mucho más seguro liberarlos gradualmente, construyendo uno encima del otro y monitoreando el impacto a medida que avanza.
La velocidad duradera genera impulso
La velocidad es excelente, pero duradera, la velocidad confiable cambia las reglas del juego. Enviar un cambio grande significa que hay mucho más en juego para que tenga éxito y un mayor riesgo de sorpresas en comparación con una serie de iteraciones pequeñas y rápidas.
“ Un ciclo apretado de envío de pequeños cambios, aprendizaje e iteración crea un fuerte impulso”
Un ciclo apretado de envío de pequeños cambios, aprendizaje e iteración crea un fuerte impulso. Elimina la necesidad de acertar a la primera, fomenta una toma de decisiones más rápida y reduce el radio de acción de los errores. Además, dividir el trabajo en unidades más pequeñas significa que los ingenieros pueden avanzar en el trabajo en paralelo, lo que permite que el equipo se mueva más rápido como un todo.
Construir en pequeños pasos requiere la cultura de equipo adecuada
Construir en pequeños pasos no sucede por accidente, requiere una intención deliberada y el entorno adecuado. La cultura de nuestro equipo y la pila de infraestructura juegan un papel crucial en nuestra capacidad para enviar pequeños cambios rápidamente.

Una vez que los equipos aceptan la importancia de enviar pequeños cambios rápidamente, las revisiones por pares se priorizan y se completan más rápido. Dado que los cambios pequeños son más fáciles de entender y revisar, hay más posibilidades de que se detecten errores en cada etapa. Esta comprensión y urgencia del equipo acelera todo el proceso.
“ Hemos invertido significativamente para garantizar que, una vez que se revisa un cambio y se fusiona con el maestro, se tarda menos de 15 minutos en llegar a la producción, incluidas las pruebas automatizadas y la validación de etapas”
Cuando los tiempos de implementación se ralentizan, los ingenieros se inclinan más por los cambios por lotes, lo que da como resultado un ciclo de cambios más grandes. Hemos invertido significativamente para garantizar que una vez que se revisa un cambio y se fusiona con el maestro, se tarda menos de 15 minutos en llegar a la producción, incluidas las pruebas automatizadas y la validación de etapas. Es completamente automático y los ingenieros reciben una notificación automática de Slack una vez que el cambio está activo.
Aplicar el principio de "construir en pequeños pasos" a la integración de Salesforce de Intercom
El año pasado, buscamos integrar Intercom más profundamente con Salesforce, lo que permitió a los clientes crear automáticamente casos de Salesforce a partir de conversaciones de Intercom. Rápidamente entendimos la complejidad; las conversaciones y los casos no siempre se asignan de manera directa y la sincronización de datos en una relación de muchos a muchos sería un desafío tanto desde la perspectiva de la ingeniería como del diseño. Sumado a esto, había una gran variación en la forma en que los clientes querían usar esta función y necesitaba encajar dentro de la integración existente de la que dependen en gran medida los clientes.
Después de trabajar con las muchas implicaciones y compensaciones de diseño, aparcamos el proyecto a favor de algo que sentimos que generaría un impacto más confiable. Casi no lo construimos porque lo abordamos como un gran cambio en lugar de una serie de pequeños pasos.
Retomamos el proyecto con un enfoque diferente
No pasó mucho tiempo antes de que nuestro equipo de ventas volviera a destacar lo importante que era esta función para nuestros clientes, y decidimos darle otro vistazo. Esta vez adoptamos un enfoque diferente, comenzando con la versión más pequeña posible y eludiendo parte de la complejidad hasta que pudimos aprender lo que los clientes realmente necesitaban.
“ Los clientes con los que trabajamos realmente valoraron el ritmo al que iteraba el equipo y cómo evolucionaba la función día a día, guiados por sus comentarios”
En dos semanas, otro ingeniero y yo construimos la versión más básica de esta función que pudimos compartir con los clientes. Hicimos esto en muchos pasos pequeños para asegurarnos de no romper ninguno de los flujos de trabajo existentes que los clientes ya estaban usando. Esto hizo que la función fuera mucho más tangible y los clientes pudieron brindar comentarios específicos sobre las brechas y mejoras del producto.
Una vez que los clientes la usaban, el equipo iteraba en pequeños pasos, lo que rápidamente hizo que la función fuera más flexible. A medida que crecía la flexibilidad, también lo hacía la cantidad de clientes que la usaban y rápidamente expandimos la versión beta.
Resultó que la relación de muchos a muchos no impidió que los clientes usaran la función y la lanzamos con éxito de manera segura y sin esta complejidad adicional, algo que solo descubrimos al comenzar poco a poco e iterar rápidamente. Los clientes con los que trabajamos realmente valoraron el ritmo al que iteraba el equipo y cómo evolucionaba la función día a día, guiados por sus comentarios.
Construir en pequeños pasos funciona para todos
Construimos en pequeños pasos principalmente porque nos ayuda a entregar valor al cliente más rápido de una manera más segura y duradera. Pero además de eso, como ingeniero, es una forma más agradable de trabajar. Es mucho menos estresante que enviar grandes cambios en los que depende mucho de que hagas bien la primera vez, y obtienes un golpe de dopamina regular cada vez que envías lo que estás trabajando a producción.
Entonces, si nada en esta publicación de blog lo convence de optimizar para reducir el riesgo y brindar valor incremental, debe hacerlo porque es más divertido.
¿Le interesa saber más sobre la forma en que trabajamos en Intercom? Saber más.