L'autre moitié de cette question: Comment les programmeurs de l'Est voient-ils les programmeurs de l'Ouest?
La partie orientale du monde (Inde/Chine/Philippines) fournit principalement des services d'externalisation au monde occidental (USA et Europe).
Avez-vous l'expérience de travailler avec des équipes offshore? Si oui, comment c'était?
Avez-vous des idées ou des opinions générales sur les programmeurs de l'Est (par exemple, sont-ils coopératifs, livrent-ils à temps ou font-ils un travail de qualité?). Sur quoi sont-ils basés?
Hmm Vues intéressantes.
Je voudrais juste jeter le mien.
J'habite en Inde (je suis indien) et je programme depuis que j'ai 11/12. Tout ce que j'ai jusqu'à présent, c'est un diplôme d'études secondaires et, chose intéressante, j'ai fait deux choses jusqu'à présent, j'ai enseigné dans un institut informatique indien et en ce moment je développe en indépendant (et j'ai obtenu un projet avec un client de très haut niveau)
Donc, deux choses que je pense sont vraies d'où je me tiens:
Bien sûr, les gens sont des gens, mais la mentalité indienne sur la vie et l'éducation est très différente ici, pendant les mois que j'ai enseignés, j'ai vu des parents pousser leurs enfants dans l'informatique juste parce qu'ils pensaient que cela leur rapporterait de l'argent ou quelque chose, aussi, j'ai enseigné aux étudiants faire/terminer les diplômes Bsc et Engineering et 98 sur 100 ne peuvent pas écrire quelques lignes de code en C. (Oubliez le code qualité).
Le cours d'informatique d'État ici, ils ont Turbo C dans le cadre du programme d'études, C++ pour la plupart des gens est C mais n'utilise que cout
pour imprimer.
En ce qui concerne le développement, avec ce genre de diplômés, vous vous attendez à trouver des tonnes "d'ingénieurs" là-bas, codant des choses horribles. J'ai rencontré des "entreprises" de petite taille qui n'utilisent aucun contrôle de source, elles n'auront même pas une idée de ce que sont les tests unitaires.
C'est triste que j'ai tant de mal à dire et ça me fait mal. MAIS tout le monde ici n'est pas comme ça. Nous sommes tellement nombreux, que, peut-être l'impression que les gens ont. lol
D'une manière ou d'une autre, réussir ici signifie déménager ailleurs, car il n'y a pas vraiment de possibilité de grandir et de vraiment perfectionner vos compétences. Il y a bien sûr les têtes intelligentes de l'IIT et d'autres meilleurs collèges ici qui connaissent leur métier (finalement, ils déménagent aussi)
Mais l'essentiel est que l'éducation informatique ici est assez triste à mon avis.
Avis de non-responsabilité: je vis en Europe centrale et orientale, décidez si je compte comme oriental ou occidental :-) En tant que tel, j'ai travaillé sur des projets externalisés dans notre pays depuis l'Europe occidentale et j'ai eu des doutes de la part des collègues et de la direction les plus occidentaux. concernant nos capacités, semblable à ce que les Indiens doivent vivre dans de telles situations.
OTOH J'ai travaillé avec plusieurs développeurs indiens et russes sur deux projets majeurs. Le premier impliquait également un composant entièrement développé par un sous-traitant indien, qui était facilement le code pièce le plus horrible auquel j'ai jamais eu accès (je ne peux pas dire "le code le plus horrible que j'ai jamais lu", car en voyant que le plus grand single Le fichier source mesurait plus de 600 Ko (ou AFAIR environ 30 000 lignes), je l'ai rapidement fermé et je ne pouvais que prier pour ne jamais avoir besoin de le toucher. Ma prière a été écoutée).
Cette dernière (sur laquelle je travaille actuellement) a été sous-traitée à 3 sociétés différentes, certaines d'entre elles ont fait appel à plusieurs programmeurs indiens. Nous avons nettoyé le résultat de cela au cours des 1,5 dernières années, et il reste encore suffisamment de travail dans un avenir prévisible.
Dans ma vie personnelle, j'ai vécu en Inde pendant plus de 3 mois à une époque antérieure de ma vie, donc je connais probablement plus le pays et ses habitants qu'un occidental moyen. Personnellement, j'aime beaucoup les Indiens.
Mon expérience personnelle a été que les mêmes différences culturelles notables qui existent entre les occidentaux et les Indiens en général, sont également observables entre les programmeurs. Les Indiens sont généralement très diligents dans l'exécution de toute tâche concrète qui leur est lancée, mais ne voient pas ou ne ressentent pas nécessairement le besoin de comprendre la situation dans son ensemble. Ce qui peut facilement entraîner des logiciels de faible qualité.
Un autre problème potentiel est la résistance culturellement ancrée des Indiens à refuser toute demande, car je pense qu'elle est considérée comme impolie par eux. Si vous allez dans une épicerie indienne et demandez des couvertures/bijoux/ailerons de requin/peu importe, le propriétaire dira "oui monsieur, dans un instant", puis envoie son garçon dans une autre boutique du quartier pour aller chercher le produit et vous le présente fièrement. Ce qui est en effet une bonne pratique commerciale. Cependant, si la même chose est appliquée à la sous-traitance d'un projet de développement SW avec un calendrier impossible fixe, les résultats peuvent être désastreux. Ce n'est qu'une spéculation de ma part, je n'ai aucune preuve concrète de savoir si c'est vraiment un facteur d'externalisation du développement de logiciels en Inde.
Un exemple typique de diligence futile dans notre projet actuel a été la mise en œuvre d'un système de suivi des performances. L'idée était de faire circuler des objets qui collectent des statistiques de performances. Cependant, la solution s'est avérée ralentir tellement l'application qu'elle n'a jamais été vraiment utilisée. Néanmoins, ses restes dans le code ont été laissés là pour nous de nettoyer. En pratique, cela signifiait passer un paramètre d'objet supplémentaire à toutes les méthodes (environ 6000) du code. Le gars qui l'a fait a même ajouté un commentaire au Javadoc de chaque méthode, notant que le paramètre supplémentaire a été ajouté pour les mesures de performances! Maintenant, je ne peux que m'émerveiller de la diligence de ce gars, faisant son travail à travers les 6000 méthodes et insérant fidèlement ces commentaires Javadoc partout. OTOH, a) comme indiqué précédemment, le schéma n'a jamais été utilisé dans la pratique, et je suis sûr que ses effets de réduction des performances auraient pu être détectés par un prototype précoce, rendant le travail inutile, b) tous les commentaires Javadoc contenaient la même erreur d'orthographe , c) ces commentaires n'appartiennent en aucun cas à Javadoc.
Je ne veux pas dire que tout cela était la faute des pauvres développeurs indiens (sauf l'utilisation abusive du Javadoc). L'OMI est bien plus la faute des gestionnaires qui sous-traitent sans réfléchir des projets sans surveiller les résultats, effectuer des tests d'acceptation stricts et garantir la qualité adéquate du code et de la documentation. Sans parler des systèmes de paiement basés sur l'heure qui n'intéressent sûrement aucun sous-traitant à gagner du temps de développement.
Cependant, je pense qu'il serait difficile de trouver des développeurs en Occident pour entreprendre des tâches similaires avec le même niveau de cohérence et sans se plaindre.
Nous avons également sous-traité des tâches de test dans ce projet en cours à un groupe de testeurs indiens. Personnellement nous ne sommes en contact qu'avec l'un d'eux, donc aucune idée de leur nombre au total. Cependant, ce gars est un bijou de testeur, un atout précieux sur tout projet. En plus d'être diligent et minutieux, il pose beaucoup de questions pour comprendre la situation dans son ensemble, teste souvent encore plus que ce qui était attendu et rapporte les problèmes trouvés de manière précise et descriptive.
J'ai traité trois projets qui ont été (pour la plupart) "délégués" à des ressources offshore (hémisphère oriental). L'un des trois cas a utilisé un groupe (ou peut-être un seul homme - n'en a traité qu'un, mais ne sait pas combien d'autres il travaillait) dans l'est de la Russie. Ils/il ont fait du bon travail, et le projet a bien progressé, à part avoir eu besoin de travailler sur l'interface utilisateur pour résoudre certains problèmes mineurs de formulation par des personnes pour lesquelles l'anglais était une deuxième (ou peut-être une troisième) langue.
Les deux autres étaient une histoire assez différente. Que ce soit par hasard ou non, dans les deux cas, les programmeurs étaient en Inde. Dans un cas, pratiquement tout ce qu'ils ont fait a dû être traité comme rien de plus qu'un prototype - utilisable (dans une certaine mesure) pour tester des conceptions possibles, mais tout ce qu'ils ont écrit a dû être jeté et remplacé pour obtenir le code de niveau de production. Ils semblaient illustrer ce que je pense être "l'état d'esprit ISO 9000". Ils ont montré une adhésion presque religieuse aux politiques et procédures, mais un manque presque complet de compréhension du problème qui devait être résolu. Leur code est peut-être le plus maladroit que j'ai jamais vu.
Dans l'autre cas, le projet a finalement été abandonné. C'était le plan farfelu d'un VP récemment promu, et je suis presque sûr que l'idée dès le premier jour était de minimiser les dépenses, tout en étant en mesure de lui dire que son idée était en développement actif. Alors que le code que nous avons obtenu était entièrement inutile, il serait difficile de blâmer beaucoup l'entrepreneur, car aucun effort n'a été mis dans la gestion du projet ou même simplement en leur fournissant une spécification utilisable. Leur code a commencé mal et la qualité a rapidement dégénéré lorsqu'il est devenu évident que personne ne s'en souciait.
Je suis un étudiant de premier cycle de 21 ans de l'Inde dans mes dernières années de cours de 4 ans en informatique et ingénierie.
L'idée même d'écrire ceci était de dire que l'Inde est bien plus qu'une plaque tournante de l'externalisation. J'espère que l'Occident voit les choses de cette façon et qu'au lieu d'absorber les talents, l'Occident devrait créer plus de plaques tournantes en Inde. . Il y a du contenu offensant à venir, mais si vous comprenez la situation dans son ensemble, vous comprendrez ce que j'essaie de dire.
L'éducation en Inde est dans un état très inquiétant avec une main-d'œuvre produite chaque année qui n'a pas ou absolument horribles compétences techniques. Le système éducatif n'est pas du tout compétitif en termes d'innovation ou d'entrepreneuriat. cela a conduit notre pays à d'énormes embarras comme le récent ordinateur développé localement à 10 $ (qui s'est avéré être une tablette chinoise bon marché Android basée, uniquement entretenue par une société indienne), ou une affirmation antérieure de une autre percée technologique (qui s'est avérée être une clé USB). Les établissements d'enseignement sont totalement déconnectés du monde réel de la technologie et sont plus intéressés par les étudiants qui réinventent la roue, le tout au nom de l'innovation. les établissements d'enseignement, tout le monde les déteste.
Venir à des endroits où vous vous attendez au moins à acquérir des compétences de développement à chaud:
J'ai été exposé à quelques centres de formation en Inde en dehors de mes établissements d'enseignement. La programmation et le développement logiciel se font à deux niveaux, développement au niveau application et développement au niveau système.
Pour le développement d'applications, la plupart des recrues en Inde sont recrutées en masse par les entreprises pour revendiquer un banc de programmeurs et obtenir plus de projets. À la fin de la journée, il y a qualité compromise parce que le processus d'embauche est tout à fait stupide.Parfois, le talent est gaspillé en faisant travailler les gens bien dans leur travail, sur des choses stupides comme créer Java frames et la création d'interfaces WinForm et ASP.NET simples uniquement (je parle de recrutements plus récents et comme certains le prétendent, mais je ne suis pas sûr). Si l'on ne considère pas les bonnes pratiques d'ingénierie logicielle, ce type de codage peut être fait par une 7e niveleuse.
Mais en même temps, il y a des programmeurs et des développeurs indépendants qui s'intéressent vivement aux choses. Ils sont comme les héros méconnus qui ont perdu tout espoir et sont le moins intéressés à changer le monde. Tout ce qu'ils veulent, c'est tirer le meilleur parti de leurs compétences, c'est donc une question d'argent et d'aller à l'étranger. Alors que nos cours sont extrêmement limités aux logiciels système (programmation C en utilisant TurboC !!! pendant 4 ans, C++ stupide et vague sans concepts orientés objet appropriés tiliser cout dans un programme C n'est pas C++, ASM et plus de programmation C à l'aide de gcc), lorsque dans une entreprise, nous sommes principalement faits pour faire du développement d'applications (ASP.NET, WinForms, J2EE). Fondamentalement, un ingénieur en informatique est fait pour faire le travail d'un ingénieur logiciel. Oui, la connaissance de l'informatique aide, mais la méconnaissance de l'ingénierie logicielle appropriée entrave trop le processus, et le système entier s'effondre. C'est un échec.
Je citerai un exemple simple. J'ai rejoint un institut de formation pour mon projet de dernière année et ils voulaient que je crée un site Web ASP.NET qui serait en quelque sorte un système d'inventaire (réservation d'hôtel, CRM ce genre de choses). Oui, ce n'est pas une tâche facile, mais cela ne vaut pas la peine de travailler sur un projet à mon avis. Ce sera juste réinventer la roue et ces projets sont énormes par nature dans la vraie vie. Livré en 6 mois par un groupe de 3, vous pouvez comprendre le type de système inutilisable réduit qui en résultera. Les instituts ne stressent pas trop profondément et ils sont plus intéressés à "ne pas effrayer l'étudiant en leur disant trop" et "à donner un aperçu et à leur permettre d'apprendre le reste par eux-mêmes". À la fin, ce que les gens développent dans les projets n'est même pas un prototype entièrement testé, et encore moins le mettre en place pour une utilisation réelle.
J'ai pris mon propre sujet, un système de navigation en temps réel guidé par la voix. J'utilise WPF, l'API Google Maps et toutes les dernières technologies que je peux. Pour de bonnes pratiques d'ingénierie logicielle, j'utilise le contrôle de source, en utilisant MVVM et je donnerai un aperçu approfondi de tout ce que je connais. J'ai 21 ans et je suis diplômé. Je suppose qu'à mon âge, les gens de l'Ouest sont encore en phase d'apprentissage et deviennent diplômés plus tard. Cela rend les diplômés occidentaux tellement meilleurs et mieux informés. Nous avons de la quantité mais pas de qualité.
En Inde, le niveau de travail que je fais pour mon projet n'est généralement pas attendu d'un projet de premier cycle de dernière année. Mais je le ferai parce que je le veux. Dans le même temps, il y a d'autres membres de mon groupe qui sont à l'aise de faire un projet dans ASP.NET, de créer 5-7 pages, d'exécuter des requêtes de base de données, de remplir des vues de grille et de ne pas se soucier de la sécurité. Enfer, même ces sites indépendants ont de meilleures offres d'emploi (clone YouTube, Google instantané + X = Y Mashup ..)
Six mois plus tard, vous trouverez les mêmes personnes travaillant dans une entreprise à laquelle vous externalisez votre entreprise et vous me trouverez également là-bas. Les gens comme eux sont dix fois plus nombreux que moi :(
pour être exact et sans délire, dans toute ma carrière éducative et connaissance de plus de ~ 500 personnes, j'ai vu exactement 4 personnes qui avaient le niveau d'expertise que je considérerais pour travailler sur un projet avec moi)
En fin de compte, tous les diplômés indiens rédigeront une bonne documentation parce que c'est de la théorie, mais ne vous attendez pas à un code infaillible de leur part.
En ce qui concerne les logiciels système, il en va de même. Un de mes amis travaille avec le Android NDK et travaille sur un projet en direct dans une entreprise. Il a la chance d'avoir ce projet et je l'envie, mais ce niveau de travail se produit dans Inde aussi. Un autre senior de mon collège a développé un clone kinect (souris multi-touch, comme dans les rapports minoritaires) dans son projet de dernière année en utilisant seulement 2 webcams bon marché. De même, il y en a d'autres qui copient des codes sur Internet et obtiennent en quelque sorte un diplôme Réinventer la roue.
Mon dernier mot, ne vous attendez pas à une qualité compromise dans toute l'Inde et ne tenez pas les Indiens pour acquis en tant que mainteneurs de logiciels bon marché et adaptés à l'externalisation uniquement de travaux de maintenance.
Aussi, ne vous attendez pas à ce que quelqu'un qui a une bonne formation en termes de notes écrive un bon logiciel. Le système éducatif indien est entièrement axé sur la théorie, il n'y a pas de stress sur la pratique, parfois, en savoir plus ou la volonté d'en savoir plus peut vous causer des ennuis de la part d'enseignants qui se sentent intimidés. Néanmoins, les bons programmeurs recherchent des pâturages plus verts dans une meilleure carrière et pas seulement un bon travail, il y en a d'autres qui veulent décrocher un bon "travail", conduire autour d'une Honda City, manger à l'extérieur en Chine continentale et vivre heureux pour toujours .
Je suis plus dans Audi btw. :)
Les gens sont les gens. Certains programmeurs sont de bons programmeurs, certains programmeurs sont de mauvais programmeurs. Certains mauvais programmeurs peuvent devenir de bons programmeurs avec le temps, tandis que le temps ne peut jamais bénéficier à d'autres mauvais programmeurs.
L'emplacement n'a pas tendance à être un facteur ici. Mais peut-être que l'occasion pourrait se présenter.
Je demandais ce que les mots "Bad Syntax Error OK" signifiaient dans GW Basic quand j'avais 8 ans. J'ai grandi avec des ordinateurs. Tout le monde n'a pas cet avantage. Les temps changent cependant et les 8 ans d'aujourd'hui ont plus accès à la technologie que les 8 ans d'hier.
Mais il est important de comprendre que la programmation ne se limite pas à savoir comment utiliser un ordinateur. Cela va beaucoup plus loin que cela. Voici quelques caractéristiques clés qui séparent les bons programmeurs (et ceux qui ont juste besoin de temps) des vrais mauvais:
Plus important encore, de bons programmeurs sont également de bons communicateurs. Les meilleurs programmeurs sont ceux qui peuvent convaincre les autres. Ce sont eux qui peuvent patiemment débattre d'un problème avec un autre pair jusqu'à ce qu'une solution soit trouvée.
Le plus grand défi est la communication.
Quel que soit le défi, ne vous stéréotypez jamais, vous ou les autres. Vous avez autant de potentiel que n'importe qui d'autre et vice versa. N'oubliez pas que vous pouvez faire tout ce que vous pensez vraiment!
Attention, généralisations grossières à venir. Les points de vue exprimés ne sont pas partagés par tout le monde. En fait, l'auteur peut même ne pas les croire.
Les développeurs occidentaux ont peur des développeurs orientaux. Nous entendons maintes et maintes fois que nos emplois seront éventuellement externalisés. C'est un mauvais début pour toute relation. Pour aggraver les choses, on nous rappelle constamment que nos études sont inférieures. Les développeurs orientaux sont moins chers, plus intelligents et supporteront plus de tracas. Notre expérience professionnelle avec les développeurs orientaux n'a pas d'importance car elle est empoisonnée de peur.
Je travaille depuis 3 ans avec des développeurs indiens (je suis italien). Les gens sont les gens. Nous avons externalisé principalement parce que nous avions besoin d'une équipe, et en Italie, il est difficile de trouver une équipe, en particulier dans des langages peu populaires comme Delphi. La raison principale est donc de trouver une équipe, pas un coût.
Quoi qu'il en soit, l'équipe que nous avons trouvée était très bonne car elle avait un très bon leader. Mais les autres développeurs n'étaient pas si importants. Qu'est-il arrivé? maintenant ce développeur travaille directement pour nous, parce que c'est une personne très gentille et il est aussi devenu mon ami. Il y a une relation solide et nous lui payons aussi presque un salaire italien. Pourquoi? Parce que la relation est importante. J'ai vu beaucoup de gens aller en Inde juste pour économiser.
En avoir pour son argent. Alors bien sûr, vous pouvez économiser de l'argent, mais je pense que (en particulier pour les petits projets), l'externalisation uniquement pour économiser de l'argent est un mauvais choix.
Je ne peux pas parler pour les autres. C'est mon opinion, avec laquelle les gens ne semblent pas être en désaccord. Permettez-moi de commencer par certains faits tels que je les vois.
Tout d'abord, il est prouvé que la plupart des gens ne sont pas vraiment faits pour le développement de logiciels. (Par exemple, les recherches sur l'interface utilisateur indiquent que plus de la moitié de la population n'obtiendra probablement jamais l'idée d'un arbre d'annuaire.) En Occident, ces personnes n'ont aucun problème à trouver d'autres emplois décents pour lesquels elles conviennent le mieux. En Inde, en revanche, il y a tellement de pression pour aller dans le développement de logiciels qu'ils le font de toute façon. Cela signifie qu'il y a beaucoup de gens en Inde qui se lancent dans le développement de logiciels qui ne devraient vraiment pas.
Ensuite, l'Inde est une destination commune pour l'externalisation. Les entreprises font cela parce que cela semble bon marché (les salaires sont bas). Cependant, il est bien documenté (par exemple, voir les facteurs de coût documentés dans le modèle COCOMO II ) que tous les éléments suivants augmentent le temps et les efforts de développement requis: travailleurs à plusieurs emplacements, travailleurs à plusieurs fuseaux horaires et travailleurs de cultures multiples. Tout projet exécuté en Inde et dirigé depuis l'Ouest aura les trois facteurs de coût. (C'est avant d'ajouter la tendance à trouver des personnes travaillant comme développeurs qui ne devraient vraiment pas l'être.)
Enfin, le plus grand défi absolu dans la gestion de projet logiciel est d'obtenir des informations précises sur ce qui ne fonctionne pas pour les décideurs qui ont besoin de le savoir. J'aime ça prise humoristique sur cette tendance. Pour n'importe quelle combinaison de raisons, que ce soit le désespoir, la culture ou la croyance que le client a raison, cette tendance est pire dans les projets qui ont été externalisés en Inde. Parfois à un degré comique.
Le résultat est qu'il y a une forte tendance pour les entreprises américaines à succomber au chant des sirènes des bas salaires, à sous-traiter le travail à l'Inde, puis à ce que les projets externalisés se transforment en catastrophes. (Mais l'étendue de la catastrophe n'est apparente qu'après que les Américains ont perdu leur emploi.)
L'autre voie que les entreprises choisissent est d'embaucher des Indiens aux États-Unis avec des visas H1B. Cela supprime les problèmes de télétravail. De nombreux Indiens veulent ces emplois parce que les salaires sont plus élevés aux États-Unis, etc. Et il y a plus qu'assez d'Indiens vraiment excellents pour pourvoir tous les emplois disponibles. Mais il y a un problème. Les entreprises américaines qui embauchent avec des visas H1B sont tenues de jurer de haut en bas qu'aucun Américain n'était disponible pour le travail, que la personne embauchée est rémunérée aux taux du marché, etc. Mais quelqu'un avec un visa H1B a du mal à changer d'emploi. Cela donne à l'employeur un travailleur captif. Et ne laisse aucune incitation du marché à réellement traiter ces employés équitablement. Cela incite fortement les entreprises à la malhonnêteté. Trop de gens succombent. La seule chose qui limite le taux d'abus de ce programme est qu'il y a des plafonds sur le nombre de visas H1B accordés chaque année.
En tant qu'américain, je n'ai aucun problème avec les meilleurs et les plus brillants qui viennent aux États-Unis. Bien au contraire, c'est ce qui a bâti ce pays. Mais traitez-les également une fois arrivés. Par exemple, je connais une personne des Philippines qui, en raison de son statut de visa, a dû refuser des offres d'emploi de Google, Apple et Facebook. Pour environ le double de ce qu'il fait actuellement. Si le marché était autorisé à fixer les salaires de personnes comme lui, les entreprises seraient beaucoup moins incitées à essayer d'abuser du programme H1B.
Il y a donc mon avis. Pour un certain nombre de raisons, l'externalisation de projets en Inde conduit souvent à des catastrophes. Ceux que vous obtenez en tant que travailleurs H1B ont tendance à être excellents, mais ce programme est fortement utilisé de manière à me rendre triste.
OMI, le problème n'est pas l'Est contre l'Ouest, mais l'idée générale de l'externalisation. Dans la seconde moitié des années 90, le boom d'Internet, le passage à l'an 2000 et la conversion de l'euro ont créé beaucoup de travail pour les programmeurs, l'externalisation était donc un sujet brûlant à l'époque. Mais c'était l'externalisation à l'intérieur du pays, pas à l'Est. Pourtant, bon nombre des problèmes que nous attendons ou rencontrons avec la délocalisation se produisent également avec des partenaires d'impartition locaux.
Dans de nombreux cas, écrire une bonne spécification est autant de travail que de le faire vous-même (bien que Q&D). Mais comme l'objectif de l'externalisation est de gagner du temps et/ou de l'argent, les spécifications données au partenaire d'externalisation sont sommaires. Ajoutez un entrepreneur payé à l'heure et un manque de supervision et c'est clair à quoi vous devez vous attendre.
Je vis en Chine depuis un peu plus de deux ans maintenant (je suis canadien) et je travaille avec des développeurs chinois et, étrangement, je travaille avec des développeurs canadiens à l'étranger. Je peux dire que certaines des généralisations faites, au moins chinoises, des développeurs sont quelque peu vraies, c'est-à-dire que la plupart des développeurs avec lesquels j'ai rencontré/travaillé ici sont:
Au début, ce qu'ils ont écrit n'était pas toujours très bon. Il y a certes le fossé culturel, mais aussi la longue courbe d'apprentissage abrupte d'un système mal conçu. Mais vous savez quoi ... après deux ans ... certains des meilleurs travaux effectués sur ce système proviennent des bureaux chinois. Comme cela devient de plus en plus visible, cela exacerbe encore plus l'élément de menace ...
Franchement, ce n'est pas facile, mais je pense que je suis du côté droit de la clôture en regardant la tendance par expérience personnelle.
C'est un sujet fascinant. J'ai travaillé à SF et dans la Silicon Valley, mais aussi en Europe pour des clients locaux, installé un bureau offshore en Inde et maintenant dirigé un atelier de développement offshore en Amérique du Sud. J'ai même fait un peu de travail avec des développeurs africains.
Chaque région du monde est capable de produire de grands programmeurs. J'ai un ami hacker au Malawi qui a construit une interface tactile incroyable Rails systèmes open source soutenus pour les cliniques VIH, utilisant et contribuant aux projets open source de manière importante.
J'ai également vu des programmeurs américains travailler dans des startups de grandes marques et de grandes sociétés Web qui ne pouvaient pas programmer leur sortie d'un sac en papier. Les personnes ayant une maîtrise en Comp Sci de MIT et des années d'expérience dans l'industrie, qui, quand il s'agissait d'écrire un bon code de production, ne pouvaient pas le couper.
Il existe des différences culturelles très réelles entre l'Europe, l'Amérique latine, les États-Unis et l'Inde. Il y a ensuite la culture des hackers, plus ou moins universelle.
La communauté technologique indienne traditionnelle aime jeter les gens sur le problème. Le taux horaire par développeur peut être inférieur, mais si le fournisseur croit en quantité plutôt qu'en qualité, vous aurez besoin de deux fois plus de développeurs pour faire fonctionner le code.
Certifications. Que se passe-t-il? L'Inde aime les certifications, ISO, CMMI, etc ... ça continue encore et encore. C'est un cul sans signification. Plus précisément, ce n'est pas comme ça que l'on fait développer un bon logiciel.
Le système des castes. Le système des castes est illégal en Inde, et depuis l'indépendance, il y a eu un travail énorme pour l'éliminer, mais c'est toujours une bête vivante. La plupart des occidentaux ignorent l'existence du système des castes. J'ai grandi aux États-Unis, mais mon père est né en Inde, anglo-indien comme on l'appelle, et ma mère est allée à l'université là-bas en tant qu'étudiante, puis est retournée enseigner beaucoup plus tard dans les universités indiennes. Le système des castes est très réel, il vient d'Inde et est ancien, mais les Britanniques l'ont encouragé et l'ont utilisé pour maintenir le pouvoir. Les Occidentaux doivent savoir qu'ils prendront la place des Britanniques, au sommet de la hiérarchie. Vous serez appelé monsieur, vous ne serez pas interrogé. La plupart des managers indiens considèrent que leur rôle consiste à dire à leurs subalternes quoi faire. Le fait de répondre et de proposer des alternatives est puni.
Tous les magasins de développement indiens ne sont pas comme ça, Zoho, a construit une entreprise indienne incroyable en enfreignant toutes les règles. Ils embauchent en fonction des capacités et non de la caste ou de la certification universitaire que vous avez. Ce faisant, ils ont amorcé un remplacement complet de SaaS à la suite MS Office).
Il existe également une communauté de hackers dynamique en Inde avec des rencontres, des listes de diffusion, de petites conférences, etc. Ces développeurs sont de classe mondiale. Ils ont souvent du mal à trouver du travail dans l'industrie indienne du développement de logiciels. J'ai moi-même trouvé deux python dev's pour notre bureau indien, ils étaient super, puis notre manager indien a insisté pour embaucher une douzaine de recrues, de nouveaux diplômés pour compléter l'équipe. Après quelques mois les hackers démissionner, leur manager avait fait de leur vie un enfer. Il nous restait une douzaine de jeunes employés enthousiastes, dont la plupart ne savaient pas très bien programmer.
La meilleure des recrues était une jeune femme qui avait construit un IDE pour dev sur les systèmes embarqués. Personne ne voulait l'embaucher parce qu'elle venait d'une famille conservatrice et les Indiens pensaient qu'elle serait forcée de quitter son emploi une fois mariée.
Il y a de grands développeurs en Inde, mais la structure de valeur est configurée pour les repousser et pour promouvoir des personnes basées sur des choses qui n'ont rien à voir avec la création d'un bon code.
L'autre gros problème, ce sont les fuseaux horaires. Ce n'est pas un avantage, c'est un énorme problème. Cela signifie qu'il n'y a pas de communication directe constante entre les équipes sur site et offshore. Cela provoque d'énormes malentendus et vous oblige à écrire des rames de documentation. Cela rend l'agile très difficile à retirer.
La triste vérité est qu'une énorme quantité de logiciels produits par des sociétés indiennes est de mauvaise qualité. Vous entendez tout le temps les développeurs parler de la façon dont les ingénieurs indiens sont de la merde, ce n'est pas vrai, mais c'est un reflet de la qualité des grandes sociétés offshore traditionnelles. C'est la faute à la culture d'entreprise en Inde, pas aux développeurs eux-mêmes. Les développeurs sont coincés dans un mauvais système qui récompense les mauvaises choses.
Émoussé et cynique:
J'ai expérimenté plusieurs projets délocalisés en Asie (différents pays que je ne mentionnerai pas). Tous étaient de lamentables échecs. Malgré la documentation copieuse et détaillée, les documents de spécifications, etc. etc. envoyés sur le résultat (si quelque chose a été produit) était uniformément médiocre. Habituellement, cela ne fonctionnait pas du tout ou était si marginalement fonctionnel qu'il était inutile. Les projets étaient également (s'ils produisaient des livrables) très en retard.
OTOH J'ai travaillé avec des programmeurs asiatiques et d'autres travaillant en Europe et aux États-Unis et la plupart d'entre eux sont de bonnes personnes assidues qui connaissent bien leur travail.
Peut-être une déclaration de plusieurs d'entre eux selon laquelle tous les bons informaticiens quittent l'Asie pour travailler en Europe et en Amérique en disent long. Ce qui reste est le bas de la pile, avec peu ou pas de personnes de qualité pour assurer la supervision, la formation et le leadership d'équipe pour améliorer les résultats. Ayant dû traiter avec des informaticiens asiatiques qui y vivent (au moins de certains pays) par téléphone et par e-mail (et voir des interviews à la télévision, etc.), la culture peut également être impliquée. Beaucoup semblent se considérer comme raciaux et moraux supérieurs aux Américains et aux Européens (et considèrent ceux qui quittent leur pays comme des traîtres) et refusent d'écouter les conseils de ceux qu'ils considèrent comme des êtres inférieurs. Ce n'est certainement pas vrai pour tout le monde des pays asiatiques, mais peut être assez répandu pour créer une atmosphère de "nous savons le mieux, tous les problèmes sont causés par le client" dans les sociétés de délocalisation là-bas. Bien sûr, les entreprises qui apparaissent et disparaissent rapidement, se rebaptisent et recommencent après que leur nom soit souillé par de mauvaises performances, jouent également un rôle.
La situation en Europe de l'Est est meilleure, peut-être en partie parce que bon nombre de ces pays font partie de l'UE, il y a donc une plus grande menace de poursuites judiciaires réussies contre eux s'ils échouent.
Au cours de mes 10 années chez IBM, j'ai travaillé avec des programmeurs du monde entier dans diverses relations. La première chose que vous apprenez est que les stéréotypes géographiques sont tous faux, des deux côtés de l'océan. Les programmeurs sont des programmeurs du monde entier ... choisissez 100 d'entre eux de n'importe où et vous obtiendrez à peu près la même chose ratio de gens qui ne pourraient pas programmer bonjour le monde sans un voyage ou trois à google, des gens qui sont décemment compétents et des gens qui sont brillants.
Cela dit, les généralisations géographiques du climat des affaires dans certaines de ces régions sont exactes. L'Inde, par exemple, ressemble beaucoup à Austin, au Texas ou à la Silly Con Valley à la fin des années 90 et au début des années 2000 ... beaucoup de travail sautant et des portes tournantes, des gens qui vont et viennent chaque année. La Chine, quant à elle, ressemble beaucoup plus à la Silicon Prairie ici, dans le Midwest des États-Unis, les gens choisissent une entreprise et y restent plus longtemps. Le Brésil, la Russie et l'Europe semblaient se situer quelque part au milieu, non pas tant qu'ils restent un temps moyen, mais qu'ils semblent avoir un mélange des deux, des gens qui sautent du travail, des gens qui s'installent.
J'appartiens au monde oriental et j'ai également de l'expérience en matière d'externalisation de mon entreprise vers le monde oriental :-) Mon entreprise ne voulait pas investir ses propres ressources pour faire le travail, malgré toute l'aide que nous pouvions offrir à l'externalisateur du projet a échoué. C'était frustrant de travailler avec certains de ces ingénieurs, je pense que les modèles d'externalisation et l'expertise technique peuvent mûrir davantage à l'Est pour le mieux. Cela dit, j'ai travaillé avec beaucoup de gens dans le monde occidental qui peuvent également s'améliorer. Vous trouvez de bons et de mauvais programmeurs à travers le monde.
Avertissement: je suis indien et cela peut sembler le point de vue d'un indien, mais j'ai travaillé avec de nombreux clients occidentaux et même aux États-Unis. Si l'hémisphère oriental avait les pires programmeurs du monde, pourquoi l'hémisphère occidental sous-traiterait-il à l'est? Si vous sous-traitez dans les parties orientales du monde juste pour économiser de l'argent, vous êtes, OMI, compromettant la qualité. Bon, rapide et bon marché, choisissez-en deux. Quand je dois embaucher un gars, je demande à mon organisation quelles sont ses attentes et quel est le prix qu'elle est prête à payer. C'est vraiment difficile pour quelqu'un de convaincre un gars talentueux et estimé de travailler pour vous pour un salaire moindre et plus de pression. Ses seuls sites indépendants combinés avec des gars occidentaux malheureux dont les emplois étaient à Bangalore-d qui ont abouti à des programmeurs orientaux sont des singes de code. Si vous êtes prêt à payer un meilleur prix, vous serez assuré d'un meilleur résultat et ne suivrez pas ces sociétés de services de type ISO/CMMI/SEI. Ils embauchent des talents comme s'ils élèvent un troupeau de moutons ou de bétail.
Je suis un Américain vivant actuellement à l'étranger (en Russie) et travaillant en tant qu'entrepreneur (et indépendant sur le côté pour payer les factures). J'ai travaillé dans la Silicon Valley en tant que développeur, chef d'équipe technique et architecte de logiciels/systèmes pendant plus de 20 ans pour de nombreuses entreprises et startups, dont certaines très connues, dont une startup qui est finalement devenue une entreprise majeure de plusieurs milliards de dollars qui domine l'industrie. société internationale. Cette dernière société (appelez-la "X") a des centres de développement aux États-Unis et dans le monde: Inde, Russie, Chine, Europe, etc. J'ai travaillé directement avec les membres de certaines de ces équipes, et je les ai trouvés très talentueux et dignes ingénieurs. Affirmation de soi et créativité Je conviens que j'ai tendance à être un type de personnalité d'ingénieur plus américain en ce moment, mais cela ne durera pas longtemps, je pense que le freelance et l'externalisation sont matures.
L'externalisation concerne très clairement l'argent. Lorsque j'ai quitté les États-Unis, X n'embauchait pas aux États-Unis, mais embauchait dans des bureaux internationaux. X paie aux ingénieurs non américains environ 1/4 à 1/3 (selon la région) du salaire d'un ingénieur américain équivalent (années d'expérience, compétences). Ce qui est toujours un assez bon salaire compte tenu des économies de certains sites non américains, mais ce n'est pas bon pour le taux de rémunération, l'existence même de postes d'ingénieurs américains.
Je pense que la pige est l'avenir du travail informatique, en particulier des logiciels. De par sa nature même, il est très portable, tout ce dont vous avez besoin est un ordinateur portable et une connexion Internet et vous êtes en affaires. Il y a toujours un argument à faire pour les équipes internes sur site: planification plus fiable, compétences prévisibles, etc., mais elles sont très coûteuses à maintenir .
Je vois ici des publications arrogantes assez fréquentes d'ingénieurs américains sur la gravité de tous les développeurs non américains (jetez un œil, par exemple, à ce fil: https://stackoverflow.com/questions/209170/how- beaucoup-coûte-pour-développer-une-application-iphone ). Le stéréotype est que oui, ils sont bon marché mais toujours aussi qualifiés (non) et écrivent du code merdique. Que la seule façon d'obtenir la qualité est de payer les taux de rémunération américains aux ingénieurs américains. Balivernes! Les ingénieurs américains doivent se réveiller - l'industrie et l'économie s'éloignent des développeurs internes très bien payés pour des équipes de développement réparties dans le monde entier. Bien sûr, il y a de mauvais développeurs non américains - mais repensez à toutes les personnes interrogées aux États-Unis que vous avez transmises parce qu'elles n'étaient pas à la hauteur. Certains des codes les plus atroces que j'ai jamais eu à consulter ou à travailler ont été écrits par un ingénieur américain qui a refusé de changer ou d'améliorer! Ce n'est pas parce qu'un développeur Elance aléatoire a fait un travail de merde que tous les ingénieurs non américains sont terribles. Au lieu de cela, ce client Elance devrait regarder un peu au-delà des soumissionnaires les plus bas, il existe de véritables joyaux, même les meilleurs développeurs, disponibles à un rabais important sur les tarifs américains internes. À cet instant précis, je vous l'accorde, beaucoup de talents sont concentrés aux États-Unis - mais quiconque pense que cela ne changera jamais est très sérieusement trompé.
Le talent et l'expérience coûtent plus cher que leur absence, je vous l'accorde. Mais le fait est que l'échelle salariale des employés internes aux États-Unis est bien en désaccord avec celle du reste du monde. Il existe un continuum dynamique talent/coût en constante évolution, et le talent ambiant des ingénieurs non américains ne fera qu'augmenter, ce qui exercera une très forte pression à la baisse sur les taux de rémunération américains et l'existence même de des postes d'ingénieurs internes payés aux États-Unis (rappelez-vous: X embauche à l'étranger, mais pas aux États-Unis. L'écriture est sur le mur). Ainsi, les plus talentueux pourront toujours facturer plus que les moins talentueux, mais vous pouvez être sûr que ce ne sera pas aux taux actuels américains.
La concentration des talents dans le monde va absolument changer, tout comme l'emplacement physique des équipes de développement a déjà changé. Les niveaux de talents non américains vont continuer d'augmenter, et dans un avenir pas trop lointain, nous regarderons ces fils et penserons "de quoi parlaient-ils, vous pouvez trouver les meilleurs talents partout dans le monde".
J'ai travaillé à la fois dans l'est et l'ouest du globe et je pensais partager. J'avais travaillé à Bangalore pendant 5 ans avant de déménager aux États-Unis. A travaillé aux États-Unis pendant environ 8 ans et est retourné en Inde. J'ai été obligé de rester à la maison parce que les emplois sont trop exigeants ici. Avec 2 jeunes enfants, il était impossible de consacrer ces longues heures. Enfin trouvé un emploi à temps partiel. J'ai été choqué de voir la qualité du travail en Inde. Ce n'était pas si mal quand nous étions partis aux États-Unis. La jeune foule ne semble tout simplement pas avoir de responsabilité ni d'enthousiasme pour apprendre de nouvelles technologies. Comme quelqu'un l'a souligné, dire "non" est rare (un coup à leur ego, OMI) et en conséquence, vous verrez un travail totalement inutile ou médiocre. Le code n'est pas lisible, aucune idée de la situation dans son ensemble, aucune possibilité d'expansion, etc. Au moment où vous formez un gars, il est prêt à quitter son emploi pour un pâturage plus vert. Cela dit, je dirais quand même qu'il y en a très peu d'exceptionnellement. S'il vous arrive de travailler avec lui, considérez-vous comme chanceux, surtout si cette personne peut bien communiquer!
J'habite en Europe centrale. La vague d'externalisation nous a envahis ces dernières années. J'ai travaillé sur des projets externalisés de "l'Occident", mais aujourd'hui les projets externalisés atterrissent dans des pays moins chers. J'ai donc été des deux côtés de l'équation.
Quand nous étions les sous-traitants, nos managers et les gars avec qui nous travaillions quotidiennement étaient gentils, nous traitaient comme un développeur interne. Une légère inquiétude sur la sécurité de l'emploi pouvait être ressentie par le reste des gens, ce que je considérais comme tout à fait normal. De plus, nous avons obtenu des tâches de second ordre dans un projet plus important, ce qui me convient également, vous ne devriez pas externaliser votre expertise principale.
Ensuite, les projets se sont déplacés vers des territoires moins chers, ce qui était inévitable.
L'essentiel de toute l'histoire de l'externalisation est que la direction ne se soucie pas de vos connaissances, de votre expérience, de votre éducation ou de votre savoir-faire. Ils ne se soucient que des coûts et de leur bonus. Donc, à moins qu'il n'y ait une raison pour laquelle votre présence locale est nécessaire, les projets logiciels seront éventuellement externalisés vers des pays de moins en moins chers.
Je vis en Russie, en Sibérie et travaille pour une entreprise médicale allemande qui nous sous-traite des projets. Je suppose que c'est un peu plus que l'externalisation: nous avons partagé des équipes entre la Russie et l'Allemagne, nous avons des voyages d'affaires, etc.
Bien sûr, je suis subjectif, mais je pense que nous sommes un exemple d'externalisation réussie: la qualité du code et la qualité des produits augmentent considérablement depuis que nous avons commencé à travailler dessus.
C'est un peu décevant d'être une main-d'œuvre bon marché, mais d'un autre côté, nous avons la chance de travailler pour une grande entreprise avec une grande expérience en technologie et en gestion.
Je viens de Suisse. J'ai travaillé sur un projet où nous avons externalisé en Ukraine. Les développeurs étaient beaucoup moins chers, mais l'argent que nous avons économisé devait être réinvesti dans le vol de notre équipe en Ukraine tous les deux mois pour superviser cette équipe nearshore. Le projet est décédé environ un an après sa sous-traitance.
Je travaille actuellement sur un projet qui est sous-traité à une entreprise suisse, qui l'a elle-même délocalisée au Maroc. Le projet est en bonne voie, mais nous avons des problèmes de communication et des problèmes de qualité.
Je pense que le principal problème est que nous envisageons de les construire à moindre coût. Il est toujours difficile d'obtenir des choses moins chères mais de la même qualité ...
J'ai travaillé avec de grands programmeurs offshore, mais ils n'étaient pas scandaleusement bon marché à embaucher. J'ai également travaillé avec des programmeurs offshore très peu coûteux et ils n'étaient pas géniaux.
Il m'a toujours semblé que les grands programmeurs de l'est trouvaient probablement un moyen d'être payés autant ou presque autant que les grands programmeurs de l'ouest; peut-être qu'ils lancent leur propre entreprise, qu'ils obtiennent un visa, tout ce qu'ils peuvent. Mais ils auraient tendance à trouver un moyen, non?
Lorsque je recherche une équipe de programmeurs désireux de travailler à très bas prix, je ne m'attends pas à trouver des talents de haut niveau. Vrai, peu importe où réside votre talent.
Si la qualité du travail est médiocre, ce n'est peut-être pas tant qu'ils se tournent vers l'Inde, mais ils se tournent vers celui qui fait la meilleure offre, et ce n'est probablement pas comme Prasoon Saurav, mais une équipe de codage junior.
Certaines des plus grandes sociétés informatiques du monde se trouvent en Inde, si vous avez entendu parler de Wipro, Infosys, TCS, etc. . Ils obtiennent tous les certificats sous le soleil concernant la qualité juste pour apaiser les craintes des clients occidentaux. En outre, il y a plus d'ingénieurs (diplôme et expérience) dans la plupart des sociétés de logiciels indiennes que dans la plupart des sociétés occidentales. Google, Oracle, IBM, Microsoft, SAP ont également tous des centres de développement et tous ne recherchent pas de programmeurs bon marché.
Alors, comment voyons-nous les ingénieurs occidentaux. Nous voyons un sac mixte comme vous voyez un sac mixte lorsque vous regardez l'océan. Il y a des gens super techniques qualifiés que nous admirons et il y a des sacs de douche avec lesquels nous pourrions être forcés de travailler parfois. Dans l'ensemble, nous nous entendons très bien dans des équipes mixtes. La relation est vraiment nulle si vous avez des gens d'affaires "orientés techniquement" à l'extrémité ouest et juste des programmeurs à l'autre extrémité. Il s'agit généralement d'une société occidentale affamée qui cherche à faire des économies en n'engageant pas de gestionnaire local.
@giddy, Peter: En tant que programmeur originaire de l'Inde, je dois admettre la vérité, aussi triste soit-elle, de vos déclarations: la programmation en Inde n'est pas quelque chose que les gens choisissent par choix, mais par contrainte, soyez ils sont sociaux ou économiques. C'est une des raisons pour lesquelles il est très courant en Inde de trouver des gens qui s'éloignent rapidement des emplois techniques pour des postes purement managériaux (cela s'appelle en fait "monter les échelons", une expression que j'ai détestée). Même si vous voulez continuer à grandir en tant que technicien, les rôles de gestion vous sont imposés (c'est l'une des raisons pour lesquelles j'ai décidé de quitter l'Inde, en fait).
Pour des raisons qui me dépassent, la croissance de carrière est assimilée au nombre de personnes travaillant pour, ou pour être plus précis, sous vous. "Je suis responsable d'une équipe de x" ou "x personnes travaillent sous moi" est une déclaration considérée comme digne d'une personne "réussie" en Inde (peu importe que les "x personnes" soient celles qui produisent le genre de code qui a été mentionné par d'autres dans ce fil).
Cela dit, j'aimerais souligner que la mauvaise qualité du code n'est pas quelque chose qui se limite à l'Inde ou à d'autres pays "à bas prix". Je vois parfois des attitudes familières et la qualité du code, même ici en Europe. Heureusement, ce n'est pas la règle générale.
Avis de non-responsabilité: je n'ai aucune expérience directe de l'externalisation. Ci-dessous, je présente quelques points qui ont été soulevés lorsque j'ai discuté du sujet avec un chef de projet dans une grande société de logiciels occidentale. Ce type a passé beaucoup de temps sur le terrain en Inde, supervisant des équipes externalisées.
Mon expérience avec l'externalisation vers les pays de l'Est (pas l'Europe de l'Est) a été assez mauvaise. Toutes les applications que j'ai vues ont été horribles et ressemblent à un tas de mauvais codes sans rapport collés ensemble pour à peine faire le travail qu'il est censé faire.
Je ne pense pas que cela soit dû au fait que les nouveaux programmeurs orientaux soient pires que les nouveaux programmeurs occidentaux, je pense que cela est dû au fait que les programmeurs orientaux n'ont pas de programmeurs expérimentés pour les guider. Dans le monde occidental, travailler avec des langages de programmation modernes est une profession courante depuis environ 45 ans.Il existe donc de nombreux programmeurs expérimentés avec lesquels de nouveaux travailleront avec qui vous pourrez apprendre. Dans l'est, la programmation moderne se passe pour quoi? 10 - 15 ans? Il y a un réel manque d'expérience pour que les gens apprennent. En plus de cela, je pense (de la façon dont je le vois d'ici) qu'avec la plupart des programmeurs de l'Est qui travaillent en sous-traitance, ils prennent beaucoup de mauvais traits où le but est juste d'obtenir le projet fait rapidement en coupant les coins ronds, ce qui est une expérience que vous ne devriez pas transmettre aux nouveaux développeurs. Aux États-Unis au moins, la plupart des emplois de programmation sont destinés à des personnes travaillant sur un ensemble limité de produits qu'ils doivent prendre en charge au fil du temps. Les gens ont donc choisi des techniques pour s'assurer que le logiciel est stable et sécurisé ... c'est une bonne expérience à transmettre à la nouvelle génération.
Donc oui, je ne pense pas que cela ait quoi que ce soit à voir avec la quantité de scolarité qu’une personne reçoit, cela a à voir avec les habitudes acquises au travail. Il y a beaucoup de bons programmeurs là-bas (même si je pense qu'ils sont bien en minorité) mais je ne pense pas que ce sont ceux avec lesquels nous occidentaux interagirons lorsque les projets seront externalisés.
Quant aux Européens de l'Est, ils ont des développeurs expérimentés. J'ai juste peur qu'ils soient progressivement supprimés pour répondre aux exigences de l'externalisation.
Intéressant! Je suis chinois et je pense savoir pourquoi les programmeurs ici manquent de curiosité et de créativité. La plupart de mes collègues se plaignent tous les jours, ils détestent le codage, ils n'aiment pas la conception, ils bavardent juste ici et là (cela fait partie de notre culture). Ils viennent dans les éditeurs de logiciels juste pour un salaire plus élevé (dans les pays en développement, les informaticiens sont bien payés), pas pour "sauver le monde" ou faire la différence. Aucun intérêt, aucune motivation, aucune curiosité et aucune créativité !!!! Mais il y a des têtes intelligentes (comme moi ^ _ ^), elles font des travaux de qualité et livrent à temps !!!!
J'ai eu des expériences mitigées avec la délocalisation de notre travail et avec des sociétés offshore en général. Pour référence, je vis aux États-Unis.
J'ai travaillé dans une entreprise qui avait passé un contrat avec une entreprise en Inde, qui avait été évaluée CMMI 5 et qui travaillerait à bon marché. La société leur a donné un logiciel client pour écrire à partir de zéro, et quand il est revenu, le code était bogué, complètement non documenté et généralement difficile à refactoriser et à maintenir. L'entreprise a fini par écrire tout le client à partir de zéro et a mangé le coût de la délocalisation.
Dans un autre cas, une entreprise où j'ai travaillé en partenariat avec une entreprise en Asie pour introduire leurs services et produits sur les marchés de l'Est. Ce qui s'est passé est une histoire secrète que seules quelques personnes savaient (et moi-même par procuration) où la société asiatique a pris notre code source et nos conceptions de produits, a rompu le partenariat, puis a publié ses propres produits qui étaient les mêmes que ceux de mon entreprise.
Dans un autre cas encore, une entreprise dans laquelle je travaillais a ouvert un bureau de recherche en Chine, un endroit très moderne, ils avaient des trucs plus sophistiqués dans leur bureau que moi dans le mien. J'ai été envoyé au bureau chinois pour une semaine pour une formation, car le centre de R&D allait être utilisé pour faire du développement Linux personnalisé. L'équipe avait quelques personnes qui étaient plutôt bonnes, mais comme c'est le cas avec les développeurs de cette stature, ils sont partis peu de temps après, et l'équipe restante a écrit une API que nous pouvons utiliser ici aux États-Unis. J'appellerai l'API complètement mauvaise car elle n'a montré aucune compréhension de Linux, et le code source sous-jacent était au mieux assez bancal. Mais je pense que le gros problème était que la société avait choisi une équipe étrange pour donner le travail Linux aussi, car personne dans cette équipe n'était un expert Linux, et ce projet a été abandonné un an plus tard. J'ai vraiment aimé travailler avec les gens de cette équipe, mais leur direction et mon équipe se sont beaucoup disputées au sujet de la débâcle Linux.
Dans d'autres cas, une autre entreprise dans laquelle je travaillais à contrat pour une entreprise en Europe de l'Est. Ces gars-là étaient vraiment bons, ils ont été engagés pour faire des tests de vulnérabilité et bien qu'ils soient en fait assez chers, ils étaient généralement considérés comme un investissement digne.
J'ai également travaillé avec une société de services informatiques indienne plutôt gigantesque, et nous avions en interne des développeurs qui étaient employés par eux mais qui nous avaient passé un contrat. Il y avait plusieurs bons développeurs là-bas, mais c'est une histoire plus générale car nous avons tous travaillé ensemble sur divers projets.
Ces histoires sont pour le plaisir - j'ai travaillé avec plusieurs entreprises et j'ai des histoires sur des entreprises nationales et étrangères.
Pour certaines entreprises, la communication a toujours été la partie difficile. Je travaille sur l'heure de l'Est, et nous parlerions avec des gens de 10 à 13 heures devant nous. Nous ne passions également que par la gestion, sans parler aux développeurs réels, il y avait donc une déconnexion.
Il y avait aussi des développeurs que j'ai rencontrés qui n'aimaient tout simplement pas leur travail. Nous avions un développeur coréen qui voulait venir aux États-Unis pour travailler parce qu'il travaillait des heures serviles à bas salaire pour une entreprise de défense en Corée. J'étais des collègues avec un développeur (également étranger) qui déplorait ses choix de devenir développeur - il l'a fait pour essayer de gagner des millions.
Très carrément, et d'une manière très générale, je ne pense pas que les programmeurs de "l'ouest" aient une haute opinion des programmeurs de "l'est". Je ne sais pas si cela est justifié ou non.
Comme certaines réponses le suggèrent, l'externalisation est une menace pour beaucoup dans "l'ouest". C'est une raison automatique de se méfier des programmeurs "rivaux".
Je n'ai vu que du mauvais code lorsque je regarde des projets externalisés, et seulement un petit nombre de fois. Cela peut être dû au fait que le travail est allé dans une boutique bon marché ("vous en avez pour votre argent"), parce que le projet a été mal géré, ou très probablement parce que si le projet a réussi, je n'aurais pas besoin de regarder le code. En d'autres termes, vous n'entendez parler que du mauvais code.
Il y a aussi des histoires d'horreur - comme le fichier de ligne 30000 ci-dessus. Encore une fois, plus l'histoire est mauvaise, plus elle se propage.
Les gens diront des choses comme "Si vous voulez que cela se fasse à bon marché, externalisez. Si vous voulez que ce soit bien fait, faites-le en interne.
Si vous apprenez et vous améliorez, je ne m'en inquiéterais pas trop.
L'externalisation n'a qu'un seul but: low cost.
L'externalisation est très populaire dans cette industrie, même dans une grande entreprise internationale, ils utilisent également l'externalisation à l'intérieur. Le département Ouest peut recourir à l'externalisation dans son département Est.
Je pense que les principaux avantages de l'ouest sont dans conception et entreprise zone. Dans la plupart des cas, les conceptions du département ouest au niveau de l'architecte fournissent même du code de base ou des bibliothèques. Et le département de l'Ouest connaît les affaires en profondeur. Après l'évaluation, la conception de base et l'analyse commerciale seront transférées au département de l'Est.
D'après mon expérience personnelle, les départements de l'Ouest sont plus matures dans l'industrie, tandis que le département de l'Est progresse plus rapidement.
Avec le développement dans l'est, l'externalisation se déplace vers des pays moins chers. Pendant ce temps, l'externalisation est relativement peu lucrative, les entreprises de l'est renforceront leurs capacités en matière de conception et d'affaires en apprenant de l'ouest pendant la phase d'externalisation.
Mon expérience: je suis né et éduqué près de New York, et je travaille avec des ingénieurs/développeurs en Chine et en Inde depuis plus de dix ans, ainsi qu'avec des équipes en Europe. Et beaucoup de mes collègues sont des immigrants de Chine et d'Inde.
D'une manière générale, j'observe que les employés en Chine et en Inde ont deux objectifs principaux: en tant que centres à bas prix et en tant qu'accès au marché local. En particulier, la Chine est l'un de nos plus grands marchés et où se trouvent nos principaux clients en dehors des États-Unis; il y a un besoin de travail local pour traiter avec les clients pour les personnaliser et les tester.
Mes employeurs ont également de la R&D en Inde et en Chine, mais cela dépasse un peu la portée de cette discussion.
De manière générale, "l'est" est plus jeune et présente des taux de rotation des employés beaucoup plus élevés. Ils obtiennent également des augmentations de salaire plus élevées à partir d'une base beaucoup plus basse, et j'ai vu leur niveau de vie s'améliorer au fil des ans. Beaucoup d'entre eux possèdent désormais des véhicules à moteur (scooter ou voiture) et disposent d'un accès Internet haut débit.
Une partie de notre formation sur la sensibilité culturelle portait sur la façon dont les différentes cultures gèrent les conflits, la hiérarchie et l'autorité, et il y a un grain de vérité là-dedans. Surtout dans les approches de l'autorité ...
J'ai travaillé pour une entreprise comme Londres qui avait un contrat avec un programme de recrutement indien, ils étaient bien payés, mais, environ 2/3 de ce que la plupart des consultants gagnaient, d'après ce qu'on m'a dit qu'ils devaient employer un certain montant et le directeur financier le considérait comme rentable. Ils avaient tous des diplômes de maîtrise, etc. plus que la plupart des entrepreneurs. Le résultat? Désordre absolu! ASCII concours d'art dans les en-têtes de fichiers c #, mépris pour les conventions de dénomination, blocs massifs d'if imbriqués, c'était horrible, aucune idée de la POO, ne commencez même pas sur SOLID ou TDD. Pire, ils n'arrêtaient pas de battre cette merde.
Moi et quelques autres qui sommes fiers de notre travail, resteraient là à le maudire de frustration, ils ont été approchés par d'autres mais ne l'ont pas bien pris, à la fin la direction a eu des démangeaisons et nous a pris à part au cas où cela serait considéré comme du racisme (allez comprendre).
Avant cela, j'avais un concert sur un site de comparaison de prix, ils ont externalisé à Vashai à Mumbai, je suis allé enseigner (deux bonnes semaines). Encore une fois, des gens sympas, mais tous sauf un valaient le 1/3 du salaire des diplômés qu'ils gagnaient censément, encore une fois tous avec une maîtrise. Ils ne pouvaient tout simplement pas l'obtenir.
Juste mon expérience.
Il y a des millions de programmeurs en Inde, donc cette réponse doit être une généralisation. Je pense que la réponse a radicalement changé au fil du temps. Vous remontez il y a une décennie (en particulier avant la crise du .com), et l'expérience était que vous auriez du mal à trouver de meilleurs développeurs juniors et intermédiaires qu'en externalisant en Inde. Ils étaient intelligents, compétents, avaient généralement de solides compétences en communication, mais surtout ils étaient très désireux pour montrer ce qu'ils pouvaient faire. Les talents seniors étaient également en Inde, mais tout comme en Occident, il était difficile d'y accéder en sous-traitant, sauf si vous avez passé un contrat directement avec le développeur.
Maintenant cependant, je pense que le pendule a basculé assez loin de l'autre côté. La demande de programmeurs qualifiés en Inde est si énorme que le vivier de talents est devenu ridiculement mince. Je ne toucherais pas à une société d'externalisation indienne à moins d'avoir une relation solide avec eux et de savoir que je pouvais compter sur la qualité. Si vous voulez de bons programmeurs en Inde, vous ne le faites pas externalisez. Vous devez vous installer en Inde et commencer à sélectionner et à embaucher des personnes. Vous pouvez toujours trouver de grands talents (il y en a en fait plus qui restent en Inde qu'auparavant), mais pour moi, l'idée que vous pouvez obtenir ce talent à un rabais important est un fantasme nostalgique. Il s'avère que les bons programmeurs sont difficiles à trouver partout et ils peuvent donc facturer une prime pour leurs services ... partout. Maintenant, je considère l'Inde comme un endroit pour trouver plus un grand talent, plutôt que comme un endroit pour obtenir toute sorte de bonne affaire.
Tout d'abord, les programmeurs occidentaux tentent de ne conclure que tous les accords avec les programmeurs indiens qui ont écrit du code dans le cadre d'un accord de "sous-traitance". Je m'attends à ce que les meilleurs programmeurs indiens écrivent du code pour des sociétés indiennes, ou soient directement employés par de grandes sociétés occidentales comme Microsoft.
Je pense que ce serait loin de dire, chaque fois que j'ai dû "réparer" un tel code. (Pour une raison quelconque, les programmeurs Weston devraient régler le désordre quelques semaines avant la livraison du projet. Peut-être que si le code n'est pas un désordre, un programmeur Weston n'aura jamais à le regarder =.)
Plus j'y pense, Je pense que les problèmes concernent autant les sociétés de logiciels qui pensent qu'elles peuvent économiser de l'argent en externalisant le codage à des programmeurs qui n'ont aucune compréhension (ou un intérêt réel) du domaine problématique. ( Comprendre comment l'Occident fonctionne fait partie du domaine problématique).
(La fausse croyance selon laquelle un "vendeur" peut contourner le service de développement interne, écrire lui-même une spécification puis demander à des programmeurs indiens bon marché d'écrire le code, est encore très courante.)
J'ai eu une meilleure expérience avec les programmeurs d'Europe de l'Est, car ils voient mieux comprendre l'Occident, sont dans un meilleur fuseau horaire. Il est également possible pour quelqu'un de sauter sur un avion avec un vol de longueur raisonnable (et peu de décalage horaire) pour des réunions face à face réglementaires.
J'ai travaillé dans une grande entreprise multinationale qui avait créé un bureau indien dédié. Ils ont également fait appel à des consultants indiens d'une entreprise distincte. Le bureau indien avait un personnel mieux payé qui avait déménagé des États-Unis. J'ai toujours trouvé que le travail du bureau indien était de très haute qualité. Les consultants les moins bien payés étaient principalement utilisés pour les tests et tout travail de développement qu'ils effectuaient était généralement médiocre.
Bien que je sois d'accord avec de nombreuses observations culturelles des autres articles, je pense que l'économie est un facteur déterminant de la qualité. Il y a très peu de bons ingénieurs dans le monde. Une petite fraction du bassin de main-d'œuvre disponible. Je définis un bon ingénieur comme quelqu'un qui est curieux, compétent et a une bonne éducation pour développer ces compétences. Comme la demande dépasse l'offre, ils sont recrutés à l'échelle mondiale. Il y a un petit nombre d'ingénieurs incroyables en Inde. La plupart d'entre eux sont des diplômés du niveau supérieur des universités indiennes (comme l'IIT). De même, il existe un très petit nombre d'ingénieurs occidentaux natifs talentueux.
Inversement, il y a un nombre très élevé d'ingénieurs pauvres et moyens. Je me souviens, dans le boom de la dot com, que les entreprises embauchaient des diplômés en histoire occidentale, qui pouvaient à peine cracher du HTML, car ils étaient si désespérés pour le personnel. Désormais, un pauvre ingénieur de l'Ouest ne trouverait pas d'emploi. Vous pouvez désormais louer l'équivalent en Inde pour une fraction du prix. Par conséquent, vous obtenez une concentration de personnel très pauvre dans les consultants indiens.
De temps en temps, je rencontrais quelques joyaux dans les consultants. Ils étaient naturellement brillants et poseraient beaucoup de questions. Habituellement, ils compensaient une mauvaise formation. Ce qui est triste, c'est qu'ils n'obtiendraient aucun soutien de leurs employeurs. De nombreuses politiques de conseil sont conçues pour limiter les compétences qu'un consultant peut acquérir, comme une période de rotation forcée de six mois entre les contrats.
Mon anecdote:
Il y a quelques années, j'ai travaillé sur un projet avec une équipe indienne. Je les ai trouvés extrêmement agréables à travailler. Ils connaissaient vraiment leur affaire. Notre seul point de friction était le temps de réponse aux changements de dernière minute du client; bien que pour être juste, l'ego de gestion ne se traduit pas toujours bien à travers la langue et la distance.
Je dirais que c'est la même chose qu'avec les programmeurs de n'importe où, parfois un programmeur est bon, parfois il est mauvais.
J'ai travaillé sur plusieurs équipes avec des programmeurs du monde "oriental" (y compris l'Europe ... qui IS à l'est de moi. Certains d'entre eux étaient mauvais, certains étaient bons).
J'ai déjà travaillé avec un Indien qui était le programmeur le plus rapide et le plus habile avec lequel j'ai jamais travaillé. Il avait très rarement un bug et son code était toujours net et propre et fait avant qu'il ne soit prévu, y compris les tests.
D'un autre côté, j'ai travaillé avec un Indien qui a passé 9 mois à son bureau sur son téléphone portable à rire et à parler. Les managers ne savaient pas quoi faire de lui, car son travail était toujours fait. Ce n'était pas toujours le meilleur travail mais ça a été fait. 9 mois plus tard, ils ont découvert qu'il avait passé tout son emploi là-bas à envoyer le travail à ses amis et à sa famille en Inde sans en parler à personne. Il s'était transformé en manager d'une équipe de développement externalisée par son propre choix.
Les humains sont des humains. Certains sucent, d'autres non.
La pire erreur que j'ai commise est l'externalisation en Inde. C'était uniquement pour le HTML de base, et les programmeurs étaient plus que capables de programmer PHP et SQL (du moins ils le pensaient quand même). Nous les avons externalisés pour créer quelques formulaires pour nous, et ce que ils ont sorti des centaines de tables les unes dans les autres. Non seulement cela, mais le chef de projet a pris trois semaines de vacances sans même communiquer avec nous.
D'après ce que j'ai vu de l'Est, je ne pense pas que l'Est mérite l'attention de l'Ouest. Encore une fois, je n'ai rien contre les Indiens, ils sont incroyables, mais les Indiens que j'ai rencontrés ont une horrible éthique de travail.
Mon conseil: vous seriez fou d'externaliser en Inde.
Personnellement, je pense que tout le monde est différent. J'en ai vu certains aussi bons, d'autres aussi mauvais.
Je pense qu'il y a une perception négative, car la plupart des occidentaux ont affaire à des consultants et les consultants ont tendance à faire le moins possible et à chercher des moyens de blâmer les autres pour ce qu'ils ont fait de mal.
Une autre chose à garder à l'esprit, de nombreux programmeurs américains sont des immigrants de l'Inde. Je n'ai pas les statistiques, mais j'imagine qu'environ la moitié d'entre elles.
Dans l'un de mes emplois précédents, j'ai travaillé sur un projet dont le développement était réparti entre l'Irlande, les États-Unis et l'Inde. Certains aspects maladroits du projet n'ont pas pu être aidés, par exemple la différence de temps, mais le fait que souvent les Indiens avaient un anglais écrit assez pauvre signifiait que des choses comme les rapports de défauts pouvaient prendre beaucoup de temps à déchiffrer. Au bout d'un moment, j'ai trouvé plus facile de décrocher le téléphone et d'appeler directement la personne dans la mesure du possible. Il est beaucoup plus facile de clarifier ce que veut dire quelqu'un si vous pouvez lui parler plutôt que d'envoyer un e-mail après e-mail.
Alors que l'externalisation consiste fondamentalement à réduire les coûts, il existe des développeurs talentueux partout dans le monde. La partie difficile est de pouvoir les distinguer des moins talentueux!
Je suis un programmeur ASP.NET/C# de Chine. Je suis totalement d'accord avec Péter Török. Nous venons de reprendre un projet développé par Philipen depuis plusieurs années. Le code est le plus dégoûtant que j'aie jamais vu. Chaque classe a au moins 3000 lignes. Ce sont de tels gaspilleurs de code parce que le code est vraiment prolixité. ils n'ont aucune idée de ce qu'est la réutilisation. Et ils ne font pas de test unitaire. L'ensemble du système est au bord du crash.
Actuellement, nous essayons de corriger le bogue de l'énorme projet. Le travail est vraiment comme un cauchemar.
Je suis sûr que le pourcentage de bons développeurs est le même dans l'est du monde que partout ailleurs. Cela implique qu'il existe quelques bons développeurs dans l'est du monde, comme partout ailleurs.
Le problème vient du fait que "vendre des logiciels" est le moyen le plus simple de gagner de l'argent, donc beaucoup de gens prétendent savoir développer parce qu'ils ont écrit 3 lignes de code Php et essaient de vendre des logiciels (= externalisation).
Donc, c'est juste des calculs simples: il y a beaucoup de soi-disant sociétés de logiciels, mais il y a quelques vrais bons développeurs dans la partie orientale du monde , comme partout ailleurs. Pour comprendre, utilisons des chiffres, même s'ils ne sont pas réels:
Alors ... les chances d'obtenir une mauvaise entreprise de logiciels sont beaucoup plus élevées dans l'est du monde que partout ailleurs. Mais le fait important est que il y a autant de bons développeurs dans la partie occidentale que dans la partie orientale.
Pour ajouter à cela, il y a un problème de mentalité qui aggrave les choses.
Et pour conclure sur ce qui se passe en France: il y a eu des milliers de projets qui ont été externalisés, avec des résultats catastrophiques, et beaucoup d'entre eux étaient de gros projets (l'externalisation de gros projets était comme de grandes économies). Alors maintenant, les vrais geeks et les hommes comme moi, qui sont vrais développeurs (vrai développeur = pas attiré par l'argent d'abord) ont beaucoup de travail en France, parce que je fais de la fouille dans tout ce qui a été fait, donne une "conclusion d'expert" et l'entreprise agit. Je suis très bien payé, donc tout en un, ce n'est pas si mal;)
N'hésitez pas à corriger mon message, à le faire correctement en anglais, car mon anglais est perfectible.
Eh bien, étant des États-Unis et ayant une expérience de travail avec quelques entreprises en Inde, je dirais que c'est difficile mais que ça s'améliore. Je pense qu'ils sont techniquement capables de faire ce que vous demandez, mais vous devez vraiment tout décrire en détail ou ce sera un projet très long et compliqué. Ce n'est pas parce que les Indiens ne comprennent pas ce que vous voulez, mais qu'ils pensent différemment, du moins du point de vue de la convivialité de votre projet.
Je vais juste donner un rapide par exemple. Nous avions un projet dans lequel une entreprise indienne était en train de construire notre interface utilisateur et certaines connexions à la base de données. Lorsque le projet était presque terminé, nous l'avons examiné, et au premier coup d'œil, il était parfait. Puis, lorsque nous avons commencé à exécuter le programme, nous avons réalisé que quelque chose n'allait pas. Lorsque nous sommes allés ajouter quelque chose et que vous étiez sur la page, pour une raison quelconque, vous deviez appuyer sur le bouton Ajouter même si vous y étiez déjà, puis taper les informations, puis le bouton soumettre.
Cela nous a semblé contre-intuitif car nous avons pensé que nous étions déjà sur la page et que nous n'avions pas besoin d'appuyer sur le bouton Ajouter et de remplir les informations, puis de sélectionner le bouton Envoyer et rien ne se passerait. Ils ont conçu ce que nous avons demandé, mais cela ne fonctionnait pas du tout pour nous ici dans l'Ouest, nous avons donc fini par repenser l'ensemble du back-end.
Je trouve que travailler avec d'autres pays, bien que moins coûteux, semble prendre plus de temps et peut en fait coûter plus cher à long terme si vous avez affaire à la sensibilité au temps par rapport à vos concurrents. Sur ce projet, nos concurrents se sont retrouvés quelques années devant nous en raison des difficultés que nous avons rencontrées. Maintenant, je sais que tout cela est dû à des pannes de communication et à la compréhension et je pense que vous devez avoir quelqu'un qui est bon pour expliquer le processus et qui peut parler techniquement avec les deux groupes au même niveau pour que les choses se déroulent mieux.