Como os programadores no Ocidente veem os programadores no Oriente?


101

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?


3
Verdadeiro . Mas grande parte da economia de TI é construída em serviços.
Vinoth Kumar CM

8
Como contraste, também postei: programmers.stackexchange.com/questions/50884/… - "Como os programadores no leste veem os programadores no oeste?"
Jon Hopkins

11
Ré. votar para fechar - Estou surpreso. Eu acho que essa é uma ótima pergunta subjetiva, embora eu enfatize que as pessoas precisam apoiar suas respostas com experiência e fatos com base em pura opinião.
Jon Hopkins

11
Uau, quando li isso pela primeira vez, pensei que significava Costa Leste vs. Costa Oeste nos EUA.
Jess

3
@ Andrew: LoL. Há uma grande lacuna cultural aqui! e muito menos o Centro-Oeste.
Mike Dunlavey

Respostas:


81

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 coutpara 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.


29
Muito interessante, obrigado pelo ponto de vista. Eu acho que o fenômeno "pais empurrando seus filhos e pessoas que estudam coisas nas quais eles não são bons" é praticamente mundial - seus maus resultados parecem mais visíveis na Índia no momento, porque é tão insanamente atraente lá para o trabalho offshore, e outras métricas como a população. Mas seria um grande erro pensar que a Índia não tem pessoas brilhantes, e os desenvolvedores competentes
Pekka 웃

4
@Pekka, se eu tivesse um níquel toda vez que alguém me dissesse para ser médico ou advogado, eu não precisaria estar em TI.
23411 jonescb

1
Grande visão cultural. Fui à escola com vários americanos de descendência indiana e lembro-me de três ocasiões distintas de consolar algumas que estavam perturbadas porque elas simplesmente não entendiam / gostavam de programação, mas tinham que conseguir um emprego bem remunerado para poder ir para casa e visitar família regularmente. Essa pressão empurra as pessoas em direções pelas quais elas podem não ter aptidão. Enquanto isso, minha família extensa fica a apenas 1500 milhas de distância e é um bom ano se eu chegar em casa para uma visita.
Steve Jackson

11
+1 por mencionar o problema do turboC. Quero dizer, se eles não querem gastar muito dinheiro, use eclipse ou algo assim. O uso desse software desatualizado apenas desativa os alunos da programação e dos computadores.
22411 apoorv020

3
@apoorv true. quando eu ensinava mais cedo (no instituto indiano "renomado", não vou mencionar), eles usavam o turbo C também, eu costumava usar o netbeans para ensinar (que já estava instalado), mas eles me forçaram a voltar ao TC! Eventualmente, 4-5 alunos foram até ele e disseram que gostaram pela primeira vez, porque na verdade eles poderiam escrever um programa que funcionaria!
Gideon

118

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.


42
Bem, só posso agradecer por não generalizar. Generalização nunca funciona.
22611 sukhbir

41
generalização de lol @ sukhbir
Matt Ellen

19
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.
Oosterwal

2
O que significa OTOH?
David Murdoch

7
Eu pensei que a Europa era um país ..
Dave O.

30

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.


3
O fato de "Nearshoring" ter sido inventado como uma palavra indica que a diferença que você encontrou entre a Rússia e a Índia não é incomum. Veja en.wikipedia.org/wiki/Nearshoring
Sjoerd

8
A segunda história resume minha experiência em vários projetos ao longo dos anos com equipes de desenvolvimento indianas. Não vou generalizar e dizer que TODOS os sistemas que saem da Índia são assim, mas TODOS os quais estive envolvido.
ozz

4
@Jerry O leste da Rússia está muito mais próximo dos EUA do que o oeste da Rússia!
Kirk Broadhurst

3
+1 em "Eles mostraram aderência quase religiosa a políticas e procedimentos, mas quase completa falta de percepção do problema que deveria ser resolvido". Isso é verdade .
Vinoth Kumar CM

1
@oosterwal: verifique o perfil "Colorado Springs, CO, EUA", @Jerry: fica mais perto dos EUA (apenas o Pacífico no meio), mas os EUA também abrangem alguns fusos horários
Matthieu M.

22

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:

  • Bons programadores são curiosos
  • Bons programadores leem blogs e artigos on-line e tentam aprender mais sobre seu campo
  • Bons programadores respondem a perguntas no Stack Overflow
  • Bons programadores com 1 a 2 anos de experiência ou mais entendem que seus estudos em ciência da computação não eram perda de tempo
  • Bons programadores podem pensar fora da caixa
  • Bons programadores também são bons líderes
  • Bons programadores são proativos e não precisam saber o que fazer

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!


