¿Cómo ven los programadores del oeste a los programadores del este?

101

La otra mitad de esta pregunta: ¿Cómo ven los programadores en el este a los programadores en el oeste?


La parte oriental del mundo (India / China / Filipinas) proporciona principalmente servicios de subcontratación al mundo occidental (Estados Unidos y Europa).

¿Tiene la experiencia de trabajar con equipos offshore? Si es así, ¿cómo estuvo?

¿Tiene alguna idea u opinión generalizada sobre los programadores del Este (por ejemplo, ¿son cooperativos, entregan a tiempo o hacen un trabajo de calidad?). ¿En qué se basan estos?

John
fuente
3
Cierto . Pero gran parte de la economía de TI se basa en los servicios.
Vinoth Kumar CM
8
Como contraste, también publiqué: programmers.stackexchange.com/questions/50884/… - "¿Cómo ven los programadores del este a los programadores del oeste?"
Jon Hopkins
11
Re. vote para cerrar, estoy asombrado. Creo que esta es una gran pregunta subjetiva, aunque enfatizaría que las personas necesitan apoyar sus respuestas con experiencia y hechos en lugar de la opinión pura.
Jon Hopkins
11
Wow, cuando leí esto por primera vez, pensé que significaba Costa Este vs. Costa Oeste en los Estados Unidos.
Jess
3
@ Andrew: LoL. ¡Hay una brecha cultural bastante grande allí mismo! y mucho menos del medio oeste.
Mike Dunlavey

Respuestas:

81

Hmm Vistas interesantes.

Solo me gustaría tirar el mío.

Vivo en India (soy indio) y he estado programando desde que tenía 11/12. Todo lo que tengo hasta ahora es una educación secundaria y, curiosamente, he hecho dos cosas hasta ahora, enseñé en un Indian Computer Institute y en este momento desarrollo freelance (y obtuve un proyecto con un cliente MUY de alto perfil)

Entonces, dos cosas que creo que son ciertas desde mi punto de vista:

Claro que las personas son personas, pero la mentalidad india sobre la vida y la educación es muy diferente aquí, durante los meses que enseñé, vi a los padres empujar a sus hijos a TI solo porque piensan que les dará dinero o algo así, también les enseñé a los estudiantes haciendo / terminado BSc y grados de ingeniería y 98 de cada 100 no pueden escribir algunas líneas de código en C. (Olvídate del código de calidad).

El curso de informática estatal aquí, tienen Turbo C como parte del plan de estudios, C ++ para la mayoría de las personas es C pero solo se usa coutpara imprimir.

En cuanto al desarrollo, con este tipo de graduados, esperará encontrar toneladas de "ingenieros" por ahí, codificando cosas horrendas. He conocido "empresas" de pequeño tamaño que no usan control de fuente, ni siquiera tendrán una idea de qué son las pruebas unitarias.

Es triste que tenga tanto que decir y me duele. PERO aquí no todos son así. Hay tantos de nosotros, que tal vez la impresión que la gente tiene. jajaja

De alguna manera, incluso tener éxito aquí significa mudarse a otro lugar, porque no hay un alcance real para crecer y realmente perfeccionar sus habilidades. Por supuesto, aquí están los inteligentes de IIT y otras universidades superiores que sí conocen sus cosas (eventualmente también se mudan)

Pero la conclusión es que la educación de TI aquí es bastante triste en mi opinión.

Gedeón
fuente
29
Muy interesante, gracias por el punto de vista. Creo que el fenómeno de "los padres que empujan a sus hijos y las personas que estudian, cosas en las que simplemente no son buenos" es prácticamente mundial: sus malos resultados parecen ser más visibles en la India en este momento porque es muy increíblemente atractivo para hacer trabajo en alta mar y otras métricas como la población. Pero sería un gran error pensar que India no tiene personas brillantes y desarrolladores competentes
Pekka 웃
44
@Pekka si tuviera un centavo por cada vez que alguien me dijera que fuera médico o abogado, no necesitaría estar en TI.
jonescb
1
Gran conocimiento cultural. Fui a la escuela con varios estadounidenses de ascendencia india y recuerdo tres ocasiones separadas de consolar a algunos que estaban angustiados porque simplemente no entendían / ​​no les gustaba la programación pero tenían que conseguir un trabajo bien remunerado para poder ir a casa y visitar familia de forma regular. Esa presión empuja a las personas en direcciones para las que no tienen la aptitud. Mientras tanto, mi familia extendida está a solo 1500 millas de distancia y es un buen año si llego a casa para una visita.
Steve Jackson
11
+1 por mencionar el problema de turboC. Quiero decir que si no quieren gastar mucho dinero, usen eclipse o algo así. El uso de ese software obsoleto simplemente apaga a los estudiantes de la programación y las computadoras.
apoorv020
3
@apoorv cierto. cuando solía enseñar antes (en el instituto indio "reconocido" no mencionaré), también usaban turbo C allí, solía usar netbeans para enseñar (que ya estaba instalado) ¡pero me obligaron a volver a TC! Finalmente, 4-5 estudiantes se acercaron a él y le dijeron que les gustó por primera vez, ¡porque en realidad podían escribir un programa que funcionara!
Gedeón
118

Descargo de responsabilidad: vivo en Europa central y oriental, tome su propia decisión sobre si cuento como oriental u occidental :-) Como tal, trabajé en proyectos subcontratados a nuestro país desde Europa occidental, y experimenté dudas de la mayoría de los compañeros de trabajo y gerentes occidentales. con respecto a nuestras habilidades, similar a lo que los indios deben experimentar en tales situaciones.

OTOH He estado trabajando con varios desarrolladores indios y algunos rusos en dos proyectos importantes. El primero también involucró un componente desarrollado completamente por un subcontratista indio, que fue fácilmente el código de pieza más horrible al que he tenido acceso (no puedo decir "el código más horrible que he leído", porque al ver que el más grande solo El archivo fuente midió más de 600 Kbytes de tamaño (o AFAIR unas 30K líneas), lo cerré rápidamente y solo pude orar para que nunca necesite tocarlo. Mi oración fue escuchada).

El último (en el que estoy trabajando actualmente) ha sido subcontratado a 3 compañías diferentes, algunas de ellas aplicaron varios programadores indios. Hemos estado limpiando el resultado de eso en los últimos 1,5 años, y todavía queda suficiente trabajo para el futuro previsible.

En mi vida personal, viví en la India durante más de 3 meses en una era anterior de mi vida, por lo que probablemente sé más sobre el país y sus habitantes que un occidental promedio. Personalmente me gustan mucho los indios.

Mi experiencia personal ha sido que las mismas diferencias culturales notables que existen entre los pueblos occidentales e indios en general, también son observables entre los programadores. Los indios suelen ser muy diligentes en la ejecución de cualquier tarea concreta que se les presente, pero no necesariamente ven o sienten la necesidad de comprender el panorama general. Lo que puede resultar fácilmente en software de baja calidad.

Otro problema potencial es la resistencia culturalmente arraigada de los indios a decir no a cualquier solicitud, ya que creo que ellos lo consideran grosero. Si vas a una tienda de comestibles india y pides mantas / joyas / aletas de tiburón / lo que sea, el propietario dirá "sí señor, en un momento", luego envía a su hijo a otra tienda en el vecindario para buscar el producto y te lo presenta con orgullo. Lo cual es una buena práctica comercial. Sin embargo, si se aplica lo mismo a la subcontratación de un proyecto de desarrollo de SW con un cronograma fijo imposible, los resultados pueden ser desastrosos. Sin embargo, esto es solo una especulación de mi parte, no tengo evidencia concreta sobre si esto es realmente un factor para externalizar el desarrollo de SW a la India.

Un buen ejemplo de diligencia inútil en nuestro proyecto actual fue la implementación de un esquema de monitoreo del desempeño. La idea era pasar objetos que recopilan estadísticas de rendimiento. Sin embargo, la solución resultó ralentizar la aplicación tanto que nunca se usó realmente. Sin embargo, sus restos en el código fueron dejados allí para que los limpiemos. En la práctica, esto significaba pasar un parámetro de objeto adicional a todos los métodos (aproximadamente 6000) en el código. ¡El tipo que lo hizo incluso agregó un comentario al Javadoc de cada método, señalando que se agregó el parámetro adicional para las mediciones de rendimiento! Ahora, solo puedo maravillarme de la diligencia de ese tipo, haciendo su trabajo a través de los 6000 métodos e insertando fielmente esos comentarios Javadoc en todas partes. OTOH, a) como se señaló anteriormente, el esquema nunca se usó en la práctica,

No quiero decir que todo esto fue culpa de los pobres desarrolladores indios (excepto el mal uso del Javadoc). En mi opinión, es mucho más culpa de los gerentes subcontratar proyectos sin pensar sin monitorear los resultados, realizar pruebas de aceptación estrictas y garantizar la calidad adecuada del código y la documentación. Sin mencionar los esquemas de pago basados ​​en horas que seguramente no hacen que ningún subcontratista esté interesado en ahorrar tiempo de desarrollo.

Sin embargo, creo que sería difícil encontrar desarrolladores en Occidente para llevar a cabo tareas similares con el mismo nivel de consistencia y sin quejas.

