Un test de cultura de ingeniería de software

Original source: https://blog.pragmaticengineer.com/the-developer-culture-test/

Vea una versión más corta y actualizada de esta prueba aquí: The Pragmatic Engineer Test: 12 preguntas sobre cultura de la ingeniería .

He hablado con docenas de desarrolladores de software sobre lo que les gusta y lo que no les gusta de su lugar de trabajo (equipo y empresa) profesionalmente. Estoy empezando a ver una tendencia interesante en los entornos que hacen que las personas sean felices y prósperas (y les hacen permanecer más tiempo) frente a aquellos en los que las personas se sienten miserables, incluso cuando están allí. He estado prestando especial atención a personas de la misma empresa durante 4 o 5 años o más, que no están interesadas en explorar otras opciones. ¿Qué les motiva y les hace querer quedarse? Y la gente desesperada por mudarse, ¿qué es lo que los aleja?

Me sorprende ver que no se ha hecho mucho para cuantificar estas observaciones en 2020. Tenemos la prueba de Joel que todavía está adjunta a las ofertas de trabajo de Stack Overflow, la mayoría de los anuncios de trabajo afirman tener 11 o 12 de esos 12 puntos. Pero el Joel Test, escrito en 2000, parece demasiado desactualizado y no aborda aspectos que son importantes para los desarrolladores productivos en la década de 2020, como la autonomía, las revisiones de código o el crecimiento profesional continuo. Así que di un paso atrás y volví a imaginar lo que sería una prueba como la de Joel en la década de 2020: predictores de un lugar de trabajo que tiene una gran cultura de desarrollo.

Con esto te presento el Test de Cultura de Desarrollador: 3 áreas con 5 preguntas cada una para una organización saludable, donde los desarrolladores prosperan. En mi experiencia, cualquier empresa de tecnología a la que llamarías empresa decente debería tener los 3 puntos básicos definidos y cubrir al menos 4 de los 5 puntos en cada área.El ingeniero pragmáticoPrueba de cultura de ingeniería de software

Conceptos básicos : seguridad, compensación justa y flexibilidad de sentido común.

Claridad, autonomía y colaboración

  1. Comprender el “por qué”
  2. Trabajo pendiente/hoja de ruta e ingenieros que contribuyen a él
  3. Comunicación directa en la resolución de problemas.
  4. Colaboración multifuncional
  5. Celebrando la toma de iniciativas

Cultura de ingeniería sostenible

  1. ¡Funcionalmente completo! = listo para producción
  2. Revisiones y pruebas de código
  3. CI y CD o desarrolladores implementando en producción
  4. guardia saludable
  5. Código abierto interno

Desarrollo de la carrera

  1. Responsables técnicos que generan confianza
  2. Escala de la carrera
  3. Pistas paralelas de IC y administrador
  4. Una cultura de retroalimentación
  5. Invertir en crecimiento profesional

Lo esencial

Estas son cosas que todas las empresas decentes tienen implementadas. Si tu empresa no tiene ni siquiera uno de estos, probablemente ya estés buscando un nuevo trabajo y definitivamente tienes los escudos bajos .

  1. Seguridad psicológica y cultura intachable . ¿Se sienten las personas seguras siendo ellas mismas y expresando sus opiniones, incluso si no están de acuerdo con los demás? ¿Prestar atención y actuar sobre microagresiones y prejuicios inconscientes es parte de la cultura? Cuando algo sale mal, ¿ejecuta un proceso irreprochable, centrándose en la causa raíz sistémica y no en quién la causó? Esto puede deberse a interrupciones, problemas técnicos o decisiones fallidas.
  2. Compensación justa. ¿Su empresa paga un salario justo, más o menos a la par del mercado local?
  3. Flexibilidad de sentido común en el horario laboral . ¿Pueden los ingenieros trabajar de una manera flexible que funcione tanto para su equipo como para ellos? Esto podría ser unas pautas razonables del trabajo desde casa, siendo flexible en cambios de horario a corto plazo y circunstancias personales, centrándose en el trabajo que se realiza a qué hora las personas comienzan y terminan la jornada laboral.
