Skip to main content

Cultura de ingeniería en Snyk: los valores que sustentan e impulsan a nuestros equipos

Escrito por
Headshot of Sergey Vasilkov

Sergey Vasilkov

8 de mayo de 2023

0 minutos de lectura

Snyk siempre fue una empresa con una cultura increíble y fuertemente definida. A medida que crecemos, queremos compartir y difundir nuestros valores fundamentales y, al mismo tiempo, dejar espacio para que los distintos departamentos y divisiones se basen en ellos. Esto ayuda a Snyk a mantener lo que nos hace ser Snyk y también ayuda a los nuevos empleados a incorporarse con éxito.

La cultura de ingeniería se asienta sobre los valores de la empresa, agregando creencias y valores que influyen en la manera en que nuestros ingenieros de software toman decisiones o realizan acciones cuando trabajan. 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 mantener y difundir esta cultura entre todos nuestros compañeros ingenieros.

Queremos que la cultura de ingeniería de Snyk determine la forma en que nuestros ingenieros de software abordan la resolución de problemas, la innovación y la colaboración. Ayuda a construir el entorno que apoya a los ingenieros para que alcancen su máximo potencial e impulsa el éxito de la organización en su conjunto. En Snyk, creemos que nuestra cultura de ingeniería es un aspecto crucial de los valores generales de nuestra empresa que se basan en nuestros valores y prioridades, y esto nos ayuda a atraer y retener a los mejores talentos.

Además, creemos que una cultura de ingeniería bien documentada nos ayudará a ser más eficaces al:

  • sacar a la luz las incongruencias y forzar los debates necesarios;

  • hacer que la cultura sea más predecible;

  • empoderar a la gente para que actúe (si estoy alineado con la cultura y tengo las mejores intenciones, no me meteré en demasiados problemas);

  • hacer que los ingenieros remen en la misma dirección;

  • reducir las fricciones entre las personas;

  • atraer a candidatos alineados con la cultura (y disuadir a los que no lo están);

  • asistir en la incorporación de nuevos ingenieros y establecer expectativas y valores compartidos.

Cómo definimos la cultura de ingeniería de Snyk

Snyk tiene una cultura sólida y bien definida a nivel de la organización. Cuando hablamos entre nosotros, nuestros valores nos ayudan a alinearnos y a centrar la atención. 

  • Un equipo -. Celebramos la fortaleza de nuestra comunidad, colaborando con entusiasmo y determinación para hacer grandes cosas.

  • Cuidar en profundidad -. Estamos orgullosos de liderar con pasión por los demás, por nuestros clientes, por el planeta y por las comunidades en las que vivimos y trabajamos.

  • Enviar -. Actuamos con rapidez, adoptando la innovación continua para ofrecer resultados a nuestros clientes, siempre aprendiendo, iterando y mejorando.

  • Pensar en grande -. Celebramos la fortaleza de nuestra comunidad, colaborando con entusiasmo y determinación para hacer grandes cosas.

  • Aprender siempre -. Creemos que siempre hay algo más que aprender y que el aprendizaje es el sustento de nuestro crecimiento como personas y como empresa. Nunca dejes de aprender.

Cada uno de estos valores fundamentales puede aplicarse en diferentes situaciones. Creemos que centrarnos en estos valores nos ayuda a tener éxito. Ahora bien, ¿cómo podemos basarnos en estos valores fundamentales para ayudar a todos nuestros ingenieros a mantenerse en la misma sintonía y tener éxito?

Reunimos a los líderes de todo el departamento de Ingeniería, les expusimos nuestros valores y realizamos una lluvia de ideas sobre todas las cosas que hacen que la ingeniería sea increíble en Snyk. La combinación de nuestros valores fundamentales con nuestras prácticas de ingeniería dio lugar a un documento escrito sobre la cultura de ingeniería de Snyk que sirve de base para esta entrada del blog.

Un equipo

Celebramos la fortaleza de nuestra comunidad, colaborando con entusiasmo y determinación para hacer grandes cosas.

Nos comunicamos en exceso

