この質問の残りの半分:東洋のプログラマーは西欧のプログラマーをどのように見ていますか?
世界の東部(インド/中国/フィリピン)は、主に西部の世界(アメリカとヨーロッパ)にアウトソーシングサービスを提供しています。
オフショアチームと仕事をした経験はありますか?はいの場合、どうでしたか?
東洋のプログラマーに関する一般的なアイデアや意見はありますか(例:彼らは協力しているか、時間通りに納品しているか、質の高い仕事をしているのか)。これらは何に基づいていますか?
この質問の残りの半分:東洋のプログラマーは西欧のプログラマーをどのように見ていますか?
世界の東部(インド/中国/フィリピン)は、主に西部の世界(アメリカとヨーロッパ)にアウトソーシングサービスを提供しています。
オフショアチームと仕事をした経験はありますか?はいの場合、どうでしたか?
東洋のプログラマーに関する一般的なアイデアや意見はありますか(例:彼らは協力しているか、時間通りに納品しているか、質の高い仕事をしているのか)。これらは何に基づいていますか?
回答:
うーん興味深いビュー。
私はちょうど私のものを投げたいです。
私はインド(私はインド人)に住んでいて、11/12からプログラミングをしています。私がこれまでに持っているのは高校教育だけです。興味深いことに、私はこれまで2つのことをしました。インドのコンピューター研究所で教え、今はフリーランスを開発しています(そして、非常に知名度の高いクライアントのプロジェクトを手に入れました)
だから、私が立っている場所から真実だと思う2つのこと:
確かに人は人ですが、ここでの生活と教育に対するインドの考え方は非常に異なります。私が教えた数か月間、お金や何かを得ると思うからといって、親が子供をITに押し込むのを見ました。 Bscとエンジニアリングの学位を取得/終了し、100のうち98はCで数行のコードを書くことができません(品質コードを忘れてください)。
ここの州のコンピューターサイエンスコースでは、カリキュラムの一部としてTurbo Cがあり、ほとんどの人にとってC ++はCですがcout
、印刷にのみ使用しています。
開発に関しては、この種の卒業生を使用すると、恐ろしいことをコーディングする「エンジニア」が大量に見つかることが期待されます。ソース管理を使用しない小さなサイズの「企業」に会ったことがありますが、ユニットテストとは何なのかさえわかりません。
それは私が言いたいことがたくさんあるのは悲しいことであり、それは私を苦しめます。しかし、ここの誰もがこのようではありません。私たちは非常に多くの人がいるので、それが人々の印象になるかもしれません。笑
ここで成功するということは、どこか他の場所に移動することを意味します。なぜなら、成長して実際にスキルを磨く余地がないからです。もちろん、ここにはIITや他のトップカレッジのスマートヘッドがいます。彼らは自分たちのものを知っています(最終的には彼らも引っ越します)。
しかし、要点は、ここでのIT教育は私の考えではかなり悲しいことです。
免責事項:私は中東ヨーロッパに住んでいますが、東洋か西洋かを自分で決めます:-)そのため、西欧から私たちの国にアウトソースされたプロジェクトに取り組みました。そのような状況でインド人が経験しなければならないことに似た、私たちの能力に関して。
OTOH私は、いくつかのインド人およびロシア人の開発者と2つの主要なプロジェクトに取り組んできました。最初のものは、インドの下請け業者によって完全に開発されたコンポーネントにも関係していました。ソースファイルのサイズは600 Kバイト(または約30K行)であったため、すぐに閉じて、触る必要がまったくないことを祈ることができました。私の祈りは聞かれました)。
後者(私は現在取り組んでいます)は3つの異なる会社に下請けされており、そのいくつかはインドのプログラマーを何人か雇っています。過去1,5年にその結果を整理してきましたが、予見可能な将来に向けてまだ十分な作業が残っています。
私の個人的な生活の中で、私は前の人生の時代に3か月以上インドに住んでいました。そのため、おそらく平均的な西洋人よりも、この国とその住民について多くを知っています。個人的に私はインド人が大好きです。
私個人の経験では、一般的に西洋人とインド人の間に存在する同じ顕著な文化的な違いは、プログラマーの間でも同様に観察可能です。インド人は通常、どんな具体的なタスクが彼らに投げられても実行するのに非常に勤勉ですが、必ずしも全体像を理解する必要性を見たり、感じる必要さえありません。低品質のソフトウェアを簡単に作成する可能性があります。
もう一つの潜在的な問題は、インド人がどんな要求にもノーと言う文化的に染み込んだ抵抗です。インドの食料品店に行って毛布/宝石/フカヒレ/なんでも頼むと、所有者は「はい、すぐに」と言い、近所の別の店に男の子を送って商品を取ります。誇らしげにあなたにそれを提示します。これは確かに良いビジネス慣行です。ただし、固定の不可能なスケジュールでソフトウェア開発プロジェクトを下請けに適用する場合、結果は悲惨なものになる可能性があります。これは私の一部からの推測にすぎませんが、これがSW開発をインドにアウトソーシングする要因であるかどうかについての具体的な証拠はありません。
私たちの現在のプロジェクトにおける無駄な勤勉の代表的な例の1つは、パフォーマンス監視スキームの実装です。アイデアは、パフォーマンス統計を収集するオブジェクトを渡すことでした。しかし、このソリューションはアプリを非常に遅くすることが判明したため、実際には使用されませんでした。それにもかかわらず、コード内の残りは、クリーンアップするためにそこに残されました。実際には、これは追加のオブジェクトパラメーターをコード内のすべての(約6000)メソッドに渡すことを意味しました。それをした人は、各メソッドのJavadocにコメントを追加し、パフォーマンス測定のために追加のパラメーターが追加されたことに注目しました!今、私はその男の勤勉さにのみ驚嘆し、6000のすべてのメソッドを通して彼の仕事を行い、それらのJavadocコメントを至る所に忠実に挿入することができます。OTOH、a)前述のように、このスキームは実際には決して使用されませんでした。
私はこれがすべてインドの貧しい開発者のせいだったわけではありません(Javadocの誤用を除く)。IMOは、結果を監視せずにプロジェクトを慎重に契約し、厳格な受け入れテストを実施し、コードとドキュメントの適切な品質を確保することを、マネージャーが不注意で請け負っていることです。もちろん、下請業者が開発時間の節約に興味を持たない時間ベースの支払いスキームは言うまでもありません。
しかし、欧米の開発者が同じレベルの一貫性を持ち、苦情なしに同様のタスクを実行するのを見つけるのは難しいと思います。
また、この現在のプロジェクトのテストタスクをインドのテスターグループに委託しています。個人的には、そのうちの1人としか連絡を取っていないため、合計でどれだけいるのかわかりません。しかし、この男はテスターの逸品であり、あらゆるプロジェクトの貴重な資産です。勤勉で徹底的であることに加えて、彼は多くの質問をして全体像を理解し、しばしば予想以上のテストを行い、発見された問題を正確かつ記述的に報告します。
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.
「イースター」が常に「はい」と言う傾向は、東洋と西洋の文化の違いに関する他の記事で指摘されています。私が何年も前に読んだある記事は、一部のファーイースターナーが質問に答えて「はい」と言うとき、彼らの主な意図は彼らが質問に拘束されることに必ずしも同意するのではなく、質問を理解することを意味することであると説明しました。その記事は、90年代から、米国と日本のビジネスの違いを対象としていました。
私は、(ほとんど)オフショア(東半球)リソースに「委任」された3つのプロジェクトを扱いました。3つのケースのうちの1つは、ロシア東部でグループ(またはたった1人の男-1人だけを扱ったが、彼が他に何人働いていたかわからない)を使用しました。彼らは良い仕事をし、プロジェクトは非常に順調に進みましたが、英語が第2(または第3)言語である人々が作業することによる言葉遣いのいくつかの小さな問題を修正するためにUIで作業する必要がありました。
他の2つはかなり異なる話でした。偶然であるかどうかにかかわらず、これらの両方のケースでプログラマーはインドにいました。あるケースでは、基本的に彼らが行ったすべてのことはプロトタイプとして扱われなければならなかった-可能な設計をテストするために(ある程度)使用可能であるが、彼らが書いたものはすべて捨てられ、生産レベルのコードを得るために置き換えられなければならなかった。彼らは私が「ISO 9000の考え方」と考えるものを例示しているように見えました。彼らは、政策と手順をほぼ宗教的に順守していることを示したが、解決されるはずの問題に対する洞察がほとんど完全に欠けていた。彼らのコードは私が今まで見た中で最も不器用かもしれません。
他のケースでは、プロジェクトは最終的に削除されました。これは最近推進されたVPの野haな計画でした。初日からのアイデアは、彼のアイデアが活発に開発されていることを彼に伝えることができる一方で、支出を最小限に抑えることでした。入手したコードはまったく役に立たなかったが、プロジェクトの管理や使用可能な仕様の取得に労力を費やすことはなかったため、請負業者を責めるのは難しいだろう。彼らのコードは貧弱なものから始まり、誰も気にかけないことが明らかになったとき、品質はすぐに悪化しました。
人それぞれ。一部のプログラマーは優れたプログラマーであり、一部のプログラマーは悪いプログラマーです。時間がたつと他の悪いプログラマーに利益をもたらすことはできませんが、一部の悪いプログラマーは時間とともに良いプログラマーになることができます。
ここでは場所は重要ではない傾向があります。しかし、おそらくチャンスがあります。
8歳のときに、GW Basicで「Bad Syntax Error OK」という言葉の意味を尋ねていました。私はコンピューターで育ちました。誰もがその利点を持っているわけではありません。時代は変わりつつあり、今日の8歳の人は、昨日の8歳の人よりも多くの技術を利用できます。
しかし、プログラミングを理解することは、単にコンピューターの使用方法を知ること以上のものです。それよりもずっと深く実行されます。優れたプログラマー(および単に時間を必要とするプログラマー)を実際の悪いプログラマーから分離するいくつかの重要な特性を以下に示します。
最も重要なことは、優れたプログラマーも優れたコミュニケーターです。最高のプログラマは、他の人を説得できる人です。彼らは、解決策が見つかるまで、他のピアと問題を辛抱強く議論できる人たちです。
最大の課題はコミュニケーションです。
課題が何であれ、自分や他の人を固定観念にしないでください。あなたは他の誰と同じくらいの可能性を持っています。本当に心を込めて何でもできるということを忘れないでください!
私はインドの21歳の学部生で、コンピューターサイエンスとエンジニアリングの4年間の学位コースの最後の年です。
これを書くこと自体が、インドはアウトソーシングのハブ以上のものであると言うことでした。西側がそのように見て、才能を吸収する代わりに、西側がインドにもっとハブを設置することを願っています。攻撃的なコンテンツもありますが、全体像を理解すれば、私が言おうとしていることが理解できるでしょう。
インドの教育は非常に不穏な状態にあり、毎年生産される労働力にはまったくまたはまったく恐ろしい技術的スキルがありません。教育システムは、イノベーションや起業家精神の点で全く競争力がありません。これにより、最近自国で開発された10ドルのコンピューター(安価な中国のAndroidベースのタブレットで、インド企業のみが管理していることが判明)や、別の技術的ブレークスルー(以前はサムドライブ)。教育機関は、テクノロジーの現実世界から完全に切り離されており、すべて革新の名のもとに、車輪を再発明する学生により興味を持っています。教育機関、誰もがそれらを嫌っています。
あなたが少なくともいくつかのホットな開発スキルを学ぶことが期待される場所に来る:
私は、教育機関とは別に、インドのいくつかのトレーニング施設を利用しました。プログラミングとソフトウェア開発は、アプリケーションレベルの開発とシステムレベルの開発の 2つのレベルで行われます。
アプリケーション開発のために、インドのほとんどの新入生は、プログラマーの座っているベンチを主張し、より多くのプロジェクトを獲得するために、企業によって大規模に採用されています。結局のところ、採用プロセスはまったく愚かであるため品質が低下しますが、Javaフレームの作成や単純なWinFormおよびASP.NET UIのみの作成など、愚かなことで人々の仕事を上手にすることで才能が浪費されることもあります。 (私は定かではありませんが、私はより新しい採用について話し、一部の人が主張しているように)。優れたソフトウェアエンジニアリングの実践を考慮しない場合、その種のコーディングは7年生が行うことができます。
しかし同時に、物事に強い関心を持つ独立したプログラマーや開発者もいます。彼らは、すべての希望を失い、世界を変えることにあまり興味を持たない、名もなき英雄のようです。彼らが望むのは、彼らのスキルを最大限に活用することです。そのため、お金と海外に行くことがすべてです。コースはシステムソフトウェア(TurboC !!!を使用した4年間のCプログラミングに非常に限定されていますが、Cプログラムでcoutを使用した適切なオブジェクト指向概念のない愚かで曖昧なC ++ はC ++ではありません、ASM、およびgccを使用したその他のCプログラミング)、会社にいるときは、ほとんどがアプリケーション開発(ASP.NET、WinForms、J2EE)を行うように作られています。基本的に、コンピューターサイエンスエンジニアはソフトウェアエンジニアの仕事をするように作られています。はい、コンピューターサイエンスを知ることは役立ちますが、適切なソフトウェアエンジニアリングを知ることはプロセスを過度に阻害し、システム全体が急落します。それは#failです。
簡単な例を引用します。最終年度のプロジェクトのトレーニング機関に参加し、在庫システム(ホテル予約、CRMなど)のようなものになるASP.NET Webサイトの作成を希望しました。はい、それは簡単な作業ではありませんが、私の意見ではプロジェクトに取り組む価値はありません。それはただ車輪を再発明するだけであり、これらのプロジェクトは実生活において本質的に巨大です。3人のグループによって6か月で提供されるため、これにより生じる使用不能なスケールダウンシステムの種類を理解できます。インスティテュートは深くストレスをかけすぎず、「生徒にあまり言いすぎないように」と「概要を説明し、自分で残りを学習させる」ことにもっと興味を持っています。最終的に、人々がプロジェクトで開発するものは、完全にテストされたプロトタイプではなく、
音声ガイド付きリアルタイムナビゲーションシステムという独自のトピックを取り上げました。私は、WPF、GoogleマップAPI、可能な限り最新の技術を使用しています。優れたソフトウェアエンジニアリングの実践のために、MVVMを使用してソース管理を使用しており、私が知るようになった他のすべてを徹底的に見ていきます。私は21歳で、卒業生です。私の年齢では、西の人々はまだ学習段階にあり、後の年齢で卒業生になると思います。それは西洋の卒業生をより良くし、より多くの知識を与えます。量はあるが品質はない。
インドでは、私が自分のプロジェクトのために行っている仕事のレベルは、一般的に最終年度の学部プロジェクトには期待されていません。しかし、私はしたいのでそれをします。同時に、私のグループには、ASP.NETでプロジェクトを実行し、5〜7ページを作成し、データベースクエリを実行し、グリッドビューを埋め、セキュリティについて気にしない他の人がいます。地獄、フリーランスのウェブサイトでさえ、より良い求人情報があります(YouTubeクローン、Googleインスタント+ X = Yマッシュアップ..)
半年後、あなたはあなたのビジネスをアウトソーシングする会社で働いている同じ人を見つけるでしょう、そしてあなたも私を見つけるでしょう。彼らのような人々は、私のような人々を10対1で圧倒しています:(
私の教育経歴と500人以上の知り合いの中で、正確であり、暴言を言わないために、私は彼らと一緒にプロジェクトに取り組むために彼らが考える専門知識のレベルを持っているちょうど4人を見ました)
最終的に、すべてのインドの卒業生は理論であるため良い文書を書きますが、彼らからの絶対確実なコードを期待しません。
システムソフトウェアについても同じことが言えます。私の友人はAndroid NDKを使用しており、会社でライブプロジェクトに取り組んでいます。彼はこのプロジェクトを手に入れて幸運であり、私は彼をうらやましく思いますが、このレベルの仕事はインドでも起こります。私の大学の別の先輩は、たった2つの安価なウェブカメラを使用して、彼の最終年度のプロジェクトでkinectクローン(少数派レポートのようなマルチタッチマウス)を開発しました。同様に、インターネットからコードをコピーし、何らかの形で車輪を再発明する人もいます。
私の最後の言葉は、インド全土で妥協した品質を期待せず、安価なソフトウェアメンテナーとしてインド人を当然のことと考えず、保守業務のみをアウトソーシングするのに適しています。
また、マークに関して優れた学歴を持っている人が良いソフトウェアを書くことを期待しないでください。インドの教育システムはすべて理論志向であり、実際にストレスを感じることはありません。それにもかかわらず、優れたプログラマーは、良い仕事だけでなく、より良いキャリアでより緑の牧草地を探しますが、良い「仕事」を見つけ、ホンダシティをドライブし、中国本土で外食し、その後ずっと幸せに暮らしたい人もいます。 。
私はアウディに興味があります。:)
警告、今後の大まかな一般化。表明された視点は誰もが共有するものではありません。実際、著者はそれらを信じさえしないかもしれません。
西部の開発者は東部の開発者を恐れています。私たちの仕事は最終的には外注されると何度も耳にします。これはどんな関係にとっても悪いスタートです。さらに悪いことに、私たちの教育は劣っていることを常に思い出しています。東部の開発者はより安く、より賢く、より多くの面倒を我慢します。東部の開発者との専門的な経験は重要ではありません。恐怖で毒されているからです。
他の人のために話すことはできません。これは私の意見であり、人々は同意しないようです。私が見た事実のいくつかから始めましょう。
第一に、ほとんどの人が実際にソフトウェア開発のために削減されていないという証拠があります。(たとえば、UIの調査では、人口の半分以上がディレクトリツリーのアイデアを「取得」することはないことが示されています。)欧米では、これらの人々は他の適切な仕事を見つけるのに問題はありません。それとは対照的に、インドでは、とにかくソフトウェア開発に取り組む必要があります。これは、インドにはソフトウェア開発に取り組むべきではない多くの人々がいることを意味します。
次に、インドはアウトソーシングの一般的な目的地です。企業は、安いように見えるためにこれを行います(給与が低い)。ただし、文書化されているため(たとえば、COCOMO IIモデルの文書化されたコスト要因を参照)、次のすべての増加には開発時間と労力が必要でした:複数の場所の労働者、複数のタイムゾーンの労働者、および複数の文化の労働者。インドで実行され、西部からのプロジェクトには、3つのコスト要因がすべて含まれます。(これは、開発者として働くべきではない人を見つける傾向を追加する前です。)
最後に、ソフトウェアプロジェクト管理における絶対的な最大の課題は、何が機能していないかについて正確な情報を取得することです。私はこの傾向に対するこのユーモラスな考え方が好きです。絶望、文化、または顧客が正しいという信念など、理由の組み合わせにかかわらず、この傾向はインドに外注されたプロジェクトではさらに悪化します。時にはコミカルな程度に。
その結果、アメリカ企業は低賃金のサイレンの歌に屈し、仕事をインドにアウトソーシングし、アウトソーシングされたプロジェクトが災害に変わる傾向が強い。(しかし、アメリカ人が仕事を失った後まで、災害の程度は明らかではありません。)
企業が行く他の方法は、H1Bビザでインディアンを米国に雇うことです。これにより、リモートワーカーの問題が解消されます。多くのインド人は、米国などで給与が高いため、これらの仕事を望んでいます。また、利用可能な仕事をすべて満たすのに十分なほど優秀なインド人がいます。しかし問題がある。H1Bビザを雇うアメリカ企業は、仕事にアメリカ人がいないこと、雇われた人が市場料金を支払われていることなどを断言する必要があります。これにより、雇用主は捕虜になります。そして、実際にそれらの従業員を公正に扱う市場インセンティブを残しません。これにより、企業は不正に対して強いインセンティブを与えられます。多すぎる。
アメリカ人として、私はアメリカに来る最高で最も明るい人に何の問題もありません。それどころか、それがこの国を作ったのです。しかし、到着したらそれらを平等に扱ってください。たとえば、私はフィリピンの人で、ビザのステータスのために、Google、Apple、Facebookからの求人を断らなければならなかった人を知っています。彼が現在作っているものの約2倍。市場が彼のような人々の給与を設定することを許可された場合、企業がH1Bプログラムを悪用しようとするインセンティブははるかに少なくなります。
だから私の意見があります。多くの理由により、インドへのアウトソーシングプロジェクトはしばしば災害につながります。H1Bワーカーとして得られるものは優れている傾向がありますが、そのプログラムは私を悲しくさせる方法で酷使されています。
私はインドの開発者と3年間働いています(私はイタリア人です)。人それぞれ。私たちは主にチームが必要だったため、外部委託しました。イタリアでは、特にデルファイのような人気のない言語でチームを見つけるのは困難です。そのため、主な理由はコストではなくチームを見つけることです。
とにかく、私たちが見つけたチームは非常に優秀でした。しかし、他の開発者はそれほど重要ではありませんでした。どうした?彼はとてもいい人であり、私の友人にもなっているので、開発者は私たちのために直接働いています。強い関係があり、彼にイタリアの給料をほぼ支払っています。どうして?関係が重要だからです。私は多くの人々がただ節約するためにインドに行くのを見てきました。
あなたはあなたが支払うものを手に入れます。それからもちろんいくらかお金を節約できますが、お金を節約するためだけにアウトソーシングを行うことは(特に小規模なプロジェクトの場合)間違った選択だと思います。
IMOの問題は東部対西部ではなく、アウトソーシングの一般的な考え方です。90年代後半には、インターネットブーム、Y2K、ユーロ通貨変換がプログラマーにとって多くの仕事を生み出したため、アウトソーシングは当時の話題でした。しかし、それは東へではなく、国内でのアウトソーシングでした。それでも、オフショアリングで予想または経験する問題の多くは、地元のアウトソーシングパートナーでも発生しました。
多くの場合、適切な仕様を作成することは、自分でそれを行うことと同じくらい多くの作業です(Q&Dとはいえ)。しかし、アウトソーシングの目標は時間とお金を節約することであるため、アウトソーシングパートナーに与えられる仕様は大雑把です。時間と監督の欠如によって支払われた請負業者を追加し、それはあなたが期待しなければならないことは明らかです。
私は中国に2年弱住んでおり(カナダ人)、中国の開発者と仕事をしています。少なくとも中国人の開発者で作られた一般化のいくつかはやや真実であると言えます。
初めは、彼らが書いたものは必ずしも非常に良いとは限らなかった。文化的な格差は確かにありますが、最初は設計が不適切なシステムの長く急な学習曲線もあります。しかし、あなたは知っています... 2年後...このシステムで行われた最高の仕事のいくつかは中国のオフィスから来ています。これがますます明らかになるにつれて、これは脅威要素をさらに悪化させます...
率直に言って、それは簡単ではありませんが、私は個人的な経験から傾向を見るとき、フェンスの右側にいると思います。
これは興味深いトピックです。私はSFとシリコンバレーで働いていましたが、地元のクライアントのためにヨーロッパで働いていて、インドにオフショアオフィスを設立し、今では南アメリカにオフショア開発店を経営しています。私はアフリカの開発者と少し仕事をしました。
世界のあらゆる地域で優れたプログラマーを輩出することができます。HIVクリニックのオープンソースシステムをサポートする素晴らしいタッチインターフェースレールを構築し、重要な方法でオープンソースプロジェクトを使用し、貢献しているマラウイのハッカーの友人がいます。
また、有名ブランドの新興企業や大手紙会社で働いているアメリカ人プログラマーが、紙袋から抜け出す方法をプログラムできなかったのを見てきました。MITのComp Sciで修士号を取得しており、長年の業界経験があり、優れた量産コードを作成することはできませんでした。
ヨーロッパ、ラテンアメリカ、アメリカ、インドの間には非常に現実的な文化の違いがあります。それからハッカー文化がありますが、それは多かれ少なかれ普遍的です。
主流のインドの技術コミュニティは、問題に人々を投げつけるのが好きです。開発者ごとの1時間あたりのレートは低くなる場合がありますが、ベンダーが品質よりも量を重視している場合、コードを実行するには2倍の開発者が必要になります。
認証。なんてこったい?インドは認証、ISO、CMMIなどが大好きです... それは無意味なお尻をカバーしています。さらに重要なことは、優れたソフトウェアを開発する方法ではありません。
カーストシステム。カースト制度はインドでは違法であり、独立以来、カースト制度は排除するために多大な労力を費やしましたが、それでも生きている呼吸する獣です。ほとんどの西洋人はカースト制度の存在を無視しています。私はアメリカで育ちましたが、父はアングロインディアンと呼ばれるインドで生まれ、母はそこで学生として大学に行き、その後インドの大学で教えるために戻りました。カースト制度は非常に現実的で、インドから来て古いものですが、イギリス人はそれを奨励し、力を維持するためにそれを使用しました。欧米人は、彼らが階層の最上位で、英国人に取って代わることを知る必要があります。あなたはサーと呼ばれるでしょう、あなたは質問されないでしょう。ほとんどのインド人マネージャーは、自分の役割を、下層に何をすべきかを伝えることと考えています。話し返し、代替案を提供することは罰せられます。
すべてのインドの開発店がこのようになっているわけではありません、Zohoは、すべてのルールを破って素晴らしいインドのビジネスを構築しました。彼らは、カーストではない能力や、あなたが持っている大学の資格に基づいて雇用します。そうすることで、彼らはMS Officeスイートに完全なSaaSの置き換えをブートストラップしました。
インドには活気のあるハッカーコミュニティがあり、ミートアップ、メーリングリスト、小規模な会議などがあります。これらの開発者は世界クラスの優秀です。彼らはインドの主流ソフトウェア開発業界で仕事をするのが難しいと感じることがよくあります。私自身、インドのオフィスに2人のpython開発者を見つけましたが、彼らは素晴らしかったので、インドのマネージャーは、チームを埋めるために12人の新入生、新卒を雇うことを主張しました。数か月後、ハッカーは辞めましたが、マネージャーは命を落としました。私たちには十数人の若くて熱心な従業員がいましたが、そのほとんどはプログラミングの仕方をよく知りませんでした。
最も新鮮なのは、組み込みシステムの開発者向けのIDEを構築した若い女性でした。彼女は保守的な家族から来ていたので、誰も彼女を雇いたくありませんでした。
インドには素晴らしい開発者がいますが、価値構造はそれらを押し出し、優れたコードの作成とは関係のないことに基づいて人々を促進するように設定されています。
他の大きな問題はタイムゾーンです。それは利点ではなく、大きな問題です。つまり、オンサイトチームとオフショアチームの間には常に直接的なコミュニケーションはありません。これは大きな誤解を引き起こし、ドキュメントの連なりを書くことを強制します。アジャイルを非常に困難にします。
悲しい真実は、インドの企業によって生産された膨大な量のソフトウェアが低品質であることです。開発者がインドのエンジニアがいかにくだらないかについていつも話しているのを聞きますが、それは真実ではありませんが、それは大規模な伝統的なオフショア企業の品質を反映しています。開発者自身ではなく、インドのビジネス文化のせいです。開発者は、間違ったものに報いる悪いシステムに閉じ込められています。
私はアジアにオフショアしたいくつかのプロジェクトを経験しました(私が言及しない異なる国)。それらはすべて悲惨な失敗でした。豊富で詳細な文書にもかかわらず、仕様文書などが結果に送信されました(何かが生成された場合)。通常、それはまったく機能しなかったか、機能しないほど役に立たなかった。プロジェクトも(成果物をまったく作成した場合)深刻に遅れていました。
OTOH私はアジアのプログラマーやヨーロッパやアメリカで働いている他のプログラマーと仕事をしてきましたが、そのほとんどは仕事をよく知っている優秀で勤勉な人たちです。
多分彼らの何人かによる声明は、すべての良いITの人々がアジアを離れてヨーロッパとアメリカで働くためにすべてを言うということです。そこに残っているのは山の底であり、品質を向上させるための監督、トレーニング、チームリーダーシップを提供できる人はほとんど、またはまったくいません。そこに住んでいる(少なくとも一部の国の)アジアのIT担当者と電話やメールでやり取りしなければならなかった(そしてテレビなどでインタビューを見た)ことも、文化が関係している可能性があります。多くの人は自分自身をアメリカ人やヨーロッパ人よりも人種的および道徳的に優れていると考えており(そして彼らの国の裏切り者を去る人も考えている)、劣等な存在と考える人からの助言を聞くことを拒否しているようです。これは確かにアジア諸国のすべての人に当てはまるわけではありませんが、「私たちが最もよく知っている、
東ヨーロッパの状況は良くなっています。おそらくそれらの国の多くがEUに加盟しているため、彼らが台無しになった場合、彼らに対する法的措置が成功するという大きな脅威があるからでしょう。
鈍くシニカル:
IBMでの10年間で、世界中のプログラマーとさまざまな関係で仕事をしました。あなたが最初に学ぶことは、海の両側で地理的ステレオタイプがすべて間違っているということです。プログラマーは世界中のプログラマーです...どこからでも100人を選ぶと、旅行なしでハローワールドをプログラムできなかった人や3人のグーグル、まともな有能な人、素晴らしい人の割合がほぼ同じになります。
そうは言っても、これらの地域のいくつかにおけるビジネス環境の地理的一般化は正確です。たとえば、インドは、テキサス州オースティンや、Silly Con Valleyが90年代後半から2000年代初期にかけていたようなものです。一方、中国は米国中西部のシリコンプレーリーによく似ているようです。人々は会社を選び、より長い期間そこに滞在します。ブラジル、ロシア、ヨーロッパは中間のどこかにあるようで、中程度の時間を過ごすほどではありませんが、2人が混ざり合っているようです。
私は中央ヨーロッパに住んでいます。近年、アウトソーシングの波が私たちを襲いました。私は「西側」からアウトソースされたプロジェクトに取り組んできましたが、今日ではアウトソースされたプロジェクトはより安い国に上陸しています。だから私は方程式の両側にいた。
私たちがアウトソーシングをしていたとき、私たちのマネージャーと私たちが毎日一緒に働いていた人たちは素晴らしい人で、社内の開発者のように扱われました。仕事の安全性についてのわずかな懸念は、私が完全に普通だと思っていた他の人々から感じることができました。また、より大きなプロジェクトで二流のタスクを取得しましたが、これも私にとっては問題ありません。あなたの主要な専門知識を外部委託するべきではありません。
その後、プロジェクトは安価な地域に移動しましたが、これはやむを得ないことでした。
アウトソーシングストーリー全体の要点は、経営者があなたの知識、経験、教育、またはノウハウについてネズミのお尻を出さないことです。彼らが気にするのは、費用とボーナスだけです。そのため、ローカルでの存在が必要とされる理由がない限り、ソフトウェアプロジェクトは最終的には安価な国にアウトソーシングされます。
免責事項:私はインド人であり、これはインド人の見方に聞こえるかもしれませんが、私は多くの西洋の顧客、さらには米国で働きました。東半球に世界で最悪のプログラマーがいた場合、なぜ西半球は東に外注するのでしょうか?お金を節約するためだけに地球の東部に外注する場合、IMOは品質を犠牲にします。良い、速い、安い、2つ選択してください。私が男を雇わなければならないとき、私は彼らの期待と彼らが支払う準備ができている価格は何であるかを私の組織に尋ねます。才能のある自尊心のある人に、より低い賃金とより多くのプレッシャーであなたのために働くように説得するのは本当に難しいです。そのフリーランスのサイトは、東部のプログラマーをもたらしたバンガロール-dだった不幸な西部の男と組み合わされただけで、コードモンキーです。より良い価格を支払う準備ができている場合、より良い結果が保証されます。また、これらのISO / CMMI / SEIの種類のサービス会社には従わないでください。彼らは羊や家畜の群れを飼っているような才能を雇います。
私は現在(ロシアで)海外に住んでいて、起業家として働いている(そして法案を支払う側のフリーランサー)アメリカ人です。私はシリコンバレーで、開発者、技術チームリーダー、およびソフトウェア/システムアーキテクトとして20年以上にわたり、非常に有名な多くの企業や新興企業で働いていました。国際企業。この最後の企業(「X」と呼ばれます)には、米国および世界中に開発センターがあります。インド、ロシア、中国、ヨーロッパなど。これらのチームのメンバーと直接仕事をしたところ、非常に才能があり、立派なエンジニア。私が同意する主張と創造性は、現在、よりアメリカ人のエンジニアの性格タイプである傾向があり、
アウトソーシングはお金について非常に明確です。私が米国を離れたとき、Xは米国で雇用されていませんでしたが、国際的なオフィスで雇用されていました。Xは、米国外のエンジニアに、同等の(年数の経験、スキル)米国のエンジニアの給与の約1/4〜1/3(地域によって異なります)を支払います。これは通常、米国以外の場所の経済を考慮すると、かなり良い給料ですが、これは米国のエンジニアリングポジションの存在そのものである賃金率にとっては良くありません。
フリーランスは、コンピューターの仕事、特にソフトウェアの未来です。その性質上、非常にポータブルであり、必要なのはラップトップとインターネット接続だけで、ビジネスをしています。社内のオンサイトチームには、より信頼性の高いスケジューリング、予測可能なスキルセットなどのケースが常にありますが、メンテナンスには非常に費用がかかります。
ここでは、米国以外の開発者がどれほど恐ろしいかについて、米国のエンジニアから頻繁に、慢な投稿があります(たとえば、次のスレッドをご覧ください:https : //stackoverflow.com/questions/209170/how-much-does- iPhoneアプリケーションの開発コスト)。ステレオタイプは、はい、それらは安いだけでなく、常に非(der)修飾されてくだらないコードを書くということです。品質を得るための唯一の方法は、米国のエンジニアに米国の賃金を支払うことです。戯言!米国のエンジニアは目を覚ます必要があります。業界と経済は、非常に高額な社内開発者から、世界中に分散した開発チームに移行しています。確かに、米国以外の悪い開発者はいますが、測定しなかったので、あなたが引き継いだすべての米国のインタビューを受けた人たちを思い出してください。私が今まで見たり取り組んだりした絶対に最も凶悪なコードのいくつかは、変更または改善を拒否した社内のエンジニアによって書かれました!偶然の偶然の開発者がくだらない仕事をしたからといって、米国外のエンジニア全員がひどいというわけではありません。代わりに、その優良クライアントは最低入札価格を少し超えて見えるはずです。本物の宝石があり、トップデベロッパーでさえ、社内の米国料金よりも大幅に安くなっています。この特定の瞬間に、私はあなたに認めます、多くの才能が米国に集中しています-しかし、これが決して変わらないと思っている人は非常に真剣に惑わされています。
才能と経験はその不足よりも費用がかかります、私はあなたにそれを認めます。しかし、問題は、米国の社内従業員の賃金規模は、世界の他の従業員の賃金規模とはまったく異なるということです。動いている動的な才能/コストの連続体が絶えずあり、米国外のエンジニアの周囲の周囲の才能は上昇するだけです。それは、米国の賃金率と非常に強い米国内でのエンジニアリングポジションの支払い(覚えておいてください:Xは国際的に採用していますが、米国では採用していません。執筆は壁にあります)。そのため、才能のある人は、才能の低い人よりも常に多くを請求することができますが、現在の米国の料金ではないことは確かです。
開発チームの物理的な場所がすでに変更されているように、世界中の才能の集中は絶対に変わります。米国以外の人材レベルは上昇し続けます。それほど遠くない将来、これらのスレッドを振り返り、「彼らが何について話していたのか、世界のどこでもトップの人材を見つけることができる」と考えます。
私は地球の東部と西部の両方で働いてきましたが、考えは分かち合います。私は米国に移る前にバンガロールで5年間働いていました。約8年間米国で働き、インドに戻りました。ここでは仕事があまりにも厳しいので、私は家に座ることを余儀なくされました。2人の若い子供がいると、その長い時間を費やすことは不可能でした。ついにアルバイトを見つけました。インドでの仕事の質を見てショックを受けました。我々が米国に去ったとき、それはそれほど悪くありませんでした。若い群衆は、新しい技術を学ぶ責任や熱意を持っていないようです。誰かが指摘したように、「ノー」と言うことはまれであり(エゴ、IMOへの打撃)、その結果、まったく役に立たないまたは平凡な仕事が見られます。コードは判読不能で、全体像がまったくわからず、拡張の余地もありません。あなたが男を訓練する頃には、彼はより環境に優しい牧草地のために仕事をする準備ができています。そうは言っても、非常に良いものはまだ少ないと思います。あなたが彼/彼女と仕事をするようになった場合、特にその人がうまく通信できる場合、幸運を考えてください!
作品の質が低い場合、おそらくインドに目を向けるのではなく、彼らが最高の入札をする人に目を向けます。そして、それはおそらくPrasoon Sauravのようなものではなく、いくつかのジュニアコーディングチームのようです。
私はスイス出身です。私はウクライナに外注したプロジェクトに取り組みました。開発者ははるかに安価でしたが、私たちが節約したお金は、この沿岸チームを監督するために私たちのチームを隔月でウクライナに飛ばすために再投資されなければなりませんでした。プロジェクトは、外部委託されてから約1年後に死亡しました。
私は現在、スイスの会社に外部委託されているプロジェクトに取り組んでおり、それ自体がモロッコに寄港しました。プロジェクトは順調に進んでいますが、コミュニケーションの問題と品質の問題があります。
主な問題は、オフショアプロジェクトをより安価に構築することです。物事を安くするのは常に難しいが、同じ品質のものは...
非常に率直に、そして非常に一般的に、私は「西」のプログラマーが「東」のプログラマーに対して高い意見を持っているとは思わない。これが正当化されるかどうかはわかりません。
いくつかの答えが示唆するように、アウトソーシングは「西側」の多くの人々にとって脅威です。これは、「ライバル」プログラマーを信用しない自動的な理由です。
アウトソースされたプロジェクトを見るとき、私は悪いコードしか見ませんでした。これは、作業が安価なショップに行ったため(「支払うものを手に入れる」)、プロジェクトの管理が不十分だったため、またはおそらくプロジェクトが成功した場合はコードを見る必要がないためです。言い換えれば、あなたは悪いコードについてのみ聞く。
上記の30000行ファイルのようなホラーストーリーもあります。繰り返しますが、話が悪いほど、それはさらに広がります。
人々は「あなたがそれを安くやりたいなら、アウトソーシングしてください。正しく実行したい場合は、社内で実行してください。」
あなたが学び、改善しているなら、私はそれについてあまり心配しません。
免責事項:私は自分自身をアウトソーシングする直接的な経験はありません。以下に、欧米の大手ソフトウェア会社のプロジェクトマネージャーとこのトピックについて話し合ったときに出てきたいくつかのポイントを示します。この男はインドの現場で多くの時間を費やし、アウトソースされたチームを監督しています。
Wipro、Infosys、TCSなどのことを聞いた場合、世界最大のIT企業の一部はインドにあります。ほとんどの「西洋のソフトウェアプロフェッショナル」がオフショアに費やすことができなかったインド最大の企業は、世界最高の品質として容易に認められます。 。欧米の顧客の不安を和らげるために、品質に関するすべての証明書を取得しています。また、ほとんどのインドのソフトウェア企業には、ほとんどの西洋企業よりも多くのエンジニア(学位と経験)があります。また、Google、Oracle、IBM、Microsoft、SAPにはすべて開発センターがあり、すべてが安いプログラマーを探しているわけではありません。
それでは、西洋のエンジニアをどう見るのでしょうか。海を見渡すと、混合袋が見えるように、混合袋が見えます。私たちが賞賛する有能な超技術者がいて、時々一緒に働くことを強いられるかもしれない潅水袋があります。概して、私たちは混合チームで非常にうまくやっています。西側に「技術志向」のビジネスパーソンがいて、反対側にプログラマだけがいる場合、関係は本当に悪いです。これは通常、地元のマネージャーを雇わずにドルを節約しようとする現金不足の西側の会社です。
東ヨーロッパ(東ヨーロッパではない)へのアウトソーシングの私の経験はかなり悪いものでした。私が見たすべてのアプリケーションは恐ろしく、関連のないコードの束が接着されて、やるべきことをほとんど実行していないように見えます。
これは、新しい東洋のプログラマーが新しい西部のプログラマーよりも悪いことによるものではないと思います。東洋のプログラマーが経験豊富なプログラマーを指導していないためだと思います。西洋の世界では、現代のプログラミング言語を扱うことは45年前から一般的な職業であったため、多くの経験豊富なプログラマーがいます。東では、現代のプログラミングは何のために起こっていますか?10-15年?人々が学ぶべき経験は本当に不足しています。その上、私が思うに(ここから見ると)東部のほとんどのプログラマーはアウトソーシングされており、彼らは多くの悪い特性を拾い、目標はプロジェクトを取得するだけです。新しい開発者に引き継ぐべきではない経験です。少なくとも米国では、ほとんどのプログラミングの仕事は、時間をかけてサポートしなければならない製品の限られたセットで働く人々のためのものでした。そのため、人々はソフトウェアが安定して安全であることを保証するためのテクニックを採用しています...これは新世代に引き継ぐのに良い経験です。
ええ、基本的に、私はそれがどこでも人が得る学校教育の量とは何の関係もないと考えています。それは仕事で拾った習慣に関係しています。優秀なプログラマーはたくさんいますが(少数派だと思いますが)、プロジェクトが外部委託されたときに欧米人がやり取りするのは彼らだとは思いません。
東ヨーロッパ人に関しては、経験豊富な開発者がいます。アウトソーシングの要求を満たすために段階的に廃止されるのではないかと心配しています。
@ giddy、Peter:インド出身のプログラマーとして、私はあなたの声明の真実を認めざるを得ないでしょう:悲しいことに、インドでのプログラミングは人々が選択から外すものではなく、衝動から脱します。彼らは社会的または経済的です。それが、インドで技術職から純粋に管理職へと急速に移動する人を見つけるのが非常に一般的である理由の1つです(実際、「はしごを上げる」と呼ばれますが、これは私が嫌悪感を覚えるフレーズです)。技術者として成長し続けたいとしても、管理職の役割はあなたに強くなります(実際、私がインドから引っ越すことにした理由の1つです)。
私を超えた理由のために、キャリアの成長は、あなたの下で働いている、またはより正確になるために働く人々の数と同一視されます。「私はxのチームに責任がある」または「x人が私の下で働く」とは、インドで「成功した」人にふさわしいと考えられる声明です(「x人」がその種このスレッドで他の人によって参照されたコードの)。
すべてを言ったが、私はコードの質の悪さはインドや他の「低コスト」国だけに限定されたものではないことを指摘したい。ここヨーロッパでも、馴染みのある態度とコードの品質を時々見ています。ありがたいことに、それらは一般的なルールではありません。
私は自分の仕事をオフショアリングするという複雑な経験があり、一般にオフショア企業と仕事をしました。参考のために、私は米国に住んでいます。
私はインドの会社と契約した会社で働いていました。その会社はCMMI 5と評価されていて、安い会社で働いていました。同社はゼロから作成するクライアントソフトウェアを提供しましたが、戻った時点でコードはバグが多く、完全に文書化されておらず、一般的にリファクタリングと保守が困難でした。同社は最終的にクライアント全体をゼロから作成し、オフショアリングのコストを食べました。
別の例では、私が働いていた会社がアジアの会社と提携して、そのサービスと製品を東部市場に導入しました。起こったのは、アジアの会社がソースコードと製品デザインを取得し、パートナーシップを破り、自分の会社と同じ自社製品をリリースした場所をほんの数人しか知らなかったという秘密の話でした。
さらに別の例では、私が働いていた会社が中国に研究室を開設しました。非常に近代的な場所で、私のオフィスにあるものよりも私が持っていたものよりも手の込んだものがありました。R&D施設はカスタムLinux開発に使用される予定であったため、私はトレーニングのために1週間中国オフィスに派遣されました。チームにはかなり優れた人々がいましたが、その高さの開発者の場合のように、彼らはすぐに去り、残りのチームは私たちがここで使用できるようにAPIを書きました。APIがLinuxの理解をまったく示さず、基礎となるソースコードがせいぜいひどく不安定だったため、APIを完全に悪いと呼ぶことにします。しかし、そのチームの大きな問題は、Linuxの仕事にも奇妙なチームを選んだことだと思います。そのチームの誰もLinuxの専門家ではなく、そのプロジェクトは1年後に廃棄されました。
他の例では、私が東ヨーロッパの会社に契約している別の会社でした。彼らは本当に優秀で、脆弱性テストを行うよう契約されていて、実際にはかなり高価ですが、一般的に価値のある投資とみなされていました。
私はかなり巨大なインドのITサービス会社とも仕事をしてきました。社内に開発者がいて、彼らに雇われていましたが、私たちと契約していました。そこにはいくつかの優れた開発者がいましたが、それは私たち全員がさまざまなプロジェクトで一緒に働いていたため、より一般的な話です。
これらの物語は娯楽のためのものです-私は複数の企業と仕事をしてきましたが、国内企業と外国企業についての物語があります。
一部の企業では、コミュニケーションが常に困難な部分でした。私は東部標準時間に取り組んでおり、私たちは10時間から13時間前に人々と話します。また、実際の開発者と話をするのではなく、管理のみを行うため、そこには切断がありました。
仕事を楽しんでいないだけで会った開発者もいました。私たちは韓国の開発者を雇っていました。彼は韓国の防衛会社の低賃金のために奴隷のような時間を過ごしたために、州に働きに行きたいと思っていました。私は、開発者になるために彼の選択を嘆いた開発者(外国人でもある)と協力していました。
The company ended up just writing the entire client from scratch and ate the cost of the offshoring.
。この問題は2回発生しました。