Remarquez-vous avec vos collègues internationaux (de N'IMPORTE QUEL pays) que le style de codage et la résolution de problèmes sont conformes aux langues maternelles?
Absolument. C'est un fait difficile. La chaîne de cause à effet est cependant plus complexe.
La région, son écosystème, les conditions météorologiques, la vie végétale et animale ont influencé le développement de la religion de la culture locale qui en fait partie.
La culture et la religion ont influencé la formation et le développement de la ou des langues locales.
La culture et la langue ont marqué le modèle de société de ce groupe ethnique particulier.
Le modèle de société a défini le modèle de comportement - style de vie, attitude au travail, relations sociales, priorités et valeurs des individus. C'est la partie que nous voulons.
Des personnes de cultures différentes aborderont la résolution d'un problème avec le bagage de leur patrimoine culturel - comment ils y pensent, quelle attitude ils adoptent au travail, quelle méthodologie et quels modèles de résolution de problèmes ils appliqueront, quelles priorités et valeurs ils fixent.
En parlant d'exemples, je peux vous en donner deux. Si nous prenons l'Allemagne où je réside actuellement, il y a certaines tendances que j'ai observées.
Tout planifier à l'avance et à long terme est le mode de vie. Des réunions en soirée avec des amis peuvent être planifiées des semaines et des mois à l'avance. Les jeunes se préoccupent déjà de leur retraite (assurance, etc.). Le swing d'humeur, l'improvisation, la volonté et la capacité de s'adapter au fur et à mesure sont très faibles. Naturellement, il est transféré au mode de travail. La planification et l'ordre jouent un grand rôle. Être agile est considéré comme une caractéristique exceptionnelle pour décrire une personne / une équipe moderne avec une pensée progressiste. Cependant, la plupart des processus agiles que j'ai observés dans les équipes allemandes ressemblent plus à une exécution machine des étapes prédéfinies (même si les gens essaient vraiment d'être agiles), mais pas d'esprit d'agile en tant que tel.
La prévisibilité de tout est la norme de la vie. Les gens ont l'habitude de savoir ce qui se passera, où et quand. Cela va de la vie quotidienne au style de travail en passant par les relations personnelles. Vous pouvez le voir par exemple lorsque les gens traversent la route. Ils attendent le feu vert et commencent à bouger sans regarder si les voitures se sont réellement arrêtées - parce qu'ils s'y attendent. Les gens sont fiers de pouvoir contrôler tous les aspects de leur vie. Quand cependant la vie revient avec quelque chose d'inattendu, quand les choses deviennent hors de contrôle, les gens paniquent. Si transféré à la programmation, j'ai vu que le codage se fait de manière plutôt optimiste, pas d' obsessionavec vérification de l'entrée, des clés étrangères pour vérifier l'intégrité des données, etc. Il n'y a pas non plus d'ingénierie supplémentaire pour garder le code dans une certaine mesure résilient aux échecs et adaptable à certains changements futurs, juste pour répondre aux attentes d'aujourd'hui (qui ne sont pas susceptibles de changer, selon eux).
Économiser de l'argent et optimiser ses dépenses est extrêmement important dans la culture. Il se reflète sur les artefacts de travail. Les caractéristiques et la qualité correspondent à la planification mais ne les dépassent pas soudainement (pour le rendre plus frais ou juste "au cas où"). Un autre aspect du jeu est la réticence à investir dans du matériel et des logiciels modernes, à repenser le code de travail, à le refactoriser, à améliorer les choses simplement pour rester en phase avec l'état actuel des choses, pour préparer l'avenir. Puisqu'il n'y a pas de gain immédiat et que personne ne paie pour les changements, personne ne va vraiment bouger.
L'entrepreneuriat et la créativité sont plutôt bas dans la culture. La réticence à prendre des risques pour son propre compte est élevée. Les résultats de travail portent rarement l'empreinte d'une créativité inhabituelle, inattendue. Les gens ont tendance à suivre le chemin parcouru, peu d'expérimentation ou un montage inhabituel "par curiosité". Les gens n'aiment pas prendre l'initiative entre leurs mains, surtout lorsqu'ils sont associés à des responsabilités. J'ai également entendu des Allemands atterrir aux Pays-Bas avoir parfois des difficultés car les gens là-bas sont habitués à travailler de manière indépendante sans conseils précis. Au niveau de la programmation, cela signifie peu d'expérimentation avec de nouveaux langages, outils ou bibliothèques, les nouvelles versions ne sont pas adoptées par peur du changement. Les gens prennent des modèles de conception et les appliquent aveuglément parce qu'ils ont été enseignés ainsi à l'université et ne remettent pas en question leur applicabilité.
Fonctionnez plutôt que la mode. Cela se voit dans la vie quotidienne. Style urbain commun, conception des bâtiments, décoration des rues, tout est au minimum requis pour qu'il fonctionne, mais généralement rien que pour le style, la beauté. Au niveau de la programmation, cela se voit dans le manque de belle conception d'interface utilisateur. La plupart des sites d'entreprise et personnels sont plutôt anciens et ennuyeux. Vous ne pouvez pas non plus persuader le patron et les collègues de faire un peu de polissage car ils ne voient aucun avantage tangible.
La complexité et la bureaucratie font partie du mode de vie. Les gens vont plus loin et postulent partout. Relations personnelles. les détails du travail, les décisions et les solutions entraînent souvent plusieurs artefacts pour documenter ce qui a été fait. Le code de programmation sort souvent avec des éléments inutiles, des niveaux d'abstraction et des compositions parce qu'il semble aux gens plus sérieux de cette façon. Le principe KISS n'est pas vraiment populaire.
«Sauver la face» semble être très important, avoir l'air réussi, ne pas montrer de signes de faiblesse ou d'échec à quelqu'un d'autre (si vous en avez, il sera presque certainement utilisé contre vous). Dans la pratique du travail, admettre l'échec est assez difficile, les gens font tout pour ne pas "perdre la face". Il est également difficile de prendre des critiques. Critiquer quelqu'un (avec ou sans cause) est un moyen sûr de se faire un ennemi. Dire ce que l'on a à l'esprit n'est pas pratiqué, ce qui rend assez difficile de comprendre qui se tient où.
En bout de ligne, bons exécuteurs, planification et calendrier supérieurs, la précision est bonne. Il ne faut cependant pas s'attendre à l'innovation et à la créativité.
Le deuxième exemple concerne la culture russe à laquelle j'appartiens. C'est assez différent.
Le calendrier et la planification ne semblent pas avoir une valeur particulière. Les déviations mineures ne concernent pas les gens à moins que / jusqu'à ce qu'elles commencent à menacer le résultat le plus important. Les gens n'aiment pas vivre selon le plan, préfèrent une sorte de liberté mentale, font tout ce qu'ils aiment et quand ils ont envie de le faire. Au niveau de la programmation, ils peuvent ignorer le «non essentiel» comme la rédaction de documentation et la paperasserie. Les gens vont et viennent beaucoup plus facilement, s'ils s'ennuient avec le projet, n'aiment pas l'atmosphère et ainsi de suite. Il ne faut pas s'attendre à un engagement à long terme par vie, les gens ne veulent pas être liés, ne s'attendent pas à ce qu'ils viennent une fois et restent jusqu'à la retraite. Cela se voit bien sur le marché de la téléphonie mobile. Alors qu'en Europe et aux États-Unis, il est omniprésent d'avoir des contrats de deux ans, en Russie, cela n'est pas pratiqué. Les gens ne
Les gens n'aiment pas la bureaucratie et préfèrent les relations informelles. Peu ou pas de paperasse, aussi peu de discussions et de réunions que possible, faites simplement le travail. La complexité du code n'est pas appréciée, les décisions simples et les voies directes sont préférées. La routine ennuyeuse n'est pas favorisée. Certaines tâches "non essentielles" comme les commentaires et la documentation peuvent être ignorées. Les gens peuvent repousser certaines choses ennuyeuses et faire des choses plus intéressantes ou faire la partie ennuyeuse d'une manière inattendue qui les maintiendra motivés.
Les coûts ne sont pas si importants. Les gens aiment obtenir quelque chose de plus récent, plus cool, plus intéressant et plus moderne juste ainsi, sans analyse de rentabilisation. Si cela donne satisfaction, ils ne seront généralement pas inquiets des coûts supplémentaires encourus.
Les gens sont très enthousiastes à propos de tout. La nourriture, la musique, les vêtements, les artefacts et les idées de différents pays et cultures passent par les portes ouvertes. Les programmeurs expérimenteraient un nouveau langage, un nouvel outil ou une nouvelle bibliothèque juste par curiosité, avec ou sans analyse de rentabilité. Différentes philosophies et méthodologies, tout est volontiers pris, touché, mordu, expérimenté et mélangé de manière funky.
La beauté et le style sont très importants. Les gens dépenseraient plus de temps et d'argent pour quelque chose qui n'a aucun avantage tangible mais qui satisfait seulement un certain sens artistique. Ils préfèrent souvent quelque chose d'élégant à quelque chose de plus fonctionnel. Le beau design de l'interface utilisateur est très apprécié. Les programmeurs devraient réorganiser le code qui semble maladroit et non structuré simplement pour y ajouter plus de style, même s'il fonctionnait parfaitement auparavant, ce qui entraînerait du temps supplémentaire.
La prescription et les règles sont souvent ignorées et même méprisées, les gens pourraient faire quelque chose de totalement différent s'ils sont convaincus que ça va être mieux (ou plus cool - ne peut pas résister à cela). De nombreuses décisions d'en haut seront remises en question et débattues. Et oui, tout le monde a une opinion bien arrêtée sur tout.
La prévisibilité de la vie est assez faible, donc les gens planifient toujours toute éventualité. La même chose se reflète souvent dans le code, plutôt une attitude pessimiste, avec des doubles vérifications et des plans de secours. L'architecture peut refléter l'état de préparation aux futurs changements possibles, mais pas une surarchitecture de type astronaute. Agile n'est pas une méthodologie moderne mais le mode de vie. De plus, les gens sont habitués aux changements et n'essaient pas de contrôler tous les aspects de leur vie. Quand quelque chose d'inattendu se produit, les gens hochent simplement la tête, disent "ça ira mieux la prochaine fois" et continuer sans aller mentalement, sans boire, sans médicaments, etc.
La justesse politique est faible, donc les gens peuvent simplement dire ce qu'ils pensent d'avance lorsque vous ne vous y attendez pas. Soyez prêt.
Un résultat différent est, attendez-vous à l'inattendu, quelque chose d'inhabituel et de créatif, mais ne vous attendez pas à la précision de la machine, au calendrier et au respect des règles.
Lequel est le meilleur ne peut pas être facilement répondu. Un type de travail est mieux couvert par une catégorie de travailleurs, l'autre par une catégorie différente. Mauvais si les gens se voient attribuer de mauvaises tâches pour leur mentalité. Je suppose que c'est un défi pour un chef d'équipe international de reconnaître ce problème. Je ne suis pas sûr que cela ait jamais été discuté avec une application à l'industrie informatique.