Si el software se va a utilizar táctica o estratégicamente o es esencial para su negocio, entonces contar con programadores que también entiendan el negocio puede ser clave. También deben comprender el soporte y el ciclo de vida y lo que le costará a su empresa respaldar los sistemas después del lanzamiento.
No creo que el costo sea generalmente un factor real. Si alguien dice que sí, es ignorante o miente. Si externaliza, está pagando el margen de beneficio de otra persona además de sus costos. Cualquier ahorro debido a los diferenciales geográficos del mercado laboral generalmente se compensa rápidamente con un mayor costo de comunicación y educación, y los diferenciales de tasas no son tan grandes como solían ser, ya que el mundo en desarrollo se llama así por una razón.
Hay muchos tipos de software por ahí. En muchos casos, puedes subcontratar algo y estar bien. El problema es que esa decisión debe tomarse caso por caso, y no se puede resolver en una situación única para todos.
Estoy seguro de que hay un millón de cosas que buscar en el proceso de toma de decisiones.
Habría casos en los que el desarrollo de una pieza de software bien especificada pero central podría ser fácilmente subcontratada a una empresa especializada en ese tipo de trabajo, por ejemplo, una cosa a nivel de sistema como un controlador de dispositivo o servidor web aún podría ser subcontratada por una empresa que fabricó un dispositivo y quería especializarse en la experiencia del usuario más que en los componentes básicos.
Por otro lado, si va a manejar ese servidor web de maneras especiales y, aunque lo tenga bien especificado, va a tener este componente estrechamente vinculado a las principales iniciativas de desarrollo de múltiples fases, probablemente no esté No querré subcontratar eso.