Mis 6 años de experiencia en outsourcing: India, China y Filipinas

(Destaca esas cosas sobre programadores)

Cero, guía

Troy Hunt es un programador australiano y bloguero técnico que ganó los honores de Director Regional de Microsoft y MVP, pero no es un empleado de Microsoft. La mayoría de sus artículos técnicos están relacionados con la seguridad de la red, y también hemos revisado algunos de ellos antes.

El artículo de hoy sobre subcontratación fue escrito por él en 2016 y se ha escrito durante muchos años. La razón por la que se ha retrasado durante mucho tiempo es porque es fácil malinterpretar la cultura extranjera, y la otra es por su papel en la cooperación con muchos proveedores de subcontratación en Asia Pacífico.

La siguiente experiencia de subcontratación es un resumen de Troy Hunt basado en observaciones personales. Puede resonar en algunas personas y también puede hacer que algunas personas se sientan incómodas, pero espera que estas experiencias incluyan algunas ideas realmente valiosas.

Nota: La "I" a continuación, si no se agrega específicamente, se refiere a Troy Hunt.

1. ¿Por qué debería hablar sobre mi experiencia de subcontratación?

Trabajé como arquitecto de software para Pfizer, una empresa biofarmacéutica, durante un total de 14 años, y durante los últimos 6 años fui responsable de la arquitectura de software en la región de Asia Pacífico.

La región de Asia-Pacífico es muy amplia, desde Pakistán en el oeste hasta China, Japón, Australia y Nueva Zelanda donde estoy. La región tiene más de la mitad de la población mundial, de los cuales 2.700 millones se encuentran en China e India.

Al principio me enviaron a encargarme del desarrollo de software, pero la estrategia de la empresa para la región Asia-Pacífico ha cambiado y la dirección decidió subcontratar todo el trabajo.

La subcontratación es una práctica estándar en la industria. Así que mi función cambió, de desarrollar con programadores a tratar con proveedores.

He participado en una amplia gama de proyectos, desde sitios web de publicidad básica hasta sistemas de investigación clínica a gran escala, desde aplicaciones móviles hasta la implementación de terminales POS y diversos proyectos de soporte, actualizaciones de sistemas operativos y navegadores en toda la organización, y muchos otros proyectos internos, etc. .

Entonces, después de tantos años, he cooperado con docenas de proveedores diferentes y completado cientos de proyectos, especialmente en India, China y Filipinas.

Antes de hablar de la cultura nacional antes mencionada, me gustaría agregar que soy diferente a los que solo tienen antecedentes occidentales, pasé 3 años en la escuela secundaria en Singapur. Voy a la escuela, vivo y socializo junto con los lugareños. Singapur incluye la cultura china, la cultura india y la cultura malaya.

2. Mi experiencia en subcontratación

1. ¿Por qué ocurre la subcontratación?

¡Porque los costes laborales son caros! (La gente es cara).

Si desea desarrollar un producto de software, debe formar muchos programadores. Independientemente de si están trabajando en un proyecto o no, debe pagar un salario. Además, no todos los programadores tienen las habilidades específicas necesarias para cada proyecto. Esto nuevamente significa que tienes que contratar a más personas.

Los beneficios de la subcontratación se reflejan: reducir los costes laborales.

2. ¿Por qué existe la subcontratación en el extranjero?

El costo laboral en la región Asia-Pacífico (Asia) es bajo.

Entre los lectores de mi blog, Australia, Reino Unido y Estados Unidos son los que más tienen. Los costos laborales en estos países son altos. Los datos sobre salarios globales promedio del Banco Mundial también pueden corroborarse.

Entre los proveedores de subcontratación con los que coopero en la región de Asia y el Pacífico, los tres principales países son China, Filipinas e India. La brecha entre su ingreso promedio y Australia, Estados Unidos y Gran Bretaña se muestra claramente en la siguiente tabla.

