paint-brush
Le guide ultime d'une grande culture d'ingénieriepar@zevireinitz
3,167 lectures
3,167 lectures

Le guide ultime d'une grande culture d'ingénierie

par Zevi Reinitz9m2023/04/17
Read on Terminal Reader

Trop long; Pour lire

Avouons-le. L'expérience des développeurs est un mot à la mode. Cela signifie qu'on en parle beaucoup en termes généraux, avec très peu de substance ou de définition. C'est pourquoi j'ai été inspiré pour lancer le projet Dev-X - une initiative visant à apporter plus de texture et de définition à la discussion sur l'expérience des développeurs. Dans chaque « épisode », je pose 10 questions à un leader de l'industrie sur l'expérience des développeurs afin de recueillir leurs idées et leurs opinions sur ces sujets spécifiques. Je publie ensuite ces discussions et les partage avec la communauté. Avec près de 20 interviews à mon actif, il y a maintenant suffisamment de matériel pour commencer à l'agréger de manière utile et découvrir des tendances intéressantes et des thèmes récurrents.
featured image - Le guide ultime d'une grande culture d'ingénierie
Zevi Reinitz HackerNoon profile picture

Avouons-le. L'expérience des développeurs est un mot à la mode. Cela signifie qu'on en parle beaucoup en termes généraux, avec très peu de substance ou de définition.


C'est pourquoi j'ai été inspiré pour lancer le projet Dev-X - une initiative visant à apporter plus de texture et de définition à la discussion sur l'expérience des développeurs. Dans chaque « épisode », je pose 10 questions à un leader de l'industrie sur l'expérience des développeurs afin de recueillir leurs idées et leurs opinions sur ces sujets spécifiques. Je publie ensuite ces discussions et les partage avec la communauté.


Avec près de 20 interviews à mon actif, il y a maintenant suffisamment de matériel pour commencer à l'agréger de manière utile et découvrir des tendances intéressantes et des thèmes récurrents.

Comment créer une grande culture d'ingénierie

C'est le guide ultime pour créer une grande culture d'ingénierie. L'une des questions que j'ai posées dans les entretiens du projet DevX est « quels sont les ingrédients clés d'une excellente culture d'ingénierie ».


C'est une question importante car en fin de compte, tout dans votre entreprise sera impacté - pour le meilleur et pour le pire - par la culture que vous avez créée. Comme l'a dit Liran Haimovitch : "la culture mange la stratégie au petit-déjeuner, car la culture permet à vos équipes d'agir de manière prévisible dans des circonstances imprévisibles".


Alors, qu'est-ce que la culture exactement ? Bonne question. J'ai délibérément laissé cette partie ouverte à l'interprétation, et les réponses étaient tout aussi variées. Certaines personnes interrogées se sont concentrées sur les développeurs eux-mêmes. D'autres se sont concentrés sur les entreprises et la politique de l'entreprise. Certains ont donné des conseils techniques ou professionnels tandis que d'autres ont offert des conseils sur les relations interpersonnelles et la communication.


Et c'est le premier point et peut-être le plus important de tous. Une véritable culture d'ingénierie doit équilibrer plusieurs éléments en parallèle.


Les spécificités peuvent varier selon l'organisation et la situation, mais le dénominateur commun est la nécessité d'une approche tridimensionnelle de renforcement de la culture.


J'espère donc que vous apprécierez ce guide d'expérience de développeur pour créer une excellente culture d'ingénierie, collecté et adapté à partir des interviews du projet DevX.


Autonomie du développeur

Plusieurs fonctionnalités de DevX Project ont fait écho à l'importance de créer une culture de liberté et d'autonomie pour les développeurs.


Comme l'a dit Seif Lotfy d' Axiom : "Je pense que cela s'appuie vraiment sur ce dont parle Dan pink dans son livre "Drive - La vérité surprenante sur ce qui nous motive". Il introduit l'autonomie, la maîtrise et le but comme facteurs clés de motivation. Ainsi, lorsque vous donnez aux développeurs l'autonomie nécessaire pour maîtriser leur métier, ils développent également un objectif qui crée une grande culture… Et n'imposez pas d'outils aux ingénieurs. Je pense que vous devriez laisser vos ingénieurs choisir leurs propres outils. Donnez-leur autonomie et propriété.