También hemos subcontratado tareas de prueba en este proyecto actual a un grupo de probadores indios. Personalmente solo estamos en contacto con uno de ellos, así que no tengo idea de cuántos son en total. Sin embargo, este tipo es una joya de probador, un activo valioso en cualquier proyecto. Además de ser diligente y minucioso, hace muchas preguntas para comprender el panorama general, a menudo prueba incluso más de lo que se esperaba e informa problemas encontrados de manera precisa y descriptiva.

Péter Török
fuente
42
Bueno, solo puedo agradecerte por no generalizar. La generalización nunca funciona.
sukhbir
41
generalización de lol @ sukhbir
Matt Ellen
19
Another potential issue is the culturally ingrained resistance of Indians to say no to any request, as I believe it is considered rude by them.Esta propensión a que los "orientales" siempre digan "sí" se ha observado en otros artículos sobre diferencias culturales entre Oriente y Occidente. Un artículo que leí hace muchos años explicó que cuando algunos orientales lejanos dicen 'sí' en respuesta a una pregunta, su intención principal es implicar que entienden la pregunta, no que necesariamente estén de acuerdo en estar obligados por ella. Ese artículo, de los años 90, apuntaba a las diferencias entre las empresas estadounidenses y japonesas.
oosterwal
2
¿Qué significa OTOH?
David Murdoch
77
Pensé que Europa era un país ...
Dave O.
30

He tratado con tres proyectos que (en su mayoría) fueron "delegados" a recursos extraterritoriales (hemisferio oriental). Uno de los tres casos usaba un grupo (o tal vez solo un tipo, solo trataba con uno, pero no estaba seguro de cuántos otros tenía trabajando) en el este de Rusia. Hicieron un buen trabajo, y el proyecto progresó bastante bien, aparte de la necesidad de trabajar en la interfaz de usuario para solucionar algunos problemas menores con la redacción de las personas en las que el inglés era un segundo (o quizás un tercer idioma).

Los otros dos eran una historia bastante diferente. Ya sea por casualidad o no, en ambos casos los programadores estaban en India. En un caso, esencialmente todo lo que hicieron terminó teniendo que ser tratado como nada más que un prototipo, utilizable (hasta cierto punto) para probar posibles diseños, pero todo lo que escribieron tuvo que ser desechado y reemplazado para obtener el código de nivel de producción. Parecían ejemplificar lo que yo considero la "mentalidad ISO 9000". Mostraron una adhesión casi religiosa a las políticas y procedimientos, pero una falta casi total de conocimiento del problema que se suponía que debía resolverse. Su código bien puede ser el más torpe que he visto.

En el otro caso, el proyecto finalmente se abandonó. Había sido el esquema de cerebro de liebre de un vicepresidente recientemente ascendido, y estoy bastante seguro de que la idea desde el primer día era minimizar el gasto, mientras aún podía decirle que su idea estaba en desarrollo activo. Si bien el código que obtuvimos era completamente inútil, sería difícil culpar mucho al contratista, ya que nunca se hizo ningún esfuerzo para administrar el proyecto o simplemente para obtener una especificación utilizable. Su código comenzó deficiente y la calidad degeneró rápidamente cuando se hizo evidente que a nadie le importaba.

Jerry Coffin
fuente
3
El hecho de que "Nearshoring" se haya inventado como una palabra, indica que la diferencia que encontró entre Rusia e India no es infrecuente. Ver en.wikipedia.org/wiki/Nearshoring
Sjoerd
8
La segunda historia resume mi experiencia en varios proyectos a lo largo de los años con los equipos de desarrollo de la India. No voy a generalizar y decir que TODOS los sistemas que salen de la India son así, pero TODOS en los que he estado involucrado tienen.
ozz
44
@Jerry ¡El este de Rusia está mucho más cerca de los Estados Unidos que el oeste de Rusia!
Kirk Broadhurst
3
+1 para "Mostraron una adhesión casi religiosa a las políticas y procedimientos, pero una falta casi total de conocimiento del problema que se suponía que debía resolverse". Esto es muy cierto .
Vinoth Kumar CM
1
@oosterwal: verifique el perfil "Colorado Springs, CO, EE. UU.", @Jerry: está más cerca de EE. UU. (solo el Pacífico en el medio) pero luego EE. UU. también cubre algunas zonas horarias
Matthieu M.
22

Las personas son personas. Algunos programadores son buenos programadores, algunos programadores son malos programadores. Algunos programadores malos pueden convertirse en buenos programadores con el tiempo, mientras que el tiempo nunca puede beneficiar a otros programadores malos.

La ubicación tiende a no ser un factor aquí. Pero tal vez la oportunidad podría.

Estaba preguntando qué significaban las palabras "Error de sintaxis incorrecta OK" en GW Basic cuando tenía 8 años. Crecí con las computadoras. No todos tienen esa ventaja. Sin embargo, los tiempos están cambiando y los niños de 8 años de hoy tienen más acceso a la tecnología que los de 8 años de ayer.

Pero es importante darse cuenta de que la programación es más que solo saber cómo usar una computadora. Corre mucho más profundo que eso. Estas son algunas características clave que separan a los buenos programadores (y los que solo necesitan tiempo) de los realmente malos:

  • Los buenos programadores son curiosos.
  • Los buenos programadores leen blogs y artículos en línea e intentan aprender más sobre su campo.
  • Los buenos programadores responden preguntas sobre Stack Overflow
  • Los buenos programadores con 1-2 años de experiencia o más entienden que su educación en informática no fue una pérdida de tiempo
  • Los buenos programadores pueden pensar fuera de la caja
  • Los buenos programadores también son buenos líderes.
  • Los buenos programadores son proactivos y no necesitan que se les diga qué hacer.

Lo que es más importante, los buenos programadores también son buenos comunicadores. Los mejores programadores son los que pueden persuadir a otros. Ellos son los que pueden debatir pacientemente un problema con otro compañero hasta que se encuentre una solución.

El mayor desafío es la comunicación.

Cualquiera que sea el desafío, nunca estereotipos tuyos o de otros. Tienes tanto potencial como cualquier otra persona y viceversa. ¡Solo recuerda que puedes hacer cualquier cosa que realmente te propongas!

jmort253
fuente
-1, ya que el error real de GW-BASIC es "Error de sintaxis", no "Error de sintaxis incorrecta". (Además, es broma sobre el -1)
Charles Salvia
1
Aunque me encantaría estar de acuerdo, no estoy de acuerdo con un ejemplo: los buenos programadores son curiosos, los buenos programadores son proactivos y no necesitan que se les diga qué hacer (Correcto, ¿qué tal crecer en una sociedad patriarcal donde la curiosidad es castigada o tienes que le digan qué hacer un senior y que sea proactivo solo cuando no haya otra opción)? Realmente desearía que las cosas fueran como describiste, tal vez en una generación o dos ...
Dimitrios Mistriotis
@Charles - jajaja, mi error de sintaxis tenía un error de sintaxis.
jmort253
@dimitris: si entramos en esta mentalidad ahora y descartamos las excusas, es más probable que alcancemos nuestros objetivos. Hacer excusas basadas en nuestro pasado no nos ayudará a lograrlas.
jmort253
1
@ jmort253: Es una discusión muy grande y podríamos estar fuera de tema. Simplemente creo que es difícil para una persona cambiar el comportamiento de la noche a la mañana o más para comportarse de manera diferente en los paisajes sociales o laborales. No mencioné que ambos enfoques tienen beneficios. Muchas personas que conozco intentan combinarlas haciendo parte del trabajo hacia el oeste y parte hacia el este (según la dicotomía de las preguntas)
Dimitrios Mistriotis
22

Soy un estudiante universitario de 21 años de la India en mis últimos años de cursos de 4 años en Ciencias de la Computación e Ingeniería.

La idea misma de escribir esto era decir que India es mucho más que un centro de subcontratación. Espero que Occidente lo vea así y, en lugar de absorber talento, Occidente debería establecer más centros en India. Hay algo de contenido ofensivo por delante, pero si entiendes el panorama general, entenderás lo que estoy tratando de decir.

La educación en la India se encuentra en un estado muy inquietante con una fuerza laboral producida cada año que no tiene o tiene habilidades técnicas absolutamente horrendas. El sistema educativo no es del todo competitivo en términos de innovación o emprendimiento. Esto ha llevado a nuestro país a grandes vergüenzas, como la reciente computadora de $ 10 desarrollada localmente (que resultó ser una tableta china barata basada en Android, solo mantenida por una empresa india), o un reclamo anterior de otro avance tecnológico (que resultó ser una memoria USB). Los institutos de educación están totalmente desconectados del mundo real de la tecnología y están más interesados ​​en que los estudiantes reinventan la rueda, todo en nombre de la innovación. institutos educativos, todos los odian.

Llegando a lugares donde al menos espera aprender algunas habilidades de desarrollo:

He estado expuesto a algunas instalaciones de capacitación en India, aparte de mis institutos educativos. La programación y el desarrollo de software ocurren en dos niveles, el desarrollo a nivel de aplicación y el desarrollo a nivel de sistema .

