- Que choisir quand bien faire son travail entre en conflit avec le rythme rapide de l’entreprise ?
- L’histoire de l’ingénieur Chris Krycho, qui a choisi la seconde option : partir pour trouver un travail en accord avec ses principes, plutôt que de préserver ses convictions tout en composant avec la situation
- Chris a finalement quitté LinkedIn pour poursuivre un travail conforme à ses principes
- Résumé de ce qu’il a raconté dans un podcast
- Son récit met en lumière la tension entre la « nécessité d’innover » et « l’importance de la santé des projets »
Le premier jour de Chris Krycho chez LinkedIn
- Chris a rejoint LinkedIn fin janvier 2019. Il a suivi diverses étapes d’onboarding, comme on en voit souvent dans les grandes entreprises ou les petites structures bien organisées.
- Chris devait travailler à distance depuis le Colorado, mais il a passé les deux premières semaines à suivre l’onboarding et à passer du temps avec son équipe.
Des millions de lignes de code
- Par rapport à son expérience dans son entreprise précédente, il a été fortement surpris par l’ampleur des applications client front-end et des services back-end de LinkedIn.
- Le front-end de LinkedIn comptait 2 millions de lignes de code, bien davantage que l’ensemble du code de son entreprise précédente.
L’équipe infrastructure
- Le rôle de Chris, au sein de l’équipe infrastructure, ne portait pas sur la mise en place de serveurs, mais sur le support à l’ingénierie et l’amélioration de l’expérience développeur.
- L’objectif était de faciliter le travail sur la très grande application desktop de LinkedIn.
Modernisation JavaScript
- Il a participé à un travail de modernisation du code via l’introduction des classes JavaScript. En résolvant les problèmes liés à l’utilisation du framework Ember, il a beaucoup appris.
- Il a compris que les migrations dans une base de code de grande taille devaient être automatisées autant que possible, car la charge de travail est trop importante pour être traitée manuellement.
Adoption de TypeScript
- L’équipe a décidé de passer à TypeScript pour réduire les erreurs côté front-end.
- TypeScript peut être adopté progressivement, ce qui offre la scalabilité dont LinkedIn avait besoin.
Plan de migration lent contre « Finger Gun’s Plan »
- Chris et son équipe ont proposé un plan sur 3 à 5 ans pour migrer le code Ember vers React, mais une autre équipe a présenté le « Finger Gun’s Plan », qui promettait une refonte globale et un rythme plus rapide.
- Cette différence d’approche reflétait le conflit entre les problèmes que Chris et son équipe constataient sur le terrain, et une culture d’entreprise qui donnait la priorité à la vitesse.
L’expérience et les enseignements de Chris
- Prise de conscience d’un problème d’alertes insuffisantes.
- L’augmentation de l’utilisation mémoire et la réaction en chaîne des redémarrages de serveurs ont entraîné la panne des serveurs de tout le datacenter.
- Il a tenté de résoudre le problème via une réinitialisation du système et des ajustements de permissions.
- L’échec est inévitable, et le software engineering consiste à concevoir des systèmes qui soutiennent le processus par lequel les ingénieurs produisent des livrables.
- Il souligne la nécessité de systèmes dotés de résilience à plusieurs niveaux.
Réactions après l’incident
- Du mécontentement est apparu pendant la résolution du problème, en raison d’un manque de confiance de la part du management.
- Désaccords avec des ingénieurs seniors et problèmes de communication.
- Il insiste sur le fait qu’un système ne doit pas seulement fonctionner dans des conditions optimales, mais pouvoir offrir un support dans toutes les situations.
Une pression croissante
- Malgré les efforts pour résorber la dette technique et améliorer la résilience, l’insatisfaction de la direction a augmenté.
- Conflit avec des dirigeants qui exigeaient des solutions simples à des problèmes complexes.
Réorganisation
- Réorganisation de l’équipe et évolution des rôles sous l’effet de l’« équipe finger guns ».
- Prise de conscience de nouvelles expériences et opportunités d’apprentissage dans d’autres rôles.
Réflexion et prise de conscience
- Réflexion personnelle nourrie par les expériences passées et la situation présente.
- Prise de conscience de l’importance des relations humaines et de la communication.
- Compréhension du lien entre problèmes techniques et problèmes sociaux.
Conclusion et enseignements
- Chris conserve un regard critique sur une culture qui érige la vitesse en valeur suprême.
- Il cherche de nouvelles opportunités à travers une réflexion sur sa carrière et ses valeurs personnelles.
- Le parcours de Chris pour trouver un rôle orienté vers l’excellence en ingénierie se poursuit.
L’avis de GN⁺
- L’expérience de Chris Krycho montre bien le conflit entre principes techniques et exigences business.
- Sa décision souligne l’importance de trouver un équilibre entre valeurs personnelles et choix professionnels.
- La conduite du changement dans un environnement technologique de grande ampleur comme LinkedIn est complexe, et offre aussi des enseignements importants à d’autres entreprises.
- L’adoption de technologies comme TypeScript peut aider à améliorer la qualité du code et à réduire les erreurs, mais une approche progressive est nécessaire dans une base de code de grande taille.
- Lorsqu’on mène ce type de transformations techniques, il faut prendre en compte l’équilibre entre l’expérience développeur et la vitesse de livraison produit.
1 commentaires
Avis sur Hacker News