Si ‘el software se está comiendo el mundo’, ¿por qué las empresas no tecnológicas subcontratan su desarrollo de software personalizado?

Cuesta menos construir software en el extranjero … más o menos.

Una especie de más barato
Puede encontrar programadores, programadores realmente excelentes, en India, Argentina, Letonia y en una variedad de otros países donde los costos de vida son bajos, pero las materias primas para buenos programadores existen como educación en informática, acceso a internet y electricidad confiable.

Contratar mano de obra más barata para hacer el mismo trabajo tiene sentido. Sin embargo, es “más o menos” más barato, por una variedad de razones.

  • barreras idiomáticas – “toda su base nos pertenece”? No siempre es fácil, incluso cuando hablas el mismo idioma, comunicar claramente ideas complicadas. El software es complicado e intentar transmitir sus ideas en una llamada de Skype a personas que apenas hablan su idioma es difícil.
  • diferentes normas culturales : en algunos países no es fuera de lo común, o menospreciado socialmente, ser un programador contratado de día y un hacker de noche escribiendo virus que recopilan información de tarjetas de crédito y distribuyen correos electrónicos no deseados.
  • sin protección legal : si los programadores que contrata en otro país entregan códigos incorrectos, no tienen código o se portan mal y venden su código a otros o usan sus servidores para estafas de lavado de dinero, emprender acciones legales es difícil o imposible.
  • desafíos de zona horaria : no puede simplemente llamarlos durante el día y decir “oye, hagamos algunos pequeños cambios”. Están durmiendo.

Las grandes empresas resuelven estos desafíos abriendo filiales en otros países, contratando gerentes de proyectos bilingües y contando con gerentes locales de confianza. Todo eso tiene un costo.

Una gran empresa que conozco hizo un estudio sobre todo el código que enviaron por mar. A pesar de que las tarifas pagadas por hora fueron alrededor de 1/4 de lo que pagaron por el desarrollo de los EE. UU., Sus ahorros reales, después de lidiar con todo lo anterior, fueron de alrededor del 10%. Para una gran empresa con miles de ingenieros, el 10% puede significar un ahorro de decenas de millones de dólares. Las empresas más pequeñas tienen más dificultades para superar los riesgos y darse cuenta de los ahorros.

No todo el software es igual
Hay dos tipos principales de software personalizado:

  • Productos que hacen dinero.
  • Automatización que ahorra dinero.

SaaS como Salesforce o Hours Tracking, videojuegos como Call of Duty y Halo, y aplicaciones de productividad como Microsoft Word e incluso Google son todos productos de software que hacen dinero.

La automatización, por otro lado, está construida por y para la empresa que la necesita. Los sistemas como la gestión de inventario, el cumplimiento de pedidos y la automatización de fabricación son buenos ejemplos que aumentan la eficiencia, reducen los costos y le dan a la empresa que los construye una ventaja competitiva.

Las compañías no tecnológicas tienden a desarrollar software de automatización y tercerización que parece funcionar. Es más fácil para la compañía escribir una especificación buena y clara y enviarla al extranjero para su construcción.

Sin embargo, crear un producto es una empresa más creativa, arriesgada y emprendedora. La gran cantidad de startups tecnológicas exitosas con sede en los EE. UU. Sugiere algo sobre los estadounidenses y, tal vez, específicamente, la cultura de Silicon Valley es necesaria para construir productos altamente exitosos. La subcontratación simplemente no ha dado como resultado tantos productos ganadores.

Tengo una hipótesis aquí: en un mundo habilitado para Internet, ¿por qué están surgiendo nuevas empresas en Silicon Valley en lugar de India?