Para el desarrollo de aplicaciones, la mayoría de los estudiantes de primer año en India son reclutados en masa por las empresas para reclamar un banco de programadores y obtener más proyectos. Al final del día, hay una calidad comprometida porque el proceso de contratación es completamente estúpido. A veces, el talento se desperdicia haciendo que las personas sean buenas en su trabajo, en cosas estúpidas como crear marcos Java y crear simples interfaces de usuario WinForm y ASP.NET solamente (Estoy hablando de nuevos reclutamientos y como algunos afirman, aunque no estoy seguro). Si no se consideran buenas prácticas de ingeniería de software, ese tipo de codificación puede ser realizado por un alumno de 7º grado.

Pero al mismo tiempo, hay programadores y desarrolladores independientes que tienen un gran interés en las cosas. Son como los héroes anónimos que han perdido toda esperanza y están menos interesados ​​en cambiar el mundo. Todo lo que quieren es sacar el máximo provecho de sus habilidades, por lo que se trata de dinero e ir al extranjero. Mientras que nuestros cursos son sumamente limitadas a software del sistema (programación C utilizando TurboC !!! durante 4 años jodidos, estúpida y vaga C ++ sin conceptos adecuados orientados a objetos utilizando cout en un programa en C ++ no es C, ASM y más programación en C usando gcc), cuando estamos en una empresa, estamos hechos principalmente para desarrollar aplicaciones (ASP.NET, WinForms, J2EE). Básicamente, un ingeniero informático está hecho para hacer el trabajo de un ingeniero de software. Sí, conocer la informática ayuda, pero no conocer la ingeniería de software adecuada obstaculiza demasiado el proceso, y llega a caer en picado todo el sistema. Es un #fail.

Citaré un ejemplo simple. Me uní a un instituto de capacitación para mi proyecto de último año y querían que creara un sitio web ASP.NET que sería algo así como un sistema de inventario (reserva de hotel, CRM ese tipo de cosas). Sí, no es una tarea fácil, pero en mi opinión no vale la pena trabajar en un proyecto. Simplemente reinventará la rueda y estos proyectos son enormes por naturaleza en la vida real. Entregado en 6 meses por un grupo de 3, puede comprender el tipo de sistema inutilizable reducido que resultará de esto. Los institutos no se estresan demasiado y están más interesados ​​en "no asustar al estudiante diciéndoles demasiado" y "dar una visión general y dejar que aprendan el resto por su cuenta". Al final, lo que la gente desarrolla en los proyectos ni siquiera es un prototipo completamente probado,

Tomé mi propio tema, un sistema de navegación en tiempo real guiado por voz. Estoy usando WPF, API de Google Maps y todo lo último en tecnología que puedo. Para una buena práctica de ingeniería de software, estoy usando el control de código fuente, usando MVVM y daré una mirada exhaustiva a cualquier otra cosa que conozca. Tengo 21 años y soy graduado. Supongo que a mi edad, las personas en el oeste todavía están en la fase de aprendizaje y se gradúan más tarde. Eso hace que los graduados occidentales sean mucho mejores y más conocedores. Tenemos cantidad pero no calidad.

En India, el nivel de trabajo que estoy haciendo para mi proyecto generalmente no se espera de un proyecto de pregrado de último año. Pero lo haré porque quiero. Al mismo tiempo, hay otros en mi grupo que se sienten cómodos haciendo un proyecto en ASP.NET, hacen 5-7 páginas, ejecutan consultas de bases de datos, llenan las vistas de cuadrícula y no les importa la seguridad. Demonios, incluso esos sitios web independientes tienen mejores ofertas de trabajo (clon de YouTube, Google instantáneo + X = Y Mashup ...)

Seis meses después, encontrará las mismas personas que trabajan en una empresa a la que externaliza su negocio y también me encontrará allí. La gente les gusta, supera en número a las personas como yo diez a 1 :(

Para ser exactos y no despotricar, en toda mi carrera educativa y en el conocimiento de más de ~ 500 personas, he visto exactamente 4 que tenían el nivel de experiencia que los consideraría para trabajar en un proyecto conmigo)

Finalmente, todos los graduados indios escribirán buena documentación porque es teoría, pero no esperan ningún código infalible de ellos.

En cuanto al software del sistema, el mismo es el caso. Un amigo mío está trabajando con el NDK de Android y está trabajando en un proyecto en vivo en una empresa. Tiene la suerte de tener este proyecto y lo envidio, pero este nivel de trabajo también ocurre en India. Otro estudiante de último año de mi universidad desarrolló un clon Kinect (ratón multitáctil, como en informes de minorías) en su proyecto de último año utilizando solo 2 cámaras web baratas. Igualmente, hay otros que copian códigos de Internet y de alguna manera obtienen un grado reinventando la rueda.

Mi palabra final, no espere una calidad comprometida en toda la India, y no tome a los indios por sentado como mantenedores de software baratos y adecuados para la subcontratación solo para trabajos de mantenimiento.

Además, no espere que alguien que tenga una buena formación académica en términos de marcas escriba un buen software. El sistema educativo de la India está totalmente orientado a la teoría, no hay énfasis en lo práctico, a veces, saber más o la voluntad de saber más puede causarle problemas a los maestros que se sienten intimidados. Sin embargo, los buenos programadores buscan pastos más verdes en una mejor carrera y no solo un buen trabajo, hay otros que quieren conseguir un buen "trabajo", conducir por una ciudad de Honda, comer en China continental y vivir felices para siempre. .

Estoy más en Audi por cierto. :)

revs r3st0r3
fuente
China continental está sobrevalorada, sobrevalorada y (desafortunadamente) aquí :)
aldrin
18

Advertencia, grandes generalizaciones por delante. Los puntos de vista expresados ​​no son compartidos por todos. De hecho, el autor puede que ni siquiera les crea.

Los desarrolladores occidentales tienen miedo de los desarrolladores orientales. Escuchamos una y otra vez que nuestros trabajos eventualmente serán subcontratados. Este es un mal comienzo para cualquier relación. Para empeorar las cosas, se nos recuerda constantemente que nuestras educaciones son inferiores. Los desarrolladores orientales son más baratos, más inteligentes y soportarán más problemas. Nuestra experiencia profesional con los desarrolladores orientales no importa porque está envenenada de miedo.

Roger escaso
fuente
24
En realidad, los desarrolladores occidentales no temen a los desarrolladores orientales, sino a la tercerización gestionada como una simple operación de reducción de costos.
mouviciel
2
que es lo mismo El programador vietnamita de $ 5 por hora es una amenaza directa para nuestro trabajo, porque incluso si necesita 10 de ellos para hacer el mismo trabajo que uno de nosotros, todavía es más barato. O así es como calcula la gerencia, sin tener en cuenta las implicaciones a largo plazo.
Jwenting
8
"Para empeorar las cosas, ¿se nos recuerda constantemente que nuestra educación es inferior"? ¿De dónde has sacado eso? El outsourcing es un hecho de la vida, todas las compañías buscan reducir algunos costos. Los desarrolladores orientales no tienen absolutamente nada que ver con eso. No debe temerles, debe temer a su jefe / cliente que elige externalizar y reducir costos sin considerar el impacto en la calidad. En realidad es al revés, nuestra educación (me considero occidental) es mucho más alta, por lo tanto, nuestro costo es más alto.
Alex
2
@Alex: re. educación. La educación de los Estados Unidos no es lo que podría ser, o lo que fue alguna vez Enseñé CS en Boston College, una escuela de admisión competitiva altamente calificada. Primer programa: convertir Celcius a Fahrenheight, F = C * 1.8 + 32. Ojos vidriosos y miedo alrededor de la habitación. Escribe una propuesta de proyecto. No se puede escribir una oración con puntuación. No se puede deletrear: considera "mucho" una palabra. No tengo idea de cuándo usar "él" y "él", "yo" y "yo", o apóstrofe. Diga "comprender" y "avanzar" como peces gordos. Todos esperan al menos B +, si no A. Solo enseñas a su nivel, y cada semestre obtienes un nuevo lote.
Mike Dunlavey
3
@ apoorv020 (cont.) El problema con este enfoque es que la escuela intermedia / secundaria ha cambiado de un entorno que se supone que debe enseñar habilidades a los estudiantes que los ayudarán a tener éxito, a enseñarles habilidades que les enseñarán a obtener mejores puntajes en los exámenes y hacer que la escuela se vea mejor, impulsando más la enseñanza de conceptos fundamentales a la universidad (devaluando así la educación de nivel superior). Fue un intento miserablemente fallido de aplicar la economía del mercado (es decir, la competencia) al sistema escolar público.
Evan Plaice
18

No puedo hablar por los demás. Esta es mi opinión, con la cual las personas no parecen estar en desacuerdo. Permítanme comenzar con algunos de los hechos tal como los veo.

Primero, hay evidencia de que la mayoría de las personas no están realmente preparadas para el desarrollo de software. (Por ejemplo, la investigación de la IU indica que más de la mitad de la población probablemente nunca "tendrá" la idea de un árbol de directorios). En Occidente, esas personas no tienen problemas para encontrar otros trabajos decentes para los que se adapten mejor. En contraste, en India, hay tanta presión para entrar en el desarrollo de software que de todos modos lo hacen. Esto significa que hay muchas personas en India que se dedican al desarrollo de software y que realmente no deberían hacerlo.

