Dans une entreprise de 100 000 personnes, il n'y a pas de tests unitaires ni de revue de code, et nous nous appuyons uniquement sur le QA, mais c'est la méthode « efficace » !
De nombreuses entreprises chinoises étrangères occupent rapidement les marchés étrangers. Par exemple, en 2021, TikTok est devenu le site Internet le plus visité au monde, dépassant le leader initial, Google, propriété de l'américain Alphabet.
La plateforme Internet créée par les Chinois a dépassé la plateforme américaine qui a toujours dominé le monde. Il s'agit d'un développement d'une signification très substantielle et symbolique.
Dans le même temps, alors que l'influence des entreprises technologiques chinoises augmente de jour en jour, de nombreuses personnes sont curieuses de connaître la culture de travail des entreprises chinoises et souhaitent comprendre ce qui motive ce succès.
Récemment, un Sino-Américain qui travaille pour une entreprise chinoise aux États-Unis (TikTok) depuis plus d'un an (il a déjà travaillé chez Snapchat et Facebook) a posté une vidéo sur YouTube "5 choses folles à propos de travailler pour TikTok (pourquoi nous avons quitté nos emplois de PM et d'ingénieur)", résumant l'expérience qu'il a acquise auprès des entreprises chinoises sous cinq aspects.
YouTube 地址: https://www.youtube.com/watch?v=RNUrZFkHXlo
Ses opinions ont attiré un grand nombre de personnes sur Twitter intéressées par la Chine et les États-Unis ou par la technologie chinoise. Les internautes pensent que le message décrit avec précision les différences de culture d'ingénierie entre la Chine et les États-Unis. ont traduit ces points de vue :
Premier point : De nombreuses entreprises occidentales écrivent des tests unitaires, et tout le monde sait que c'est une chose très basique. Mais les ingénieurs chinois ici n'ont pas besoin d'écrire des tests unitaires ! Chaque validation de code compte sur des tests manuels effectués par le service QA, et l'équipe teste manuellement chaque validation de code avant de la valider.
Vous pensez peut-être que c'est complètement fou, pourquoi ne pas écrire des tests unitaires ? Utiliser l'assurance qualité pour les tests signifie en réalité que les ingénieurs doivent se concentrer sur la fonctionnalité et démarrer rapidement, tandis que l'écriture des tests est entièrement laissée à l'assurance qualité.
Et une autre chose choquante est que les demandes de fusion ne nécessitent pas non plus d'approbation. Dans une entreprise de 100 000 personnes (ce n'est pas une petite start-up), il n'y a pas de tests unitaires ni de revues de code, on s'appuie uniquement sur l'assurance qualité, mais c'est la méthode « efficace » ! Il n’y a pas eu de pannes majeures.
Les entreprises chinoises ont tendance à avoir plus d'équipes de produits et sont plus enclines à s'appuyer sur des équipes opérationnelles pour stimuler la croissance de leur entreprise ; cela est différent de l'idée de croissance passive et basée sur les données des États-Unis. La principale différence que j'ai remarquée entre les entreprises technologiques chinoises et américaines est que les entreprises chinoises sont plus dépendantes de la main-d'œuvre. Cet avantage est également la principale raison pour laquelle les entreprises chinoises peuvent rapidement occuper de nouveaux marchés.
Deuxième point : Dans les entreprises chinoises, il est rare de voir des réunions en tête-à-tête car la scalabilité est trop faible. Il y a peu de segmentation supplémentaire au sein de chaque équipe, ce qui nécessite une interaction avec davantage de collègues. Je vois souvent une réunion typique, descendante, qui dure plus de 90 minutes, à laquelle participent plus de 60 personnes en même temps. Dans la plupart des cas, une personne parle devant pendant que les autres parcourent les documents de la réunion. Il existe rarement le type de pourparlers ou de discussions ouvertes qui sont courants dans les entreprises européennes et américaines.
Le troisième point : Afin d'éviter que les chasseurs de têtes ne débauchent les gens, un système de structure organisationnelle clair n'est pas annoncé ici. La structure organisationnelle est très plate, avec certains responsables de l'ingénierie devant gérer plus de 200 rapports d'évaluation des performances (sans division !), et certains soumettant des rapports qui ne savent même pas à quoi ressemble leur patron immédiat.
Le quatrième point : En termes de processus et d'exécution, il n'y a pas beaucoup de merde dans les entreprises chinoises. Tout le monde est occupé à travailler la tête baissée et répand rarement des ragots ou porte des jugements moraux. D’un autre côté, les entreprises chinoises ne sont pas suffisamment matures en matière de conception de processus. Les collègues de l'équipe de documentation et d'amélioration sont difficiles à motiver, peu importe leurs performances. Personne ne révise le code des ingénieurs.
Point 5 : En termes d'équilibre travail-vie personnelle, l'équipe américaine n'a pas besoin du 996, mais elle doit s'adapter au fuseau horaire chinois. C’est vraiment difficile, et c’est la principale raison de l’attrition. Tous les PM avec lesquels j’ai eu affaire sont partis au bout d’un an.
Le nombre de doctorats en STEM (sciences, technologies, ingénierie et mathématiques) en Chine est quatre fois supérieur à celui des États-Unis, mais il y a moins de postes techniques qu'aux États-Unis, donc la concurrence ici est plus élevée qu'aux États-Unis. Les États appellent cette situation « rôle interne ». Les collègues chinois ont peur de perdre leurs avantages technologiques et d'être laissés pour compte par le développement social, ce qui les incite à déployer une énorme énergie de travail.
Parlons de l'assurance qualité humaine
On peut dire que la Chine et les États-Unis ont suivi le rythme dans les domaines de la technologie et de l'innovation Internet ces dernières années. Les entreprises chinoises étrangères peuvent réussir à s'emparer du marché. marché, ce qui montre au moins qu'ils disposent de certains avantages face à la concurrence.
Cependant, nous pouvons également constater certaines différences dans le processus de développement de logiciels entre la Chine et les États-Unis à partir de la description de Lucas. Par exemple, les entreprises américaines accordent une grande attention aux spécifications détaillées des documents techniques et des documents d'utilisation dans le développement de logiciels, se concentrent sur les processus de soumission et de révision du code, et accordent également une attention particulière aux tests unitaires. Elles ne s'appuient pas sur la main-d'œuvre mais sur le développement. Processus pour garantir la qualité finale.
La montée en puissance des sociétés Internet a modifié de nombreux modèles de conception, de développement et de publication de logiciels.
En termes de tests unitaires, dans le processus de développement traditionnel, d'une manière générale, l'assurance qualité (assurance qualité) est chargée de tester le programme en boîte noire, de transmettre certains paramètres lors de l'appel de l'interface, puis de vérifier que la valeur de réponse de l'interface répond à certaines attentes. . Les tests unitaires sont une sorte de test en boîte blanche, qui oblige les testeurs à comprendre la structure du programme testé, afin de construire des cas de test pour vérifier la logique de chaque branche du programme.
Évidemment, ce dernier est plus difficile, et il est impossible de terminer le travail rapidement en s'appuyant sur une main-d'œuvre empilée comme les tests en boîte noire, donc les tests unitaires entraîneront une livraison plus lente. Afin d'accélérer le cycle de publication, la division du travail dans notre pratique a progressivement changé. Les développeurs se concentrent sur la création de fonctionnalités, tandis que les dirigeants d'entreprise se concentrent sur la livraison et que le travail de test des développeurs est ignoré.
Le développement et les tests d'assurance qualité sont un sujet classique qui attire l'attention à long terme. Différentes entreprises ont des méthodes différentes. À ce stade, les différences entre les équipes de développement de logiciels chinoises et américaines sont assez grandes. Google en est un exemple. Son directeur des tests, James Whittaker, a déclaré en 2011 que Google ne disposait pas d'un « énorme » département de tests, mais qu'une partie du travail de test était déléguée aux développeurs. Dans l'article « Comment Google teste », James écrit :
« Les tests et le développement se déroulent simultanément. Écrivez du code, testez et construisez immédiatement. Ensuite, écrivez plus de code, continuez à tester. Mieux Oui, planifiez vos tests quand vous l'êtes. le codage ou avant le codage. Les tests ne sont pas un processus distinct, ils font partie du développement. La qualité n'est pas la même chose que les tests ; si vous voulez avoir un produit de haute qualité, vous devez le développer et les tests sont étroitement liés. ils ne peuvent pas être distingués les uns des autres. La qualité vient du développement, pas des tests. »
Chez Google, les testeurs « s'assurent principalement que les développeurs disposent de cadres automatisés et de processus associés » à tester. L’idée clé pour résoudre le problème des développeurs s’appuyant sur les autres est de ne pas avoir un grand nombre de testeurs dans l’équipe. Il y a plus de dix ans, le ratio de développement et de test de Google était de 10 : 1, et plus tard, il a même crié le slogan « Go to QA ». Dans l'article "The Day the QA Department Died", les experts de Google considèrent même les tests unitaires comme un tueur en matière de QA :
Les tests unitaires sont un moyen de tester un morceau de code spécifique pour s'assurer qu'il fonctionne correctement et s'intègre dans le logiciel. puzzle. Il est prouvé que vous pouvez vérifier plus de 90 % de votre code avec des tests unitaires et, contrairement aux outils de test manuels de QA, des tests unitaires automatisés correctement construits peuvent évoluer avec votre base de code, testant le code en temps réel.
Google estime que lorsque les responsabilités en matière de tests seront transférées aux développeurs, ceux-ci écriront un code plus propre et créeront des logiciels de meilleure qualité avec moins de défauts. Tout dépend de la manière dont l'entreprise s'organise pour réduire les coûts sans compromettre la qualité.
En 2017, Google a annoncé l'annulation du GTAC, une conférence sur les technologies de test qui se tenait depuis dix ans, car « ils sont plus préoccupés par l'amélioration de l'efficacité de l'ingénierie que par la technologie des tests automatisés ». La mise en œuvre de l'efficacité de l'ingénierie dans la pratique se reflète généralement dans le fait que « sur la base des développeurs qui terminent leur travail de développement, ils doivent également entreprendre tous les travaux de test, en ligne, d'exploitation et de maintenance », en fournissant tous les liens complets nécessaires aux développeurs. Prise en charge « à guichet unique » de la chaîne d'outils des routes de travail.
Mais la méthode préconisée précédemment par Google repose entièrement sur le développement pour garantir la qualité semble être exactement le contraire de la « dépendance à l'égard de l'assurance qualité » évoquée par Lucas.
Les sociétés Internet nationales ont connu une croissance rapide ces dernières années. Dans le rapport Internet annuel de Mary Meeker début 2018, la Chine représentait la moitié des 20 principales sociétés Internet avec une capitalisation/valorisation boursière. Les sociétés Internet nationales mettent l'accent sur l'innovation dans les modèles commerciaux et le processus de développement de logiciels a commencé à subir certains changements par rapport aux logiciels traditionnels. Par exemple, la vitesse d'itération est plus importante que l'absence de problèmes. Si un problème survient, il peut être localisé le plus rapidement possible, réparé rapidement, et l'impact est réduit plus important que la livraison dans les délais. vitesse d'itération la plus rapide à développer, puis recueillir les commentaires des utilisateurs pour déterminer si ou comment modifier la fonction du produit ; abandonner le lien « test » qui peut entraîner un retard de livraison...
C'est juste que c'est difficile pour nous de le faire. dire clairement si cet avantage technique est une amélioration ou quelque chose qui nécessite un changement progressif de chacun. Peut-être qu'en combinant les méthodes et techniques de gestion avancées des industries européennes et américaines du logiciel et en tirant pleinement parti des avantages et de l'expertise des développeurs chinois, nous pourrons mieux améliorer le niveau global de développement logiciel.
Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de programmation ! !