Cómo el conservadurismo técnico nos ayuda a escalar más rápido y mejor

Publicado: 2022-07-21

En Intercom, estamos enfocados en el futuro y estamos tomando medidas audaces para llegar allí. Pero cuando tomamos decisiones técnicas, nos gusta ser conservadores.

En la práctica, ser técnicamente conservador parece reutilizar tecnologías y marcos existentes en nuestra pila, o promover patrones y soluciones probados y comprobados. Valoramos esta familiaridad porque entendemos que los problemas importantes que deben resolverse son los que brindan valor al cliente o al negocio.

En lugar de evaluar nuevas tecnologías y dedicar tiempo a problemas operativos ya resueltos que, en última instancia, brindan poco valor al cliente, podemos centrarnos en mejorar el producto mediante la creación, el lanzamiento y la iteración de soluciones.

Esta es la sexta publicación de una serie que explora los principios de nuestros productos . Aquí, Waheed analiza nuestro principio de ingeniería "Sé técnicamente conservador".

Hay muchos beneficios a largo plazo para el conservadurismo técnico.

Este principio se ilustra mejor con algunos ejemplos a lo largo de los años, que demuestran cómo " Ser técnicamente conservador" nos permite escalar rápidamente y, en última instancia, no ser una restricción. Anteriormente hablé sobre nuestra experiencia en el diseño de nuestro sistema de informes, donde evaluamos los beneficios de introducir un nuevo almacén de datos en nuestra pila: Redshift. Habría significado introducir un nuevo tipo de base de datos en nuestro sistema que nunca se había probado en producción. Además, habríamos tenido que dedicar mucho tiempo a desarrollar conocimientos operativos, mantener los clústeres en producción y lidiar con problemas imprevistos relacionados con la operación de Redshift a escala.

Aprovechamos nuestra infraestructura existente para acelerar el proceso de un estimado de seis meses a solo seis semanas”

Finalmente, decidimos que un almacén de datos familiar se adaptaba mejor al trabajo. Aprovechamos nuestra infraestructura Elasticsearch existente, que impulsa la mayoría de las capacidades de búsqueda de Intercom, para acelerar el proceso de un estimado de seis meses a solo seis semanas.

La versión inicial del sistema de informes se envió hace algunos años, por lo que tuvimos la oportunidad de reflexionar sobre algunos de los beneficios a largo plazo de nuestra aplicación del conservadurismo técnico en ese caso:

Solucionamos el problema del cliente más rápido

El uso de nuestra infraestructura existente significó que evitamos perder tiempo familiarizándonos con un nuevo almacén de datos y lidiando con todos los contratiempos inevitables. Pudimos concentrarnos de inmediato en el problema del cliente para resolverlo y enviarlo rápidamente, lo que redujo el tiempo de entrega en más de cuatro meses.

Aprovechamos al máximo el tiempo del equipo.

Nuestro equipo de Infraestructura de datos pudo seguir centrándose en un conjunto pequeño y familiar de tecnologías en lugar de estar distribuido en varias tecnologías. Como resultado, tuvieron, y todavía tienen, más tiempo para garantizar la salud de nuestros sistemas existentes y optimizar nuestro uso de cada tecnología.

Debido a que nuestro conjunto de tecnologías es relativamente pequeño, las mejoras ocurren regularmente”

Aumentamos el valor de las mejoras continuas

Debido a que nuestro conjunto de tecnologías es relativamente pequeño, las mejoras ocurren regularmente. El producto aprovecha esas tecnologías y, por lo tanto, el impacto de esas mejoras se agrava en todo lo construido sobre ellas. Una pequeña mejora puede tener un efecto dominó masivo y positivo en todo el producto.

Más equipos han tenido más aportes

El uso de tecnologías comunes significa que más ingenieros y equipos se sienten seguros y capacitados para trabajar con ellos. Hemos visto mejoras frecuentes en el producto de informes de equipos de toda la empresa en lugar de solo un equipo que posee una parte particular del sistema.

Recuerda que los principios no son reglas, son pautas

Los principios son una forma increíble de alinear equipos y han dado excelentes resultados para Intercom. Pero hay momentos en los que podría tener más sentido no seguirlos. A medida que una empresa escala, existe el riesgo de que algunos miembros del equipo sigan los principios dogmáticamente o los interpreten incorrectamente. Recurrir al conservadurismo técnico no debería significar que nunca introduzcamos algo nuevo.

“El conservadurismo técnico significa favorecer una tecnología que ya está en su pila, pero solo si es la mejor opción”

El conservadurismo técnico significa favorecer una tecnología que ya está en su pila, pero solo si es la mejor opción. En algunas situaciones, una tecnología existente podría no ser adecuada. Si no puede responder las siguientes preguntas, podríamos buscar más y evaluar alternativas:

  • ¿La nueva herramienta le permite a su negocio escalar de manera más efectiva?
  • ¿Permite que su equipo u organización se mueva más rápido y entregue valor más rápidamente?
  • ¿Resuelve un problema del cliente que no se pudo resolver con sus herramientas existentes?

Si responde "sí" a cualquiera de estos, puede valer la pena considerar la introducción de esa nueva herramienta. En Intercom, hubo un ejemplo reciente que respondió "sí" a las tres preguntas.