Viktor Farcic a ajouté : « La chose la plus importante pour moi est la liberté de prendre des décisions. Je crois que de nombreuses entreprises traitent les ingénieurs comme s'ils étaient des enfants - en leur tenant la main, en leur disant quoi faire. Maintenant vous pouvez traverser la rue, maintenant vous devez vous arrêter. Maintenant tu vas à gauche maintenant tu vas à droite. Pour moi, cela peut être vraiment écrasant pour toute créativité et toute capacité d'apprentissage parmi les développeurs. C'est dévastateur parce que je crois que la majeure partie de notre travail en tant que développeurs consiste à réfléchir et à comprendre les choses. L'écriture de code est facile. Une fois que vous savez quoi écrire et en supposant que vous avez au moins une compréhension de base de la syntaxe et des choses comme ça, écrire du code est la partie la plus facile du processus. Déterminer quoi écrire et comment l'écrire - c'est la partie complexe. Et si nous ne laissons pas suffisamment de liberté aux gens pour comprendre ce genre de choses, alors nous nous retrouvons avec les résultats que nous ne voulions pas - les choses ne fonctionnent pas parce que les développeurs n'étaient que des robots qui faisaient exactement ce que vous leur disiez sans aucun pensée ou créativité qui leur est propre.

Créer de vraies relations

Les avantages de l'autonomie des développeurs ne se limitent pas aux décisions techniques. Cela peut également aider à favoriser de meilleures relations interpersonnelles entre les membres de l'équipe. Seif Lotfy a souligné les avantages de créer des relations authentiques et il a expliqué que "Au-delà de la relation super-professionnelle, donnez à l'équipe la liberté de se déplacer et d'être elle-même et de s'apprécier pour qui elle est."


L'autonomie signifie permettre aux gens d'être les meilleures versions authentiques d'eux-mêmes. Et lorsque cela se produit, cela donne souvent des résultats positifs pour l'équipe et l'entreprise.


Cela aide également, comme l'a dit Barak Schoster , si vous pouvez "embaucher des personnes intelligentes avec lesquelles il est agréable de travailler".

Appropriation et responsabilité proactives

Donner l'autonomie aux développeurs va de pair avec la nécessité pour les développeurs de s'approprier et de rendre compte de manière proactive de leur travail.


Selon Liran Haimovitch, la propriété et la responsabilité sont deux des éléments les plus importants de toute grande culture.


Shawn « Swyx » Wang a souligné que cette appropriation devrait être une « appropriation proactive » : « Point n° 9 sur la liste des 16 principes de leadership d'Amazon - « un parti pris pour l'action ». J'ai l'impression que c'est important dans ce contexte, car beaucoup de choses ne se font pas si vous ne vous en appropriez pas de manière proactive. C'est donc très important pour une culture d'ingénierie saine.

Communiquez et expliquez « pourquoi ? »

Seif Lotfy a expliqué qu'il est important pour les développeurs de communiquer et de demander pourquoi : « Assurez-vous de comprendre la pensée qui a influencé les approches et les décisions des autres. De cette façon, même si vous n'êtes pas d'accord, vous pouvez tout prendre en considération et essayer de trouver la meilleure voie possible.


Amir Shevat a ajouté que cela ne devrait pas dépendre de quelqu'un demandant une explication. Vous devez créer une culture qui propose le « pourquoi » dès le départ :


"Partagez vos connaissances et expliquez pourquoi vous avez choisi x et non y. De cette façon, les gens peuvent apprendre de vous et adopter vos meilleures pratiques et votre ligne de pensée unique dans leur quotidien également. »

Transparence

Une valeur similaire et non moins importante est la transparence.