3.India

Puedo decir que el país de la India se ha convertido en sinónimo de "deslocalización". El término "subcontratación de India" ha penetrado en el corazón de muchos directores de TI.

¿Por qué está pasando esto? Hay 3 razones:

  • India fue una vez una colonia británica y los indios tienen buenas habilidades en inglés;

  • India tiene una enorme población en segundo lugar en el mundo, con más de 1.300 millones de personas;

  • India ha invertido mucho en subcontratación de procesos comerciales (BPO) y trabajo de alta tecnología;

Los grandes proveedores de subcontratación de la India incluyen: Tech Mahindra, Infosys, Wipro, etc. Tengo experiencia tratando con ellos en muchos proyectos y también he tratado con pequeños proveedores de outsourcing.

Aunque nunca he estado en India, las tendencias culturales encarnadas por los proveedores de subcontratación indios me han dejado una profunda impresión.

En India, la mayoría de los programadores se producen en masa mediante una formación intensiva, y la pila de habilidades es discreta e incoherente.

Por ejemplo, hubo un informe en julio de 2016 que Google capacitaría a 200 millones de desarrolladores de Android en India.

A menudo encuentro que los programadores indios se centran en partes discretas de los componentes del software, y esto es lo que hacen, nada más. Por supuesto, también conozco a esas personas en Australia, el Reino Unido u otras regiones, pero los desarrolladores full-stack son más comunes.

Esto ha dado como resultado que haya muchos roles involucrados en el mismo proyecto, incluidos desarrolladores junior, desarrolladores senior, desarrolladores de API, desarrolladores de sitios web, desarrolladores de bases de datos ... Para algunos proyectos grandes, esta división es razonable. Pero los pequeños proyectos también se dividen en responsabilidades, lo que provoca un derroche de recursos humanos. Una vez bromeé diciendo que un grupo escribió la etiqueta de inicio  < y el otro grupo escribió la etiqueta de cierre > .

Los programadores indios tienen una alta tasa de rotación (mucho más severa que China y Filipinas) y una baja lealtad laboral. Si ve a alguien trabajando en la misma empresa durante más de un año o dos, es extraordinario. No hay nada que decir sobre cambiar de trabajo en una determinada empresa sin ser ascendido. Pero los cambios de personal traerán más fricción al proyecto, lo que no se puede reflejar en la propuesta del proyecto.

Cada vez que trabajo con proveedores indios, encuentro una y otra vez que los programadores indios necesitan documentación muy detallada. En comparación con China y Filipinas, los detalles son muy importantes para ellos. En muchos casos, asumiremos que un requisito funcional claramente implica algo, pero luego se descubre que está "fuera de alcance". Esta situación puede ocurrir en cualquier proyecto a nivel mundial, pero es extremadamente común en India.

Después de comprender estas características de la subcontratación india, el proyecto más adecuado para la subcontratación a la India debería ser: una unidad de proyecto con un alcance claro, documentación clara y que se ajuste al modelo en el que los fabricantes indios son buenos.

Creo que esto está relacionado en gran medida con la mentalidad de "fábrica de desarrolladores". En esta mentalidad, muchos programadores han recibido una formación muy específica, si puedes seguir su modelo, ese es tu "camino feliz".

4. China

Estuve mucho tiempo en China. China es un lugar fascinante con un ecosistema de Internet único. Existe una gran población de personas en rápida urbanización que reciben educación de alta calidad.

Este es un país muy conocedor de la tecnología, y vemos que continúan creciendo en este sentido, desde proveedores de hardware emergentes (ahora dominantes) (como Huawei y Lenovo) hasta proveedores de servicios como Alibaba. Entra en el escenario mundial. Si está interesado en la tecnología y no presta atención a los desarrollos de China, es posible que se pierda la fuente más importante de innovación y crecimiento tecnológico del mundo en las próximas décadas.