Soy un consultor de software, así que uno de los tipos a los que externalizarías. Voy a reformular su pregunta y seguiré un poco antes de llegar a la respuesta real. Todo se reduce a una cuestión de cuáles son las desventajas y los beneficios de usar empleados versus consultores. En casi todas las empresas para las que he trabajado, excepto para las empresas súper pequeñas (<$ 1 mil en ingresos), esta elección se hace realmente por proyecto. La mayoría de las compañías tienen una mezcla de talento interno de ingeniería de software y talento subcontratado, y la elección de cuál usar en un proyecto generalmente se reduce a una combinación compleja de los recursos disponibles, éxitos / fracasos pasados ​​y criticidad para la empresa. Hay un montón de generalizaciones que podría hacer sobre los empleados y consultores acerca de cuál es más responsable y está más comprometido con el éxito de un producto que con solo cumplir con los requisitos, pero en realidad encuentro que la mayor determinación del valor de un individuo se reduce a esa persona y la cultura en la que se encuentran, no si son consultores o empleados. Un buen desarrollador generalmente siempre hará la arquitectura de la manera correcta que permita mantener una aplicación a menos que intervenga alguna fuerza externa, independientemente de su rol como empleado o consultor. En otras palabras, no creo que pueda hacer generalizaciones sobre la elección de una empresa, ya sea para usar consultores o empleados sobre cómo afectará a sus negocios a menos que también tenga en cuenta la cultura y los procesos específicos que existen y cómo tienden a contratar y tratar a cada clase.

Ahora, para volver a su pregunta original, una empresa elegiría externalizar todo o principalmente todo si han tenido un gran éxito en el pasado con la tercerización, grandes fallas con los recursos internos, o simplemente no saben nada mejor. El outsourcing no tiene ningún costo a largo plazo y es cómo comenzaría a hacer un proyecto, especialmente si no sabe cuál es su viabilidad a largo plazo, ya que no es una parte central de su negocio como empresa no tecnológica. Por lo tanto, puede llegar a un departamento de tecnología subcontratado comenzando de esa manera y creciendo y teniendo un gran éxito o en algún lugar en el camino subcontratando algo y teniendo un mayor éxito y luego tratando de contratar y retener su propio departamento de tecnología.

Los equipos internos de software pueden tener mucho éxito, pero muchas empresas, en particular las no tecnológicas, no tienen una cultura que sea propicia para los ingenieros de software. Hacen que los desarrolladores de software asistan a muchas reuniones, los tratan como engranajes reemplazables o, de lo contrario, no los facultan para vivir a la altura de su potencial o los tratan como un recurso que no son. Esto le da a los consultores una ventaja en la misma compañía, ya que tendrían más libertad y potencialmente una mejor calidad de vida haciendo el mismo trabajo que finalmente resulta en más éxito … lo contrario también puede ser cierto. En cualquier caso, aunque muchas compañías no tecnológicas pueden hablar sobre lo importante que es la tecnología doméstica y cómo es una salsa secreta que no puede ser reemplazada, eso rara vez es cierto, después de ver algo hecho, a menudo es más fácil hacer que algo funcione mejor en menos tiempo si cuenta con los recursos adecuados … duplicar la infraestructura y la penetración en el mercado es mucho más difícil. Al final del día, su CEO no va a ver cómo el mundo en general está teniendo éxito con el desarrollo de software o si le importa que el software se esté comiendo el mundo, va a ver qué ha proporcionado el mejor ROI para su empresa en el pasado.

Es enormemente más barato. Estimamos el trabajo de outsourcing para reducir los costos de desarrollo de software en alrededor del 50%.

Se podría argumentar que la contratación externa es arriesgada, y ciertamente lo es :

– Las leyes son diferentes, por lo que las disputas son difíciles de combatir
– Incluso las empresas de confianza han demostrado reclamar habilidades que no tenían
– ¿Está enviando efectivo al extranjero a una empresa en la que no tiene fundamento?

Finalmente, ¿cómo puede una empresa esperar que los desarrolladores extranjeros produzcan exactamente lo que solicitan si no han contratado a un analista nativo para completar una especificación profesional en el interior? Si hay alguna posibilidad de externalización, un profesional debe diseñar exactamente lo que los equipos de desarrollo deben completar antes de enviar al extranjero.

Probablemente porque piensan que necesitan un software personalizado, y escribir software no es lo que piensan o quieren ser su competencia principal.

Si necesitan software personalizado es un punto discutible; al igual que si se han preparado adecuadamente para el costo del ciclo de vida completo del software subcontratado y el soporte posterior.

Puede ser que ACME Widget pueda hacer que una empresa escriba el software que necesita, convirtiéndola en una competencia central. Entonces podría mantenerlo como una salsa secreta, o venderlo a otros fabricantes de Widget. De cualquier manera, esa es una opción comercial estratégica.