Luego, India es un destino común para la subcontratación. Las empresas hacen esto porque parece barato (los salarios son bajos). Sin embargo, está bien documentado (por ejemplo, ver los factores de costo documentados en el modelo COCOMO II ) que todo lo siguiente aumenta el tiempo y el esfuerzo de desarrollo requeridos: trabajadores en múltiples ubicaciones, trabajadores en múltiples zonas horarias y trabajadores de múltiples culturas. Cualquier proyecto ejecutado en India y dirigido desde Occidente tendrá los tres factores de costo. (Esto es antes de agregar la tendencia a encontrar personas que trabajen como desarrolladores que realmente no deberían serlo).

Finalmente, el mayor desafío absoluto en la gestión de proyectos de software es obtener información precisa sobre lo que no está funcionando para los tomadores de decisiones que necesitan saberlo. Me gusta esta versión humorística de esa tendencia. Por cualquier combinación de razones, ya sea desesperación, cultura o la creencia de que el cliente tiene razón, esta tendencia es peor en los proyectos que se han subcontratado a la India. A veces hasta un grado cómico.

El resultado es que existe una fuerte tendencia para que las compañías estadounidenses sucumban al canto de sirena de los bajos salarios, subcontraten trabajo a la India y luego que los proyectos subcontratados se conviertan en desastres. (Pero la extensión del desastre no es evidente hasta después de que los estadounidenses hayan perdido sus empleos).

La otra forma en que las empresas van es contratar indios en los Estados Unidos con visas H1B. Esto elimina los problemas de los trabajadores remotos. Muchos indios quieren estos trabajos porque los salarios son más altos en los EE. UU., Etc. Y hay indios verdaderamente excelentes para ocupar todos los trabajos disponibles. Pero hay un problema. Las compañías estadounidenses que contratan visas H1B deben jurar que no hay estadounidenses disponibles para el trabajo, que a la persona contratada se le pagan tarifas de mercado, etc. Pero a alguien con una visa H1B le cuesta mucho cambiar de trabajo. Esto le da al empleador un trabajador cautivo. Y no deja ningún incentivo de mercado para tratar a esos empleados de manera justa. Esto brinda a las empresas fuertes incentivos para la deshonestidad. Demasiados sucumben.

Como estadounidense no tengo ningún problema con lo mejor y lo más brillante que viene a los Estados Unidos. Por el contrario, eso es lo que construyó este país. Pero trátalos por igual una vez que lleguen. Por ejemplo, conozco a una persona de Filipinas que, debido a su estado de visa, ha tenido que rechazar ofertas de trabajo de Google, Apple y Facebook. Por casi el doble de lo que está haciendo actualmente. Si se permitiera al mercado fijar los salarios de personas como él, habría mucho menos incentivo para que las compañías intentaran abusar del programa H1B.

Entonces ahí está mi opinión. Por varias razones, los proyectos de subcontratación a la India con frecuencia conducen al desastre. Los que obtienes como trabajadores H1B tienden a ser excelentes, pero ese programa es muy abusado en formas que me entristecen.

btilly
fuente
Por curiosidad, ¿un tipo que tenía ofertas de trabajo de Google, Apple y Facebook?
Htbaa
¿Por qué no puedes cambiar de trabajo mientras estás en H1B? Escuché que existe la cosa llamada "transferencia" y es básicamente una rutina estándar con aprobación garantizada en la práctica.
2
@ developer-art: no conozco los detalles. Pero la persona en particular en la que estoy pensando estaba en el proceso de obtener una tarjeta de residencia, y estaba atascado en su trabajo actual hasta que se borrara la documentación. En su caso, el papeleo lo ha dejado en el limbo durante más de un año y medio, que yo sepa. He conocido a otras personas excelentes que se han topado con problemas del INS y se han visto obligados a irse. Por ejemplo, Abigail de la fama de Perl se encontró con esto a finales de los 90.
btilly
2
@ dev-art: Tu H1b está vinculado a que estés empleado. Podría pensar que cambiar de trabajo, pero si no hay una transición perfecta, su permiso de trabajo caduca automáticamente. Y, por supuesto, si su nuevo trabajo no funciona y lo cancelan durante el período de prueba, es un extranjero ilegal instantáneo con solo unos días de gracia para encontrar un trabajo o abandonar el país.
Jwenting
3
La forma en que algunas corporaciones usan H1B para mantener básicamente a los programadores con correa también me entristece. Conozco a muchas personas que están en esta situación. Cuando está en una H1B, solo puede obtener una extensión (por un total de 7 años, creo), por lo que la mayoría de los trabajadores de H1B están tratando de obtener una tarjeta verde. Muchas empresas ni siquiera comenzarán ese proceso (que lleva años) hasta años después de la contratación. Agregue a eso el hecho de que si un H1B quiere cambiar de trabajo, la nueva compañía tiene que volver a patrocinarlo y puede retrasar aún más la solicitud de la tarjeta verde, los trabajadores de H1B tienen muchos incentivos para quedarse, lo que se explota.
Kaypro II
18

Llevo 3 años trabajando con desarrolladores indios (soy italiano). Las personas son personas. Subcontratamos principalmente porque necesitábamos un equipo, y en Italia es difícil encontrar un equipo, especialmente en idiomas no populares como Delphi. Entonces, la razón principal es encontrar un equipo, no un costo.

De todos modos, el equipo que encontramos fue muy bueno porque tenía un muy buen líder. Pero los otros desarrolladores no eran tan importantes. ¿Que pasó? ahora ese desarrollador trabaja directamente para nosotros, porque es una persona muy amable y se convirtió también en mi amigo. Hay una relación fuerte y también le pagamos casi un salario italiano. ¿Por qué? Porque la relación importa. He visto a muchas personas ir a la India solo para ahorrar.

Tienes lo que pagas. Entonces, por supuesto, puede ahorrar algo de dinero, pero creo que (especialmente para proyectos pequeños) hacer outsourcing solo para ahorrar dinero es una elección incorrecta.

usuario5396
fuente
2
Creo que él hace un buen punto. Si está subcontratando para costar dinero, tal vez esté eligiendo equipos de muy bajo costo. La subcontratación a proveedores más grandes / de calidad tal vez ahorre menos dinero pero tenga más beneficios.
apoorv020
12

En mi opinión, el problema no es Oriente contra Occidente, sino la idea general de la subcontratación. En la segunda mitad de los años 90, el auge de Internet, el Y2K y la conversión de moneda en euros crearon mucho trabajo para los programadores, por lo que la subcontratación era un tema candente en ese momento. Pero se estaba externalizando dentro del país, no hacia el Este. Aún así, muchos de los problemas que esperamos o experimentamos con la deslocalización también ocurren con socios locales de outsourcing.

En muchos casos, escribir una buena especificación es casi tanto trabajo como hacerlo usted mismo (aunque Q&D). Pero dado que el objetivo del outsourcing es ahorrar tiempo y / o dinero, las especificaciones dadas al socio de outsourcing son incompletas. Agregue un contratista pagado por hora y falta de supervisión y está claro lo que tiene que esperar.

usuario281377
fuente
11

He estado viviendo en China por poco más de dos años (soy canadiense) y trabajo con desarrolladores chinos y, curiosamente, trabajo con desarrolladores canadienses en el extranjero. Puedo decir que algunas de las generalizaciones hechas por desarrolladores, al menos chinos, son algo ciertas, es decir, la mayoría de los desarrolladores con los que he conocido / trabajado aquí son:

  • Falta de curiosidad y creatividad. Aquí no creo que sean inferiores o estúpidos. Sino que es cultural. Históricamente se piensa que respetan la autoridad ante todo. Como tal, nunca cuestionarán un mal diseño que se les haya entregado desde "arriba". También muchos de ellos están interesados ​​principalmente en habilidades técnicas en lugar de habilidades de dominio. Me resulta más difícil enseñarles sobre patrones y conceptos abstractos a menos que puedan relacionarse directamente con su trabajo actual. Sin embargo, después de un tiempo, los muros se derrumban, se vuelven más aventureros en desafiar a la autoridad, por lo menos a nivel técnico, no quisiera que me revoquen la visa ;-)
  • Una amenaza Esto se ha mencionado antes, pero enfatizo. Este es probablemente el punto más importante y lo que crea más tensiones en los tratos con universidades en el extranjero (es decir, en Canadá). En general, los occidentales con los que trabajo tenderán a exagerar todos los aspectos negativos de trabajar con orientales. Serán extremadamente duros con las revisiones de código y serán muy indulgentes entre sí. Patearán y gritarán si un pascua pasa por alto una sola supervisión del proceso o de las buenas prácticas, pero ellos mismos patearán y gritarán si se les pide cortésmente que sigan los procedimientos que ellos mismos implementaron.
  • Prescindible , está bien que un chino trabaje con equipos de segunda mano a medio hornear. Rompí tres sillas antes de que me permitieran conseguir una semi cómoda. Luego me sentí mal por conseguir la buena silla al notar que todos todavía tenían lo que parecía un aparato de tortura medieval para sentarse. Sin embargo, al visitar la oficina central de la misma compañía, los desarrolladores allí tenían escritorios que ocupaban el área del piso típicamente ocupada por un equipo de 4 a 6 desarrolladores aquí en China, ¡sin mencionar las sillas!