Pero hay una cosa que dificulta la aceptación por parte de los chinos y es la capacidad de leer y escribir en inglés. No tienen los antecedentes coloniales de la India y, debido a su ecosistema de Internet único, dependen tanto de sus servicios chinos, por lo que tienen muchas menos oportunidades de comunicarse con el inglés y la comunicación clara puede ser complicada.

Esto significa que entre usted y los programadores chinos, también habrá administradores de cuentas con conocimientos de inglés que traducirán para los programadores. Usaron chino cuando discutieron los detalles, y muchas cosas se perdieron en el proceso de traducción.

Debe considerar el impacto que esto tiene en la calidad del código. Funcionalmente, el código en sí está bien, pero el código abreviado por programadores con pocas habilidades en inglés está lejos del objetivo de calidad de autodocumentar el código.

Código de autodocumentación e interfaz de usuario (UI), siga las convenciones de nomenclatura y las convenciones de programación estructurada. Con estas convenciones, las personas pueden utilizar el sistema sin conocimientos específicos de antemano.

En otras palabras, si su código describe claramente su función, será más fácil de leer y mantener, no solo para las personas que escriben el código ahora, sino también para las personas que quieren mantenerlo en el futuro.

Y también considere que los futuros mantenedores pueden ser otras culturas no chinas. Debido a esto, me resulta particularmente difícil revisar el código escrito en chino.

La barrera del idioma también se extiende a la interfaz de usuario. Debido a que un programador con pocas habilidades en inglés no solo escribe código, etiquetas, títulos y todo tipo de contenido de visualización externo, también escribe. En lugares como China, esto es especialmente problemático y significa muchas revisiones inesperadas (e indecisas). (Por supuesto, incluso en India, el inglés tiene muchas diferencias culturales).

Este tipo de cosas no suele aparecer en las propuestas de proyectos, pero ciertamente tiene un costo.

(Una foto tomada por Troy Hunt en Beijing)

(Notas adicionales para programadores: Hunt cree que existe un factor de riesgo más alto para la subcontratación a China, que está relacionado con la raíz de la ecología única de Internet. Esta parte se omite, no la extraeremos).

Siempre recomiendo que el proveedor de subcontratación divida el trabajo en la propuesta (para mostrar el costo), para que pueda verificar fácilmente si la propuesta es razonable. Por ejemplo, si quiero desarrollar una aplicación con 20 funciones, quiero saber cuánto costará cada función. Luego, puedo desglosarlo, discutir la importancia de cada función, si debo abandonar las funciones de menor valor para reducir costos, etc.

Aunque admiro este método de visualización de costes, los proveedores de subcontratación chinos no son demasiado fríos. Aunque también están desglosados, lo que se enumera es cuántos juniors y seniors, gerentes de proyecto, probadores y los gastos de este personal se necesitan para el proyecto. En mi opinión, esto es irrelevante, porque no puedo interferir. Sin embargo, al comprender las horas de trabajo y el costo total de todo el proyecto, puedo comprender mejor la inversión en la adopción de una determinada solución.

Descubrí que, en comparación con los proveedores australianos, las horas de trabajo chinas son muy altas. Recuerdo un caso (proyecto) en el que la cotización de un proveedor chino era similar a la de un proveedor australiano, pero las horas de trabajo eran un orden de magnitud mayor.

Finalmente, China se está volviendo cada vez más cara. La tasa de aumento salarial de los programadores en Beijing es de dos dígitos, y yo generalmente un poco menos del 3%, con la esperanza de ser como ellos. Según los datos de Glassdoor 2016, el salario anual de los programadores en Beijing es de unos 25.000 dólares estadounidenses, y el salario anual de los programadores en Mumbai es de unos 7.000 dólares estadounidenses. Esta es una diferencia muy importante, y ciertamente no es tan múltiple antes de 2010.