See also  Ensamblador molecular

No perderé mucho tiempo con los dos primeros. En cuanto al último, la flexibilidad de sentido común, algunos podrían preguntarse por qué lo agrego aquí. Esto se debe a que los acuerdos de trabajo flexibles para los ingenieros de software están en todas partes. Hay una explosión de roles remotos, el trabajo desde casa es una corriente principal desde el coronavirus y cualquier empresa que se aferre al horario de 9 a 5 o algo similar se encontrará siendo una minoría. Y la gente en estos lugares se preguntará (y debería) por qué no cambiarían a otro lugar donde esté presente este tipo de flexibilidad.

Claridad, autonomía y colaboración

Las empresas que hagan esto bien harán que prosperen personas innovadoras y autónomas. Aquellos que no lo hagan verán a estas personas irse con el tiempo.

  1. Comprender el “por qué”. ¿Tiene implementado un proceso para compartir con los ingenieros las razones comerciales para realizar el trabajo? Podrían tratarse de cosas como hojas de ruta, OKR, objetivos de toda la empresa y la organización, etc.
  2. Trabajo pendiente/hoja de ruta e ingenieros que contribuyen a él. ¿Tienen los equipos un trabajo pendiente/una hoja de ruta clara, lo que facilita responder “¿en qué trabajaremos a continuación y por qué?” ¿La planificación de arriba hacia abajo coincide también con la planificación de abajo hacia arriba? Entonces, ¿pueden los ingenieros aportar sugerencias que terminen en la hoja de ruta del equipo, ya sea como respaldo del “por qué” o como parte del presupuesto del trabajo de ingeniería? ¿Se priorizan de esta manera las sugerencias razonables de pago de deuda tecnológica?
  3. Comunicación directa en la resolución de problemas . ¿Se anima a los desarrolladores a resolver los problemas directamente acudiendo a los desarrolladores de otros equipos? En lugar de tener que recurrir a su manager, que habla con otro manager, que habla con el manager del equipo, que habla con…
  4. Colaboración multifuncional . ¿Los desarrolladores trabajan directamente con usuarios, diseñadores, gerentes de productos, científicos de datos y otras partes interesadas sin tener que depender de un proxy (por ejemplo, su gerente)?
  5. Celebrar a las personas que toman iniciativas . ¿Está la gente tomando iniciativas para celebrar o recompensar mejor las cosas en lugar de considerarlas distracciones innecesarias?

Boletin informativo

Suscríbase a mi boletín semanal para recibir artículos semanales con observaciones y análisis profundos sobre la industria de la ingeniería de software. Es el boletín de tecnología número uno en Substack y esto es lo que la gente dice al respecto.

Cultura de ingeniería sostenible

Haga esto bien y los desarrolladores no se cansarán ni se frustrarán infinitamente.

  1. Distinguir entre funcionalmente completo versus listo para producción. ¿Diferencia entre la fase de prototipo/MVP/funcionalmente completa y el estado de preparación del código para producción? ¿Tiene una lista de verificación sobre qué nivel de calidad adicional significa que algo esté listo para producción?
  2. Revisiones y pruebas de código . ¿Las revisiones de código y las pruebas automatizadas (unitarias, de integración, etc.) son parte del proceso de desarrollo diario, hasta el punto de que no tenerlas es una rara excepción, en casos muy bien comprendidos?
  3. CI y CD o desarrolladores implementando en producción . ¿Tiene una configuración de proceso de CI que se ejecuta antes de enviar el código? Una vez confirmado el código, ¿tiene un proceso de CD para enviarlo directamente a producción? Si no, ¿pueden los desarrolladores enviar el código que poseen a este entorno?
  4. De guardia saludable . Para los equipos donde los desarrolladores están de guardia, ¿miden el estado de la guardia y el impacto en los desarrolladores? ¿La reparación de una guardia no saludable tiene prioridad sobre el trabajo de cualquier producto?
  5. Código abierto interno . ¿Sigue un modelo interno de código abierto, donde cualquier desarrollador puede leer y contribuir a cualquier otra base de código, con la propiedad del código adecuada?