-1, pois o erro real do GW-BASIC é "Erro de sintaxe", não "Erro de sintaxe incorreto". (Além disso, estou brincando sobre o -1)
Charles Salvia

1
Embora eu gostaria de concordar, discordo de um exemplo: bons programadores são curiosos, bons programadores são proativos e não precisam saber o que fazer (correto, que tal crescer em uma sociedade patriarcal onde a curiosidade é punida ou você tem ser informado sobre o que fazer por um idoso e ser proativo somente quando não houver outra opção)? Eu realmente gostaria que as coisas fossem como você descreve, talvez em uma ou duas gerações ...
Dimitrios Mistriotis

@ Charles - lol, meu erro de sintaxe teve um erro de sintaxe.
jmort253

@ dimitris - Se entrarmos nessa mentalidade agora e descartarmos desculpas, é mais provável que alcancemos nossos objetivos. Inventar desculpas com base em nosso passado não nos ajudará a alcançá-las.
jmort253

1
@ jmort253: É uma discussão muito grande e podemos estar fora de tópico. Só acredito que é difícil para uma pessoa mudar de comportamento da noite para o dia ou mais para se comportar de maneira diferente em cenários sociais ou de trabalho. Eu não mencionei que ambas as abordagens têm benefícios. Muitas pessoas que eu conheço tentar combiná-los, fazendo parte do oeste do trabalho e parte do leste (baseado na dicotomia perguntas)
Dimitrios Mistriotis

22

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.

Vou citar um exemplo simples. Entrei para um instituto de treinamento para o meu projeto do último ano e eles queriam que eu criasse um site ASP.NET que fosse como um sistema de inventário (reserva de hotel, CRM, esse tipo de coisa). Sim, não é uma tarefa fácil, mas não vale a pena trabalhar em um projeto na minha opinião. Isso apenas reinventará a roda e esses projetos são enormes por natureza na vida real. Entregue em 6 meses por um grupo de 3, você pode entender o tipo de sistema inutilizável reduzido que resultará disso. Os institutos não se estressam demais e estão mais interessados ​​em "não assustar o aluno dizendo muito" e "fornecer uma visão geral e permitir que aprendam o resto por conta própria". No final, o que as pessoas desenvolvem nos projetos nem sequer é um protótipo totalmente testado,

Eu peguei meu próprio tópico, um sistema de navegação em tempo real, guiado por voz. Estou usando o WPF, a API do Google Maps e as mais recentes tecnologias que posso. Para boas práticas de engenharia de software, estou usando o controle de origem, o MVVM e darei uma olhada completa em qualquer outra coisa que eu tenha conhecimento. Tenho 21 anos e sou graduado. Acho que na minha idade, as pessoas no oeste ainda estão na fase de aprendizado e se tornam graduadas mais tarde. Isso torna os graduados ocidentais muito melhores e mais conhecedores. Temos quantidade, mas não qualidade.

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 :(

para ser exato e não reclamar, em toda a minha carreira educacional e conhecimento de mais de 500 pessoas, vi exatamente quatro que tinham o nível de conhecimento que eu consideraria por trabalharem em um projeto comigo)

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.

Minha palavra final, não espere uma qualidade comprometida em toda a Índia e não aceite os indianos como mantenedores de software baratos e adequados para terceirizar apenas trabalhos de manutenção.

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. :)


China Continental é sobrestimado, as e (infelizmente) por aqui :)
aldrin

18

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.


24
Na verdade, os desenvolvedores ocidentais não têm medo dos desenvolvedores orientais, mas da terceirização gerenciada como uma operação simples de redução de custos.
mouviciel 23/02

2
que é a mesma coisa. O programador vietnamita de US $ 5 por hora é uma ameaça direta ao nosso trabalho, porque, mesmo que você precise de 10 deles para fazer o mesmo trabalho que um de nós, ainda é mais barato. Ou é assim que a administração calcula, nunca levando em consideração as implicações a longo prazo.
Jwenting

8
"Para piorar a situação, somos constantemente lembrados de que nossa educação é inferior"? Onde você conseguiu aquilo? A terceirização é um fato da vida, todas as empresas procuram reduzir alguns custos. Os desenvolvedores orientais não têm absolutamente nada a ver com isso. Você não deve ter medo deles, deve ter medo de que seu chefe / cliente opte por terceirizar e cortar custos sem considerar o impacto na qualidade. Na verdade, é o contrário, nossa educação (eu me considero ocidental) é muito mais alta, portanto, nosso custo é mais alto.
23411 Alex