Desde la perspectiva de los proveedores chinos, una de sus ventajas es que no tienen requisitos elevados para los documentos de demanda y pueden trabajar duro con un mínimo de documentos. Por supuesto, la documentación que proporciona varía de un proyecto a otro, de una empresa a otra, pero en empresas como Pfizer, los técnicos también se consideran parte de la "carga" de la versión del software, por lo que la calidad de la documentación puede no ser particularmente buena. .

Los chinos tienen una actitud de "puedo hacerlo", tomarán cualquier cosa y la probarán. Aunque esto también puede ser arriesgado, en general, encuentro que son muy útiles, lo cual es una gran ventaja.

Preferiría subcontratar a China porque los requisitos allí son más flexibles y hay menos requisitos formales. Pero la premisa es que estoy dispuesto a cooperar con los proveedores chinos durante mucho tiempo, pero debido a las barreras del idioma, la fricción involucrada en el proyecto de transición es aún mayor.

5. Filipinas

Si no dejo Pfizer, estaría feliz de establecer una empresa de desarrollo interno en Filipinas. He estado en Manila durante mucho tiempo y puedo decir con confianza que los filipinos son el grupo de personas más amigable que encontrarás en cualquier lugar. Debido a que una vez fue colonizada por los Estados Unidos, el inglés es uno de los idiomas oficiales de Filipinas, y el dominio del inglés de la gente también es muy bueno. No hay barrera del idioma para comunicarse con ellos.

En los últimos años, descubrí en Australia que la tendencia de transferencia de empresas de centros de llamadas a Filipinas se ha vuelto cada vez más obvia. Creo que el conocimiento del inglés de los filipinos, su temperamento amistoso y las empresas de tecnología emergente han promovido conjuntamente esta transformación. En la subcontratación de procesos comerciales (BPO), Filipinas se ha vuelto más prominente recientemente, lo que también se refleja en el salario nacional promedio.

Filipinas es un país pobre y es difícil deshacerse de él. Se puede ver en todas partes, especialmente cuando conduce al aeropuerto.

(Barrios marginales de Manila, capital de Filipinas)

La pobreza también afecta al sector de la tecnología Uno de los modelos de subcontratación más comunes que utilizo en Filipinas es la estrecha relación entre los programadores filipinos y PHP. Esto no es para menospreciar PHP, para aquellos que no tienen mucho dinero, la tecnología LAMP es realmente atractiva y de bajo costo.

Por el contrario, la pila de tecnología de Microsoft utilizada por Pfizer no es popular en Filipinas y es difícil encontrar programadores competitivos. Vas a un proveedor y le preguntas, su posición predeterminada es "Sí, podemos hacerlo en PHP y MySQL". Aunque encontramos un proveedor que utilizaba la pila de tecnología de Microsoft, siempre sentí que la pila de tecnología de Microsoft no le prestaba atención, lo que me preocupó un poco sobre si eran lo suficientemente competitivos.

En términos de costo, Filipinas siempre ha sido más bajo que China y, a menudo, más bajo que India. Esta situación puede continuar durante algún tiempo.

En resumen, las ventajas de la subcontratación en Filipinas incluyen bajo costo, habilidades en inglés, temperamento amigable y la actitud de "atreverse a hacer" que he observado en China.

6. No es el proveedor quien desarrolla el software, sino los empleados que desarrollan el software.

"Nuestro último proyecto fue con el proveedor X, ¡y son geniales!"

"Elegimos al proveedor X y tiene algunos empleados excelentes".

Estas dos oraciones significan lo mismo al principio, pero no lo son. Los empleados son una "mercancía" muy móvil, especialmente en lugares como la India.

Solía ​​tener un proyecto, una programadora en Mumbai, la llamaba Wei Meng, y ella asumió la mayor parte del trabajo. Invertimos mucho tiempo y dinero para familiarizar a Wei Meng con una tecnología específica, pero no fue tan fuerte como esperábamos. Todo salió bien hasta que un día ... ¡Wei Meng se fue! Sospecho que va a tener un bebé, según mi experiencia tiene que avisar a todos con unos meses de antelación. Sin embargo, la información que obtuvimos más tarde fue que estaba enferma, pero no te preocupes, ¡hay otro "Wei Meng", como el último!

