A outra metade desta pergunta: Como os programadores no Oriente veem os programadores no Ocidente?
A parte oriental do mundo (Índia / China / Filipinas) fornece principalmente serviços de terceirização para o mundo ocidental (EUA e Europa).
Você tem a experiência de trabalhar com equipes offshore? Se sim, como foi?
Você tem idéias ou opiniões generalizadas sobre os programadores do Oriente (por exemplo, eles são cooperativos, entregam a tempo ou realizam um trabalho de qualidade?). Em que eles são baseados?
Respostas:
Hummm vistas interessantes.
Eu só gostaria de jogar o meu.
Eu moro na Índia (sou indiano) e tenho programado desde os 11/12. Tudo o que tenho até agora é um ensino médio e, curiosamente, já fiz duas coisas até agora, lecionei em um Instituto de Informática da Índia e agora desenvolvo freelance (e consegui um projeto para um cliente MUITO destacado)
Então, duas coisas que eu acho verdadeiras de onde eu estou:
Claro que as pessoas são pessoas, mas a mentalidade indiana em relação à vida e à educação é muito diferente aqui. Nos meses que eu ensinei, vi pais empurrando seus filhos para a TI apenas porque eles acham que isso lhes dará dinheiro ou algo assim. Também ensinei os alunos cursando BSc e Engenharia e 98 em 100 não podem escrever algumas linhas de código em C. (Esqueça o código de qualidade).
O curso de Ciência da Computação do Estado aqui, eles têm o Turbo C como parte do currículo, C ++ para a maioria das pessoas é C, mas está apenas usando
cout
para imprimir.Quanto ao desenvolvimento, com esse tipo de graduado, você espera encontrar toneladas de "engenheiros" por aí, codificando coisas horrendas. Eu conheci empresas de pequeno porte que não usam controle de origem, elas nem sequer têm idéia do que são testes de unidade.
É triste que eu tenha muito o que dizer e isso me dói. MAS Todo mundo aqui não é assim. Há tantos de nós que talvez a impressão que as pessoas tenham. ri muito
De alguma forma, até ser bem-sucedido aqui significa mudar para outro lugar, porque não há um escopo real para crescer e aprimorar suas habilidades. É claro que existem pessoas inteligentes do IIT e de outras faculdades de ponta que sabem o que querem (eventualmente elas também se mudam)
Mas o ponto principal é que a educação em TI aqui é bastante triste, na minha opinião.
fonte
Isenção de responsabilidade: Eu moro na Europa Central e Oriental, tome sua própria decisão de contar como oriental ou ocidental :-) Como tal, trabalhei em projetos terceirizados para o nosso país da Europa Ocidental, e experimentei dúvidas dos colegas e gerentes mais ocidentais. no que diz respeito às nossas habilidades, semelhante ao que os índios devem experimentar nessas situações.
OTOH Tenho trabalhado com vários desenvolvedores indianos e russos em dois grandes projetos. O primeiro também envolveu um componente desenvolvido inteiramente por um subcontratado indiano, que foi facilmente o código de peça mais horrível que eu já tive acesso (não posso dizer "o código mais horrível que já li", porque ao ver que o maior single Como o arquivo de origem media mais de 600 Kbytes de tamanho (ou AFAIR tinha cerca de 30 mil linhas), fechei-o rapidamente e só podia rezar para que eu nunca precisasse tocá-lo. Minha oração foi ouvida.
O último (no qual estou trabalhando atualmente) foi subcontratado em 3 empresas diferentes, algumas delas aplicaram vários programadores indianos. Estamos limpando o resultado disso nos últimos 1,5 anos, e ainda há trabalho suficiente para o futuro próximo.
Na minha vida pessoal, morei na Índia por mais de três meses em uma época anterior da minha vida, então provavelmente sei mais sobre o país e seus habitantes do que um ocidental médio. Pessoalmente, gosto muito de índios.
Minha experiência pessoal foi de que as mesmas diferenças culturais visíveis que existem entre ocidentais e indianos em geral também são observáveis entre os programadores. Os índios geralmente são muito diligentes na execução de qualquer tarefa concreta lançada sobre eles, mas não necessariamente vêem ou sentem a necessidade de entender o quadro geral. O que pode resultar facilmente em software de baixa qualidade.
Outra questão em potencial é a resistência culturalmente enraizada dos indianos em dizer não a qualquer pedido, pois acredito que é considerado rude por eles. Se você for a uma mercearia indiana e pedir cobertores / jóias / barbatanas de tubarão / o que quer que seja, o proprietário dirá "sim senhor, em um momento", depois mandará o garoto para outra loja do bairro para buscar o produto e orgulhosamente apresenta a você. O que é realmente uma boa prática comercial. No entanto, se o mesmo for aplicado à subcontratação de um projeto de desenvolvimento de SW com um cronograma impossível fixo, os resultados podem ser desastrosos. Isso é apenas especulação da minha parte, porém, não tenho evidências concretas sobre se isso é realmente um fator na terceirização do desenvolvimento de SW para a Índia.
Um excelente exemplo de diligência fútil em nosso projeto atual foi a implementação de um esquema de monitoramento de desempenho. A idéia era distribuir objetos que coletam estatísticas de desempenho. No entanto, a solução acabou desacelerando tanto o aplicativo que ele nunca foi realmente usado. No entanto, seus remanescentes no código foram deixados lá para que possamos limpar. Na prática, isso significava passar um parâmetro de objeto extra para todos (cerca de 6000) métodos no código. O cara que fez isso até adicionou um comentário ao Javadoc de cada método, observando que o parâmetro extra foi adicionado para medições de desempenho! Agora, só posso me maravilhar com a diligência desse cara, realizando seu trabalho através de todos os 6.000 métodos e inserindo fielmente esses comentários do Javadoc em todos os lugares. OTOH, a) como observado anteriormente, o esquema nunca foi usado na prática,
Não quero dizer que tudo isso foi culpa dos pobres desenvolvedores indianos (exceto o mau uso do Javadoc). Na IMO, é muito mais culpa dos gerentes contratarem projetos sem pensar, sem monitorar os resultados, realizando testes de aceitação rigorosos e garantindo a qualidade adequada do código e da documentação. Sem mencionar os esquemas de pagamento baseados em horas que certamente não fazem nenhum subempreiteiro interessado em economizar tempo de desenvolvimento.
No entanto, acho que seria difícil encontrar desenvolvedores no Ocidente para realizar tarefas semelhantes com o mesmo nível de consistência e sem reclamações.
Também subcontratamos tarefas de teste neste projeto atual para um grupo de testadores indianos. Pessoalmente, estamos apenas em contato com um deles, portanto, não faço ideia de quantos são no total. No entanto, esse cara é uma jóia de um testador, um ativo valioso em qualquer projeto. Além de ser diligente e completo, ele faz muitas perguntas para entender o panorama geral, geralmente testa ainda mais do que o esperado e relata problemas encontrados de maneira precisa e descritiva.
fonte
Another potential issue is the culturally ingrained resistance of Indians to say no to any request, as I believe it is considered rude by them.
Essa propensão para os "orientais" sempre dizerem "sim" foi observada em outros artigos sobre diferenças culturais entre o Oriente e o Ocidente. Um artigo que li há muitos anos explicou que, quando alguns orientais dizem "sim" em resposta a uma pergunta, sua intenção principal é sugerir que eles entendem a pergunta, não que necessariamente concordem em ficar vinculados a ela. Esse artigo, a partir dos anos 90, visava diferenças entre empresas americanas e japonesas.Eu lidei com três projetos que foram (principalmente) "delegados" a recursos externos (hemisfério oriental). Um dos três casos usava um grupo (ou talvez apenas um cara - lidava apenas com um, mas não sabia quantos outros ele estava trabalhando) no leste da Rússia. Eles fizeram um bom trabalho e o projeto progrediu bastante bem, além de precisar de um trabalho na interface do usuário para corrigir alguns pequenos problemas de redação por serem trabalhados por pessoas para as quais o inglês era um segundo (ou talvez terceiro) idioma.
Os outros dois eram uma história bastante diferente. Por acaso ou não, em ambos os casos os programadores estavam na Índia. Em um caso, basicamente tudo o que fizeram acabou sendo tratado como nada mais do que um protótipo - utilizável (até certo ponto) para testar possíveis projetos, mas tudo o que eles escreveram teve que ser jogado fora e substituído para obter o código do nível de produção. Eles pareciam exemplificar o que eu considero a "mentalidade ISO 9000". Eles mostraram uma adesão quase religiosa a políticas e procedimentos, mas quase completa falta de percepção do problema que deveria ser resolvido. O código deles pode ser o mais desajeitado que eu já vi.
No outro caso, o projeto acabou sendo abandonado. Tinha sido o esquema estereotipado de um vice-presidente promovido recentemente, e tenho certeza de que a idéia desde o primeiro dia era minimizar gastos, enquanto ainda era capaz de lhe dizer que sua ideia estava em desenvolvimento ativo. Embora o código que obtivemos seja totalmente inútil, seria difícil culpar muito o contratado, já que nenhum esforço foi feito no gerenciamento do projeto ou mesmo em apenas obter uma especificação utilizável. Seu código começou ruim e a qualidade rapidamente degenerou quando ficou óbvio que ninguém se importava.
fonte
Pessoas são pessoas. Alguns programadores são bons programadores, outros são ruins. Alguns programadores ruins podem se tornar bons programadores com o tempo, enquanto o tempo nunca pode beneficiar outros programadores ruins.
A localização tende a não ser um fator aqui. Mas talvez a oportunidade possa.
Eu estava perguntando o que as palavras "Erro de sintaxe incorreto OK" significavam no GW Basic quando eu tinha 8 anos. Eu cresci com computadores. Nem todo mundo tem essa vantagem. Os tempos estão mudando, e as crianças de 8 anos de hoje têm mais acesso à tecnologia do que as crianças de 8 anos de ontem.
Mas é importante perceber que a programação é mais do que apenas saber usar um computador. É muito mais profundo que isso. Aqui estão algumas características principais que separam os bons programadores (e aqueles que precisam apenas de tempo) dos realmente ruins:
Mais importante ainda, bons programadores também são bons comunicadores. Os melhores programadores são os que conseguem convencer os outros. Eles podem pacientemente debater um problema com outro colega até encontrar uma solução.
O maior desafio é a comunicação.
Qualquer que seja o desafio, nunca estereotipe a si mesmo ou aos outros. Você tem tanto potencial quanto qualquer outra pessoa e vice-versa. Lembre-se de que você pode fazer tudo o que realmente pensa!
fonte
Eu sou um estudante de 21 anos da Índia nos meus últimos anos de Ciência da Computação e Engenharia, curso de 4 anos.
A própria idéia de escrever isso era para dizer que a Índia é muito mais do que um hub de terceirização. Espero que o Ocidente o veja dessa maneira e, em vez de absorver talentos, o Ocidente deveria criar mais centros na Índia. Há algum conteúdo ofensivo pela frente, mas se você entender o quadro geral, entenderá o que estou tentando dizer.
A educação na Índia está em um estado muito perturbador, com uma força de trabalho produzida todos os anos que não possui ou possui habilidades técnicas absolutamente horrendas. O sistema educacional não é de todo competitivo em termos de inovação ou empreendedorismo. isso levou nosso país a enormes embaraços, como o recente computador desenvolvido por US $ 10 (que se tornou um tablet chinês barato baseado no Android, mantido apenas por uma empresa indiana) ou uma reivindicação anterior de outra inovação tecnológica (que acabou sendo um pen drive). Os institutos de educação estão totalmente desconectados do mundo real da tecnologia e estão mais interessados nos estudantes que reinventam a roda, tudo em nome da inovação. institutos educacionais, todo mundo os odeia.
Chegando a lugares onde você pelo menos espera aprender algumas habilidades importantes de desenvolvimento:
Eu tive exposição a algumas instalações de treinamento na Índia, além dos meus institutos de ensino. A programação e o desenvolvimento de software ocorrem em dois níveis: desenvolvimento no nível do aplicativo e desenvolvimento no nível do sistema .
Para o desenvolvimento de aplicativos, a maioria dos novatos na Índia é recrutada em massa por empresas para reivindicar um banco de programadores e obter mais projetos. No final do dia, há uma qualidade comprometida porque o processo de contratação é totalmente estúpido. Às vezes, o talento é desperdiçado ao fazer as pessoas serem boas em suas coisas, em coisas estúpidas, como a criação de quadros Java e a criação simples de interfaces de usuário simples WinForm e ASP.NET. (Estou falando de novos recrutamentos e como reivindicado por alguns, embora não tenha certeza). Se não considerar boas práticas de engenharia de software, esse tipo de codificação pode ser feito por um aluno da 7ª série.
Mas, ao mesmo tempo, há programadores e desenvolvedores independentes que têm um grande interesse pelas coisas. Eles são como os heróis desconhecidos que perderam toda a esperança e estão menos interessados em mudar o mundo. Tudo o que eles querem é tirar o máximo proveito de suas habilidades, por isso é tudo sobre dinheiro e viajar para o exterior. Embora nossos cursos estejam bastante limitados ao software do sistema (programação C usando o TurboC !!! por 4 anos ruins, C ++ estúpido e vago, sem conceitos adequados de orientação a objetos, usando cout em um programa C não é C ++, ASM e mais programação C usando gcc), quando em uma empresa, somos feitos principalmente para desenvolver aplicativos (ASP.NET, WinForms, J2EE). Basicamente, um engenheiro de ciência da computação é feito para fazer o trabalho de um engenheiro de software. Sim, o conhecimento da ciência da computação ajuda, mas o desconhecimento da engenharia de software adequada dificulta demais o processo, e aí vem a queda de todo o sistema. É uma falha.
Na Índia, geralmente não é esperado o nível de trabalho que estou realizando para o meu projeto de um projeto de graduação do último ano. Mas farei isso porque quero. Ao mesmo tempo, há outras pessoas no meu grupo que se sentem à vontade para fazer um projeto no ASP.NET, criar de 5 a 7 páginas, executar consultas de banco de dados, preencher visualizações de grade e não dar a mínima para segurança. Inferno, mesmo aqueles sites freelancers têm melhores anúncios de emprego (clone do YouTube, Google instantâneo + X = Y Mashup ..)
Seis meses depois, você encontrará as mesmas pessoas que trabalham em uma empresa na qual terceiriza seus negócios e também me encontrará lá. Pessoas como eles, superam as pessoas como eu dez para 1 :(
Por fim, todos os graduados indianos escreverão uma boa documentação porque é uma teoria, mas não esperam nenhum código à prova de idiotas.
Chegando ao software do sistema, o mesmo é o caso. Um amigo meu está trabalhando com o Android NDK e está trabalhando em um projeto ao vivo em uma empresa. Ele tem sorte de ter esse projeto e eu o invejo, mas esse nível de trabalho também acontece na Índia. Outro aluno da minha faculdade desenvolveu um clone do kinect (mouse multi-touch, como nos relatórios minoritários) em seu projeto final do ano usando apenas duas webcams baratas. Da mesma forma, existem outros que copiam códigos da Internet e, de alguma forma, conseguem um grau reinventando a roda.
Além disso, não espere que alguém com boa formação educacional em termos de marcas escreva um bom software. O sistema educacional da Índia é totalmente orientado pela teoria, não há ênfase na prática; às vezes, saber mais ou a vontade de saber mais pode causar problemas a professores que se sentem intimidados. No entanto, bons programadores procuram pastos mais ecológicos em uma carreira melhor e não apenas um bom emprego; existem outros que querem conseguir um bom "emprego", dirigir pela Honda City, comer fora na China continental e viver felizes para sempre .
Estou mais interessado em Audi btw. :)
fonte
Atenção, generalizações brutas pela frente. Os pontos de vista expressos não são compartilhados por todos. De fato, o autor pode nem acreditar neles.
Desenvolvedores ocidentais têm medo de desenvolvedores orientais. Ouvimos repetidas vezes que nossos empregos acabarão sendo terceirizados. Este é um começo ruim para qualquer relacionamento. Para piorar a situação, somos constantemente lembrados de que nossa educação é inferior. Os desenvolvedores do leste são mais baratos, mais inteligentes e suportam mais dificuldades. Nossa experiência profissional com desenvolvedores do leste não importa, porque é envenenada pelo medo.
fonte
Eu não posso falar pelos outros. Esta é a minha opinião, com a qual as pessoas não parecem discordar. Deixe-me começar com alguns dos fatos como os vejo.
Primeiro, há evidências de que a maioria das pessoas não está realmente interessada no desenvolvimento de software. (Por exemplo, pesquisas na interface do usuário indicam que mais da metade da população provavelmente nunca "terá" a idéia de uma árvore de diretórios.) No Ocidente, essas pessoas não têm problemas em encontrar outros empregos decentes para os quais se encaixam melhor. Na Índia, por outro lado, há tanta pressão para entrar no desenvolvimento de software que eles fazem de qualquer maneira. Isso significa que há muitas pessoas na Índia entrando no desenvolvimento de software que realmente não deveriam.
Em seguida, a Índia é um destino comum para a terceirização. As empresas fazem isso porque parece barato (os salários são baixos). No entanto, está bem documentado (por exemplo, consulte os fatores de custo documentados no modelo COCOMO II ) que todos os seguintes aumentos exigiram tempo e esforço de desenvolvimento: trabalhadores em vários locais, trabalhadores em vários fusos horários e trabalhadores de várias culturas. Qualquer projeto executado na Índia e dirigido pelo Ocidente terá todos os três fatores de custo. (Isso é antes de adicionar a tendência de encontrar pessoas que trabalham como desenvolvedores que realmente não deveriam).
Finalmente, o maior desafio absoluto no gerenciamento de projetos de software é obter informações precisas sobre o que não está funcionando para os tomadores de decisão que precisam conhecê-los. Eu gosto dessa visão bem - humorada dessa tendência. Por qualquer combinação de razões, seja desespero, cultura ou uma crença de que o cliente está certo, essa tendência é pior em projetos que foram terceirizados para a Índia. Às vezes até um nível cômico.
O resultado é que há uma forte tendência para as empresas americanas sucumbirem ao canto das sereias de baixos salários, terceirizarem o trabalho para a Índia e, em seguida, para que os projetos terceirizados se transformem em desastres. (Mas a extensão do desastre não é aparente até depois que os americanos perderam o emprego.)
A outra maneira que as empresas seguem é contratar índios nos EUA com vistos H1B. Isso elimina os problemas do trabalhador remoto. Muitos indianos querem esses empregos porque os salários são mais altos nos EUA etc. E existem mais do que suficientes indianos excelentes por aí para preencher todos os empregos disponíveis. Mas há um problema. As empresas americanas que contratam vistos H1B precisam jurar que não há americanos disponíveis para o trabalho, que a pessoa contratada recebe taxas de mercado, etc. Mas alguém com visto H1B tem dificuldade em mudar de emprego. Isso dá ao empregador um trabalhador cativo. E não deixa incentivo de mercado para realmente tratar esses funcionários de maneira justa. Isso dá às empresas fortes incentivos à desonestidade. Muitos sucumbem.
Como americano, não tenho problemas com os melhores e os mais brilhantes que chegam aos EUA. Muito pelo contrário, foi isso que construiu este país. Mas trate-os igualmente quando chegarem. Por exemplo, conheço uma pessoa das Filipinas que, devido ao seu status de visto, teve que recusar ofertas de emprego do Google, Apple e Facebook. Por quase o dobro do que ele está fazendo atualmente. Se fosse permitido ao mercado definir os salários de pessoas como ele, haveria muito menos incentivo para as empresas tentarem abusar do programa H1B.
Então, há a minha opinião. Por várias razões, os projetos de terceirização para a Índia freqüentemente levam ao desastre. Os que você obtém como trabalhadores da H1B tendem a ser excelentes, mas esse programa é muito utilizado de maneira que me deixa triste.
fonte
Trabalho há 3 anos com desenvolvedores indianos (sou italiano). Pessoas são pessoas. Terceirizamos principalmente porque precisávamos de uma equipe, e na Itália é difícil encontrar uma equipe, especialmente em idiomas não populares como o Delphi. Portanto, o principal motivo é encontrar uma equipe, não um custo.
De qualquer forma, a equipe que encontramos foi muito boa porque tinha um líder muito bom. Mas os outros desenvolvedores não eram tão importantes. O que aconteceu? agora esse desenvolvedor trabalha diretamente para nós, porque ele é uma pessoa muito legal e também se torna meu amigo. Existe um relacionamento forte e também pagamos a ele quase um salário italiano. Por quê? Porque o relacionamento é importante. Eu já vi muitas pessoas indo para a Índia apenas para economizar.
Você recebe o que você paga. Então é claro que você pode economizar algum dinheiro, mas acho que (especialmente para pequenos projetos) terceirizar apenas para economizar dinheiro é uma escolha errada.
fonte
Na IMO, o problema não é Leste versus Oeste, mas a idéia geral de terceirização. Na segunda metade da década de 90, o boom da Internet, o Y2K e a conversão de moeda do Euro criaram muito trabalho para os programadores; portanto, a terceirização era um tópico importante na época. Mas estava terceirizando dentro do país, não para o leste. Ainda assim, muitos dos problemas que esperamos ou enfrentamos com a terceirização também ocorreram com os parceiros locais de terceirização.
Em muitos casos, escrever uma boa especificação é tanto trabalho quanto fazê-lo você mesmo (embora Q&D). Mas como o objetivo da terceirização é economizar tempo e / ou dinheiro, as especificações fornecidas ao parceiro de terceirização são escassas. Adicione um contratado pago por hora e falta de supervisão e fica claro o que você deve esperar.
fonte
Eu moro na China há pouco mais de dois anos (sou canadense) e trabalho com desenvolvedores chineses e, estranhamente, trabalhando com desenvolvedores canadenses no exterior. Posso dizer que algumas das generalizações feitas, pelo menos em chinês, por desenvolvedores são verdadeiras, ou seja, a maioria dos desenvolvedores que conheci / trabalhei aqui são:
No começo, o que eles escreviam nem sempre era muito bom. Há uma divisão cultural, com certeza, mas também a longa curva de aprendizado de um sistema mal projetado para começar. Mas você sabe o que ... depois de dois anos ... alguns dos melhores trabalhos feitos neste sistema vêm dos escritórios chineses. À medida que isso se torna cada vez mais visível, isso agrava ainda mais o elemento de ameaça ...
Sinceramente, não é fácil, mas acho que estou do lado direito da cerca ao olhar a tendência por experiência pessoal.
fonte
Este é um tópico fascinante. Trabalhei em SF e no Vale do Silício, mas também na Europa para clientes locais, montando um escritório offshore na Índia e agora administro uma loja de desenvolvimento offshore na América do Sul. Eu até trabalhei um pouco com desenvolvedores africanos.
Todas as regiões do mundo são capazes de produzir grandes programadores. Eu tenho um amigo hacker no Malawi que constrói surpreendentes trilhos de interface de toque com suporte a sistemas de código aberto para clínicas de HIV, usando e contribuindo para projetos de código aberto de maneiras importantes.
Também vi programadores americanos trabalhando em startups de marcas famosas e grandes empresas da web que não conseguiam programar a saída de um saco de papel. Pessoas com mestrado em Comp Sci pelo MIT e anos de experiência no setor, que quando se tratava de escrever um bom código de produção, não conseguiam cortá-lo.
Existem diferenças culturais muito reais entre Europa, América Latina, EUA e Índia. Depois, há a cultura hacker, que é mais ou menos universal.
A comunidade de tecnologia indiana tradicional gosta de jogar as pessoas no problema. A taxa horária por desenvolvedor pode ser menor, mas se o fornecedor acredita em quantidade sobre qualidade, você precisará do dobro de desenvolvedores para executar o código.
Certificações. Que diabos? A Índia adora certificações, ISO, CMMI, etc ... continua e continua. É uma bunda sem sentido. Mais exatamente, não é como você desenvolve um bom software.
O sistema de castas. O sistema de castas é ilegal na Índia, e desde a independência tem havido um tremendo trabalho para eliminá-lo, mas ainda é um animal vivo que respira. A maioria dos ocidentais ignora a existência do sistema de castas. Eu cresci nos EUA, mas meu pai nasceu na Índia, anglo-indiano, e minha mãe foi para a universidade como estudante e depois voltou a ensinar muito mais tarde nas universidades indianas. O sistema de castas é muito real, vem da Índia e é antigo, mas os britânicos o incentivaram e o usaram para manter a energia. Os ocidentais precisam saber que tomarão o lugar dos britânicos, no topo da hierarquia. Você será chamado senhor, não será questionado. A maioria dos gerentes indianos vê seu papel como dizer a seus subordinados o que fazer. Falar de volta e oferecer alternativas é punido.
Nem toda loja de desenvolvimento indiano é assim, Zoho, construiu um negócio indiano incrível, quebrando todas as regras. Eles contratam com base na capacidade e não na casta ou na certificação da universidade que você possui. Ao fazer isso, eles iniciaram uma substituição completa de SaaS no MS Office Suite.
Há uma vibrante comunidade de hackers na Índia, bem como encontros, listas de discussão, pequenas conferências e similares. Esses desenvolvedores são de classe mundial. Eles geralmente acham difícil conseguir trabalho na indústria de desenvolvimento de software indiana convencional. Eu mesmo encontrei dois desenvolvedores python para o nosso escritório indiano, eles eram ótimos e, em seguida, nosso gerente indiano insistiu em contratar uma dúzia de calouros, recém-formados para preencher a equipe. Depois de alguns meses que os hackers deixaram o cargo, o gerente deles fez suas vidas um inferno. Ficamos com uma dúzia de funcionários jovens e entusiasmados, a maioria dos quais não sabia programar muito bem.
O melhor dos novatos era uma jovem que havia construído um IDE para desenvolvedores em sistemas embarcados. Ninguém queria contratá-la porque ela era de uma família conservadora e os índios pensaram que seria forçada a deixar o emprego depois que se casasse.
Existem grandes desenvolvedores na Índia, mas a estrutura de valores é configurada para promovê-los e promover pessoas com base em coisas que não têm nada a ver com a criação de um ótimo código.
O outro grande problema são os fusos horários. Não é uma vantagem, é um enorme problema. Isso significa que não há comunicação direta constante entre as equipes local e offshore. Isso causa muitos mal-entendidos e obriga a escrever resmas de documentação. Torna o ágil muito difícil de executar.
A triste verdade é que uma enorme quantidade de software produzido por empresas indianas é de baixa qualidade. Você ouve os desenvolvedores falarem o tempo todo sobre como os engenheiros indianos são péssimos, não é verdade, mas é um reflexo da qualidade das grandes empresas offshore tradicionais. É culpa da cultura de negócios na Índia, não dos próprios desenvolvedores. Os desenvolvedores estão presos em um sistema ruim que recompensa as coisas erradas.
fonte
Eu experimentei vários projetos offshored para a Ásia (diferentes países que não vou mencionar). Todos eles foram falhas sombrias. Apesar da documentação abundante e detalhada, os documentos de especificações, etc. etc. serem enviados sobre o resultado (se alguma coisa foi produzida) foi uniformemente ruim. Normalmente, ou não funcionava ou era tão marginalmente funcional que era inútil. Os projetos também estavam (se eles produziam entregas) seriamente atrasados.
OTOH Trabalhei com programadores asiáticos e outros que trabalham na Europa e nos EUA, e a maioria deles é boa e trabalhadora, que conhece bem seu trabalho.
Talvez uma declaração de vários deles de que todas as boas pessoas de TI deixem a Ásia trabalhar na Europa e a América diga tudo. O que resta é o fundo da pilha, com pessoas com pouca ou nenhuma qualidade para fornecer supervisão, treinamento e liderança de equipe para obter melhorias. Tendo tido que lidar com pessoas asiáticas de TI que moram lá (pelo menos em alguns países) por telefone e e-mail (e assistem a entrevistas na televisão etc.), também pode haver cultura envolvida. Muitos parecem se considerar racial e moralmente superiores aos americanos e europeus (e consideram aqueles que deixam os países como traidores) e se recusam a ouvir conselhos de quem consideram seres inferiores. Isso certamente não é verdade para todos os países asiáticos, mas pode ser generalizado o suficiente para criar uma atmosfera de "sabemos melhor,
A situação na Europa Oriental é melhor, talvez em parte porque muitos desses países fazem parte da UE, então há uma ameaça maior de ação legal bem-sucedida contra eles se eles estragarem.
fonte
Brusco e cínico:
fonte
Nos meus 10 anos na IBM, trabalhei com programadores em todo o mundo em uma variedade de relacionamentos. A primeira coisa que você aprende é que os estereótipos geográficos estão todos errados, nos dois lados do oceano. Programadores são programadores em todo o mundo ... escolhem 100 deles de qualquer lugar e você terá aproximadamente a mesma proporção de pessoas que não poderiam programar o hello world sem uma viagem ou três para o google, pessoas que são decentemente competentes e pessoas brilhantes .
Dito isto, as generalizações geográficas do clima de negócios em algumas dessas áreas são precisas. A Índia, por exemplo, é muito parecida com Austin, TX ou Silly Con Valley, no final dos anos 90 e início dos anos 2000 ... muitas portas para saltar e girar, pessoas indo e vindo todos os anos. A China, por outro lado, parece muito mais com a Silicon Prairie aqui no meio-oeste dos EUA, as pessoas escolhem uma empresa e ficam lá por um longo período de tempo. Brasil, Rússia e Europa pareciam estar em algum lugar no meio, não tanto que eles ficassem um tempo médio, mas que pareciam ter uma mistura dos dois, algumas pessoas trabalhando em empregos, outras se instalando.
fonte
Eu pertenço ao mundo oriental e também tenho experiência em terceirizar o trabalho da minha empresa para o mundo oriental novamente :-) Minha empresa não queria investir nos próprios recursos para realizar o trabalho, apesar de toda a ajuda que poderíamos oferecer para o contratante o projeto falhou. Foi frustrante trabalhar com alguns desses engenheiros, acho que os modelos de terceirização e o conhecimento técnico podem amadurecer mais no Oriente para melhorar. Dito isto, trabalhei com muitas pessoas no mundo ocidental que também podem melhorar. Você encontra bons e maus programadores em todo o mundo.
fonte
You find good and bad programmers across the globe.
Eu moro na Europa Central. A onda de terceirização nos afetou nos últimos anos. Eu trabalhei em projetos terceirizados do "Ocidente", mas hoje em dia os projetos terceirizados chegam a países mais baratos. Então, eu estive nos dois lados da equação.
Quando éramos os terceirizados, nossos gerentes e os caras com quem trabalhamos diariamente eram legais, nos tratavam como um desenvolvedor interno. Uma ligeira preocupação com a segurança no emprego podia ser sentida pelo resto das pessoas, o que eu considerava perfeitamente normal. Além disso, temos as tarefas de segunda categoria em um projeto maior, o que também é bom para mim, e você não deve terceirizar sua experiência principal.
Então os projetos foram para territórios mais baratos, o que era meio inevitável.
O ponto principal de toda a história da terceirização é que a gerência não dá a mínima para o seu conhecimento, experiência, educação ou know-how. Eles só se preocupam com os custos e seus bônus. Portanto, a menos que haja uma razão pela qual sua presença local seja necessária, os projetos de software serão terceirizados eventualmente para países cada vez mais baratos.
fonte
Eu moro na Rússia, Sibéria e trabalho para uma empresa médica alemã que terceiriza projetos para nós. Acho que é um pouco mais do que terceirização: compartilhamos equipes entre a Rússia e a Alemanha, fazemos viagens de negócios, etc.
É claro que sou subjetivo, mas acredito que somos um exemplo de terceirização bem-sucedida: a qualidade do código e a qualidade do produto estão aumentando significativamente desde que começamos a trabalhar nele.
É um pouco decepcionante ser uma força de trabalho barata, mas, por outro lado, temos a chance de trabalhar para uma grande empresa com grande experiência em tecnologia e gerenciamento.
fonte
Disclaimer: Eu sou indiano e isso pode parecer um ponto de vista indiano, mas já trabalhei com muitos clientes ocidentais e até nos EUA. Se o hemisfério oriental tinha os piores programadores do mundo, por que o hemisfério ocidental terceirizaria para o leste? Se você terceiriza para partes do leste do globo apenas para economizar dinheiro, está comprometendo a qualidade da IMO. Bom, rápido e barato, escolha dois. Quando preciso contratar um profissional, pergunto à minha organização quais são as expectativas e qual o preço que está pronto para pagar. É realmente difícil convencer um talentoso e estimado sujeito a trabalhar para você por um salário menor e mais pressão. São apenas esses sites freelancers combinados com caras ocidentais infelizes, cujos empregos eram Bangalore-d, que resultaram em programadores do leste, são macacos de código. Se você estiver pronto para pagar um preço melhor, terá a certeza de um resultado melhor, e não siga as empresas de serviços do tipo ISO / CMMI / SEI. Eles contratam talentos como se estivessem criando um rebanho de ovelhas ou de gado.
fonte
Sou americano atualmente morando no exterior (na Rússia) e trabalhando como empresário (e freelancer ao lado para pagar as contas). Trabalhei no Vale do Silício como desenvolvedor, líder de equipe técnica e arquiteto de software / sistemas por mais de 20 anos para várias empresas e startups, algumas muito conhecidas, incluindo uma startup que acabou se tornando uma empresa multimilionária dominante no setor. corporação internacional. Essa última corporação (chamada "X") possui centros de desenvolvimento em todos os EUA e no mundo: Índia, Rússia, China, Europa etc. Trabalhei diretamente com membros de algumas dessas equipes e achei que eram altamente talentosos e engenheiros dignos. Assertividade e criatividade, eu concordo tendem a ser um tipo de personalidade de engenheiro mais americano no momento,
A terceirização é muito clara sobre o dinheiro. Quando saí dos EUA, X não estava contratando nos EUA, mas em escritórios internacionais. X paga a engenheiros não americanos cerca de 1/4 a 1/3 (depende da região) do salário de um engenheiro americano equivalente (anos de experiência, habilidades). O que ainda é um salário bastante bom, geralmente considerando as economias de alguns locais fora dos EUA, mas isso não é bom para a taxa de pagamento e a própria existência de cargos de engenharia nos EUA.
Acredito que o freelancer é o futuro do trabalho com computadores, especialmente com o software. Por sua natureza, é altamente portátil, tudo o que você precisa é de um laptop e uma conexão à Internet e você está no negócio. Sempre há um argumento a ser feito para as equipes internas no local: programação mais confiável, conjuntos de habilidades previsíveis, etc., mas eles são muito caros de manter.
Vejo postagens bastante frequentes e arrogantes aqui de engenheiros americanos sobre o quão terrível são todos os desenvolvedores fora dos EUA (veja, por exemplo, este tópico: https://stackoverflow.com/questions/209170/how-much-does- custo-para-desenvolver-um-aplicativo-iphone) O estereótipo é que sim, eles são baratos, mas sempre também não qualificados e escrevem códigos ruins. Que a única maneira de obter qualidade é pagar taxas de pagamento dos EUA a engenheiros dos EUA. Tolices! Os engenheiros dos EUA precisam acordar - o setor e a economia estão mudando de desenvolvedores internos muito bem pagos para equipes de desenvolvimento distribuídas espalhadas pelo mundo. Certamente, existem desenvolvedores ruins fora dos EUA - mas lembre-se de todos os entrevistados dos EUA que você passou porque eles não estavam à altura. Alguns dos códigos absolutamente mais atrozes que já tive que ver ou trabalhar foram escritos por um engenheiro interno dos EUA, que se recusou a mudar ou melhorar! Só porque algum desenvolvedor de elance aleatório fez um trabalho de baixa qualidade não significa que todos os engenheiros não americanos sejam terríveis. Em vez de, se o cliente elance deve olhar um pouco além dos concorrentes, existem joias reais por aí, até os principais desenvolvedores, disponíveis com um grande desconto para as taxas internas dos EUA. Nesse instante em particular, devo admitir, muito talento está concentrado nos EUA - mas quem pensa que isso nunca vai mudar está seriamente iludido.
O talento e a experiência custam mais do que a falta dela, eu garanto. Mas o problema é que a escala salarial dos funcionários internos dos EUA está muito diferente da do resto do mundo. Há um contínuo dinâmico de talento / custo constantemente em movimento, e o talento ambiental de segundo plano de engenheiros não americanos apenas aumenta, o que colocará uma pressão descendente muito forte nas taxas de pagamento dos EUA e na própria existência de posições internas de engenharia pagas nos EUA (lembre-se: X está contratando internacionalmente, mas não nos EUA. A inscrição está na parede). Portanto, os mais talentosos sempre poderão cobrar mais do que os menos talentosos, mas você pode ter certeza de que não estará nas taxas atuais dos EUA.
A concentração de talentos em todo o mundo vai mudar absolutamente, assim como a localização física das equipes de desenvolvimento já mudou. Os níveis de talento fora dos EUA continuarão subindo e, em um futuro não muito distante, analisaremos esses tópicos e pensaremos "do que eles estavam falando, você pode encontrar os melhores talentos em qualquer lugar do mundo".
fonte
Eu trabalhei na parte leste e oeste do globo e pensei que compartilharia. Eu trabalhei em Bangalore por 5 anos antes de me mudar para os EUA. Trabalhou nos EUA por cerca de 8 anos e voltou para a Índia. Fui forçado a ficar em casa porque os empregos são muito exigentes aqui. Com 2 crianças pequenas, era impossível passar aquelas longas horas. Finalmente encontrou um emprego a tempo parcial. Fiquei chocado ao ver a qualidade do trabalho na Índia. Não foi tão ruim assim quando partimos para os EUA. A multidão jovem simplesmente não parece ter nenhuma responsabilidade ou entusiasmo para aprender novas tecnologias. Como alguém apontou, dizer "não" é raro (um golpe no ego, OMI) e, como resultado, você verá um trabalho totalmente inútil ou medíocre. O código não é legível, não tem idéia do quadro geral, não há espaço para expansão etc. Quando você treina um rapaz, ele está pronto para conseguir empregos para um pasto mais verde. Dito isto, eu ainda diria que existem alguns excepcionalmente bons. Se você trabalha com ele, considere-se com sorte, especialmente se essa pessoa puder se comunicar bem!
fonte
Se a qualidade do trabalho é baixa, talvez não seja tanto o que eles olham para a Índia, mas para quem faz a melhor oferta, e provavelmente não seja o tipo de Prasoon Saurav, mas uma equipe de codificação júnior.
fonte
Eu trabalhei com grandes programadores offshore, mas eles não eram absurdamente baratos de contratar. Também trabalhei com programadores offshore muito baratos, e eles não foram ótimos.
Sempre me pareceu que grandes programadores no leste provavelmente encontram uma maneira de receber tanto ou quase tanto quanto os grandes programadores no oeste; talvez eles lançem sua própria empresa, talvez consigam um visto, o que puderem. Mas eles tendem a encontrar um caminho, certo?
Ao procurar uma equipe de programadores dispostos a trabalhar de maneira extremamente barata, eu não esperaria obter talentos de primeira linha. Verdadeiro, não importa onde mora seu talento.
fonte
Eu sou da Suíça. Eu trabalhei em um projeto em que terceirizamos para a Ucrânia. Os desenvolvedores eram muito mais baratos, mas o dinheiro que economizamos tinha que ser reinvestido em transportar nossa equipe para a Ucrânia a cada dois meses para supervisionar essa equipe nearshore. O projeto morreu cerca de um ano depois de ter sido terceirizado.
Agora estou trabalhando em um projeto que é terceirizado para uma empresa suíça, que por sua vez o enviou para Marrocos. O projeto está a caminho, mas temos problemas de comunicação e de qualidade.
Acho que o principal problema é que projetamos no exterior para construí-los mais baratos. É sempre difícil conseguir coisas mais baratas, mas da mesma qualidade ...
fonte
De maneira muito franca e generalizada, não acredito que programadores no 'oeste' tenham altas opiniões de programadores no 'leste'. Não tenho certeza se isso é justificado ou não.
Como algumas respostas sugerem, a terceirização é uma ameaça para muitos no 'oeste'. Essa é uma razão automática para desconfiar dos programadores 'rivais'.
Eu só vi código incorreto ao analisar projetos terceirizados e apenas um pequeno número de vezes. Isso pode ser porque o trabalho foi para uma loja barata ("você obtém o que paga"), porque o projeto foi mal gerenciado ou provavelmente porque se o projeto foi bem-sucedido, não precisaria olhar o código. Em outras palavras, você ouve apenas sobre o código incorreto.
Também há histórias de horror - como o arquivo de linha 30000 acima. Novamente, quanto pior a história, mais ela se espalhará.
As pessoas dirão coisas como 'Se você quer fazer barato, terceirize. Se você quiser fazer certo, faça-o internamente.
Se você está aprendendo e melhorando, não me preocuparia muito.
fonte
Disclaimer: Eu não tenho nenhuma experiência direta com a terceirização. A seguir, apresento alguns pontos que surgiram quando discuti o tópico com um gerente de projeto em uma grande empresa de software ocidental. Esse cara passou muito tempo na Índia, supervisionando equipes terceirizadas.
fonte
Algumas das maiores empresas de TI do mundo estão na Índia, se você já ouviu falar em Wipro, Infosys, TCS etc. As maiores empresas indianas, que a maioria dos "profissionais ocidentais de software" nunca poderiam pagar para o exterior se qualificariam como as melhores em qualidade do mundo . Eles recebem todos os certificados ao sol em relação à qualidade apenas para aliviar os medos dos clientes ocidentais. Também existem mais engenheiros (grau e experiência) na maioria das empresas indianas de software do que na maioria das empresas ocidentais. Além disso, Google, Oracle, IBM, Microsoft e SAP têm centros de desenvolvimento e nem todos estão procurando programadores baratos.
Então, como vemos os engenheiros ocidentais. Vemos um saco misto como você vê um saco misto quando olha para o oceano. Existem pessoas super técnicas qualificadas que admiramos e há idiotas com quem às vezes podemos ser forçados a trabalhar. Em geral, nos damos muito bem em equipes mistas. O relacionamento realmente é péssimo se você tiver pessoas de negócios "tecnicamente orientadas" no extremo oeste e apenas programadores no outro extremo. Geralmente, é uma empresa ocidental sedenta de dinheiro que procura economizar alguns dólares ao não contratar um gerente local.
fonte
Minha experiência com terceirização para países do leste (não para o leste europeu) tem sido muito ruim. Todos os aplicativos que eu vi foram horrendos e parecem um monte de código não relacionado colado para dificilmente fazer o trabalho que ele deveria fazer.
Eu não acho que isso se deva a novos programadores do leste serem piores do que os novos programadores ocidentais, acho que é porque os programadores do leste não têm programadores experientes para orientá-los. No mundo ocidental, trabalhar com linguagens de programação modernas é uma profissão comum há cerca de 45 anos; portanto, existem muitos programadores experientes com quem novos trabalharão com quem você pode aprender. No leste, a programação moderna está acontecendo para quê? 10 - 15 anos? Existe uma falta real de experiência para as pessoas aprenderem. Além disso, acho que (da maneira que eu vejo daqui) é que, com a maioria dos programadores do leste para quem o trabalho está sendo terceirizado, eles adquirem muitos traços ruins, onde o objetivo é apenas obter o projeto feito rapidamente cortando os cantos, que é uma experiência que você não deve transmitir aos novos desenvolvedores. Nos EUA, pelo menos, a maioria dos trabalhos de programação é para pessoas que trabalham com um conjunto limitado de produtos que precisam oferecer suporte ao longo do tempo. Portanto, as pessoas adotaram técnicas para garantir que o software seja estável e seguro ... é uma boa experiência para passar para a nova geração.
Então, sim, basicamente, eu não vejo isso como algo que tenha a ver com a quantidade de escolaridade que uma pessoa recebe em qualquer lugar, isso tem a ver com hábitos adotados no trabalho. Existem muitos bons programadores por aí (embora eu ache que eles são bem minoritários), mas eu não acho que eles sejam os únicos com os quais ocidentais interagirão quando os projetos forem terceirizados.
Quanto aos europeus do leste, eles têm desenvolvedores experientes por aí. Só tenho medo de que eles sejam eliminados para atender às demandas da terceirização.
fonte
@giddy, Peter: Como programador vindo da Índia, tenho que admitir a verdade, por mais triste que seja, de suas declarações: programar na Índia não é algo que as pessoas escolhem por escolha, mas por compulsão, seja eles são sociais ou econômicos. Essa é uma das razões pelas quais é muito comum na Índia encontrar pessoas saindo rapidamente de trabalhos técnicos para trabalhos puramente gerenciais (na verdade, isso é chamado de "subir a escada", uma frase que vim detestar). Mesmo se você quiser continuar crescendo como técnico, os papéis gerenciais são impingidos a você (essa é uma das razões pelas quais eu decidi sair da Índia, na verdade).
Por razões que estão além de mim, o crescimento da carreira é equiparado ao número de pessoas trabalhando para você, ou para ser mais preciso, sob você. "Eu sou responsável por uma equipe de x" ou "x pessoas trabalham sob mim" é uma afirmação considerada digna de uma pessoa "bem-sucedida" na Índia (não importa que "x pessoas" possam ser as que produzem o tipo do código que foi referido por outras pessoas neste segmento).
Dito tudo isso, eu gostaria de salientar que a má qualidade do código não é algo restrito apenas à Índia ou a outros países "de baixo custo". Às vezes, vejo atitudes familiares e qualidade de código mesmo aqui na Europa. Felizmente, eles não são a regra geral.
fonte
Eu tive experiências mistas com a terceirização de nosso trabalho e apenas trabalhando com empresas offshore em geral. Para referência, moro nos Estados Unidos.
O mal
Eu trabalhei em uma empresa que contratou uma empresa na Índia, que havia sido avaliada como CMMI 5 e que iria trabalhar com menos custos. A empresa deu a eles algum software cliente para escrever do zero e, quando voltou, o código estava com bugs, completamente sem documentos e geralmente difícil de refatorar e manter. A empresa acabou escrevendo o cliente inteiro do zero e pagou o custo da terceirização.
Em outro exemplo, uma empresa em que trabalhei fez parceria com uma empresa na Ásia para introduzir seus serviços e produtos nos mercados do leste. O que aconteceu foi uma história secreta que poucas pessoas sabiam (e eu mesmo por procuração) onde a empresa asiática levou nosso código-fonte e design de produtos, rompeu a parceria e depois lançou seus próprios produtos que eram os mesmos da minha empresa.
A média-ish
Em outro caso, uma empresa em que trabalhei abriu um escritório de pesquisa na China, lugar muito moderno; eles tinham coisas mais sofisticadas em seu escritório do que eu no meu. Fui enviado ao escritório da China por uma semana para treinamento, pois a instalação de P&D seria usada para o desenvolvimento personalizado do Linux. A equipe tinha algumas pessoas muito boas, mas como é o caso dos desenvolvedores dessa estatura, eles saíram logo depois, e a equipe restante escreveu uma API para usarmos aqui nos Estados Unidos. Vou chamar a API completamente ruim, porque ela não mostrou nenhum entendimento do Linux, e o código-fonte subjacente foi bastante complicado na melhor das hipóteses. Mas acho que o grande problema foi que a empresa também escolheu uma equipe estranha para dar trabalho ao Linux, já que ninguém naquela equipe era especialista em Linux e esse projeto foi descartado um ano depois.
O bom
Em outros casos, outra empresa em que trabalhei contratou uma empresa na Europa Oriental. Esses caras eram realmente bons, foram contratados para fazer testes de vulnerabilidade e, embora fossem realmente muito caros, geralmente eram vistos como um investimento digno.
Também trabalhei com uma empresa de serviços de TI indiana bastante gigantesca e tínhamos desenvolvedores internos que foram contratados por eles, mas contratados conosco. Havia vários desenvolvedores bons lá, mas essa é uma história mais geral, pois todos trabalhamos juntos em vários projetos.
Essas histórias são divertidas - trabalhei com várias empresas e tenho histórias sobre empresas domésticas e estrangeiras.
Para algumas empresas - a comunicação sempre foi a parte difícil. Eu trabalho no horário do leste, e estaríamos conversando com as pessoas de 10 a 13 horas à nossa frente. Também passávamos apenas pelo gerenciamento, sem falar com desenvolvedores reais, então havia uma desconexão lá.
Também conheci desenvolvedores que simplesmente não gostaram do trabalho. Tínhamos um desenvolvedor coreano, que queria trabalhar nos Estados Unidos porque trabalhava horas servas com salários baixos para uma empresa de defesa na Coréia. Eu era colega de trabalho de um desenvolvedor (também estrangeiro) que lamentou suas escolhas para se tornar um desenvolvedor - ele fez isso para tentar ganhar milhões.
fonte
The company ended up just writing the entire client from scratch and ate the cost of the offshoring.
. Tivemos esse problema duas vezes.Interessante! Sou chinês e acho que sei por que os programadores aqui não têm curiosidade e criatividade. A maioria dos meus colegas de trabalho reclama todos os dias, odeia codificação, não gosta de projetar, apenas fofoca aqui e ali (faz parte da nossa cultura). Eles vêm para empresas de software apenas por um salário mais alto (nos países em desenvolvimento, os funcionários de TI são bem pagos), não por "salvar o mundo" ou fazer a diferença. Sem interesses, sem motivação, sem curiosidade e sem criatividade !!!! Mas existem cabeças inteligentes (como eu ^ _ ^), elas fazem trabalhos de qualidade e entregam no prazo !!!!
fonte