2
@Alex: re. Educação. A educação dos EUA não é o que poderia ser, ou era antes. Eu ensinei CS no Boston College, uma escola altamente qualificada de admissão competitiva. Primeiro programa: converta Celcius em Fahrenheight, F = C * 1,8 + 32. Olhos vidrados e medo ao redor da sala. Escreva uma proposta de projeto. Não é possível escrever uma frase com pontuação. Não é possível soletrar - considera "muita" uma palavra. Não faço ideia quando usar "ele" e "ele", "eu" e "eu" ou apóstrofo. Diga "compreenda" e "avance" como figurão. Todos esperam pelo menos B +, se não A. Você apenas ensina no nível deles, e a cada semestre você recebe um novo lote.
25411 Mike On-line

3
@ apoorv020 (cont) O problema dessa abordagem é que o ensino médio mudou de um ambiente que deveria ensinar habilidades para os alunos que os ajudarão a ter sucesso, para ensinar habilidades que os ensinarão a obter melhores notas nos testes e fazer a escola parecer melhor, empurrando mais o ensino de conceitos fundamentais para a faculdade (desvalorizando assim o ensino superior). Foi uma tentativa fracassada de aplicar a economia do mercado (concorrência) ao sistema escolar público.
Evan Plaice

18

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.


Apenas curioso, um cara que tinha ofertas de emprego do Google, Apple e Facebook?
Htbaa 23/02

Por que você não pode mudar de emprego enquanto está no H1B? Ouvi dizer que existe a coisa chamada "transferência" e é basicamente uma rotina padrão com garantia garantida na prática.

2
@ developer-art: não conheço os detalhes. Mas a pessoa em particular em que estou pensando estava no processo de obter um green card e ficou presa em seu emprego atual até a documentação ser liberada. No caso dele, a papelada o deixou no limbo há mais de um ano e meio que eu conheço. Conheci outras pessoas excelentes que tiveram problemas com o INS e foram forçadas a sair. Por exemplo, a fama de Abigail of Perl encontrou isso no final dos anos 90.
btilly

2
@ dev-art: Seu H1b está ligado a você estar empregado. Você poderia pensar em mudar de emprego, mas se não houver uma transição perfeita, sua permissão de trabalho expira automaticamente. E, claro, se seu novo emprego não der certo e você for cancelado durante o período de estágio, você é um estrangeiro ilegal instantâneo com apenas alguns dias de carência para encontrar um emprego ou deixar o país.
Jwenting

3
A maneira como algumas empresas usam o H1Bs para basicamente manter os programadores presos também me deixa triste. Conheço muitas pessoas que estão nessa situação. Quando você está em um H1B, você pode obter apenas uma extensão (por um total de 7 anos, eu acho); portanto, a maioria dos funcionários do H1B está tentando obter um green card. Muitas empresas nem iniciam esse processo (que leva anos) até anos após a contratação. Acrescente a isso o fato de que, se um H1B quiser trocar de emprego, a nova empresa terá de o patrocinar novamente e poderá atrasar ainda mais o pedido de green card, os trabalhadores do H1B têm muito incentivo para permanecerem, o que é explorado.
Kaypro II

18

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.


2
Eu acho que ele faz um bom argumento. Se você está terceirizando para custar dinheiro, talvez esteja escolhendo equipes de baixo custo. A terceirização para fornecedores maiores / de qualidade pode economizar menos dinheiro, mas ter mais benefícios.
Apoorv020

12

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.


11

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:

  • Falta curiosidade e criatividade. Aqui não acho que sejam inferiores ou estúpidos. Mas, ao contrário, é cultural. Historicamente, acredita-se que eles respeitem a autoridade em primeiro lugar. Como tal, eles nunca questionarão um design ruim que lhes foi entregue "de cima". Muitos deles também estão mais interessados ​​em habilidades técnicas do que em habilidades de domínio. Eu tenho mais dificuldade em ensiná-los sobre padrões e conceitos abstratos, a menos que eles possam se relacionar diretamente com seu trabalho em mãos. No entanto, depois de um tempo, as paredes desmoronam, elas ficam mais aventureiras em desafiar a autoridade, pelo menos em nível técnico, eu não gostaria que meu visto fosse revogado ;-)
  • Uma ameaça Isso já foi mencionado antes, mas enfatizo. Este é provavelmente o ponto mais importante e o que cria mais tensão nas relações com faculdades no exterior (que é o Canadá). Em geral, os ocidentais com quem trabalho tendem a exagerar todos os aspectos negativos de trabalhar com os orientais. Eles serão extremamente severos com as análises de código, sendo muito tolerantes entre si. Eles vão chutar e gritar se uma única supervisão sobre o processo ou as boas práticas for negligenciada por um oriental, mas eles mesmos chutarão e gritarão se forem educados a seguir os procedimentos que eles mesmos implementaram.
  • Gastável , é bom para um chinês trabalhar com equipamento usado em segunda mão. Eu quebrei três cadeiras antes de poder comprar uma semi-confortável. Então me senti mal ao conseguir a boa cadeira, notando que todos eles ainda tinham o que parecia ser um aparelho de tortura medieval para sentar. No entanto, visitando a sede da mesma empresa, os desenvolvedores de lá tinham mesas que ocupavam a área ocupada por uma equipe de 4 a 6 desenvolvedores aqui na China, sem mencionar as cadeiras!

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.