Amir Shevat a expliqué : « La transparence est très importante. Cela signifie créer un environnement dans lequel les ingénieurs peuvent avoir une vue d'ensemble - où nous allons, pourquoi nous faisons ce que nous faisons. Créer ce type d'environnement pour les développeurs leur permettra de créer un meilleur code.

Intégrité

Lorsque la communication et la transparence sont correctement maintenues, vous gagnez également un autre ingrédient clé de la culture dans «l'intégrité». Comme l'a dit Amir : « Si vous pensez que quelque chose ne va pas, parlez-en. Les processus peuvent et doivent changer et évoluer pour le mieux.


Shem Magnezi de Wilco a offert une perspective similaire : « La clé est de toujours penser à ce que nous pouvons améliorer : dans notre système, nos processus, nos produits, notre style de code, nos outils de surveillance, etc. La construction d'un système comporte d'innombrables aspects et il ne sera jamais parfait, mais nous devons toujours chercher des moyens de nous améliorer. » C'est ainsi que la communication, la transparence et l'intégrité se manifestent dans une bonne culture d'ingénierie.

Zéro blâme

Swyx et Jason Bosco ont tous deux suggéré qu'une rétroaction irréprochable et une culture post-mortem sont essentielles.


Selon les mots de Swyx : « Lorsque vous expédiez des produits et que vous les maintenez en production, rappelez-vous que les choses vont toujours casser. Il est donc également important d'avoir une culture post-mortem irréprochable.


Cela a également été repris par Amir Shevat qui a ajouté que tous les membres de l'équipe devraient être ouverts à recevoir des commentaires : « En règle générale, les ingénieurs qui sont ouverts aux commentaires les uns des autres font bien mieux leur travail.


Et comment pouvez-vous parvenir à une culture du zéro blâme ? Selon Seif Lotfy, cela commence par travailler sur vos hypothèses sous-jacentes : « Il est important de développer une hypothèse sous-jacente que tout le monde veut bien faire. Ceci est particulièrement important avec les équipes distribuées qui se trouvent sur des fuseaux horaires et des horaires différents. »


Si tout le monde suppose que tout le monde veut bien faire et que chaque membre de l'équipe est ouvert aux commentaires sans blâme, l'équipe sera bien placée pour faire avancer les choses efficacement.


Adam Gordon Bell de Earthly.dev l'a exprimé ainsi : « Une grande culture est basée sur la confiance et la compréhension. Les deux se construisent au fil du temps sur la base d'expériences partagées.

Collaboration

Sans surprise, la collaboration en tant qu'ingrédient clé de la culture d'ingénierie était un message qui a fait écho dans plusieurs de nos entretiens.


Comme l'a dit Hila Fish de Wix : "Vous devez collaborer avec d'autres pour trouver les meilleures solutions et vous assurer que l'objectif final est atteint."


Et Amir Shevat a expliqué : "Je pense qu'une équipe de personnes qui collaborent sera toujours plus performante qu'une équipe moins collaborative, même lorsque cette équipe moins collaborative est remplie d'ingénieurs individuels" incroyables ". J'ai personnellement fait partie d'équipes d'ingénierie qui n'étaient pas si collaboratives. Ils avaient des ingénieurs géniaux et incroyables, mais ils ne partageaient pas vraiment ce qu'ils faisaient. C'est beaucoup plus bénéfique lorsque les gens commencent à collaborer, à partager, à fournir des commentaires et à parler des interfaces entre ce sur quoi chaque personne travaille. »


La passion du métier et du produit


Tom Snelling de Norhflank a déclaré : « Je pense que la meilleure chose qu'une équipe puisse avoir est une véritable passion pour le produit qu'elle construit. Ayant travaillé sur des projets dans lesquels j'ai été investi et dans lesquels je n'ai pas été investi, la différence de moral (et donc de rendement) est incroyable. Lorsque les ingénieurs se soucient vraiment de ce sur quoi ils travaillent, je pense que la culture s'en trouve décuplé. Embauchez des gens intelligents qui veulent travailler sur votre projet.

Professionnalisme