Al principio, lo que escribieron no siempre fue muy bueno. Existe la división cultural con seguridad, pero también la larga curva de aprendizaje empinada de un sistema mal diseñado para empezar. Pero sabes qué ... después de dos años ... algunos de los mejores trabajos realizados en este sistema provienen de las oficinas chinas. A medida que esto se hace más y más visible, esto exacerba aún más el elemento de amenaza ...

Francamente, no es fácil, pero creo que estoy en el lado derecho de la cerca cuando veo la tendencia desde la experiencia personal.

Newtopian
fuente
44
"Serán extremadamente duros con las revisiones de códigos y serán muy indulgentes entre sí" y "pero ellos mismos patearán y gritarán si se les pide cortésmente que sigan los procedimientos que ellos mismos implementaron". También es cierto según mi experiencia. He visto que esto sucede en muchas ocasiones.
Mugen
@Mugen: advertiría que ciertamente veo esto con cualquier relación vendedor-cliente. Es posible que las cosas se hagan de manera interna y de baja calidad, pero tan pronto como se subcontratan, ahora el cliente puede exigir un cumplimiento estricto de la especificación, y lo hacen. Lo he visto en la fabricación, no solo en el desarrollo de software
Scott Whitlock, el
@Scott De acuerdo. Lo he visto allí también.
Mugen
9

Este es un tema fascinante. He trabajado en SF y Silicon Valley, pero también en Europa para clientes locales, establecí una oficina offshore en India y ahora dirijo una tienda de desarrollo offshore en Sudamérica. Incluso he trabajado un poco con desarrolladores africanos.

Cada región del mundo es capaz de producir grandes programadores. Tengo un amigo pirata informático en Malawi que construye increíbles rieles de interfaz táctil respaldados por sistemas de código abierto para clínicas de VIH, utilizando y contribuyendo a proyectos de código abierto de maneras importantes.

También he visto a programadores estadounidenses que trabajan en nuevas empresas de marca y grandes empresas web que no podían programar salir de una bolsa de papel. Las personas con maestría en ciencias de comp. Del MIT y años de experiencia en la industria, que cuando se trataba de escribir un buen código de producción, no podían cortarlo.

Existen diferencias culturales muy reales entre Europa, América Latina, Estados Unidos e India. Luego está la cultura hacker, que es más o menos universal.

A la comunidad tecnológica india dominante le gusta lanzar a la gente al problema. La tarifa por hora por desarrollador puede ser menor, pero si el proveedor cree en la cantidad sobre la calidad, necesitará el doble de desarrolladores para ejecutar el código.

Certificaciones ¿Que demonios? India adora las certificaciones, ISO, CMMI, etc., sigue y sigue. No tiene sentido cubrir el culo. Más aún, no es cómo se desarrolla un buen software.

El sistema de castas. El sistema de castas es ilegal en la India, y desde la independencia ha habido un tremendo trabajo para eliminarlo, pero sigue siendo una bestia viva que respira. La mayoría de los occidentales ignoran la existencia del sistema de castas. Crecí en los EE. UU., Pero mi padre nació en la India, angloindio como se llama, y ​​mi madre fue a la universidad allí como estudiante, y luego volvió a enseñar mucho más tarde en las universidades indias. El sistema de castas es muy real, proviene de la India y es antiguo, pero los británicos lo alentaron y lo usaron para mantener el poder. Los occidentales necesitan saber que tomarán el lugar de los británicos, en la cima de la jerarquía. Lo llamarán señor, no lo interrogarán. La mayoría de los gerentes indios ven su papel como decirles a sus subordinados qué hacer. Hablar de nuevo y ofrecer alternativas es castigado.

No todas las tiendas de desarrollo de la India son así, Zoho ha construido un negocio indio increíble al romper todas las reglas. Contratan en función de la capacidad, no de la casta, o de la certificación universitaria que tenga. Al hacerlo, han puesto en marcha un reemplazo completo de SaaS para MS Office Suite.

También hay una vibrante comunidad de hackers en la India con reuniones, listas de correo, pequeñas conferencias y similares. Estos desarrolladores son de clase mundial. A menudo les resulta difícil conseguir trabajo dentro de la industria de desarrollo de software de la India. Yo mismo encontré dos desarrolladores de Python para nuestra oficina india, fueron geniales, y luego nuestro gerente indio insistió en contratar una docena de nuevos graduados para completar el equipo. Después de unos meses que los piratas informáticos renunciaron, su gerente había hecho de sus vidas un infierno. Nos quedamos con una docena de empleados jóvenes y entusiastas, la mayoría de los cuales no sabían programar muy bien.

La mejor de las estudiantes de primer año fue una joven que había creado un IDE para desarrolladores en sistemas integrados. Nadie quería contratarla porque provenía de una familia conservadora y los indios pensaban que se vería obligada a renunciar a su trabajo una vez que se casara.

Hay grandes desarrolladores en la India, pero la estructura de valor está configurada para expulsarlos y promover a las personas en función de cosas que no tienen nada que ver con la creación de un gran código.

El otro gran problema son las zonas horarias. No es una ventaja, es un gran problema. Significa que no existe una comunicación directa constante entre el sitio y los equipos offshore. Esto causa grandes malentendidos y te obliga a escribir una gran cantidad de documentación. Hace que Agile sea muy difícil de lograr.

La triste verdad es que una gran cantidad de software producido por corporaciones indias es de baja calidad. Escuchas a los desarrolladores hablar todo el tiempo sobre cómo los ingenieros indios son una mierda, no es cierto, pero es un reflejo de la calidad de las grandes compañías tradicionales offshore. Es culpa de la cultura empresarial en India, no de los propios desarrolladores. Los desarrolladores están atrapados en un mal sistema que recompensa las cosas equivocadas.

chusma
fuente
se basa en parte en la gestión, pero si no hubiera una gran cantidad de desarrolladores malos en esas grandes empresas (que sin duda son la fuente principal del software malo) no habría grandes cantidades de códigos malos que se filtren a los EE. UU. y Europa desde ahí. Por supuesto, la administración, como usted dice, perpetúa el problema, tal vez incluso lo alienta, pero no son ellos quienes escriben ese código incorrecto.
Jwenting
1
Pero estas personas que no pueden programar, no serían contratadas si no hubiera un problema de gestión. Las compañías indias solo dirían, mira, estamos reservados, el próximo cliente llega a una tasa más alta. Es uno de esos, se niegan a decir nada. La gerencia dice que sí, y atribuye un carácter cálido al código que no tiene la capacidad de codificar.
chusma
1
+1. Publicación interesante Creo que su afirmación de que los verdaderos piratas informáticos están marginados y pueden tener dificultades para conseguir trabajo en la India es deprimente pero terriblemente plausible, lamentablemente.
Faheem Mitha
8

He experimentado varios proyectos deslocalizados a Asia (diferentes países que no mencionaré). TODOS fueron fracasos tristes. A pesar de que se envió documentación abundante y detallada, documentos de especificaciones, etc., etc. sobre el resultado (si se produjo algo) fue uniformemente pobre. Por lo general, no funcionaba en absoluto o era tan marginalmente funcional como para ser inútil. Los proyectos también fueron (si produjeron resultados entregables) muy tarde.

OTOH He trabajado con programadores asiáticos y otros que trabajan en Europa y los EE. UU. Y la mayoría de ellos son personas buenas y trabajadoras que conocen bien su trabajo.

Tal vez una declaración de varios de ellos de que todas las buenas personas de TI abandonan Asia para trabajar en Europa y América lo dicen todo. Lo que queda es la parte inferior de la pila, con poca o ninguna gente de calidad para proporcionar supervisión, capacitación y liderazgo de equipo para mejorar. Habiendo tenido que tratar con personas asiáticas de TI que viven allí (al menos desde algunos países) por teléfono y correo electrónico (y ver entrevistas en televisión, etc.) también puede haber una cultura involucrada. Muchos parecen considerarse racial y moralmente superiores a los estadounidenses y europeos (y consideran a los que dejan a sus países como traidores) y se niegan a escuchar los consejos de quienes consideran seres inferiores. Ciertamente, esto no es cierto para todos los países asiáticos, pero puede estar lo suficientemente extendido como para crear una atmósfera de "sabemos mejor,

La situación en Europa del Este es mejor, quizás en parte porque muchos de esos países son parte de la UE, por lo que existe una mayor amenaza de acciones legales exitosas contra ellos si se equivocan.

jwenting
fuente
8

Contundente y cínico:

  • Más barato
  • Una amenaza
  • Falta de apreciación de que intercambias monos de código local por gerentes de proyecto y analistas más caros para establecer contacto con los equipos offshore
  • Las partes interesadas obtendrán lo que pidieron debido a su incapacidad para cumplir un requisito conciso e integral. Esto no será lo que querían. Las partes interesadas quieren conocimiento local ...
  • ... pero está marcando la casilla para la alta gerencia de TI porque está de moda / popular / KcKinsey dijo / no entiendo a los desarrolladores / ...