See also  APICOMPLEXA

Todo lo anterior son prácticas básicas que la mayoría de las empresas de tecnología donde los desarrolladores pueden avanzar rápidamente, con la estabilidad que esperan. Volviendo las cosas al revés: si te estás perdiendo la mayor parte de esto, buena suerte contratando personas de empresas de tecnología sin que renuncien en el primer mes, o que se propongan cambiar la cultura por algo similar.

Desarrollo de la carrera

Las personas motivadas quieren seguir creciendo a lo largo de su carrera. ¿Tiene su empresa una vía para que los desarrolladores sénior crezcan fuera de la gestión y se apoya el crecimiento profesional de diversas formas?

  1. Responsables técnicos que generan confianza. ¿La mayoría de los gerentes de ingeniería son técnicos, es decir, tienen experiencia en haber realizado desarrollo de software en algún momento de su carrera? ¿Los gerentes realizan reuniones individuales regulares de una manera que genere confianza (por ejemplo, escuchar, dar retroalimentación, discutir objetivos profesionales)?
  2. Escala de la carrera. ¿Tiene una escala profesional, con niveles y expectativas definidos en cada uno de los niveles, y un proceso de promoción claro sobre cómo llegar al siguiente nivel?
  3. Pistas paralelas de IC y administrador . ¿Tiene trayectorias profesionales paralelas en IC y administración que se extienden algunos niveles por encima del rol de gerente de ingeniería de nivel inicial?
  4. Una cultura de retroalimentación . ¿Tiene al menos dos de los tres siguientes: revisiones de desempeño 360 (donde los directivos también brindan retroalimentación a los gerentes), una cultura de pares que se retroalimentan entre sí y retroalimentación periódica recopilada, compartida y en consecuencia por parte de la empresa a través de toda la empresa? o encuestas en toda la organización.
  5. Invertir en crecimiento profesional. ¿Tiene al menos dos de los tres siguientes: un programa de tutoría activo en el que los desarrolladores también asesoran a otros desarrolladores , un estipendio de desarrollo profesional para libros/capacitaciones, charlas tecnológicas periódicas donde las personas de la empresa aprenden entre sí o de expertos externos?

He hablado mucho con la gente sobre el hecho de que los gerentes sean técnicos. Si bien entiendo que los gerentes no técnicos también pueden ser empáticos y excelentes gerentes: extrañarán tanto la capacidad de desafiar al equipo como de protegerlo de solicitudes irrazonables. Carecerán de la capacidad de abogar eficazmente por la ingeniería sostenible, tanto para proteger al equipo de solicitudes irrazonables como para implementar prácticas para una buena salud del equipo. Sin experiencia práctica sobre por qué ciertas prácticas son importantes, defender cualquiera de ellas es muy difícil. También tendrán dificultades para ser mentores de personas de su equipo en ingeniería de software, lo cual es especialmente importante para las personas que se encuentran al principio de su carrera.

La gestión paralela y las rutas de IC (o la falta de ellas) es otro predictor de la cultura de la ingeniería. Si el único lugar para que los mejores ingenieros crezcan profesionalmente y en términos de impacto es la administración, este será un panorama sombrío para los desarrolladores que no quieran hacer esto o no sean muy buenos en eso. También crea una cultura de gerentes que dirigen el programa, en lugar de actuar como líderes servidores, que son socios de los desarrolladores, especialmente de los CI de alto nivel.

¿Qué tan acertado es todo esto?