Amir Shevat a souligné l'importance du professionnalisme dans la création d'une grande culture d'ingénierie : « Pensez toujours aux besoins de l'entreprise. Cela devrait s'appliquer à tous les aspects de votre travail… Et bien qu'être technique soit formidable et même nécessaire, former votre esprit d'entreprise aiderait vraiment à créer une culture où la préférence n'est pas donnée uniquement aux solutions les plus techniques, mais plutôt aux solutions qui aident à atteindre le meilleur résultat pour l'entreprise.


Gil Tayar de Roundforest est d'accord : « Pour moi, les ingrédients clés d'une grande culture d'ingénierie sont : Des gens sympas. Pas beaucoup d'ego. Professionnalisme et fierté du métier. Ces éléments établissent un environnement créatif et sans ces ingrédients, il est difficile de créer une culture positive et productive.

Créer une excellente culture documentaire

D'un point de vue plus technique, Swyx a conseillé aux équipes de mettre l'accent sur leur documentation : « Une bonne culture de documentation ou de documentation de conception est également très importante. En d'autres termes, avant de mettre en œuvre quelque chose, vous devez évidemment essayer de le concevoir et de réfléchir aux propositions et de vous mettre d'accord sur les éléments de haut niveau avec tout le monde. Mais une bonne culture va encore plus loin. Cela signifie que tout le monde lit réellement le document lorsqu'il le reçoit. Et c'est assez rare. Ainsi, une bonne culture de la documentation signifie une bonne écriture et aussi une bonne lecture afin de détecter les problèmes de conception et les attentes incohérentes le plus tôt possible.

Cadence de livraison

Amir Shevat a souligné la valeur d'une cadence de livraison saine : "Avoir une cadence de livraison saine est également très important pour la culture d'ingénierie, car lorsqu'une équipe continue de livrer, elle est en mesure de récolter régulièrement les bénéfices du bonheur et de la satisfaction de son travail."


Barak Shoester a également encouragé les équipes à "optimiser la vitesse d'itération".


Et Jason Bosco a déclaré : "Certains des ingrédients clés pour moi sont : la réduction du temps qu'il faut entre un ingénieur écrivant du code et les utilisateurs l'utilisant, associée à des retours en arrière sans effort..."

Humilité

Bien que cela soit ressorti sous une forme ou une autre dans plusieurs de nos entretiens, Sunil Sandhu de Circut et In Plain English l'a bien dit : « L'humilité occupe une place importante pour moi et ce n'est pas seulement pour l'ingénierie, mais les cultures de travail en général. Les membres de l'équipe doivent être disposés et prêts à aider les autres, en favorisant un environnement où personne ne pense qu'une question est trop stupide pour être posée. »


Je pense qu'il y a beaucoup de réponses clichées que je pourrais donner ici et, dans une certaine mesure, je pense qu'il y a beaucoup de développeurs plus expérimentés qui pourraient mieux répondre à cette question. Donc, une dernière chose que je vais mettre en avant, c'est que lorsqu'une équipe est axée sur la mission, et que cette équipe chante toutes à partir de la même feuille d'hymne, des choses incroyables peuvent se produire.


Et pour reprendre les mots de Gil Tayar : « Pour moi, les ingrédients clés d'une grande culture d'ingénierie sont : Des gens sympas. Pas beaucoup d'ego. Professionnalisme et fierté du métier.”

Réflexions finales

Évidemment, un bon ingénieur doit avoir une certaine capacité technique de base. Mais lors de la constitution et de la gestion d'une équipe, ce sont ces facteurs supplémentaires qui garantiront qu'ils se tiennent mutuellement à des normes élevées, restent curieux, restent positifs et s'efforcent continuellement de s'améliorer.

Et c'est ce qu'est une grande culture d'ingénierie.


Vous aimez ce que vous voyez ici ? Vous voulez être présenté? Consultez notre projet DevX pour d'autres fonctionnalités intéressantes et pour postuler pour partager votre propre expérience de développeur.


Également publié ici .