gbn
fuente
¿Posiblemente sintieron que no cumplía con los criterios para una buena respuesta? Es alto en opinión pero bajo en hechos y experiencia de apoyo. No creo que nada de lo que digas sea incorrecto, no creo que lo apoyes bien y está muy sesgado en una dirección, ninguno de los cuales está en el espíritu del sitio. De todos modos, no es mi voto negativo, pero creo que si tomas esto en cuenta sería una mejor respuesta. Si quieres, estoy feliz de hacer las ediciones por ti porque entiendo de dónde vienes (excepto posiblemente los puntos 3 y 4).
Jon Hopkins
@ Jon Hopkins: lo suficientemente justo. La pregunta se hizo "¿Tienes alguna idea u opinión generalizada sobre los programadores del Este". Lo he actualizado.
gbn
solo porque son generales, no significa que no puedan ser compatibles. En términos de dónde trabaja, tengo amigos que trabajan en finanzas y todo lo que escucho dice que ha sido el hogar de muchos de los proyectos de outsourcing peor manejados.
Jon Hopkins
7

En mis 10 años en IBM trabajé con programadores de todo el mundo en una variedad de relaciones. Lo primero que aprende es que los estereotipos geográficos están mal, a ambos lados del océano. Los programadores son programadores de todo el mundo ... elija 100 de ellos desde cualquier lugar y obtendrá aproximadamente la misma proporción de personas que no podrían programar hello world sin un viaje o tres a google, personas que son decentemente competentes y personas que son brillantes .

Dicho esto, las generalizaciones geográficas del clima de negocios en algunas de esas áreas son precisas. La India, por ejemplo, se parece mucho a Austin, TX o Silly Con Valley a fines de los 90 y principios de la década de 2000 ... muchas puertas de trabajo y puertas giratorias, gente yendo y viniendo cada año más o menos. China, por otro lado, se parece mucho más a la Silicon Prairie aquí en el medio oeste de los EE. UU., La gente elige una empresa y se queda allí por un período de tiempo más largo. Brasil, Rusia y Europa parecían estar en algún lugar en el medio, no tanto como para quedarse un período de tiempo medio, sino que parecen tener una mezcla de los dos, algunas personas saltando de trabajo, algunas personas instalándose.

cabbey
fuente
5

Pertenezco al mundo oriental y también tengo experiencia en el trabajo de outsourcing de mi empresa al mundo oriental nuevamente :-) Mi empresa no quería invertir en sus propios recursos para hacer el trabajo, a pesar de toda la ayuda que podíamos ofrecerle. el Outsourcer el proyecto falló. Fue frustrante trabajar con algunos de estos ingenieros, creo que los modelos de outsourcing y la experiencia técnica pueden madurar más en el Este para mejorar. Habiendo dicho eso, he trabajado con muchas personas en el mundo occidental que también pueden mejorar. Encuentras programadores buenos y malos en todo el mundo.

Friki
fuente
66
+1:You find good and bad programmers across the globe.
oosterwal
4

Yo vivo en europa central La ola de outsourcing nos superó durante los últimos años. He trabajado en proyectos subcontratados de "Occidente", pero hoy en día los proyectos subcontratados aterrizan en países más baratos. Así que he estado en ambos lados de la ecuación.

Cuando éramos subcontratados, nuestros gerentes y los chicos con los que trabajábamos a diario eran amables, nos trataban como un desarrollador interno. El resto de la gente podía sentir una leve preocupación por la seguridad laboral, lo que yo consideraba perfectamente normal. Además, obtuvimos las tareas de segundo orden en un proyecto más grande, lo cual también está bien para mí, no debe externalizar su experiencia principal.

Luego, los proyectos se trasladaron a territorios más baratos, lo cual era inevitable.

La conclusión de toda la historia del outsourcing es que la gerencia no le importa un comino sobre su conocimiento, experiencia, educación o know-how. Todo lo que les importa son los costos y su bonificación. Entonces, a menos que haya una razón por la cual se necesita su presencia local, los proyectos de software se externalizarán eventualmente a países cada vez más baratos.

Karl
fuente
4

Vivo en Rusia, Siberia y trabajo para una compañía médica alemana que nos subcontrata proyectos. Supongo que es un poco más que outsourcing: hemos compartido equipos entre Rusia y Alemania, tenemos viajes de negocios entre nosotros, etc.

Por supuesto, soy subjetiva, pero creo que somos un ejemplo de outsourcing exitoso: la calidad del código y la calidad del producto está aumentando significativamente desde que comenzamos a trabajar en él.

Es un poco decepcionante ser una fuerza laboral barata, pero por otro lado tenemos la oportunidad de trabajar para una gran empresa con una gran experiencia en tecnología y gestión.

SiberianGuy
fuente
4

Descargo de responsabilidad: soy indio y esto puede parecer una opinión india, pero he trabajado con muchos clientes occidentales e incluso en EE. UU. Si el hemisferio oriental tuviera los peores programadores del mundo, ¿por qué el hemisferio occidental externalizaría al este? Si subcontratas a partes del este del mundo solo para ahorrar dinero, estás, en mi opinión, comprometiendo la calidad. Bueno, rápido y barato, elige cualquiera de los dos. Cuando tengo que contratar a un tipo, le pregunto a mi organización cuáles son sus expectativas y cuál es el precio que están dispuestos a pagar. Es realmente difícil convencer a un hombre talentoso y estimado para que trabaje para usted por un salario menor y más presión. Son solo esos sitios independientes combinados con desafortunados tipos occidentales cuyos trabajos fueron Bangalore-d que resultaron en programadores orientales que son monos en código. Si está listo para pagar un mejor precio, se asegurará un mejor resultado, y no sigas ese tipo de empresas de servicios ISO / CMMI / SEI. Contratan talentos como si estuvieran criando un rebaño de ovejas o ganado.

Kumar
fuente
3
"Si se externaliza a las partes orientales del mundo solo para ahorrar dinero, IMO compromete la calidad. Bueno, rápido y barato, elija cualquiera de los dos". A menudo, los que tomar la decisión de externalización no sabe o se preocupan por la calidad, siempre y cuando consiguen algo que funciona por un tiempo barato ...
jwenting
1
Entiendo. Y los que toman decisiones son gerentes, si un gerente no conoce o entiende el triángulo del proyecto, él / ella es incompetente. Idealmente, su incompetencia no debe dar lugar a un estereotipo, sino que las condiciones NTP ( en.wikipedia.org/wiki/Normal_temperature_and_pressure ) solo existen en los laboratorios, no en el mundo real.
Kumar
2
"¿Por qué el hemisferio occidental externalizaría al este?" - Porque las personas que toman las decisiones no están realmente en la mejor posición para tomar buenas decisiones. Estamos hablando de gerentes de nivel ejecutivo con niveles de comprensión de resumen ejecutivo, preocupaciones con presupuestos y dinero, y horizontes temporales a corto plazo.
Kaypro II
@Cosmic ¡No veo a Google, Yahoo !, AOL o MS quejándose de la mala calidad de los programadores, contratan a los mejores talentos y obtienen lo mejor de ellos, contratan a la basura sin importar el este o el oeste y tú obtienes basura.
Kumar
@ Kumar Estaba tratando de responder a tu pregunta de por qué alguien contrataría programadores malos en primer lugar. Probablemente debería haber dejado eso más claro. No sé cómo se diría si Google o MS se estuvieran "quejando" en este caso. ¿Estamos hablando de personas del tipo CEO que hacen declaraciones públicas, o personas de nivel de línea con experiencia personal? Google y MS también son compañías excepcionales, y creo que es difícil generalizarlas. Creo que la decisión típica de subcontratación (onshore y offshore) se toma por razones de costo con poca atención o comprensión de la calidad.
Kaypro II
4