Quizás te preguntes: Gergely, esta es una buena lista, pero ¿qué tan aplicable es todo lo anterior? Es bastante aplicable, según mi experiencia profesional y mis conversaciones con un par de docenas de desarrolladores de software en diferentes regiones e industrias. También refleja cómo funcionan algunas de las empresas tecnológicas más innovadoras y de rápido movimiento, desde Microsoft, Google, Facebook y Uber, hasta startups más pequeñas pero exitosas, como Monzo, N26 y muchas otras.

See also  Model Storming: una práctica central ágil

Aunque lo escribí de forma independiente, la prueba Tech-First Culture también parece hacerse eco de algunos de los hallazgos del libro Accelerate: The Science of Building and Scaling High Performance Technology Organizations . Reflexiones sobre la autonomía individual y de equipo y la ingeniería sostenible son puntos que también surgen en este libro.

Vea cómo se clasifica Flo Sports en la prueba de cultura de desarrollador de Pragmatic Engineer . ¿ Qué puntuación obtiene su organización actual en la prueba de cultura del desarrollador?

(Imagen de publicación de David Rangel).


Empleos destacados de ingeniero pragmático

  • Gerente de Ingeniería Web en HashiCorp. $136-173K + capital. Remoto (EE. UU.).
  • Gerente de Ingeniería Web en HashiCorp. $123-180K + capital. Remoto (EE. UU.).
  • Ingeniero líder de frontend en Rooser. £100-120K Londres (Reino Unido).
  • Ingeniero de software en Rooser. Londres, Reino Unido).
  • Desarrollador Frontend senior en ePilot. 50-90.000 € . Köln (Alemania) o Remota (Alemania).
  • Ingeniero Senior Full Stack en ePiilot. 60.000-95.000 € . Remoto (Alemania).
  • Ingeniero de Software en Air Space Intelligence. Boston, MA (Estados Unidos).
  • Ingeniero Senior Full Stack – Experiencia de desarrollador en Synthesia. 100.000€+ . Remoto (Europa).
  • Ingeniero Senior Full Stack – Crecimiento/Colaboración en Synthesia. 100.000€+ . Remoto (Europa).
  • Desarrollador Senior Backend (Python) en Octopus Kraken. Berlín o Munich (Alemania).
  • Desarrollador senior de Python en Octopus Kraken. París, Francia).
  • Ingeniero Senior de Producto, Frontend en Attio. £90-125K + capital. Remoto (Europa).
  • Staff Full Stack Engineer en POSH. $170-220K + capital. Nueva York (Estados Unidos).
  • Director de IA/ML en Sixfold AI. $195-225K + capital. Nueva York o Remoto (EE. UU.).
  • Ingeniero fundador (Full-Stack) en Strada. $140-190K + 0.5-1% de capital. Remoto (Global).

Los trabajos anteriores obtienen una puntuación de al menos 9/12 en la prueba de ingeniero pragmático . Explore más puestos de ingeniería senior y liderazgo en ingeniería con excelentes culturas de ingeniería, o agregue el suyo propio en la bolsa de trabajo de The Pragmatic Engineer y solicite unirse a The Pragmatic Engineer Talent Collective .

¿Quiere obtener oportunidades interesantes de empresas de tecnología examinadas? Regístrese en The Pragmatic Engineer Talent Collective y reciba grandes oportunidades, similares a las que se muestran a continuación, sin ningún compromiso. Puede ser público o anónimo, y yo seleccionaré la lista de empresas y personas.

¿Está contratando ingenieros senior o gerentes de ingeniería? Solicite unirse al Pragmatic Engineer Talent Collective para ponerse en contacto con ingenieros y gerentes/directores de ingeniería senior y superiores de clase mundial. Obtenga entregas examinadas dos veces al mes, por parte de ingenieros de software (full-stack, backend, móvil, frontend, datos, ML) y gerentes que actualmente trabajan en Big Tech, nuevas empresas de alto crecimiento y lugares con sólidas culturas de ingeniería. Aplicar aquí .

Leave a Comment