Seamos sinceros. La experiencia del desarrollador es una palabra de moda. Eso significa que se habla mucho de él en términos generales, con muy poca sustancia o definición.
Es por eso que me inspiré para comenzar el Proyecto Dev-X , una iniciativa para aportar más textura y definición a la discusión sobre la experiencia del desarrollador. En cada "episodio", le hago 10 preguntas a un líder de la industria sobre la experiencia del desarrollador para recopilar sus puntos de vista y opiniones sobre estos temas específicos. Luego publico estas discusiones y las comparto con la comunidad.
Con casi 20 entrevistas en mi haber, ahora hay suficiente material para comenzar a agregarlo de manera útil y descubrir algunas tendencias interesantes y temas que se repiten.
Esta es la guía definitiva para crear una gran cultura de ingeniería. Una de las preguntas que hice en las entrevistas del Proyecto DevX es "¿cuáles son los ingredientes clave para una gran cultura de la ingeniería?".
Es una pregunta importante porque al final del día todo en su empresa se verá afectado, para bien o para mal, por la cultura que ha creado. Como dijo Liran Haimovitch : “la cultura se come la estrategia en el desayuno, porque la cultura permite que sus equipos actúen de manera predecible en circunstancias impredecibles”.
Entonces, ¿qué es exactamente la cultura? Buena pregunta. Deliberadamente dejé esa parte abierta a la interpretación, y las respuestas fueron igualmente variadas. Algunos entrevistados se centraron en los propios desarrolladores. Otros se centraron en las empresas y la política empresarial. Algunos dieron consejos técnicos o profesionales, mientras que otros ofrecieron consejos sobre relaciones interpersonales y comunicación.
Y este es el primer punto y quizás el más importante de todos. Una cultura de ingeniería verdaderamente excelente necesita equilibrar varios elementos en paralelo.
Los detalles pueden variar según la organización y la situación, pero el denominador común es la necesidad de un enfoque de creación de cultura tridimensional.
Así que espero que disfrute de esta guía de experiencia de desarrollador para construir una gran cultura de ingeniería, recopilada y adaptada de las entrevistas de The DevX Project.
Varias funciones de DevX Project se hicieron eco de la importancia de crear una cultura de libertad y autonomía para los desarrolladores.
Como dijo Seif Lotfy de Axiom : “Creo que realmente se basa en lo que Dan Pink habla en su libro “Drive: la sorprendente verdad sobre lo que nos motiva”. Introduce la autonomía, el dominio y el propósito como factores clave de motivación. Entonces, cuando le das a los desarrolladores la autonomía para dominar su oficio, también desarrollan un propósito que crea una gran cultura... Y no fuerces las herramientas a los ingenieros. Creo que debería dejar que sus ingenieros elijan sus propias herramientas. Empoderarlos con autonomía y propiedad”.
Viktor Farcic agregó: “Lo más importante para mí es la libertad de tomar decisiones. Muchas empresas, creo, están tratando a los ingenieros como si fueran niños, tomándolos de la mano y diciéndoles qué hacer. Ahora puedes cruzar la calle, ahora necesitas parar. Ahora te mueves a la izquierda, ahora vas a la derecha. Para mí, esto puede ser realmente abrumador para cualquier creatividad y capacidad de aprendizaje entre los desarrolladores. Esto es devastador porque creo que la mayor parte de nuestro trabajo como desarrolladores consiste en pensar y resolver las cosas. Escribir código es fácil. Una vez que sepa qué escribir y asumiendo que tiene al menos una comprensión básica de la sintaxis y cosas por el estilo, escribir código es la parte más fácil del proceso. Averiguar qué escribir y cómo escribirlo, esa es la parte compleja. Y si no proporcionamos suficiente libertad a las personas para que resuelvan estas cosas, terminaremos con los resultados que no queríamos: las cosas no funcionan porque los desarrolladores eran solo robots que hicieron exactamente lo que les dijiste sin ningún tipo de pensamiento o creatividad propios”.
Los beneficios de la autonomía del desarrollador no se limitan a las decisiones técnicas. También puede ayudar a fomentar mejores relaciones interpersonales entre los miembros del equipo. Seif Lotfy enfatizó los beneficios de crear relaciones auténticas y explicó que “más allá de la relación súper profesional, dale al equipo la libertad de moverse y ser ellos mismos y apreciarse mutuamente por lo que son”.
Autonomía significa dejar que las personas sean las mejores y más auténticas versiones de sí mismas. Y cuando esto sucede, a menudo arroja resultados positivos para el equipo y la empresa.
También ayuda, como dijo Barak Schoster , si puedes “contratar personas inteligentes con las que sea divertido trabajar”.
Otorgar autonomía a los desarrolladores encaja con la necesidad de que los desarrolladores asuman la propiedad proactiva y la responsabilidad de su trabajo.
Según Liran Haimovitch, la propiedad y la responsabilidad son dos de los elementos más importantes de cualquier gran cultura.
Shawn "Swyx" Wang enfatizó que esta propiedad debería ser "propiedad proactiva": "Artículo #9 en la lista de 16 principios de liderazgo de Amazon - "un sesgo para la acción". Siento que eso es importante en este contexto, porque muchas cosas no se hacen si no te responsabilizas proactivamente de ellas. Así que esto es realmente importante para una cultura de ingeniería saludable”.
Seif Lotfy reflexionó que es importante que los desarrolladores se comuniquen y pregunten por qué: “Asegúrense de entender el pensamiento que se tomó en los enfoques y decisiones de otras personas. De esa manera, incluso si no está de acuerdo, puede tomar todo en consideración e intentar encontrar el mejor camino posible a seguir.
Amir Shevat agregó que esto no debería depender de que alguien pida una explicación. Debe construir una cultura que ofrezca el "por qué" desde el principio:
“Comparta su conocimiento y explique por qué optó por x y no por y. De esa manera, las personas pueden aprender de usted y adoptar sus mejores prácticas y su línea de pensamiento única también en su día a día”.
Un valor similar y no menos importante es la transparencia.
Amir Shevat explicó: “La transparencia es muy importante. Esto significa crear un entorno en el que los ingenieros puedan ver el panorama general: hacia dónde vamos, por qué estamos haciendo lo que estamos haciendo. La creación de este tipo de entorno para los desarrolladores les permitirá crear un código mejor”.
Cuando la comunicación y la transparencia se mantienen adecuadamente, también obtiene otro ingrediente cultural clave en "Integridad". Como dijo Amir: “Si crees que algo no está bien, habla. Los procesos pueden y deben cambiar y evolucionar para mejor”.
Shem Magnezi de Wilco ofreció una perspectiva similar: “La clave es pensar siempre en lo que podemos mejorar: en nuestro sistema, procesos, producto, estilo de código, herramientas de monitoreo y demás. Hay innumerables aspectos en la construcción de un sistema y nunca será perfecto, pero siempre debemos buscar formas de mejorar”. Esta es una forma en que la comunicación, la transparencia y la integridad se manifiestan en una buena cultura de ingeniería.
Swyx y Jason Bosco sugirieron que una retroalimentación intachable y una cultura post-mortem son fundamentales.
En palabras de Swyx: “Cuando envías cosas y las mantienes en producción, recuerda que las cosas siempre se romperán. Así que tener una cultura post-mortem intachable también es importante”.
Amir Shevat también se hizo eco de esto y agregó que todos los miembros del equipo deberían estar abiertos a recibir comentarios: “Como regla general, los ingenieros que están abiertos a los comentarios de los demás hacen mucho mejor su trabajo.
¿Y cómo se puede lograr una cultura de culpa cero? Según Seif Lotfy, comienza trabajando en sus suposiciones subyacentes: “Es importante desarrollar una suposición subyacente de que todos tienen buenas intenciones. Esto es particularmente importante con equipos distribuidos que se encuentran en diferentes zonas horarias y horarios”.
Si todos asumen que todos los demás tienen buenas intenciones y cada miembro del equipo está abierto a recibir comentarios sin culpa, el equipo estará bien posicionado para hacer las cosas de manera efectiva.
Adam Gordon Bell de Earthly.dev lo expresó de esta manera: “Una gran cultura se basa en la confianza y la comprensión. Ambos se construyen con el tiempo en base a experiencias compartidas”.
No es sorprendente que la colaboración como ingrediente clave de la cultura de la ingeniería fuera un mensaje que resonó en varias de nuestras entrevistas.
Como dijo Hila Fish de Wix : "Necesitas colaborar con otros para encontrar las mejores soluciones y asegurarte de que se logre el objetivo final".
Y Amir Shevat explicó: “Creo que un equipo de personas que colaboran siempre superará a un equipo menos colaborativo, incluso cuando ese equipo menos colaborativo esté lleno de ingenieros individuales “increíbles”. Personalmente, he formado parte de equipos de ingeniería que no eran tan colaborativos. Tenían ingenieros increíbles, increíbles, pero en realidad no compartían lo que estaban haciendo. Es mucho más beneficioso cuando las personas comienzan a colaborar, compartir, brindar comentarios y hablar sobre las interfaces entre lo que cada persona está trabajando”.
Pasión por el oficio y el producto.
Tom Snelling de Norhflank dijo: “Creo que lo mejor que puede tener un equipo es una pasión genuina por el producto que están construyendo. Después de haber trabajado en proyectos en los que he estado involucrado y en los que no, la diferencia en la moral (y, por lo tanto, en la producción) es increíble. Cuando los ingenieros realmente se preocupan por lo que están trabajando, creo que la cultura se multiplica por diez. Contrata personas inteligentes que quieran trabajar en tu proyecto”.
Amir Shevat enfatizó la importancia del profesionalismo en la creación de una gran cultura de ingeniería: “Piense siempre en las necesidades de la empresa. Esto debería aplicarse a todos los aspectos de su trabajo... Y si bien ser técnico es excelente e incluso necesario, capacitar su mentalidad empresarial realmente ayudaría a crear una cultura en la que no se da preferencia solo a las soluciones más técnicas, sino a las soluciones que ayudan a lograr el mejor resultado para la empresa.”
Gil Tayar de Roundforest estuvo de acuerdo: “Para mí, los ingredientes clave para una gran cultura de ingeniería son: Gente amable. No mucho ego. Profesionalismo y orgullo en el oficio. Estos elementos establecen un ambiente creativo y sin estos ingredientes, es difícil crear una cultura positiva y productiva”.
Desde una perspectiva más técnica, Swyx aconsejó que los equipos pongan énfasis en su documentación: “Una buena cultura de documentación o documentación de diseño también es muy importante. En otras palabras, antes de implementar algo, obviamente debes intentar diseñarlo y pensar en las propuestas y acordar las cosas de alto nivel con todos. Pero una buena cultura lleva esto un paso más allá. Significa que todos realmente leen el documento cuando lo reciben. Y eso es bastante raro. Por lo tanto, una buena cultura de la documentación significa una buena escritura y también una buena lectura, de modo que detecte los problemas de diseño y las expectativas no coincidentes más temprano que tarde”.
Amir Shevat destacó el valor de una cadencia de entrega saludable: "Tener una cadencia de entrega saludable también es muy importante para la cultura de ingeniería porque cuando un equipo continúa entregando, puede cosechar regularmente los beneficios de la felicidad y la satisfacción de su trabajo".
Barak Shoester alentó de manera similar a los equipos a "optimizar la velocidad de iteración".
Y Jason Bosco dijo: “Algunos de los ingredientes clave para mí son: Reducir el tiempo que transcurre entre que un ingeniero escribe el código y los usuarios lo usan, junto con reversiones sin esfuerzo…”.
Si bien esto surgió de una forma u otra en muchas de nuestras entrevistas, Sunil Sandhu de Circut e In Plain English lo expresó bien: “La humildad ocupa un lugar destacado para mí y eso no es solo para la ingeniería, sino para las culturas de trabajo en general. Los miembros del equipo deben estar dispuestos y listos para ayudar a los demás, fomentando un entorno en el que nadie sienta que una pregunta es demasiado estúpida para hacerla”.
Creo que hay muchas respuestas clichés que podría dar aquí y, hasta cierto punto, siento que hay muchos desarrolladores más experimentados que podrían responder mejor. Entonces, una última cosa que presentaré es que cuando un equipo está orientado a la misión, y ese equipo está cantando desde la misma partitura, pueden suceder cosas increíbles.
Y en palabras de Gil Tayar: “Para mí, los ingredientes clave para una gran cultura de la ingeniería son: Gente agradable. No mucho ego. Profesionalismo y orgullo en el oficio.”
Obviamente, un buen ingeniero necesita tener una cierta base de capacidad técnica. Pero al crear y administrar un equipo, son estos factores adicionales los que garantizarán que se mantengan unos a otros con altos estándares, se mantengan curiosos, se mantengan positivos y se esfuercen continuamente por mejorar.
Y de eso se trata una gran cultura de ingeniería.
¿Te gusta lo que ves aquí? ¿Quieres ser destacado? Consulte nuestro Proyecto DevX para conocer otras funciones excelentes y solicitar compartir su propia experiencia como desarrollador.
También publicado aquí .