Soy un estadounidense que actualmente vive en el extranjero (en Rusia) y que trabaja como empresario (y como profesional independiente para pagar las facturas). Trabajé en Silicon Valley como desarrollador, líder del equipo técnico y arquitecto de software / sistemas durante más de 20 años para numerosas empresas y startups, algunas muy conocidas, incluida una startup que finalmente se convirtió en una importante multimillonaria dominante en la industria. Corporación internacional. Esta última corporación (llámela "X") tiene centros de desarrollo en todo Estados Unidos y el mundo: India, Rusia, China, Europa, etc. Trabajé directamente con miembros de algunos de estos equipos, y descubrí que tenían mucho talento y dignos ingenieros. Asertividad y creatividad Estoy de acuerdo en que tienden a ser un tipo de personalidad de ingeniero más estadounidense en este momento,

  • El outsourcing es muy claro sobre el dinero. Cuando salí de los EE. UU., X no estaba contratando en los EE. UU., Sino contratando en oficinas internacionales. X paga a los ingenieros no estadounidenses aproximadamente 1/4 a 1/3 (depende de la región) del salario de un ingeniero estadounidense equivalente (años de experiencia, habilidades). Lo que sigue siendo un salario bastante bueno, generalmente considerando las economías de algunas ubicaciones fuera de los Estados Unidos, pero esto no es bueno para la tasa de pago, la existencia misma de puestos de ingeniería en los Estados Unidos.

  • Creo que trabajar independientemente es el futuro del trabajo informático, especialmente el software. Por su propia naturaleza, es altamente portátil, todo lo que necesita es una computadora portátil y una conexión a Internet y está en el negocio. Siempre hay un caso para los equipos internos en el sitio: programación más confiable, conjuntos de habilidades predecibles, etc., pero son muy costosos de mantener.

  • Veo publicaciones bastante frecuentes y arrogantes aquí de ingenieros de EE. UU. Sobre cuán terribles son todos los desarrolladores no estadounidenses (consulte, por ejemplo, este hilo: https://stackoverflow.com/questions/209170/how-much-does- es-cuesta-desarrollar-una-aplicación-iphone) El estereotipo es que sí, son baratos, pero siempre también están descalificados y escriben códigos malos. Que la única forma de obtener calidad es pagar las tasas de pago de los Estados Unidos a los ingenieros estadounidenses. ¡Majaderías! Los ingenieros estadounidenses deben despertarse: la industria y la economía se están alejando de los desarrolladores internos muy bien pagados a los equipos de desarrollo distribuidos repartidos por todo el mundo. Claro que hay malos desarrolladores que no son de EE. UU., Pero solo piense en todos los entrevistados de EE. UU. A quienes transmitió porque no estuvieron a la altura. Algunos de los códigos absolutamente más atroces que he tenido que ver o en los que he trabajado fueron escritos por un ingeniero interno de EE. UU., ¡Quien se negó a cambiar o mejorar! El hecho de que algún desarrollador de elance aleatorio haya hecho un trabajo horrible no significa que todos los ingenieros no estadounidenses sean terribles. En lugar, ese cliente de elance debería mirar un poco más allá de los postores inferiores, hay verdaderas joyas, incluso los mejores desarrolladores, disponibles con un gran descuento en las tarifas internas de los EE. UU. En este momento en particular, te concederé que hay mucho talento concentrado en los EE. UU., Pero cualquiera que piense que esto nunca cambiará está muy engañado.

  • El talento y la experiencia cuestan más que la falta del mismo, te lo concederé. Pero la cuestión es que la escala salarial de los empleados internos de EE. UU. Está muy fuera de control con la del resto del mundo. Hay un continuo dinámico de talento / costo en constante movimiento, y el talento ambiental de fondo de los ingenieros no estadounidenses solo aumentará, lo que ejercerá una fuerte presión a la baja sobre las tasas de pago de EE. UU. Y la existencia misma de pagó puestos de ingeniería internos en los Estados Unidos (recuerde: X está contratando internacionalmente, pero no en los Estados Unidos. La escritura está en la pared). Por lo tanto, los más talentosos siempre podrán cobrar más que los menos talentosos, pero puede estar seguro de que no será a las tarifas actuales de EE. UU.

  • La concentración de talento en todo el mundo va a cambiar absolutamente, al igual que la ubicación física de los equipos de desarrollo ya ha cambiado. Los niveles de talento no estadounidenses seguirán subiendo, y en un futuro no muy lejano volveremos a mirar estos hilos y pensaremos "de qué estaban hablando, puedes encontrar los mejores talentos en cualquier parte del mundo".

Bogatyr
fuente
Ah sí, pero todos esos malos entrevistados fueron rechazados. Si subcontratas a una consultora, obtienes a quien contrataron, ¡y contrataron a prácticamente cualquier persona para obtener el personal para venderte! Creo que este es el problema final, no se trata de desarrolladores buenos o malos, sino de no tener ningún control sobre qué desarrollador realmente obtienes.
gbjbaanb
De ahí la importancia de encontrar una consultoría buena y confiable, y eso no es barato. Asimismo, cabe destacar que en el caso de algunos de los grupos de consultoría que he trabajado, de hecho, el cliente hace entrevistar a los desarrolladores potencialmente asignados al puesto de trabajo.
Bogatyr el
4

He trabajado tanto en la parte oriental como occidental del mundo y pensé en compartir. Había trabajado en Bangalore durante 5 años antes de mudarme a los Estados Unidos. Trabajó en los Estados Unidos durante aproximadamente 8 años y regresó a la India. Me forzaron a sentarme en casa porque los trabajos son demasiado exigentes aquí. Con 2 niños pequeños era imposible pasar esas largas horas. Finalmente encontré un trabajo a tiempo parcial. Me sorprendió ver la calidad del trabajo en la India. No fue tan malo cuando nos fuimos a EE. UU. La gente joven simplemente no parece tener ninguna responsabilidad o entusiasmo para aprender nuevas tecnologías. Como alguien señaló, decir 'no' es raro (un golpe a su ego, IMO) y, como resultado, verá un trabajo totalmente inútil o mediocre. El código no es legible, no tiene idea del panorama general, no hay posibilidades de expansión, etc. Para cuando entrenes a un chico (s), él está listo para dejar de trabajar para un pasto más verde. Dicho esto, todavía diría que hay algunos excepcionalmente buenos. Si trabaja con él / ella, considérese afortunado, ¡especialmente si esa persona puede comunicarse bien!

usuario18244
fuente
3

Si la calidad del trabajo es deficiente, quizás no sea tanto que miren a la India, sino que miren a quien haga la mejor oferta, y es probable que no sean personas como Prasoon Saurav, sino algún equipo de programación junior.

CashCow
fuente
y esto es cierto con la subcontratación a empresas que emplean personas en el mismo país que el solicitante
usuario151019
si y no. Debido a que las empresas en el mismo país que el cliente tienen que tener más cuidado con los problemas de calidad (debido a la amenaza más seria de una acción legal exitosa contra ellos si hacen un desastre), los problemas tienden a resolverse mejor que persistir. Esto no tiene nada que ver tanto con India como con tratar con compañías en países lejanos que no tienen vínculos legales fuertes con los suyos (podría haber sido Burundi o Equador en lugar de India, el mismo resultado).
Jwenting
3

He trabajado con grandes programadores offshore, pero no fueron escandalosamente baratos de contratar. También he trabajado con programadores offshore muy económicos, y no fueron geniales.

Siempre me pareció que los grandes programadores en el este probablemente encuentren una forma de recibir el pago tanto o casi tanto como los grandes programadores en el oeste; tal vez lanzan su propia compañía, tal vez obtienen una visa, todo lo que pueden. Pero tenderían a encontrar un camino, ¿verdad?

Al buscar un equipo de programadores dispuestos a trabajar de manera extremadamente económica, no esperaría obtener talento de primer nivel. Es cierto sin importar dónde viva tu talento.

Caos P
fuente
3

Soy de suiza He trabajado en un proyecto donde subcontratamos a Ucrania. Los desarrolladores eran mucho más baratos, pero el dinero que ahorramos tuvo que reinvertirse en volar nuestro equipo a Ucrania cada dos meses para supervisar a este equipo cercano a la costa. El proyecto murió aproximadamente un año después de ser subcontratado.

Ahora estoy trabajando en un proyecto que se subcontrata a una empresa suiza, que se acercó a Marruecos. El proyecto está en camino, pero tenemos problemas de comunicación y problemas de calidad.

Creo que el principal problema es que tenemos un proyecto offshore para construirlos más baratos. Siempre es difícil conseguir cosas más baratas pero de la misma calidad ...

Guillaume
fuente
2

Muy sin rodeos, y muy en general, no creo que los programadores en 'el oeste' tengan altas opiniones de los programadores en 'el este'. No estoy seguro de si esto está justificado o no.

Como sugieren algunas respuestas, la subcontratación es una amenaza para muchos en 'occidente'. Esta es una razón automática para desconfiar de los programadores 'rivales'.

Solo he visto códigos incorrectos al mirar proyectos subcontratados, y solo un pequeño número de veces. Esto podría deberse a que el trabajo fue a una tienda barata ("obtienes lo que pagas"), porque el proyecto estaba mal administrado, o muy probablemente porque si el proyecto fue exitoso, entonces no necesitaría mirar el código. En otras palabras, solo escuchas sobre el código incorrecto.

También hay historias de terror, como el archivo de 30000 líneas anterior. De nuevo, cuanto peor sea la historia, más se extenderá.

La gente dirá cosas como 'Si quieres que sea barato, terceriza. Si quieres que se haga bien, hazlo internamente.

Si estás aprendiendo y mejorando, no me preocuparía demasiado.

Kirk Broadhurst
fuente
2

Descargo de responsabilidad: no tengo ninguna experiencia directa con la contratación externa. A continuación, presento algunos puntos que surgieron cuando discutí el tema con un gerente de proyecto en una gran compañía de software occidental. Este tipo ha pasado mucho tiempo en India, supervisando equipos subcontratados.

  • Casi nadie tiene una computadora en su casa (demasiado cara).
  • Falta la educación de TI en India. Los títulos de licenciatura en CS se otorgan a estudiantes que nunca han tocado una computadora (nuevamente, es demasiado costoso darles acceso a las computadoras a los estudiantes de nivel inferior). Las tareas de programación están escritas en papel.
  • La mentalidad de "siempre decir sí" es muy perjudicial
  • Los programadores indios necesitan que se les diga exactamente qué hacer. Hay muy poca iniciativa.
  • El desarrollo de software de outsourcing a India ha sido un desastre
  • La externalización de algunas tareas de control de calidad ha funcionado bien.
  • Varios:
    • La electricidad es muy irregular
    • India es más o menos un estado policial
    • India parece ser políticamente inestable y tiene un problema de terrorismo.
    • Dada una opción, nadie elegirá vivir en India.
usuario18213
fuente
2

Algunas de las compañías de TI más grandes del mundo están en India, si escuchaste de Wipro, Infosys, TCS, etc. Las compañías indias más grandes, a las que la mayoría de los "profesionales del software occidental" nunca podrían permitirse en el extranjero, calificarían fácilmente como las mejores en calidad del mundo. . Obtienen todos los certificados bajo el sol con respecto a la calidad solo para calmar los temores de los clientes occidentales. También hay más ingenieros (título y experiencia) en la mayoría de las empresas de software de la India que en la mayoría de las empresas occidentales. También Google, Oracle, IBM, Microsoft, SAP tienen centros de desarrollo y no todos están buscando programadores baratos.

Entonces, ¿cómo vemos a los ingenieros occidentales? Vemos una bolsa mixta como tú ves una bolsa mixta cuando miras hacia el océano. Hay personas súper técnicas calificadas a quienes admiramos y hay imbéciles con quienes a veces nos vemos obligados a trabajar. En general, nos llevamos muy bien en equipos mixtos. La relación realmente apesta si tienes gente de negocios "técnicamente orientada" en el extremo occidental y solo programadores en el otro extremo. Por lo general, esta es una empresa occidental que carece de dinero y que busca ahorrar algunos dólares al no contratar a un gerente local.

usuario18189
fuente
"fácilmente calificaría como la mejor calidad del mundo" [cita requerida]. En serio, tener algunas certificaciones ISO no significa que realmente consigas construir software de alta calidad.
wds
correcto. Wipro es una de las principales fuentes de proyectos de desastres.
Jwenting
2

Mi experiencia con la subcontratación a países orientales (no a Europa oriental) ha sido bastante mala. Todas las aplicaciones que he visto han sido horrendas y solo parecen un montón de códigos no relacionados mal pegados para apenas hacer el trabajo que se supone que debe hacer.

No creo que esto se deba a que los nuevos programadores orientales sean peores que los nuevos programadores occidentales, creo que se debe a que los programadores orientales no tienen programadores experimentados para guiarlos. En el mundo occidental, trabajar con lenguajes de programación modernos ha sido una profesión común durante ~ 45 años, por lo que hay muchos programadores experimentados con los que trabajarán nuevos con los que puede aprender. ¿En el este la programación moderna ha estado sucediendo para qué? 10-15 años? Hay una verdadera falta de experiencia para que la gente aprenda. Además de eso, creo (como lo veo desde aquí es) que con la mayoría de los programadores en el este que se subcontrata el trabajo, recogen muchos rasgos negativos donde el objetivo es solo lograr el proyecto esto se hace rápidamente cortando esquinas, que es una experiencia que no deberías transmitir a los nuevos desarrolladores. Al menos en los EE. UU., La mayoría de los trabajos de programación han sido para personas que trabajan en un conjunto limitado de productos que deben soportar con el tiempo. Entonces, la gente ha aprendido técnicas para garantizar que el software sea estable y seguro ... esta es una buena experiencia para transmitir a la nueva generación.

Así que sí, básicamente no lo veo como algo que tenga que ver con la cantidad de escolaridad que recibe una persona en cualquier lugar, tiene que ver con los hábitos adquiridos en el trabajo. Hay muchos buenos programadores por ahí (aunque creo que están bien en minoría), pero no creo que sean ellos con los que los occidentales interactuaremos cuando los proyectos se subcontraten.

En cuanto a los europeos del este, tienen los desarrolladores experimentados por ahí. Solo tengo miedo de que puedan eliminarse gradualmente para satisfacer las demandas de la subcontratación.

usuario18458
fuente
2

@giddy, Peter: Como programador originario de India, tendré que admitir la verdad, triste como es, de tus declaraciones: programar en India no es algo que las personas elijan por elección, sino por compulsiones. ellos sociales o económicos. Esa es una razón por la cual es muy común en la India encontrar personas que se alejan rápidamente de los trabajos técnicos a los puramente gerenciales (en realidad se llama "subir la escalera", una frase que he detestado). Incluso si desea seguir creciendo como técnico, se le imponen roles gerenciales (esa es una razón por la que decidí mudarme de la India, en realidad).

Por razones que están más allá de mí, el crecimiento profesional se equipara con la cantidad de personas que trabajan para usted o, para ser más precisos, bajo usted. "Soy responsable de un equipo de x" o "x personas trabajan debajo de mí" es una declaración que se considera digna de una persona "exitosa" en India (no importa que las "x personas" sean las que produzcan el tipo de código al que otros han hecho referencia en este hilo).

Habiendo dicho todo eso, me gustaría señalar que la mala calidad del código no es algo que se limita solo a la India u otros países de "bajo costo". A veces veo actitudes familiares y calidad de código incluso aquí en Europa. Afortunadamente, no son la regla general.

JamieJag
fuente
2

He tenido experiencias mixtas con la deslocalización de nuestro trabajo y simplemente trabajando con compañías offshore en general. Como referencia, vivo en los Estados Unidos.


El malo

Trabajé en una empresa que contrató a una empresa en India, que había sido evaluada por CMMI 5 y funcionaría a bajo precio. La compañía les dio un software de cliente para escribir desde cero, y cuando regresó, el código tenía errores, estaba completamente indocumentado y, en general, era difícil de refactorizar y mantener. La compañía terminó escribiendo a todo el cliente desde cero y se hizo cargo del costo de la deslocalización.

En otro caso, una compañía en la que trabajé se asoció con una compañía en Asia para introducir sus servicios y productos en los mercados orientales. Lo que sucedió fue una historia secreta que solo unas pocas personas sabían (y yo por poder) donde la compañía asiática tomó nuestro código fuente y diseños de productos, rompió la sociedad y luego lanzó sus propios productos que eran los mismos que los de mi compañía.


La media-ish

En otro caso, una compañía en la que trabajé abrió una oficina de investigación en China, un lugar muy moderno, tenían cosas más elegantes en su oficina que yo en la mía. Me enviaron a la oficina de China durante una semana para recibir capacitación, ya que las instalaciones de I + D se utilizarían para desarrollar Linux a medida. El equipo tenía algunas personas que eran bastante buenas, pero como es el caso de los desarrolladores de esa talla, se fueron muy pronto después, y el equipo restante escribió una API para que la usemos aquí en los Estados Unidos. Llamaré a la API completamente mala porque no mostró comprensión de Linux, y el código fuente subyacente era bastante inestable en el mejor de los casos. Pero creo que el gran problema fue que la compañía eligió un equipo extraño para que también trabaje con Linux, ya que nadie en ese equipo era un experto en Linux, y ese proyecto fue descartado un año después.


El bueno

En otros casos, otra compañía con la que estaba contratado trabajaba para una compañía en Europa del Este. Esos tipos eran realmente buenos, fueron contratados para hacer pruebas de vulnerabilidad y, aunque en realidad eran bastante caros, generalmente se los consideraba una inversión digna.

También trabajé con una empresa de servicios de TI india bastante gigantesca, y tuvimos desarrolladores internos que fueron empleados por ellos pero que nos contrataron. Hubo varios buenos desarrolladores allí, pero esa es una historia más general ya que todos trabajamos juntos en varios proyectos.


Estas historias son divertidas: he trabajado con varias empresas y tengo historias sobre empresas nacionales y extranjeras.

Para algunas de las empresas, la comunicación siempre fue la parte difícil. Trabajo en horario del este, y estaríamos hablando con personas 10 a 13 horas antes que nosotros. También íbamos solo a través de la administración, no hablando con los desarrolladores reales, por lo que hubo una desconexión allí.

También conocí desarrolladores que simplemente no disfrutaron de su trabajo. Teníamos un desarrollador coreano que quería venir a los Estados Unidos a trabajar porque trabajaba horas serviles por un salario bajo para una compañía de defensa en Corea. Fui compañeros de trabajo con un desarrollador (también extranjero) que lamentaba sus elecciones para convertirse en desarrollador, lo hizo para tratar de ganar millones.

birryree
fuente
The company ended up just writing the entire client from scratch and ate the cost of the offshoring.. Tuvimos este problema dos veces.
Olivier Pons
2

¡Interesante! Soy chino y creo saber por qué los programadores aquí carecen de curiosidad y creatividad. La mayoría de mis compañeros de trabajo se quejan todos los días, odian la codificación, no les gusta el diseño, simplemente cotillean aquí y allá (es parte de nuestra cultura). Acuden a las compañías de software solo por un salario más alto (en países en desarrollo, los chicos de TI están bien pagados), no por "salvar el mundo" o hacer una diferencia. ¡Sin intereses, sin motivación, sin curiosidad y sin creatividad! Pero hay cabezas inteligentes (como yo ^ _ ^), hacen trabajos de calidad y entregan a tiempo.

usuario19025
fuente