Como empresa descentralizada, somos verborrágicos sobre nuestros progresos, procesos, problemas, etc. Esto incluye la comunicación, la documentación y las prácticas recomendadas para compartir información. Algunos ejemplos son:

  • Compartir el progreso y las novedades de los proyectos de forma regular sin pedirlo.

  • Demostrar funciones nuevas o en curso.

  • Grabar y compartir videos con regularidad para que cualquiera pueda verlos.

  • Una guild (grupo de personas con diversas habilidades) de documentación técnica que promueve las prácticas recomendadas de documentación y redacción técnica.

Damos y recibimos comentarios con regularidad

Animamos a nuestra gente a que evalúe a menudo y busque retroalimentación de sus compañeros y de los directivos. También sabemos cómo aplicar los comentarios de retroalimentación y cómo beneficiarnos de ellos. La retroalimentación es un regalo, y siempre la ofrecemos y la aceptamos teniendo en cuenta ese contexto. Para promover la retroalimentación, tenemos revisiones anuales/trimestrales/no regulares, retroalimentación individualizada y un canal público de agradecimiento en Slack.

Nunca trabajamos solos

La toma de decisiones, la resolución de tareas triviales y no triviales, la resolución de incidencias... siempre tenemos a alguien que nos apoya. Las personas no tienen miedo ni vergüenza de tender la mano para colaborar con los demás. Nos inclinamos por la colaboración y nos animamos a apoyarnos en nuestro valor Un equipo.

Por ejemplo, muchos equipos practican la programación en parejas/programación mob/programación en grupo para apoyarse mutuamente, mantener la concentración y aportar las mejores soluciones.

Tenemos una cultura libre de culpas

Todos forman parte de lo que hacemos, y la forma en que respondemos, crecemos y aprendemos es más importante que cualquier intento de echar culpas. Cuando hablamos de problemas, siempre nos centramos en las mejoras y en la gestión futura. 

Somos expresivos a la hora de apreciar el trabajo de los demás.

Siempre expresamos nuestro agradecimiento en canales públicos de comunicación, incluido un canal #appreciation en Slack.

Cuidar en profundidad

Estamos orgullosos de liderar con pasión por los demás, por nuestros clientes, por el planeta y por las comunidades en las que vivimos y trabajamos.

Tenemos en cuenta los requisitos de calidad/no funcionales

Tenemos en cuenta incluso los requisitos implícitos a la hora de proporcionar valor a los clientes, por ejemplo, la facilidad de uso, la confiabilidad, la posibilidad de realizar pruebas, la eficiencia y la preparación general para producción. Nosotros:

  • solucionamos los problemas en lugar de barrerlos debajo de la alfombra;

  • cubrimos las funciones con una cantidad razonable de pruebas;

  • proporcionamos métricas, paneles de control y alertas adecuados;

  • utilizamos internamente los productos y las funciones que creamos (es decir, hacemos dogfooding).

Consideramos las implicaciones éticas de nuestro trabajo

Al realizar nuestro trabajo, somos conscientes de las responsabilidades éticas que tenemos ante la sociedad y tratamos de incluir consideraciones éticas en nuestros requisitos. 

  • Tenemos en cuenta los requisitos que aportan valor a las comunidades vulnerables, como los requisitos de accesibilidad en la experiencia del usuario.

  • Tratamos los datos de acuerdo con la normativa aplicable y nos tomamos en serio la gobernanza de datos.

  • No empleamos patrones de diseño engañosos (por ejemplo, los que obligan a la gente a suscribirse a cosas o engañan de alguna otra manera).

  • Los ingenieros tienen la responsabilidad de plantear sus preocupaciones sobre el posible incumplimiento de las normas de ética y deben sentirse empoderados para hacerlo sin temor a represalias o castigos.

Pensamos primero en los clientes

Todos los problemas de los clientes importan, y apoyar a los equipos de atención al cliente, así como a los equipos de primera línea, es una tarea vital 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 les damos prioridad junto con el trabajo sobre las funciones.

  • Estudiamos a los usuarios siempre que hay nuevas funciones para orientar nuestro diseño en función de sus necesidades y casos de uso directos.

Fomentamos la conexión y la socialización (pero no la forzamos)

Ayudamos a los que disfrutan de la interacción a tener más interacciones. Pero no obligamos a nadie a socializar, ya que sabemos que no es lo que todo el mundo quiere. Para ayudar, ofrecemos canales de Slack divertidos, canales Donut de Slack, tiempo en equipo para disfrutar, eventos sociales, happy hours y mucho más (tanto en línea como fuera de línea).