Los programadores no son tornillos, es imposible cambiarlos casualmente y luego esperar que realicen la misma función. Pero a menudo veo proveedores que se comprometieron a decir que pueden reemplazar a los programadores como una bombilla de luz de cocina. Esta es una idea peligrosa e incompetente.

7. La falacia de aumentar la mano de obra

Hay muchos líderes no técnicos en posiciones de liderazgo técnico, y realmente no saben mucho sobre tecnología). Por lo general, creen que el resultado del trabajo del desarrollo de software es linealmente proporcional a los recursos humanos. Cuantas más personas participen, más rápido podrá hacer las cosas.

Esta falacia se encuentra en realidad en "El mito del mes del hombre". Cualquiera que participe en la entrega de software debe leer este libro al menos una vez.

Una mujer puede tener un bebé en octubre y 10 mujeres pueden tener un bebé en un mes.

Esta falacia a menudo se pasa por alto, especialmente cuando el costo de la subcontratación se vuelve más barato, algunas personas quieren aumentar la mano de obra en el proyecto.


8. Calidad del código

Este es un tema particularmente difícil, y sé que muchas personas tendrán opiniones firmes al respecto. Mi experiencia es que cuando subcontratas tu trabajo a mercados como Australia, Estados Unidos o el Reino Unido, y luego transfieres el trabajo a ubicaciones de menor costo, la calidad del código se verá afectada. Permítanme aclarar cuáles creo que son los factores impulsores:

En primer lugar, según mi observación, los programadores en el mercado de bajo costo tienen un mayor deseo de promover internamente. Mencioné la tasa de rotación en India en el artículo anterior, y muchos programadores han cambiado de trabajo para encontrar puestos gerenciales. Por supuesto que he visto lo mismo en China y Filipinas.

Los técnicos inteligentes quieren "progresar" cambiando de trabajo para convertirse en gerentes. Aunque esto está sucediendo en todas partes del mundo, hay muchas personas en las empresas estadounidenses y europeas que visito con frecuencia, que esperan sinceramente construir productos a lo largo de sus carreras. En los tres países analizados en este artículo, casi todos quieren pasar a la posición de guiar a otros. Todo el mundo parece estar cada vez menos interesado en el código, y cada vez menos entusiasmo, lo que inevitablemente afectará la calidad.

En segundo lugar, la industria de la subcontratación es una gran industria, siempre espera aumentar la producción y reducir los costos. Son muy rentables. Mencioné anteriormente Mahindra Technology, tienen más de 100,000 empleados. Este tipo de empresa es, en última instancia, solo una fábrica que produce un producto. Para mejorar la eficiencia de la producción, los empleados trabajan sin piedad. Lo hacen al tener muchos recursos baratos. Hay un dicho: "Obtienes lo que pagas".

Finalmente, la calidad del código no es necesariamente visible cuando se entrega el proyecto. Por lo general, toma meses o incluso años para que se dé cuenta del costo de la "deuda técnica". El ejemplo chino anterior es un buen ejemplo. Una vez que el proveedor entrega el producto, si desea agregar funciones y el código es ilegible, ¿cuánto cuesta? En el ciclo de vida de los productos de software, los juegos a largo plazo a menudo se pasan por alto, porque aquellos con bolsas de dinero están ansiosos por obtener beneficios a corto plazo.

9. No subestimes el costo de las diferencias culturales

Todos sabemos que hay muchas culturas diferentes en todo el mundo y, a menudo, existen conflictos entre ellas. Para comer fideos en China, se puede comer en voz alta, pero es descortés en Australia. Aunque es solo un matiz cultural, tendrá un impacto más serio en los equipos interculturales.

