Dada la tendencia de los Estados Unidos a externalizar el código y el desarrollo, ¿aprender a programar es una pérdida de tiempo?

¡En su mayor parte, Estados Unidos ha fomentado el desarrollo!

El auge del outsourcing en los años 90 se produjo en un momento en que se creía que el código era un producto que podía desarrollarse al costo más barato. Así que gran parte del desarrollo se trasladó a la costa, donde los costos eran una fracción de lo que costaba producirlo aquí. O eso se sintió. Por lo general, a la India, pero no se limita a ella.

En el transcurso de unos años, surgieron varias cosas que revelaron que la subcontratación, aunque más barata en el frente, era tan costosa, si no más, que el código producido en el país. Como:

  • Los requisitos incompletos o ambiguos son parte integrante del desarrollo. Sin embargo, en un modelo de subcontratación, este es un acuerdo contractual en el que los requisitos tenían que especificarse con precisión. Resulta que muchas personas realmente no entienden sus requisitos y terminaron obteniendo soluciones que no querían o soluciones que cuestan más y tomaron más tiempo del esperado para producir, ya que los requisitos tenían que cumplimentarse y escribirse.
  • Problemas de zona horaria. Intentar comunicarse con los desarrolladores de todo el mundo significaba que cualquier problema y las pruebas generalmente se demoraban entre medio día y un día completo. A la gente no le gusta tener reuniones nocturnas para hablar con el personal de desarrollo durante el día.
  • El código producido a menudo estaba lleno de errores y, a menos que lo especificara el contrato, no tenía documentación de mantenimiento o soporte. Esto dejó a un puñado de personal doméstico el problema de tener que averiguar cómo funcionaba el código para solucionar problemas, implementarlo, etc. La mayoría de los códigos subcontratados no eran soluciones “llave en mano” a pesar de creer lo contrario.
  • Los problemas de idioma y las diferencias culturales en la comprensión mutua, la falta de urgencia o simplemente la incompetencia trazaron líneas de tiempo.

Muchos proyectos fracasaron como resultado de esto y varias tiendas después de unos años comenzaron a construir o reconstruir sus equipos internos de desarrollo. Resulta que gran parte del proceso de desarrollo tiene que ver con la capacidad de tener una reacción más rápida a los requisitos cambiantes, la capacidad de leer entre líneas y la reducción de la pérdida de comunicación debido al personal local más que compensó los costos más baratos percibidos de la subcontratación. La calidad del código también fue generalmente mejor en las tiendas internas, ya que las tiendas podrían ser más selectivas sobre a quién contrataron para escribirlo. En la contratación externa, a menudo se obtiene el recurso más barato que podría deletrear “Puedo codificar” en un currículum.

Mi trabajo anterior era una empresa bien conocida que estaba buscando recursos después de varios años de esfuerzos de outsourcing fallidos y desastrosos.

Hay un dicho en el mundo de los negocios: “Nunca subcontrate su negocio principal”. Dado que la mayoría del software está escrito para uso interno mediante la externalización de su desarrollo, esencialmente lo ha hecho si el software es lo que usa día a día para funcionar en su industria. Y una vez que le haya entregado esas llaves a otra persona, pueden producirlas fácilmente o vender esas habilidades a sus competidores.

Y, por último, el principal impulsor de la subcontratación, los costos más baratos, ha cambiado. El auge de la subcontratación llevó a la demanda en el extranjero de habilidades de desarrollo. Pero esto tuvo el efecto secundario de exigir salarios más altos y un estilo de vida comparable al de sus compañeros en los Estados Unidos. Como resultado, los salarios aumentaron hasta el punto de que los márgenes de subcontratación se redujeron y lo hicieron mucho menos atractivo.

No es que la subcontratación todavía no se haya realizado, pero no está en los niveles que solía estar. Muchas compañías han descubierto que el desarrollo de software no es una habilidad fácil de comprar. Esto se ve confirmado por la demanda que supera la oferta de buenos programadores año tras año durante muchos años. Los buenos programadores prácticamente nunca se subcontratan y, si lo son, siempre aterrizan de pie en otro lugar.

Entonces no, aprender a programar NO es una pérdida de tiempo. Si conoce su oficio y lo sabe bien, nunca tendrá que preocuparse por la contratación externa. He visto varios esfuerzos a lo largo de los años en una variedad de tiendas y todos ellos finalmente fracasaron. Yo y muchos otros sobrevivimos a cada uno.