Somos conscientes de que cada persona tiene un día/una experiencia diferente

Snyk sabe cómo trabajar en un entorno con diferentes husos horarios y tiene experiencia con equipos descentralizados. Respetamos el calendario de las personas (guarderías, citas con el médico, etc.), respetamos sus zonas horarias (no hay reuniones ni se espera que respondan en Slack) y ofrecemos una sesión de aprendizaje llamada Zonas horarias para gerentes y gestionados.

Tratamos la diversidad, la equidad y la inclusión (DEI) como principio básico

Estamos fortaleciendo la cultura inclusiva de Snyk, en la que aceptamos las diferencias, mantenemos un sentido de unidad y nos empoderamos mutuamente para ser nuestro yo más auténtico en el trabajo. Ofrecemos una variedad de Grupos de Recursos Snyk (SRG) para diferentes comunidades marginadas y tenemos una misión interna Mosaic@Snyk para fortalecer nuestra cultura inclusiva.

Enviar

Actuamos con rapidez, adoptando la innovación continua para ofrecer resultados a nuestros clientes, siempre aprendiendo, iterando y mejorando.

Trabajamos con cortes verticales

Cada trabajo que realizamos comienza con un objetivo claro centrado en el usuario. Estos deben abarcar toda la pila y ayudar a minimizar el riesgo en el trabajo a realizar en el futuro. Aplicamos el desarrollo iterativo para recibir comentarios tempranos de retroalimentación.

Lecturas recomendadas (en inglés):Marshmallow Challenge (Desafío de los malvaviscos), Innovation Games: Creating Breakthrough Products Through Collaborative Play (Juegos de innovación: crear productos de avanzada mediante el juego colaborativo), Mark Finnern | Any significantly advanced work is indistinguishable from play (Todo trabajo considerablemente avanzado es indistinguible del juego), Visible Architectures (Arquitecturas visibles), How Big Tech Runs Tech Projects and the Curious Absence of Scrum (Cómo los gigantes tecnológicos ejecutan proyectos de tecnología y la curiosa ausencia de scrum)

Nuestros equipos tienen libertad para elegir su propio proceso

Sea cual sea el proceso que te ayude a trabajar (XP, Kanban, Shape Up, Scrum...), elige tu método. Al mismo tiempo, tenemos libertad dentro de un marco... para que al equipo le vaya bien. Pero el equipo debe estar alineado con el grupo hasta cierto punto. Dentro del grupo, los equipos deben ser capaces de planificar, establecer dependencias y comunicarse entre sí acerca de los objetivos a corto plazo.

Así, tenemos algunos equipos que siguen el proceso XP o programación extrema (p. ej., no hay sprints ni puntos historia); otro grupo utiliza Shape Up; e Infra utiliza un modelo de 1 página y 6 páginas para la comunicación y la toma de decisiones.

Nuestros equipos siguen las “Definiciones de hecho” para saber cuándo el trabajo está realmente terminado

“Hecho” va más allá de estar en producción; significa estar en manos de usuarios y partes interesadas realmente comprometidos. Trabajamos continuamente en lo que es una “Definición de hecho” en los canales internos.

Nos preocupamos mucho por la DevEx y creamos/compramos herramientas para apoyarte

Siempre estamos interesados en implementar mejores métodos. Esto significa que podemos sugerir, probar y validar nuevas herramientas para que pasen a formar parte de nuestro conjunto estándar de herramientas disponibles. Por ejemplo, Polaris, Jira y CircleCI están disponibles para nuestros ingenieros, y tenemos canales de Slack para darles soporte y para agregar nuevas herramientas al conjunto.

Pensar en grande

Nos mueve la ambición de lograr lo extraordinario, superando los límites para crear soluciones que cambien el mundo.

Automatizamos

No pierdas tiempo y esfuerzo en procesos rutinarios, pasos repetitivos y operaciones que requieren mucho tiempo.

Perfeccionamos los procesos

No te aferres a algo solo porque funcione así desde hace años. Hackea y arregla los procesos para que funcionen de la mejor manera para la empresa.

Pensamos más allá de las fronteras del equipo