Recibí capacitación sobre conciencia cultural en Pfizer, que fue muy interesante. Algunos elementos culturales se comunican implícitamente. Lo que decimos "sí" en Australia puede significar "no" en la India.

10. ¿Cuándo funcionará la subcontratación offshore?

Una cosa que quiero dejar claro es que no estoy diciendo que enviar trabajo al extranjero no sea factible, ni mucho menos. Lo que quiero decir es que existen desafíos específicos que rara vez se consideran en el ROI y que tienen un impacto fundamental en el éxito de la subcontratación.

En los días posteriores a mi salida de Pfizer, pasé mucho tiempo yendo a empresas de todo el mundo para capacitar a sus desarrolladores. Cuando paso tiempo con el equipo, nuestro tema a menudo se centra en la subcontratación en el extranjero. Al ver esto, también piensa que ha escuchado todo tipo de casos de falla (tal vez usted mismo haya tenido esta experiencia), pero también hay algunas experiencias muy positivas.

No subcontrates todo, usa un modelo híbrido. Los empleados de la parte contratante y la parte contratante trabajan juntos y todos hacen lo que mejor saben hacer. Por ejemplo: el equipo local hace el aspecto de la propiedad intelectual, les permite enfrentarse al cliente, hacer el trabajo de diseño y luego subcontratar el trabajo más adecuado para el modelo de "fábrica de desarrolladores" a los indios.

Evite depender de empleados individuales en empresas de subcontratación. En India, la posibilidad de movimientos de personal es mucho mayor. El artículo anterior ha dado el ejemplo de Wei Meng. En su lugar, debe concentrarse en aquellos escenarios que permitan a más personas hacer un trabajo más uniforme, incluso si algunos de ellos se van, no perderá demasiado conocimiento del proyecto.

A menudo hablo con personas que envían miembros del equipo a países lejanos para que puedan ponerse en contacto con personas en el extranjero. No solo para integrarlos en la rutina diaria de la empresa, sino también para beber cerveza con ellos para establecer una conexión real. Desde mi experiencia, este método parece ser bueno.

Finalmente, ahora tenemos algunas herramientas excelentes: controles de calidad del código, servicios de compilación, DVCS, etc.

11. Resumen

También es muy importante: si utiliza los salarios por hora como medida del éxito de la subcontratación, ¡está equivocado!

Las personas que deciden subcontratar el negocio suelen ser aquellas que tienen poco conocimiento de los mecanismos de desarrollo de software. Se sienten atraídos fácilmente por los bajos salarios por hora. Consideran los costos a corto plazo y si se han satisfecho sus necesidades. Ignore la perspectiva a largo plazo, como la mantenibilidad, la disponibilidad, la seguridad y otros aspectos del costo. Sin embargo, cuando el presupuesto es limitado y los beneficios inmediatos son muy importantes, ¿es tan extraño que quienes no entienden la tecnología y controlan los fondos tomen decisiones de subcontratación poco acertadas?

La subcontratación económica es como McDonald's en la industria del software. Este es un producto de producción masiva, aunque la demanda es grande, si sigues haciéndolo no es muy bueno para ti (salud). Piense en ello como parte de una dieta equilibrada y tome una decisión informada No se deje engañar por la lista de precios bajos, independientemente del costo real que pagará.

Lectura recomendada Haga clic en el título para saltar

El software para aviones Boeing 737 Max se subcontrata a ingenieros con un salario por hora de $ 9 ;

Imagen divertida: la verdad sobre la subcontratación

A Tesla no le gusta Python y persigue C ++

Presta atención a la estrella de "cosas del programador", no te pierdas el círculo

Dentro del círculo, estoy mirando ❤️

Supongo que te gusta

Origin blog.csdn.net/P5dEyT322JACS/article/details/104645186
Recomendado
Clasificación