La cultura de ingeniería en Snyk: los valores que respaldan e impulsan a nuestros equipos
Sergey Vasilkov
8 de mayo de 2023
0 minutos de lecturaSnyk siempre ha sido una empresa con una cultura increíble y muy bien definida. A medida que crecemos, queremos compartir y difundir nuestros valores fundamentales de forma intencional, y dar espacio a los distintos departamentos y divisiones para que los desarrollen. Esto ayuda a Snyk a conservar lo que nos hace ser quienes somos y también facilita la incorporación de las nuevas personas que se suman al equipo.
La cultura de ingeniería se basa en los valores de la empresa y suma creencias y valores que influyen en las decisiones y acciones de nuestros ingenieros de software durante su trabajo. En este caso, podemos convertir todas las motivaciones, normas, prácticas recomendadas, elecciones de herramientas, etc., en una cultura de ingeniería bien definida. Esto nos ayuda a conservar y difundir esta cultura entre todos nuestros colegas de ingeniería.
Queremos que la cultura de ingeniería de Snyk influya en cómo nuestros ingenieros de software abordan la resolución de problemas, la innovación y la colaboración. Ayuda a crear un entorno que permite a los ingenieros alcanzar su máximo potencial e impulsa el éxito de toda la organización. En Snyk, creemos que nuestra cultura de ingeniería es un aspecto fundamental de los valores generales de la empresa y que, al reforzar nuestros valores y prioridades, nos ayuda a atraer y retener al mejor talento.
Además, creemos que documentar bien nuestra cultura de ingeniería nos ayudará a ser más eficaces al:
Poner en evidencia las inconsistencias y propiciar las conversaciones necesarias.
Hacer que la cultura sea más predecible.
Empoderar a las personas para actuar (si estoy alineado con la cultura y tengo las mejores intenciones, no puedo meterme en demasiados problemas).
Lograr que los ingenieros avancen en la misma dirección.
Reducir las fricciones entre las personas.
Atraer a candidatos que se identifiquen con la cultura (y disuadir a quienes no lo hagan).
Ayudar a incorporar a los nuevos ingenieros y establecer valores y expectativas compartidos.
Cómo definimos la cultura de ingeniería de Snyk
Snyk tiene una cultura organizacional sólida y bien definida. Al comunicarnos, recurrimos a nuestros valores para alinearnos y centrar nuestra atención.
Un solo equipo - Celebramos la fortaleza de nuestra comunidad y colaboramos con entusiasmo y propósito para lograr grandes cosas.
Nos importa profundamente - Nos enorgullece liderar con pasión por los demás, nuestros clientes, el planeta y las comunidades donde vivimos y trabajamos.
Lo hacemos realidad - Trabajamos con rapidez y apostamos por la innovación continua para ofrecer resultados a nuestros clientes, siempre aprendiendo, iterando y mejorando.
Pensamos en grande - Celebramos la fortaleza de nuestra comunidad y colaboramos con entusiasmo y propósito para lograr grandes cosas.
Aprendemos siempre - Creemos que siempre hay algo más que aprender y que el aprendizaje es la esencia de nuestro crecimiento, como personas y como empresa. Nunca dejamos de aprender.
Cada uno de estos valores fundamentales puede aplicarse en distintas situaciones. Hemos comprobado que centrarnos en ellos nos ayuda a alcanzar el éxito. Ahora bien, ¿cómo podemos desarrollar estos valores y ayudar a todos nuestros ingenieros a estar alineados y tener éxito?
Reunimos a líderes de todas las áreas de ingeniería, compartimos nuestros valores con ellos e hicimos una lluvia de ideas sobre todo lo que hace que la ingeniería en Snyk sea increíble. Al conectar nuestros valores fundamentales con nuestras prácticas de ingeniería, creamos un documento de Cultura de ingeniería de Snyk que sirve de base para esta publicación.
Un solo equipo
Celebramos la fortaleza de nuestra comunidad y colaboramos con entusiasmo y propósito para lograr grandes cosas.
Nos comunicamos de más
Como empresa distribuida, damos muchos detalles sobre nuestros avances, procesos, problemas, etc. Esto incluye la comunicación, la documentación y las prácticas recomendadas para compartir información. Algunos ejemplos:
Compartimos regularmente los avances y las novedades de los proyectos sin que nadie tenga que pedirlos.
Hacemos demostraciones de las funciones nuevas o en desarrollo.
Grabamos videos con regularidad y los compartimos para que cualquiera pueda verlos.
Contamos con un grupo de documentación técnica que promueve las prácticas recomendadas para documentar y redactar contenido técnico de calidad.
Damos y recibimos comentarios con regularidad
Alentamos a nuestro equipo a revisar el trabajo con frecuencia y pedir comentarios a colegas y líderes. También sabemos cómo aplicar esos comentarios y aprovecharlos. Los comentarios son un regalo, y siempre los ofrecemos y recibimos con esa idea en mente. Para fomentar este intercambio, hacemos evaluaciones anuales, trimestrales o en otros momentos, comentarios privados en reuniones 1:1 y contamos con un canal público de reconocimiento en Slack.
Nunca trabajamos en solitario
Al tomar decisiones, resolver tareas complejas o sencillas y atender incidentes, siempre contamos con alguien que nos apoya. A nadie le da miedo ni vergüenza pedir colaborar con otras personas. Preferimos colaborar y alentamos a apoyarnos en nuestro valor de Un solo equipo.
Por ejemplo, muchos equipos practican la programación en pareja, la programación en modo o la programación grupal para apoyarse, mantener la concentración y encontrar las mejores soluciones.
Fomentamos una cultura sin culpas
Todos formamos parte de lo que hacemos, y nuestra manera de responder, crecer y aprender importa más que buscar culpables en una retrospectiva. Al analizar problemas, siempre nos centramos en las mejoras y en cómo abordarlos en el futuro.
Expresamos nuestro reconocimiento por el trabajo de los demás
Siempre expresamos nuestro reconocimiento en los canales públicos de comunicación, incluido un canal #appreciation dedicado en Slack.
Nos importa profundamente
Nos enorgullece liderar con pasión por los demás, nuestros clientes, el planeta y las comunidades donde vivimos y trabajamos.
Tenemos en cuenta la calidad y los requisitos no funcionales
Tenemos presentes incluso los requisitos implícitos al ofrecer valor a los clientes. Por ejemplo, consideramos la facilidad de uso, la confiabilidad, la capacidad de prueba, la eficiencia y la preparación general para producción. Para ello:
Solucionamos los problemas en vez de esconderlos debajo de la alfombra.
Cubrimos las funciones con una cantidad razonable de pruebas.
Proporcionamos las métricas, los paneles y las alertas adecuados.
Usamos internamente los productos y las funciones que creamos (es decir, practicamos el dogfooding).
Consideramos las implicaciones éticas de nuestro trabajo
Al realizar nuestro trabajo, tenemos presentes nuestras responsabilidades éticas con la sociedad y procuramos incorporar consideraciones éticas a nuestros requisitos.
Consideramos requisitos que aporten valor a comunidades vulnerables, como los requisitos de accesibilidad en la experiencia de usuario.
Gestionamos los datos de acuerdo con las regulaciones aplicables y nos tomamos muy en serio su gobernanza.
No empleamos patrones de diseño engañosos (por ejemplo, aquellos que presionan a las personas para que se registren en algo o las engañan de alguna otra forma).
Los ingenieros tienen la responsabilidad de plantear sus inquietudes sobre posibles infracciones éticas y deben sentirse empoderados para hacerlo sin temor a represalias.
Pensamos primero en los clientes
Todos los problemas de los clientes importan, y apoyar a nuestros clientes y a los equipos de primera línea es una tarea fundamental para nuestros equipos.
Los ingenieros participan en llamadas de depuración con los clientes para acelerar las correcciones.
Mantenemos una visión clara de los problemas y los priorizamos junto con el trabajo de desarrollo de funciones.
Investigamos a los usuarios para todas las funciones nuevas y orientamos el diseño según sus necesidades y casos de uso directos.
Fomentamos la conexión y la socialización, pero no las imponemos
Ayudamos a quienes disfrutan de interactuar a hacerlo más. Pero no obligamos a nadie a socializar, porque sabemos que no todas las personas lo desean. Para facilitarlo, ofrecemos canales divertidos en Slack, canales de Slack para encuentros virtuales, momentos recreativos en equipo, eventos sociales, encuentros informales y mucho más, tanto en línea como en persona.
Tenemos presente que cada persona vive un día y una experiencia distintos
Snyk sabe cómo trabajar en distintas zonas horarias y tiene experiencia con equipos distribuidos. Respetamos los calendarios de las personas (por ejemplo, sus responsabilidades de cuidado infantil y citas médicas), respetamos sus zonas horarias (sin reuniones ni expectativas de que respondan en Slack) y ofrecemos una sesión de aprendizaje llamada Zonas horarias para gerentes y personas a su cargo.
Consideramos la diversidad, la equidad y la inclusión (DEI) un principio fundamental
Estamos fortaleciendo la cultura inclusiva de Snyk: aceptamos las diferencias, mantenemos un sentido de unidad y nos empoderamos mutuamente para ser auténticos en el trabajo. Ofrecemos varios grupos de recursos de Snyk (SRG) para distintas comunidades marginadas y contamos con la misión interna Mosaic@Snyk para fortalecer la cultura inclusiva de Snyk.
Lo hacemos realidad
Trabajamos con rapidez y apostamos por la innovación continua para ofrecer resultados a nuestros clientes, siempre aprendiendo, iterando y mejorando.
Trabajamos con entregas verticales
Cada trabajo que hacemos comienza con un entregable claro y centrado en el usuario. Estos entregables deben abarcar toda la pila tecnológica y reducir los riesgos del trabajo futuro. Aplicamos un desarrollo iterativo para recibir comentarios desde el principio.
Lecturas recomendadas: El desafío del malvavisco, Juegos de innovación: crear productos revolucionarios mediante el juego colaborativo, Mark Finnern | Todo trabajo significativamente avanzado es indistinguible del juego, Arquitecturas visibles, Cómo gestiona proyectos tecnológicos Big Tech y la curiosa ausencia de Scrum
Nuestros equipos tienen libertad para elegir su propio proceso
Elige el proceso que te ayude a entregar: XP, Kanban, Shape Up, Scrum; tú decides. Al mismo tiempo, tenemos libertad dentro de un marco común para adaptarlo a las necesidades del equipo. Sin embargo, el equipo debe alinearse hasta cierto punto con el grupo. Los equipos del grupo deben poder planificar, establecer dependencias y comunicarse juntos sobre los objetivos a corto plazo.
Por ejemplo, algunos equipos siguen XP (p. ej., no trabajan en sprints ni asignan puntos a las historias); otro grupo usa Shape Up; e Infra usa un modelo de documento de 1 o 6 páginas para comunicarse y tomar decisiones.
Nuestros equipos siguen las «definiciones de trabajo terminado» para saber cuándo el trabajo está realmente completo.
El trabajo no está terminado solo por estar en producción: también debe estar en manos de usuarios y partes interesadas reales y comprometidos. Trabajamos continuamente en la «Definición de terminado» en los canales internos.
Nos importa profundamente la experiencia de desarrollo (DevEx) y creamos o compramos herramientas para apoyarte
Siempre nos interesa implementar mejores formas de trabajar. Esto significa que podemos sugerir, probar y validar nuevas herramientas para incorporarlas a nuestro conjunto estándar. Por ejemplo, nuestros ingenieros tienen a su disposición Polaris, Jira y CircleCI. También contamos con canales de Slack para brindarles apoyo y agregar nuevas herramientas.
Pensamos en grande
Nos impulsa la ambición de lograr cosas extraordinarias: superar los límites para crear soluciones que puedan cambiar el mundo.
Automatizamos
No desperdicies tiempo y esfuerzo en procesos rutinarios, pasos repetitivos ni operaciones que consumen mucho tiempo.
Perfeccionamos los procesos
No te aferres a algo solo porque se haya hecho así durante mucho tiempo. Modifica y mejora los procesos para que funcionen de la mejor manera para la empresa.
Pensamos más allá de los límites del equipo
Tenemos en cuenta y hacemos visibles las dependencias, y formamos parte de un grupo, no solo de un equipo. Compartimos nuestros avances con los niveles superiores, reunimos comentarios de todo el grupo y alentamos las grandes ideas (por ejemplo: «Cambiemos la forma en que funciona X»). Para fomentar la colaboración entre equipos de manera divertida, organizamos hackatones y otros eventos que nos reúnen.
Diseñamos para el futuro y desarrollamos para el presente
Buscamos equilibrar Pensamos en grande y Lo hacemos realidad: pensamos en grande al diseñar la arquitectura y las soluciones, nos enfocamos en entregas verticales y ampliamos el alcance durante la implementación.
Aprendemos siempre
Adoptamos una actitud abierta y curiosa, aprendemos unos de otros y siempre buscamos formas de crecer.
Fomentamos y practicamos la mentoría y el coaching
Una sólida cultura de mentoría entre colegas es una gran ventaja competitiva para hacer crecer rápidamente una organización. Para fomentarla, tenemos los canales #miyagi-academy y #mentorship-*, y nos encanta tanto pedir como compartir conocimientos. También ofrecemos una sesión de aprendizaje sobre Cómo ser un educador eficaz.
Ofrecemos un programa de intercambio para empleados de Snyk
Para mejorar mediante la iteración, lanzamos el programa Employee Exchange. Este permite que los empleados de distintos equipos de ingeniería se unan a otro equipo durante un sprint para aprender nuevas tecnologías, conocer otros procesos y mejorar como One Team.
Animamos a los Snykers a aprovechar sus recursos de aprendizaje
Valoramos el conocimiento, el aprendizaje y el desarrollo personal. Snyk nos ayuda a invertir más en aprendizaje al animarnos a reservar tiempo en el calendario para aprender (y respetar esos espacios), ofrecernos un presupuesto anual para educación y darnos acceso a recursos de aprendizaje como Learnerbly, Udemy, O’Reilly y otros.
Hacemos retrospectivas con regularidad y aprendemos de nuestra experiencia
Aunque la mayoría de los equipos hacen retrospectivas de los sprints y proyectos, también las hacemos sobre los nuevos procesos e iniciativas en sus etapas iniciales para identificar qué podemos cambiar, corregir o mejorar. Los procesos de revisión y hackeo dependen de todos nosotros.
Revisamos los incidentes
Hacemos revisiones posteriores a los incidentes y análisis retrospectivos. Esto nos ayuda a mejorar de dos maneras: ¿cómo respondemos a los incidentes y qué podemos hacer para evitar que se repitan en el futuro? Para apoyarnos en esto, contamos con un grupo de trabajo sobre incidentes y un proyecto dedicado a los incidentes graves.
Asistimos a Snyk School
Snyk School es un espacio interactivo y atractivo, dirigido por Snykers, que te da la oportunidad de aprender más sobre temas clave para nuestro aprendizaje y crecimiento.
Hacemos demostraciones de nuestro trabajo
Nos entusiasma compartir los cambios técnicos mediante demostraciones en software funcional. Compartimos nuestros logros y avances en distintas reuniones para diferentes públicos: colegas, soporte y negocio. Esto incluye demostraciones quincenales para toda la empresa y llamadas mensuales de demostración.
Definimos los roles de ingeniería
Contar con roles bien definidos favorece el crecimiento profesional y personal al ofrecer una trayectoria profesional. Los ingenieros pueden entender cuál es su situación actual y qué aspectos deben mejorar.
Conclusiones
Ahora que hemos plasmado por escrito todas nuestras creencias y prácticas, podemos compartirlas más fácilmente con nuestros talentosos ingenieros, que están distribuidos por todo el mundo. Podemos iterar sobre ellas a medida que aprendemos (¡aprender siempre!) y ayudar a los ingenieros a tomar las mejores decisiones posibles. Las decisiones alineadas con nuestros valores y nuestra cultura de ingeniería rara vez los llevarán por mal camino.
La cultura puede ser difícil de definir al principio. Es algo que interiorizas y vives. Cuando das un paso atrás y la observas, puedes ver qué valores guían tu manera de abordar el trabajo y los problemas. ¡Te invitamos a intentarlo! ¿Qué valores consideras importantes para ayudar a tus equipos a alcanzar el mayor éxito posible?