Los usuarios, o los clientes de nuestros clientes, son fundamentales para la plataforma de Intercom. A medida que hemos crecido, también lo han hecho nuestros clientes y sus necesidades en cuanto a la cantidad de datos de usuario que almacenan en Intercom. La gran cantidad de datos de los usuarios estaba provocando problemas de escalado con nuestro almacén de datos de usuarios actual en ese momento, y para garantizar que pudiéramos continuar brindando soporte a los clientes nuevos y existentes, necesitábamos repensar nuestra solución actual. Eso finalmente nos llevó a introducir una nueva tecnología en nuestra pila: así es como llegamos a esta decisión.

Estábamos escalando más rápido de lo que permitía nuestro almacén de datos

Habíamos estado usando MongoDB durante aproximadamente cinco años y teníamos las cicatrices operativas para demostrarlo. Habíamos optimizado cada aspecto de poseerlo y ejecutarlo, desde el tipo de hardware en el que se ejecutaba hasta las consultas que ejecutamos en él. Estábamos en el punto de rendimientos decrecientes y veíamos fuertes señales de que dejaría de ser adecuado para su propósito en un par de años, e incluso podría convertirse en un cuello de botella en el crecimiento de la empresa.

“Piense regularmente en la trayectoria de su negocio y pregúntese : ' ¿Lo que nos trajo aquí nos llevará allá? '. Esto le permitirá ser proactivo sobre sus elecciones en lugar de reactivo”

Aquí es donde es clave tener una estrategia técnica sólida y con visión de futuro. En este punto, teníamos suficientes datos para sugerir que podríamos necesitar evaluar otro enfoque y teníamos la pista para hacerlo. Piense regularmente en la trayectoria de su negocio y pregúntese: "¿Lo que nos trajo aquí nos llevará allá?". Esto le permitirá ser proactivo sobre sus elecciones en lugar de reactivo, y mitiga los riesgos en torno a las incógnitas desconocidas de la introducción de una nueva tecnología.

Nuestra tecnología estaba ralentizando a nuestro equipo

En Intercom nos esforzamos por ejecutar menos software. En este caso, aunque estábamos adoptando una nueva tecnología con incógnitas desconocidas, la adopción de DynamoDB nos permitió hacer precisamente eso.

Anteriormente, autogestionábamos el escalado de MongoDB junto con el código para equilibrar la carga, una sobrecarga significativa para el equipo. Parte del atractivo de DynamoDB fue que fue administrado por el proveedor, AWS. Esto significaba que, aunque adoptarlo tenía un costo inicial, en última instancia sería más económico y ahorraría al equipo una gran cantidad de tiempo y esfuerzo.

“No ser dogmáticos sobre el conservadurismo técnico nos permitió reemplazar una tecnología con grandes gastos generales y capacidades limitadas”

Puede parecer contradictorio, pero la introducción de una nueva tecnología finalmente resultó en que ejecutáramos menos software. No ser dogmáticos sobre el conservadurismo técnico nos permitió reemplazar una tecnología con grandes gastos generales y capacidades limitadas con una nueva tecnología que era menos onerosa desde el punto de vista operativo y más escalable.

Fuimos despiadados con los requisitos.

A veces requeríamos MongoDB para realizar consultas complejas y costosas que ponían en riesgo la disponibilidad y el rendimiento de consultas más comunes pero menos complejas. Al evaluar DynamoDB, nos dimos cuenta de que no admitiría esas consultas complejas y costosas, pero sería mucho mejor en las más simples y comunes.

Ya usábamos Elasticsearch principalmente para realizar consultas complejas, y la necesidad de migrar nos obligó a revisar y definir de manera más deliberada las capacidades que requeríamos de nuestra tienda de usuarios y, en última instancia, nos permitió mejorar el rendimiento para su caso de uso principal: recuperar registros de usuarios individuales.

“Cuando piense en reemplazar una tecnología, no dé por sentado que utilizará la nueva tecnología de la misma manera”

Cuando piense en reemplazar una tecnología, no dé por sentado que utilizará la nueva tecnología de la misma manera. Es probable que sus requisitos hayan cambiado considerablemente con el tiempo, y el resto de la pila habrá evolucionado o madurado para que los casos de uso se vuelvan más limitados. Esto abrirá oportunidades para adoptar tecnologías más enfocadas y de mayor rendimiento, o descargar algunas tecnologías para que las administre un proveedor.

Haz que tus principios funcionen para tu negocio, no al revés

El conservadurismo técnico es una gran herramienta para permitir que sus equipos se mantengan enfocados en lo que es importante: resolver los problemas de los clientes y brindar valor sin gastar valiosos recursos en responder preguntas que ya han sido respondidas.

Sin embargo, volverse demasiado rígido en la creencia de que la introducción de nuevas tecnologías es mala podría impedirle aprovechar las tecnologías que lo ayudarán a ejecutar menos software y escalar más fácil y rápidamente. Es importante aplicar este principio de la manera que funcione mejor para su equipo y su negocio a largo plazo.

¿Está interesado en unirse al equipo de ingeniería de Intercom? Obtenga más información y vea nuestros puestos vacantes aquí.

Carreras CTA - Ingeniería (horizontal)