Você percebe com seus colegas internacionais (de QUALQUER país) que o estilo de codificação e a solução de problemas estão alinhados com as línguas nativas?
Absolutamente. Este é um fato difícil. A cadeia de causa-efeito é, no entanto, mais complexa.
A região, seu ecossistema, condições climáticas, vida vegetal e animal influenciaram o desenvolvimento da religião da cultura local que faz parte dela.
A cultura e a religião influenciaram a formação e o desenvolvimento dos idiomas locais.
A cultura e a língua deixaram suas marcas no modelo da sociedade para esse grupo étnico em particular.
O modelo da sociedade definiu o modelo de comportamento - estilo de vida, atitude no trabalho, relações sociais, prioridades e valores dos indivíduos. Essa é a parte que queremos.
Pessoas de diferentes culturas estarão abordando a solução de um problema com a bagagem de sua herança cultural - como pensam sobre isso, que atitude trazem para o trabalho, que metodologia e padrões de resolução de problemas serão aplicados, quais prioridades e valores eles estabelecem.
Falando em exemplos, posso lhe dar dois. Se levarmos a Alemanha para onde eu moro atualmente, há certos padrões que observei.
Planejar tudo com antecedência e a longo prazo é o caminho da vida. As reuniões noturnas com os amigos podem ser planejadas com semanas e meses de antecedência. Os jovens já se preocupam com a aposentadoria (seguros, etc.). A mudança de humor, a improvisação, a disposição e a capacidade de se ajustar conforme o uso é muito baixa. Naturalmente, é transferido para o modo de trabalho. Planejamento e ordem desempenham um grande papel. Ser ágil é considerado uma característica excepcional para descrever uma pessoa / equipe moderna com um pensamento progressivo. No entanto, a maioria dos processos ágeis que observei nas equipes alemãs parecem mais uma execução da máquina das etapas predefinidas (mesmo que as pessoas realmente tentem ser ágeis), mas nenhum espírito de ágil como tal.
A previsibilidade de tudo é a norma da vida. As pessoas estão acostumadas a saber o que vai acontecer, onde e quando. Ela se estende da vida cotidiana ao longo do estilo de trabalho até as relações pessoais. Você pode ver, por exemplo, quando as pessoas atravessam a rua. Eles esperam a luz verde e começam a se mover sem olhar se os carros realmente pararam - porque esperam que eles parem. As pessoas se orgulham de poder controlar todos os aspectos de sua vida. Quando, porém, a vida reage com algo inesperado, quando as coisas saem do controle, as pessoas meio que surgem. Se transferido para a programação, vi que a codificação é feita de maneira bastante otimista, sem obsessãocom verificação de entrada, chaves estrangeiras para verificar a integridade dos dados e assim por diante. Também não há engenharia extra para manter o código, até certo ponto, resiliente a falhas e adaptável a certas mudanças futuras, apenas para satisfazer as expectativas de hoje (que provavelmente não mudarão, acreditam).
Economizar dinheiro e otimizar seus gastos é extremamente importante na cultura. Isso se reflete nos artefatos de trabalho. Características e qualidade correspondem ao planejamento, mas não os excedem repentinamente (para torná-lo mais frio ou apenas "no caso"). Outro lado do jogo é a falta de vontade de investir em hardware e software modernos, de reestruturar o código de trabalho, de refatorá-lo, de melhorar as coisas apenas para se manter alinhado com o estado atual das coisas, para se preparar para o futuro. Como não há vitória imediata e ninguém paga pelas mudanças, ninguém vai se mexer.
Empreendedorismo e criatividade são bastante baixos na cultura. A falta de vontade de correr riscos por conta própria é alta. Os resultados do trabalho raramente trazem as impressões de incomum, inesperado, criativo. As pessoas tendem a seguir o caminho trilhado, pouca experimentação ou configuração incomum "por curiosidade". As pessoas não gostam de tomar a iniciativa em suas próprias mãos, especialmente quando combinadas com a responsabilidade. Também ouvi dizer que os alemães que desembarcam na Holanda às vezes têm dificuldade, já que as pessoas costumam trabalhar de forma independente, sem orientação rigorosa. Em termos de programação, significa pouca experimentação com novas linguagens, ferramentas ou bibliotecas; novas versões não são adotadas por medo de mudança. As pessoas adotam padrões de design e os aplicam cegamente porque foram ensinados na universidade e não questionam sua aplicabilidade.
Função sobre moda. É visto na vida cotidiana. Estilo urbano comum, design de edifícios, decoração de ruas, tudo se reduz ao mínimo necessário para que funcione, mas geralmente nada apenas para o estilo, a beleza. Em termos de programação, é visto na falta de um belo design de interface do usuário. A maioria dos sites corporativos e pessoais é bastante antiquada e chata. Você também não pode convencer o chefe e os colegas a fazer um polimento porque eles não vêem nenhum benefício tangível.
Complexidade e burocracia fazem parte do estilo de vida. As pessoas vão além e aplicam-se a todos os lugares. Relações pessoais. detalhes do trabalho, decisões e soluções geralmente resultam em vários artefatos para documentar o que foi feito. O código de programação geralmente sai com elementos desnecessários, níveis de abstração e composições, porque parece ser mais sério para as pessoas. O princípio do KISS não é realmente popular.
"Salvar o rosto" parece ser muito importante, parecer bem-sucedido, não mostrar sinais de fraqueza ou fracasso para mais ninguém (se você o tiver, quase certamente será usado contra você). Na prática do trabalho, admitir o fracasso é um tanto difícil, as pessoas fazem de tudo para não "perder a cara". Receber críticas também é difícil. Criticar alguém (com a boa causa ou não) é uma maneira de fazer um inimigo. Dizer o que se tem em mente não é praticado, o que torna bastante difícil entender quem fica onde.
Bottom line é, bons executores, planejamento e cronograma top, precisão é boa. Inovação e criatividade não são, no entanto, de esperar.
O segundo exemplo lida com a cultura russa à qual pertenço. É bem diferente.
O cronograma e o planejamento não parecem ter um valor particular. Desvios menores não dizem respeito às pessoas, a menos que / até que comece a ameaçar o resultado maior. As pessoas não gostam de viver de acordo com o plano, preferem uma espécie de liberdade mental, fazem o que querem e quando sentem vontade de fazê-lo. Em termos de programação, eles podem ignorar o "não essencial", como escrever documentação e trabalhar com papelada. As pessoas são muito mais fáceis de ir e vir, se estão entediadas com o projeto, não gostam da atmosfera e assim por diante. Não se espera um compromisso de longo prazo por toda a vida, as pessoas não querem ficar vinculadas, não esperam que venham uma vez e fiquem até a aposentadoria. Isso é bem visto no mercado de telefonia móvel. Enquanto na Europa / EUA é onipresente ter contratos de dois anos, na Rússia isso não é praticado. As pessoas não
As pessoas não gostam da burocracia e preferem relacionamentos informais. Pouco ou nenhum trabalho em papel, o menor número possível de discussões e reuniões, simplesmente faz o trabalho. Não se gosta de complexidade no código, são preferidas decisões simples e maneiras diretas. Rotina chata não é favorecida. Algumas tarefas "não essenciais", como comentários e documentação, podem ser ignoradas. As pessoas podem adiar certas coisas chatas e fazer coisas mais interessantes ou fazer a parte chata de uma maneira inesperada, que as manterá motivadas.
Os custos não são tão importantes. As pessoas gostam de obter algo mais novo, mais interessante, mais interessante e mais moderno, sem um caso de negócios. Se oferecer satisfação, eles geralmente não ficarão preocupados com os custos extras incorridos.
As pessoas estão muito entusiasmadas com tudo. Comida, música, roupas, artefatos e idéias de diferentes países e culturas passam pelas portas abertas. Pessoas inteligentes em programação experimentariam uma nova linguagem, ferramenta ou biblioteca apenas por curiosidade, com ou sem um caso de negócios. Diferentes filosofias e metodologias, todas são tomadas com prazer, tocadas, mordidas, experimentadas e misturadas de uma maneira descolada.
Beleza e estilo são muito importantes. As pessoas gastariam tempo e dinheiro extras em algo que não traz benefícios tangíveis, mas apenas satisfaz algum senso artístico. Muitas vezes, eles preferem algo estiloso a algo mais funcional. O design bonito da interface do usuário é muito apreciado. As pessoas que trabalham com programação reorganizam o código que parece desajeitado e desestruturado, simplesmente para adicionar mais estilo a ele, mesmo que estivesse funcionando perfeitamente antes, resultando em tempo extra gasto.
Prescrição e regras são muitas vezes desconsideradas e até desprezadas, as pessoas podem fazer algo totalmente diferente se forem convencidas de que será melhor (ou mais legal - não resiste a isso). Muitas decisões de cima serão questionadas e discutidas. E sim, todo mundo tem uma opinião forte sobre tudo.
A previsibilidade da vida é bastante baixa, portanto as pessoas sempre planejam qualquer contingência. O mesmo se reflete frequentemente no código, em vez de uma atitude pessimista, com verificações duplas e planos de fallback. A arquitetura pode refletir a prontidão para futuras mudanças possíveis, mas não a superarquitetura do astronauta. O Agile não é uma metodologia moderna, mas o caminho da vida. As pessoas também estão acostumadas a mudanças e não tentam controlar todos os aspectos de suas vidas. Quando algo inesperado acontece, as pessoas apenas acenam com a cabeça, dizem "será melhor na próxima vez" e seguem em frente sem ficarem loucas, começando a beber, drogas etc. Uma falha no projeto não resulta em suicídios, é facilmente tomada.
O politicamente correto é baixo, então as pessoas podem apenas dizer o que pensam quando você não está esperando. Esteja preparado.
Uma conclusão diferente é: esperar o inesperado, algo incomum e criativo, mas não esperar precisão da máquina, agendar e seguir as regras.
Qual é o melhor não pode ser facilmente respondido. Um tipo de trabalho é melhor coberto por uma categoria de trabalhador, o outro é por uma categoria diferente. Ruim se as pessoas receberem tarefas erradas para sua mentalidade. Suponho que seja um desafio para um gerente de equipe internacional reconhecer esse problema. Não sei se isso já foi discutido com aplicativos para o setor de TI.