Pensamos en las dependencias, las sacamos a la luz y formamos parte de un grupo, no solo del equipo. Siempre estamos compartiendo nuestros progresos en los niveles superiores a nosotros, obteniendo retroalimentación de todo nuestro grupo y fomentando las grandes ideas (p. ej.: cambiemos el funcionamiento de X). Para fomentar la colaboración entre equipos de forma divertida, organizamos hackathons (o maratones de hackers) y otros eventos para reunir a todos.

Diseñamos para el futuro y desarrollamos para el presente

Nos esforzamos por encontrar un equilibrio entre Pensar en grande y Enviar: pensamos en grande en la arquitectura y el diseño, y nos centramos en los cortes verticales, como también ampliamos el alcance cuando ejecutamos.

Aprender siempre

Adoptamos una mentalidad de apertura y curiosidad, aprendiendo unos de otros y buscando siempre formas de crecer.

Fomentamos y practicamos la tutoría y el coaching

No se puede competir con una sólida cultura de tutoría entre pares. Es una ventaja competitiva para hacer crecer rápidamente una organización. Para respaldar esto, tenemos los canales #miyagi-academy y #mentorship-\*, y estamos encantados tanto de pedir conocimientos como de compartirlos. También ofrecemos una sesión de aprendizaje sobre Cómo concientizar de manera eficaz.

Ofrecemos un programa de Intercambio de empleados Snyk

Para mejorar por iteración, pusimos en marcha el programa de Intercambio de empleados. Esto permite a los empleados de los distintos equipos de ingeniería cambiar de equipo durante un sprint para aprender nuevas tecnologías, experimentar nuevos procesos y mejorar como Un equipo.

Animamos a los Snykers a utilizar sus recursos de aprendizaje

Valoramos el conocimiento, el aprendizaje y el autodesarrollo. Snyk nos ayuda a invertir más en aprendizaje fomentando el “calendar blocking” (la división de las tareas en bloques, y el respeto de esos bloques), proporcionando un presupuesto anual para educación y dando acceso a recursos de aprendizaje como Learnerbly, Udemy, O'Reilly, etc.

Ejecutamos regularmente retrospectivas y aprendemos de la experiencia

Aunque la mayoría de los equipos ejecutan retrospectivas de sprints/proyectos, nosotros también ejecutamos retrospectivas de los nuevos procesos e iniciativas en su fase inicial para identificar lo que se puede cambiar, arreglar o mejorar. Los procesos de revisión y hackeo giran en torno a nosotros.

Realizamos revisiones de incidentes

Realizamos revisiones posteriores a incidentes y análisis generales. Esto nos ayuda a mejorar en dos aspectos: cómo abordamos los incidentes y qué podemos hacer para evitar un incidente similar en el futuro. Para respaldar esto, contamos con una guild de incidentes y un proyecto dedicado a incidentes graves.

Asistimos a Snyk School

Snyk School es un foro atractivo e interactivo dirigido por Snykers que te dará la oportunidad de aprender más sobre temas fundamentales para nuestro aprendizaje y crecimiento.

Hacemos demostraciones de nuestro trabajo

Estamos dispuestos a compartir los cambios técnicos demostrándolos en software operativo. Compartimos nuestros éxitos y progresos en diferentes reuniones para distintos grupos destinatarios: compañeros, apoyo, empresas. Esto incluye demostraciones quincenales en toda la empresa y llamadas de demostración mensuales.

Tenemos roles de ingeniería definidos

Tener roles bien definidos favorece el crecimiento profesional y personal en el sentido de una trayectoria profesional. Los ingenieros son capaces de comprender cuál es su situación actual y qué aspectos deben mejorarse.

Conclusiones

Ahora que tenemos todas nuestras creencias y prácticas por escrito, podemos compartirlas con más facilidad con todos nuestros talentosos ingenieros repartidos 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 cultura de ingeniería rara vez los llevarán por mal camino.

La cultura puede ser difícil de definir al principio, ya que es algo que se interioriza y se vive. Una vez que das un paso atrás y la analizas, puedes ver dónde hay valores que guían tu forma de abordar el trabajo y los problemas. Te retamos a que lo intentes. ¿Qué valores te parecen importantes para ayudar a tus equipos a tener más éxito? 

Publicado en:

Snyk Top 10: Vulnerabilites you should know

Find out which types of vulnerabilities are most likely to appear in your projects based on Snyk scan results and security research.