4
"Eles serão extremamente severos com as revisões de código, sendo muito indulgentes entre si" e ", mas eles próprios chutarão e gritarão se forem solicitados educadamente a seguir os procedimentos que eles mesmos implementaram" - Isso também é verdade na minha experiência. Eu já vi isso acontecendo em muitas ocasiões.
Mugen

@Mugen - Eu advertiria que certamente vejo isso em qualquer relacionamento entre fornecedor e cliente. As coisas podem ser feitas internamente com baixa qualidade, mas assim que são terceirizadas, agora o cliente pode exigir aderência estrita às especificações, e elas o fazem. Eu já vi isso na fabricação, e não apenas o desenvolvimento de software
Scott Whitlock

@ Scott concordou. Eu já vi lá também.
Mugen

9

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.


isso é em parte baseado no gerenciamento, mas se não houvesse grande volume de desenvolvedores ruins nessas grandes empresas (que são a principal fonte do software ruim, sem dúvida), não haveria um monte de códigos ruins vazando para os EUA e Europa de lá. É claro que a gerência, como você diz, perpetua o problema, talvez até o encoraje, mas não são eles que escrevem esse código incorreto.
Jwenting

1
Mas essas pessoas que não podem programar, não seriam contratadas se não houvesse um problema de gerenciamento. As empresas indianas diriam apenas, veja, estamos com reservas, o próximo cliente chega a uma taxa mais alta. É um desses, se recusar a dizer nada. A gerência diz que sim e atribui um corpo caloroso ao código que não tem capacidade de codificar.
ralé

1
+1. Postagem interessante. Acho sua afirmação de que hackers de verdade são marginalizados e pode ter dificuldade em conseguir trabalho na Índia deprimente, mas terrivelmente plausível, infelizmente.
Faheem Mitha

8

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.


8

Brusco e cínico:

  • Mais barato
  • Uma ameaça
  • Falta de reconhecimento por você trocar macacos de código local por gerentes e analistas de projeto mais caros para fazer a ligação com as equipes offshore
  • As partes interessadas receberão o que pediram devido à sua incapacidade de atender a um requisito conciso e abrangente. Isso não será o que eles queriam. As partes interessadas querem conhecimento local ...
  • ... mas está marcado para o gerenciamento sênior de TI porque é moderno / popular / KcKinsey disse / não entende desenvolvedores / ...

Possivelmente eles sentiram que não atendiam aos critérios para uma boa resposta? Sua opinião é alta, mas é baixa em fatos e experiências de apoio. Não acho que nada do que você diz esteja errado ou errado, não acho que você o apóie bem e está fortemente inclinado em uma direção, nenhuma das quais está no espírito do site. De qualquer forma, não o meu voto negativo, mas acho que se você aceitasse isso seria uma resposta melhor. Se você quiser, fico feliz em fazer as edições para você, porque eu sei de onde você vem (exceto, possivelmente, os pontos 3 e 4).
Jon Hopkins

@ Jon Hopkins: Justo. A pergunta foi feita: "Você tem alguma idéia ou opinião generalizada sobre os programadores do Oriente"? Eu atualizei.
gbn 23/02

só porque são gerais, não significa que não possam ser apoiados. Em termos de onde você trabalha, tenho amigos que trabalham com finanças e tudo o que ouço diz que foi o lar de muitos dos piores projetos de terceirização.
Jon Hopkins

7

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.


5

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.


6
1:You find good and bad programmers across the globe.
oosterwal 23/02

4

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.


4

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.


4

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.


3
"Se você terceiriza para partes do leste do globo apenas para economizar dinheiro, está comprometendo a qualidade da OMI. Bom, rápido e barato, escolha dois." Muitas vezes, aqueles que fazem a decisão de terceirização não sabem ou se preocupam com a qualidade, contanto que obter algo que funciona por um tempo mais barato ...
jwenting

1
Compreendo. E aqueles que tomam decisões são gerentes; se um gerente não conhece ou entende o triângulo do projeto, ele é incompetente. Idealmente, sua incompetência não deve resultar em um estereótipo, mas as condições NTP ( pt.wikipedia.org/wiki/Normal_temperature_and_pressure ) existem apenas em laboratórios e não no mundo real.
Kumar

2
"Por que o hemisfério ocidental terceirizaria para o leste?" - Porque as pessoas que tomam as decisões não estão realmente na melhor posição para tomar as melhores. Estamos falando de gerentes de nível executivo com níveis de entendimento executivo-resumo, preocupações com orçamentos e dinheiro e horizontes temporais de curto prazo.
Kaypro II

@ Cosmic Eu não vejo o Google, Yahoo !, AOL ou MS reclamando sobre a má qualidade dos programadores, eles contratam os melhores talentos e tiram o melhor proveito deles, contratam a porcaria independentemente do leste ou oeste e você recebe porcaria.
Kumar

@ Kumar Eu estava tentando responder à sua pergunta sobre por que alguém contrataria programadores ruins em primeiro lugar. Eu provavelmente deveria ter deixado isso mais claro. Não sei como saber se o Google ou a MS estavam "reclamando" nesse caso. Estamos falando de pessoas do tipo CEO que fazem declarações públicas ou pessoas de nível de linha com experiência pessoal? Google e MS também são empresas excepcionais, e acho difícil generalizá-las. Penso que a decisão típica de terceirização (onshore e offshore) é tomada por razões de custo com pouca atenção ou compreensão da qualidade.
Kaypro II 27/02

4

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 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".


ah sim, mas todos aqueles entrevistados ruins foram rejeitados. Se você terceiriza para uma consultoria, recebe quem eles contrataram - e eles contrataram praticamente qualquer um para conseguir o número de funcionários para vender para você! Eu acho que esse é o problema final, não se trata de desenvolvedores bons ou ruins, é sobre não ter controle sobre qual desenvolvedor você realmente obtém.
Gbjbaanb

Daí a importância de encontrar uma consultoria boa e confiável, e isso não sai barato. Além disso, observe que, no caso de alguns dos grupos de consultoria em que trabalhei, o cliente realmente entrevista os desenvolvedores potencialmente designados para o trabalho.
precisa

4

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!


3

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.


e isso é verdade com a terceirização para empresas que empregam pessoas no mesmo país que o solicitante
user151019

sim e não. Como as empresas do mesmo país que o cliente precisam ter mais cuidado com os problemas de qualidade (devido à ameaça mais séria de uma ação legal bem-sucedida contra eles, se fizerem uma bagunça), os problemas tendem a ser resolvidos melhor do que persistir. Isso não tem nada a ver com a Índia, mas com lidar com empresas de países distantes sem fortes laços legais com os seus (poderia ter sido o Burundi ou o Equador e não a Índia, o mesmo resultado).
Jwenting

3

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.


3

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 ...


2

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.


2

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.

  • Quase ninguém tem um computador em casa (muito caro).
  • Falta educação em TI na Índia. Os diplomas de bacharelado em ciências da computação são concedidos a estudantes que nunca tocaram em um computador (novamente, é muito caro dar aos alunos de nível inferior acesso a computadores). As tarefas de programação são escritas em papel.
  • A mentalidade "sempre diga sim" é muito prejudicial
  • Os programadores indianos precisam saber exatamente o que fazer. Há muito pouca iniciativa.
  • Terceirizar o desenvolvimento de software para a Índia foi um desastre
  • A terceirização de algumas tarefas de controle de qualidade funcionou bem.
  • Outros:
    • A eletricidade é muito irregular
    • A Índia é mais ou menos um estado policial
    • A Índia parece ser politicamente instável e tem um problema de terrorismo.
    • Dada uma opção, ninguém escolherá morar na Índia.

2

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.


"seria facilmente qualificado como o melhor do mundo em qualidade" [citação necessária]. Sério, ter algumas certificações ISO não significa que você consegue realmente criar software de alta qualidade.
wds 24/02

corrigir. O Wipro é uma das principais fontes de projetos de desastres.
Jwenting

2

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.


2

@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.


2

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.


The company ended up just writing the entire client from scratch and ate the cost of the offshoring.. Tivemos esse problema duas vezes.
Olivier Pons

2

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 !!!!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.